; 四个显示字符数据表放在50H-6FH单元内,字符用8*8点阵,R4(30H)用于
; 控制显示静止字的时间,R5(31H)静止字显示跳转地址步距,B内放显示首址
;
;************;
;中断入口程序;
;************;
;
ORG 0000H ;程序执行开始地址
LJMP START ;跳至START执行
ORG 0003H ;外中断0中断入口地址
RETI ;中断返回(不开中断)
ORG 000BH ;定时器T0中断入口地址
RETI ;中断返回(不开中断)
ORG 0013H ;外中断1中断入口地址
RETI ;中断返回(不开中断)
ORG 001BH ;定时器T1中断入口地址
RETI ;中断返回(不开中断)
ORG 0023H ;串行口中断入口地址
RETI ;中断返回(不开中断)
ORG 002BH ;定时器T2中断入口地址
RETI ;中断返回(不开中断)
;
;初始化程序
CLEARMEN: MOV A,#0FFH ;四端口置1
MOV P1,A ;
MOV P2,A ;
MOV P3,A ;
MOV P0,A ;
MOV DPTR,#TAB ;取"电子设计"字符表首址值
CLR A ;
MOV 21H,A ;21H-24H内存单元清0
MOV 22H,A ;
MOV 23H,A ;
MOV 24H,A ;
MOV R3,A ;R3寄存器清0
MOV R1,#50H ;设字符表移入内存单元首址
MOV R2,#20H ;设查表次数(32次)
CLLOOP: MOVC A,@A+DPTR ;查表将"电子设计"字符数据移入内存单元
MOV @R1,A ;
MOV A,R3 ;
INC A ;
MOV R3,A ;
INC R1 ;
DJNZ R2,CLLOOP ;查表32次,不到转CLLOOP再查
RET ;子程序返回
;
;主体程序
START: MOV 20H,#00H ;20H内存单元清0
SETB 00H ;20H.0位置1
START1: LCALL CLEARMEN ;调用上电初始化子程序
JB 00H,FUN0 ;20H.0位为1,执行FUN0
JB 01H,FUN1 ;20H.1位为1,执行FUN1
JB 02H,FUN2 ;20H.2位为1,执行FUN2
AJMP START1 ;跳回START1循环
;
;键扫描子程序
KEYWORK: MOV P1,#0FFH ;置输入状态
JNB P1.0,KEY1 ;P1.0为0(键按下)转KEY1
JNB P1.1,KEY2 ;P1.1为0(键按下)转KEY2
[1] [2] [3] [4] [5] 下一页
本文关键字:程序 显示器 LED电子屏 51单片机,单片机-工控设备 - 51单片机