资源描述:
《点阵显示 (2)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序清单:ORG00HLOOP:MOVA,#0FFH;开机初始化,清除画面MOVP0,A;清除P0口ANLP2,#00;清除P2口MOVR2,#200D100MS:MOVR3,#250;延时100毫秒DJNZR3,$DJNZR2,D100MSMOV20H,#00H;取码指针的初值L100:MOVR1,#100;每个字的停留时间L16:MOVR6,#16;每个字16个码MOVR4,#00H;扫描指针清零MOVR0,20H;取码指针存入R0L3:MOVA,R4;扫描指针存入AMOVP1,A;扫描输出INCR4;扫描指针加1,
2、扫描下一个MOVA,R0;取码指针存入AMOVDPTR,#TABLE;取数据表的上半部分的代码MOVCA,@A+DPTRMOVP0,A;输出到P0INCR0;取码指针加1,取下一个码。MOVA,R0MOVDPTR,#TABLE;取数据表下半部份的代码MOVCA,@A+DPTRMOVP2,A;输出到P2口INCR0MOVR3,#02;扫描1毫秒DELAY2:MOVR5,#248;DJNZR5,$DJNZR3,DELAY2MOVA,#00H;清除屏幕MOVP0,AANLP2,#00HDJNZR6,L3;一个字16个码是否完成
3、?DJNZR1,L16;每个字的停留时间是否到了?MOV20H,R0;取码指针存入20HCJNER0,#0FFH,L100;8个字256个码是否完成?JMPLOOP;反复循环TABLE:;汉字“倚”的代码db01H,00H,02H,00H,04H,00H,1FH,0FFHdb0E2H,00H,22H,00H,22H,0FCH,26H,88Hdb2AH,88H,0F2H,88H,2AH,0FAH,26H,01Hdb63H,0FEH,26H,00H,02H,00H,00H,00Hend在8X8点阵LED上显示柱形,让其先从左
4、到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。1.程序设计内容8X8点阵LED工作原理说明:8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 一根竖柱:对应的列置1,而行则采用扫描的方法来实现。 一根横柱:对应的行置0,而列则采用扫描的方法来实现。
5、ORG00HSTART:NOPMOVR3,#3LOP2:MOVR4,#8MOVR2,#0LOP1:MOVP1,#0FFHMOVDPTR,#TABAMOVA,R2MOVCA,@A+DPTRMOVP3,AINCR2LCALLDELAYDJNZR4,LOP1DJNZR3,LOP2 MOVR3,#3LOP4:MOVR4,#8MOVR2,#7LOP3:MOVP1,#0FFHMOVDPTR,#TABAMOVA,R2MOVCA,@A+DPTRMOVP3,ADECR2LCALLDELAYDJNZR4,LOP3DJNZR3,LOP4 MO
6、VR3,#3LOP6:MOVR4,#8MOVR2,#0LOP5:MOVP3,#00HMOVDPTR,#TABBMOVA,R2MOVCA,@A+DPTRMOVP1,AINCR2LCALLDELAYDJNZR4,LOP5DJNZR3,LOP6 MOVR3,#3LOP8:MOVR4,#8MOVR2,#7LOP7:MOVP3,#00HMOVDPTR,#TABBMOVA,R2MOVCA,@A+DPTRMOVP1,ADECR2LCALLDELAYDJNZR4,LOP7DJNZR3,LOP8LJMPSTART DELAY:MOVR5,
7、#10D2:MOVR6,#20D1:MOVR7,#248DJNZR7,$DJNZR6,D1DJNZR5,D2RET TABA:DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FHTABB:DB01H,02H,04H,08H,10H,20H,40H,80HEND