的右端就保持住了0xfe这个数值,不管再怎么改变P0口的数值,锁存器U3右端的数值还是0xfe,不会发生变化;将锁存器U4的锁存端LE设为高电平,然后给P0口送数据0x06(0x06对应十进制数1),然后将锁存端LE设为低电平,这样就把段选数值锁存住了,这样的话在第一个数码管上就会显示十进制数字1。
3动态显示实现方法
通过编写“从左向右让六位数码管中的每一位每隔一秒依次显示123456”的程序来讲述数码管的动态显示实现方法。
在程序中会用到共阴极数码管编码表0x06,0x5b,0x4f,0x66,0x6d,0x7d,此编码表中的数值分别对应十进制数1,2,3,4,5,6,此编码表的表示可以使用数组biao,将biao定义成编码的格式,利用biao数组将编码表0x06,0x5b,0x4f,0x66,0x6d,0x7d中的数值取出来。利用位选数组biaowe0xfe,0xfd,0xfb,0xf7,0xef,0xdf选择点亮六位数码管中的哪一位。在程序中,利用定时器和中断服务程序来控制数码管的显示时间实现了数码管的动态显示。部分程序如下所示:
TMOD0x01;设置工作方式为16位定时计数器
EA1;开总中断
ET01;开定时器0中断
TR01;启动定时器0
if(aa40)
aa0;
umdu;
dula1;P0biao
umdu;dula0;
wela1;P0biaowe
umwe;wela0;
umwe;
f龙源期刊网httpwwwqika
comc
voidtimecalculate0()i
terrupt1中断
TH0(6553625000)256;TL0(6553625000)256;aa;
此程序是让6个数码管中的数值依次每隔1秒显示,现在稍微得加快数码管显示速度,通过将程序中的aa40修改为aa10让数码管中的数值依次每隔250毫秒显示,通过单片机仿真系统原理图,可以看出数码管显示速度加快;将数码管显示速度进一步加快,通过修改程序让数码管中的数值依次每隔50毫秒显示,观察数码管的变化效果,可以看到数码管显示速度加快,6个数值在数码管上隐约全部显示出来;再让数码管中的数值依次每隔5毫秒显示,看看数码管的变化效果,可以看到123456这六个数在数码管上完全清晰地显示出来了。
4结束语
在本文中,通过对锁存器功能的介绍、数码管显示的分析和案例程序的编写,详细阐述了数码管的动态显示及实现方法。
参考文献
1吴振磊,刘孝赵74HC595在单片机控制多位数码管中的应用J科技广场,2013
2李全利单片机原理及应用技术M高等教育出版社,2009
作者简介
张成法(1984),男,山东省青州市人。硕士研究生学历。现供职于潍坊工程职业学院。主要研究方向为单片机与嵌入式系统。
作者单位
潍坊工程职业学院山东省青州市262500
fr