电子屏字符显示器
来源:百度文库 编辑:神马文学网 时间:2024/04/27 18:53:37
; * *
; * 电子屏字符显示器 *
; * “电子设计” *
; * 2001.10.23 LRM *
; *************************
; 四个显示字符数据表在50H—6FH单元内,字符用8*8点阵,R4(30H)用于
; 控制显示静止字的时间,R5(31H)静止字显示跳转地址步距,B内放显示首址
;************;
;中断入口程序;
;************;
ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
ORG 002BH
RETI
CLEARMEN: MOV A,#0FFH
MOV P1,A
MOV P2,A
MOV P3,A
MOV P0,A
MOV DPTR,#TAB
CLR A
MOV R3,A
MOV R1,#50H
MOV R2,#20H
CLLOOP: MOVC A,@A+DPTR
START: LCALL CLEARMEN
START1: LCALL KEYWORK
KEYWORK: MOV P1,#0FFH
JNB P1.0,KEY1
JNB P1.1,KEY2
JNB P1.2,KEY3
KEYRET: RET
KEY1: LCALL DL10MS
JB P1.0,KEYRET
WAIT: JNB P1.0,WAIT
LCALL CLEARMEN
MOV 30H,#80H
MOV 31H,#08H
LJMP DISP1
KEY2: LCALL DL10MS
JB P1.1,KEYRET
WAIT1: JNB P1.1,WAIT1
LCALL CLEARMEN
MOV 30H,#14H
MOV 31H,#01H
LJMP DISP1
KEY3: LCALL DL10MS
JB P1.2,KEYRET
WAIT2: JNB P1.2,WAIT2
LCALL CLEARMEN
LJMP DISP2
DISP1: MOV B,#50H
MOV R4,30H
MOV R5,31H
LOOP: LCALL DISPLAY
DJNZ R4,LOOP
MOV R4,30H
MOV A,B
CJNE A,#68H,CONT
AJMP DISP1
CONT: ADD A,R5
MOV B,A
AJMP LOOP
DISPLAY: MOV A,#0FFH
MOV P0,A
MOV P2,A
MOV R6,#0FEH
MOV R0,B
MOV R7,#08H
DISLOOP: MOV A,@R0
MOV P0,A
MOV P2,R6
LCALL DL1MS
INC R0
MOV A,R6
RL A
MOV R6,A
DJNZ R7,DISLOOP
RET
DISP2: LCALL DISPP
LCALL MOVH
LCALL MOVH1
AJMP DISP2
DISPP: MOV B,#50H
MOV R4,#24H
LCALL DISPLAY
DJNZ R4,DISPP
RET
MOVH: MOV R1,#20H
MOV R0,#50H
MOV R2,#08H
MOV1: MOV A,@R0
CLR C
RLC A
MOV @R0,A
MOV A,@R1
RRC A
MOV @R1,A
INC R0
DJNZ R2,MOV1
MOV R2,#08H
INC R1
MOV A,R1
SUBB A,#24H
JZ OUT
AJMP MOV1
OUT: RET
MOVH1: MOV A,20H
XCH A,23H
XCH A,22H
XCH A,21H
MOV 20H,A
MOV R1,#20H
MOV R0,#50H
MOV2: MOV A,@R0
RR A
MOV @R0,A
MOV A,@R1
CLR C
RRC A
MOV A,@R0
RLC A
MOV @R0,A
INC R0
DJNZ R2,MOV2
MOV R2,#08H
INC R1
MOV A,R1
SUBB A,#24H
JZ OUT
AJMP MOV2
DL1MS: MOV R3,#64H ;100*(8+2)us
LOOPK: LCALL KEYWORK
DJNZ R3,LOOPK
RET
DL512: MOV R2,#0FFH
LOOP1: DJNZ R2,LOOP1
RET
DL10MS: MOV R3,#14H
LOOP2: LCALL DL512
DJNZ R3,LOOP2
RET
TAB: DB 0EFH,83H,0ABH,83H,0ABH,83H,0EEH,0E0H ; 电
DB 0FFH,0C7H,0EFH,83H,0EFH,0EFH,0CFH,0EFH ; 子
DB 0B1H,0B5H,04H,0BFH,0B1H,0B5H,9BH,0A4H ; 设
DB 0BBH,0BBH,1BH,0A0H,0BBH,0BBH,9BH,0BBH ; 计
DB 00H,00H,00H,00H
END