资源描述:
《简单数码管动态显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、窗体顶端#1楼主:简单的数码管动态显示文章发表于:2009-06-0708:43 汇编程序如下: org 0000h start:mov a,#08h ;0 ;段码 mov p0,a mov p2,#01h ;位码 lcalldelay_1ms mov a,#0abh ;1 mov p0,a mov p2,#02h lcalldelay_1ms mov a,#12h ;2 mov
2、 p0,a mov p2,#04h lcalldelay_1ms mov a,#22h ;3 mov p0,a mov p2,#08h lcalldelay_1ms mov a,#0a1h ;4 mov p0,a mov p2,#10h lcalldelay_1ms mov a,#24h ;5 mov p0,a mov p2,#20h lcalldelay
3、_1ms mov a,#04h ;6 mov p0,a mov p2,#40h lcalldelay_1ms ; mov a,#0aah ;7 ; mov p0,a mov p0,#0aah ;感觉用这句和上面两句实现一样,可能这种习惯以后会有用吧 mov p2,#80h lcalldelay_1ms ljmp start delay_1ms:mov r6,#2 temp: mov r5,#0ffh
4、 djnzr5,$ djnzr6,temp ret end org 0000hstart:mov a,#08h ;0 ;段码 mov p0,a mov p2,#01h ;位码 lcalldelay_1ms mov a,#0abh ;1 mov p0,a mov p2,#02h lcalldelay_1ms mov a,#12h ;2 mov p0,a
5、 mov p2,#04h lcalldelay_1ms mov a,#22h ;3 mov p0,a mov p2,#08h lcalldelay_1ms mov a,#0a1h ;4 mov p0,a mov p2,#10h lcalldelay_1ms mov a,#24h ;5 mov p0,a mov p2,#20h lcalldelay_1ms mov a,#04h ;6
6、 mov p0,a mov p2,#40h lcalldelay_1ms; mov a,#0aah ;7; mov p0,a mov p0,#0aah ;感觉用这句和上面两句实现一样,可能这种习惯以后会有用吧 mov p2,#80h lcalldelay_1ms ljmp startdelay_1ms:mov r6,#2temp: mov r5,#0ffh djnzr5,$ djnzr6,temp retend下载到
7、板上得到测结果为从低到高八位分别显示0到7(含点)。★上述方法逐次给P0或者P2赋值,一方面程序的复杂程度增加,另外一方面会使得程序的灵活性降低。如果要改变显示的数字,程序改动起来很麻烦。所以要用51单片机中常用的一种方法:查表法。例如P0口输出段码时,我们可以把要显示的段码放在一个表格中,然后每次从这个表格里面取数,送到P0口即可。P2口输出位码时,可以把要用的位码放在另一个表格里,每次从此表中取数,送入P2口。这样,如果要改变显示的数字,只