资源描述:
《实训项目七 动态数码管设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实训项目七课题:动态数码管显示设计课型:理论课+实训课课时:4课时实训目的:1、掌握多位数码动态显示的原理和编程方法。2、掌握查表指令movc的用法。重点难点:1、多位数码动态显示的原理和编程方法。2、查表法的灵活使用。教具:1、网络教学软件;教学方法:讲授法、演示法教学过程:实训内容一一、实训现象8个数码管显示多位数9876.5432二、实训任务分析1、项目分析与设计我们大家都知道电影的原理,它播放的实际上是一个个独立的画面,只不过由于我们视觉上的暂留作用,使得我们感觉画面是连续的。多位数码显示也可以采用这个原理,我们先
2、只让最低位显示2,经过一段延时,再只让次低位显示3,如此类推。只要我们的延时时间足够短,就能够使得数码的显示看起来非常的稳定清楚。试验证明这个延时采用1~5ms即可,过程如下图所示。在本例中,由于我们需要反复的把不同的段码送到P0,把位码送到P2,因此把这两个过程编制成两个子程序,然后反复调用,这样一方面使得程序简化,另一方面使得程序的可读性增强。在这两个子程序中,由于我们要依次输出不同的段码和位码,如果逐次给P0或者P2赋值,一方面程序的复杂程度增加,另外一方面会使得程序的灵活性降低。设想一下,如果我们要改变显示的数字,
3、那么程序改动起来多么麻烦。所以我们采用查表法,以P0口输出段码为例:我们可以把要显示的段码放在一个表中,然后每次从这个表里面取数,送到P0口即可。这样,如果要改变显示的数字,只需要改变表格里面的数就可以了。2、源程序org0000hclrp1.5main:movr7,#0ffhmovr6,#0ffhloop:lcallplay1;调用显示段码子程序,具体含义见注释(1)lcallplay2;调用显示位码子程序lcalldelay;调用1ms延时程序cjnea,#80h,loop;判断是否显示最左边的数,等于80H,说明到最
4、左边了,顺序执行ljmpmainplay1:mova,r7;查表求段码子程序,详细解释可参考注释incamovr7,amovdptr,#table1movca,@a+dptrmovp0,aretplay2:mova,r6;查表求位码子程序incamovr6,amovdptr,#table2movca,@a+dptrmovp2,arettable1:db52h,62h,0e1h,64h;存放段码db04h,0eah,40h,60htable2:db01h,02h,04h,08h;存放位码db10h,20h,40h,80hde
5、lay:movr4,#02h;延时1ms子程序del2:movr3,#0ffhdel3:djnzr3,del3djnzr4,del2retend实训内容二一、实训任务P0端口接动态数码管的字形码段,P2端口接动态数码管的位选择端,P1.7接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。二、项目分析与设计1、电路原理图2、系统板上硬件连线(1)、把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上;(2)、把“单片机系统
6、”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“动态数码显示”区域中的S1-S8端口上;(3)、把“单片机系统”区域中的P1.7端口用导线连接到“独立式键盘”区域中的K1端口上;3、程序设计内容(1)、动态扫描方法动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。(2)、在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。(3)
7、、对于显示的字形码数据我们采用查表方法来完成。4、程序框图5、源程序ORG00HSTART:JBP1.7,DIR1--P1.7=0顺序执行,即有键按下顺序执行;否则跳转到DIR1;MOVDPTR,#TABLE1--“HELLO”表的首地址送入SJMPDIR--跳转到DIRDIR1:MOVDPTR,#TABLE2--“12345”表的首地址送入;DIR:MOVR0,#00H--R0赋值0MOVR1,#01H--R1赋值1NEXT:MOVA,R0MOVCA,@A+DPTRMOVP0,AMOVA,R1MOVP2,ALCALLDA
8、YINCR0RLA--A中内容循环左移MOVR1,A--把A的值给R1CJNER1,#0DFH,NEXT--当R1=DFH,顺序执行,否则跳转到NEXT;SJMPSTARTDAY:MOVR6,#4D1:MOVR7,#248DJNZR7,$DJNZR6,D1RETTABLE1:DB06H,5BH,4FH,