数码管循环显示数字

这篇具有很好参考价值的文章主要介绍了数码管循环显示数字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

数码管进行显示成功后,可根据自己的想法进行改进。本设计采用八位数码管进行循环显示0~f,其中涉及到段码及位码的调用,可更深一步的理解数码管的使用。

二、芯片使用

1、74hc245

数码管循环显示数字

本设计中数码管的段选使用74hc245进行驱动。可以为数码管提供足够且稳定的电压,数码管与74hc245芯片之间需加电阻进行分压以保护数码管不会因为电压过大而烧毁。

芯片引脚功能:

第1脚DIR,为输入输出端口转换用, DIR=“1”高电平时信号由“A”端输入“B”端输出, DIR=“0”低电平时信号由“B”端输入“A”端输出。

第2~9脚“A”信号输入输出端,A1=B1﹑﹑﹑﹑﹑﹑A8=B8,A1与B1是一组,如果DIR=“1”OE=“0”则A1输入B1输出,其它类同。如果DIR=“0”OE=“0”则B1输入A1输出,其它类同。 第11~18脚“B”信号输入输出端,功能与“A”端一样,不在描述。

第19脚G,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用

第10脚GND,电源地。

第20脚VCC,电源正极。

序号 名称 功能
1 DIR 输入输出转换端口,高电平A到B,低电平B到A。
2~9 A0~A7 输入输出端口
10 GND 电源负极
11~18 B7~B0 输入输出端口
19 OE 使能端,高电平信号不导通,低电平导通
20 VCC 电源正极

2、74ls138译码器

数码管循环显示数字

本设计中数码管的位选使用138译码器进行驱动,使用的数码管为共阴极数码管。

芯片引脚功能:

