基于51单片机的LED数码管动态显示

上传人:cn****1 文档编号:491397113 上传时间:2023-11-05 格式:DOC 页数:2 大小:18.50KB
返回 下载 相关 举报
基于51单片机的LED数码管动态显示_第1页
第1页 / 共2页
基于51单片机的LED数码管动态显示_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于51单片机的LED数码管动态显示》由会员分享,可在线阅读,更多相关《基于51单片机的LED数码管动态显示(2页珍藏版)》请在金锄头文库上搜索。

1、 .wd. 基于51单片机的LED数码管动态显示LED数码管动态显示就是一位一位地轮流点亮各位数码管,对于每一位LED数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留效应,采用循环扫描的方式,分时轮流选通各数码管的公共端,使数码管轮流导通显示。当扫描速度到达一定程度时,人眼就分辨不出来了。尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,认为各数码管是同时发光的。假设数码管的位数不大于8位时,只需两个8位IO口。 1 硬件设计利用51单片机的P0口输出段码,P2口输出位码,其电路原理图如下所示。在桌面上双击图标,翻开ISIS 7 Professi

2、onal窗口本人使用的是v7.4 SP3中文版。单击菜单命令“文件“新建设计,选择DEFAULT模板,保存文件名为“DT.DSN。在器件选择按钮中单击“P按钮,或执行菜单命令“库“拾取元件符号,添加如下表所示的元件。51单片机AT89C51 一片 晶体CRYSTAL 12MHz 一只瓷片电容CAP 22pF 二只 电解电容CAP-ELEC 10uF 一只电阻RES 10K 一只 电阻RES 4.7K 四只双列电阻网络 Rx8 300R() 一只 四位七段数码管7SEG-MPX4-CA 一只三极管 PNP 四只假设用Proteus软件进展仿真,则上图中的晶振和复位电路以及U1的31脚,都可以不画

3、,它们都是默认的。在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。 2 软件设计LED数码管动态显示是一位一位地轮流点亮各位数码管的,因此要考虑每一位点亮的保持时间和间隔时间。保持时间太短,则发光太弱而人眼无法看清;时间太长,则间隔时间也将太长假设N位,则间隔时间=保持时间XN-1,使人眼看到的数字闪烁。在程序中要合理的选择适宜的保持时间和间隔时间。而循环次数则正比于显示的变化速度。LED数码管动态显示的流程如下所示。LED数码管动态显示的详细C51

4、程序如下。/* *通过P0及P2口控制四只数码管 ,12M晶振*/#include reg51.h#define uchar unsigned char#define uint unsigned intuchar code ddata= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xc0,0xf9,0xa4 ; /0,1,2,3,4.F,0,1,2,3的段码/*延时函数*/void delayms(uint t)uint i,j; for(i=0;it;i+) for(j=0

5、;j120;j+) ;main() while(1) uint i,j,k; for(k=1;k17;k+) /16个字符 for(j=0;j50;j+)/反比于字符显示变化速度 for(i=1;i5;i+) /4位 P0=ddatak+i-2; switch(i) case 1:P2=0XFE;break; /点亮第1位 case 2:P2=0XFD;break; /点亮第2位 case 3:P2=0XFB;break; /点亮第3位 case 4:P2=0XF7;break; /点亮第4位 delayms(5); P2=0XFF; / 熄灭 翻开Keil程序本人使用的是Keil8.05中文

6、版,执行菜单命令“工程“新建工程创立“动态工程,并选择单片机型号为AT89C51。执行菜单命令“文件“新建创立文件,输入C语言源程序,保存为“DT.C。在Project Workspace窗口中右击源代码组1,选择“添加文件到组源代码组 l将源程序“DT.C添加到工程中。在Keil中执行执行菜单命令“工程“创立目标或点击“创立目标快捷按钮,编译源程序。如果编译成功,则在“Output Window的“创立窗口中显示没有错误,并创立了“DT.HEX文件。3 仿真与调试关于Proteus与Keil的联合仿真调试,可参见我以前所写的博文或其它参考资料。启动Proteus的ISIS,并将其放在屏幕的右

7、上角可将原理图放大到适宜大小;再启动Keil的Vision3,并将其放在屏幕的左下角。 在Keil中执行菜单命令“调试“启动停顿调试,或直接单击图标,进入Keil调试环境。同时,在Proteus ISIS的窗口中可看出Proteus也进入了程序调试状态。 在Keil代码编辑窗口中设置相应断点,断点的设置方法:在需要设置断点语句前双击鼠标左键,可设置断点;再次双击,可取消该断点。在Keil中按F5键或点击“运行快捷按钮运行程序。四位LED数码管显示0123、1234、2345CdEF、dEf0、EF01、F012如此循环。或可以点击单步、运行到光标处、全速运行等快捷按钮,以及同时观察工程窗口存放器页面、存储器窗口等,来进展仿真调试。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 电气技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号