微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 8*8点阵显示程序(汇编)

8*8点阵显示程序(汇编)

时间:11-18 来源:互联网 点击:

//8*8点阵LED显示,用单片机AT89C51 驱动8*8点阵LED显示屏
//轮流显示0-9的数字,显示的方式采用自右向左拉幕式显示

//源程序和proteus仿真我一打包,地址:http://proteus.5d6d.com/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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top