A0~A2对应Y0——Y7;A0,A1,A2以二进制形式输入,然后转换成[十进制,对应相应Y的序号输出低电平,其他均为高电平;

序号 名称 功能
1~3 A0、A1、A2 地址输入端
4、5 E3、E2 选通端(低电平有效)
6 E1 选通端(高电平有效)
8 GND 电源负极
7、9~15 Y7~Y0 输出端
16 VCC 电源正极

三、硬件连接

实物图

数码管循环显示数字

原理图

数码管循环显示数字

最小单片机系统

数码管循环显示数字

驱动电路

数码管循环显示数字

位码控制电路

数码管循环显示数字

四、软件代码

数码管循环显示数字

main主函数

主函数较为简单,对数码管显示函数的调用,以及定时器函数的初始化。

void main()
{	
	Timer0Init();  //定时器0初始化
	while(1)
	{	
		DigDisplay();  //数码管显示函数	
	}		
}

void Timer0() interrupt 1

定时器函数,用于调整循环的快慢以及显示数字的变化

TH0=(65536-6000)/256;	//给定时器赋初值,定时10ms
	TL0=(65536-6000)%256;
	a--;
	  if(a==0)
	    {
				j++;
			  a=100;
			  if(j==16)
	       {
		       j=0;
	       }
		   }	 

大致讲解:在进行位选后,相对应的段码就会选出来。程序中i用于位选。对应的段码是m。m=j+i是由于0~f有16位

数码管段码、位码显示函数。

void DigDisplay()
{
	u8 i;
	for(i=0;i<8;i++)
	{
		switch(i)	 //位选,选择点亮的数码管,
		{
			case(0):
				LSA=0;LSB=0;LSC=0; break;//显示第0位
			case(1):
				LSA=1;LSB=0;LSC=0; break;//显示第1位
			case(2):
				LSA=0;LSB=1;LSC=0; break;//显示第2位
			case(3):
				LSA=1;LSB=1;LSC=0; break;//显示第3位
			case(4):
				LSA=0;LSB=0;LSC=1; break;//显示第4位
			case(5):
				LSA=1;LSB=0;LSC=1; break;//显示第5位
			case(6):
				LSA=0;LSB=1;LSC=1; break;//显示第6位
			case(7):
				LSA=1;LSB=1;LSC=1; break;//显示第7位	
		}
		m=j+i;
		if(m>=16)
			m=m-16;
		P0=smgduan[m];//发送段码
		delay(100); //间隔一段时间扫描	
		P0=0x00;//消隐
	}
}

五、效果展示

视频拍摄效果较差多多包涵。

数码管循环显示数字仿真演示

数码管循环显示数字实物演示

六、代码链接

关注公众号“小小创客者”回复“数码管循环显示数字”获得代码及仿真,如有错误欢迎指正。文章来源地址https://www.toymoban.com/news/detail-442632.html

到了这里,关于数码管循环显示数字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【51单片机-数码管】:用51单片机写一个八个数码管中选用任意相邻两个数码管,用来循环显示0-99之间的数据,数据显示间隔为0.5s

             用普中51单片机写一个八个数码管中选用任意相邻两个数码管,用来循环显示0-99之间的数据,数据显示间隔为0.5s。         随机数码管 00-99  循环0.5s  显示。        数码管是一种数字显示器件,它由多个发光二极管(LED)组成,可以显示数字、字母、符号等

    2024年02月07日
    浏览(55)
  • 利用单片机余晖依次显示,同时显示 数码管的数字

    #include reg51.h //Êý×é±íʾ Êý×Ö0-9   16½øÖÆ unsigned char arr[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; sbit q1 = P2^0; sbit q2 = P2^1; sbit q3 = P2^2; sbit q4 = P2^3; //ʱ¼ä³¤ ÒÀ´ÎÏÔʾ1234 void delay() {     int i;     for(i = 1; i 20000; i++){} } //ʱ¼ä¶Ì ͬʱÏÔʾ1234 void delay_

    2024年04月26日
    浏览(39)
  • Vivado 实现4个7位数码管显示数字

    目前只是实现了4位分别显示0~9的功能的7位数码管,后期有添加内容还会有删改。 就不用提数码管的原理了(像什么共阳极,共阴极之类的),我会把每一步都解析标注出来。 首先是实现4个数码管显示相同数字。 由于没有具体选择4个数码管的哪一个所以4个都会显示同样的

    2024年02月13日
    浏览(45)
  • Python turtle绘图——七段数码管显示数字和字母

    七段数码管由7条线组成,以下图所标识的画图顺序为准进行程序设计。   首先导入turtle库并将其重命名为t。 定义函数drawGap()用于绘制间隙,通过将画笔抬起,并向前移动5个单位,来实现间隙的绘制。 定义函数drawLine(draw)用于绘制线段,通过判断参数 draw 的布尔值,决定是

    2024年02月06日
    浏览(52)
  • 51单片机“独立按键”控制静态数码管———显示数字0-9

    (1).独立按键模块电路图可以清楚的看到,所有从引脚JP1出来的电流都会接到GND,且当所有按键按下时被执行链接GND。所以,当JP1引脚各端口----识别----到“电流为低电平为0时”,说明按键被按下,否则为高电平按键没有被按下。 ( 2).按键的原理其是需要我们单片机有检

    2024年02月11日
    浏览(49)
  • C51单片机-8位数码管,显示单个数字1-8

    keil uVision4界面: proteus仿真界面:

    2024年02月06日
    浏览(43)
  • 仿真软件proteus构建七段数码管显示数字0-9实验

        七段数码管显示原理研究在前一篇博客中已经阐述过,就是利用7个数码管构建一个“8”字形,然后利用数字的形状特点,依次点亮某一些段,就可以显示数字了。     七段数码管显示数字还是二极管发光原理的利用。     这里依旧采用proteus构建硬件工程,单片机类型

    2024年02月11日
    浏览(48)
  • 利用单片机实现数码管依次显示数字0到9以及0到F

    本次暂时只写了共阴极数码管的实现。 一、显示数字从0-9。 (注:图片有点问题,之前写的时候·没注意,现在下边的代码已经更正了。代码是正确的。) 锁存器。锁存器就是把当前的状态锁存起来,使CPU 送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变

    2024年02月11日
    浏览(38)
  • 【Multisim仿真】74LS47译码器驱动共阳数码管显示(0-8)数字显示

    🎬Multisim仿真演示 📑74ls47引脚功能 LT: 试灯输入,是为了检查数码管各段是否能正常发光而设置的。当LT=0时,无论输入A3,A2,A1,A0 为何种状态,译码器输出均为低电平,也就是七段将全亮,若驱动的数码管正常,是显示8。 BI: 灭灯输入,是为控制多位数码显示的灭灯所

    2024年02月17日
    浏览(277)
  • 51单片机的串口实验之数码管显示与按键实验(8位数字任意传输)

    目标效果: 1、电脑发送任意小于=8位数字( SUBF只有8位最大只能发送255,但是可以通过数组进行临时存储来实现传输多字节 )数字,在数码管上显示对应的数字且同时满足高位是0可以不显示  2、矩阵按键按下后,电脑接收所按下的按钮 实验器材: 1、普中51单片机。2、ST

    2024年02月02日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包