//8*8点阵LED显示,用单片机AT89C51 驱动8*8点阵LED显示屏 //轮流显示0-9的数字,显示的方式采用自右向左拉幕式显示 本文引用地址:http://www.eepw.com.cn/article/201611/315816.htm//源程序和proteus仿真我一打包,地址:http://proteus./thread-9031-1-1.html R_CNTEQU31H NUMBEQU32H TCOUNTEQU33H ORG0000H LJMPSTART ORG0BH ;定时器中断入口地址 LJMPINT_T0
ORG0030H START:MOVR0,#00H ;显示的幕次(即每一幕显示的:行码起始序号)值0 MOVR_CNT,#00H;列码序列号置0 MOVTCOUNT,#00H ;行码序列号置0 MOVTMOD,#01H MOVTH0,#(65536-5000)/256 MOVTL0,#(65536-5000)MOD 256 SETB TR0 MOVIE,#82H SJMP$ //定时器中断处理函数 INT_T0:MOVTH0,#(65536-5000)/256 MOVTL0,#(65536-5000)MOD 256 MOVDPTR,#TAB ;取列码表 首地址 MOVA,R_CNT MOVCA,@A+DPTR MOVP3,A MOVDPTR,#NUB ;取行码表 首地址 MOVA,NUMB MOVCA,@A+DPTR MOVP0,A ;输出行号 INCNUMB NEXT1: INCR_CNT MOVA,R_CNT CJNEA,#8,NEXT2 MOVR_CNT,#0 MOVNUMB,R0 NEXT2: INCTCOUNT MOVA,TCOUNT CJNEA,#40,NEXT4 ;每个数字显示200ms MOVTCOUNT,#00H INC R0 ;上一幕显示行码的起始序列号+1 CJNER0,#88,NEXT3 MOVR0,#00H NEXT3:MOVNUMB,R0 ;送新一幕显示行码的起始序列号 NEXT4:RETI TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH;列值 NUB: DB 00H,00H,00H,00H,00H,00H,00H,00H;空 DB 00H,00H,3EH,41H,41H,41H,3EH,00H;0 DB 00H,00H,00H,00H,21H,7FH,01H,00H;1 DB 00H,00H,27H,45H,45H,45H,39H,00H;2 DB 00H,00H,22H,49H,49H,49H,36H,00H;3 DB 00H,00H,0CH,14H,24H,7FH,04H,00H;4 DB 00H,00H,72H,51H,51H,51H,4EH,00H;5 DB 00H,00H,3EH,49H,49H,49H,26H,00H;6 DB 00H,00H,40H,40H,40H,4FH,70H,00H;7 DB 00H,00H,36H,49H,49H,49H,36H,00H;8 DB 00H,00H,32H,49H,49H,49H,3EH,00H;9 DB 00H,00H,00H,00H,00H,00H,00H,00H;空 END
|