KFREE_0:MOV A,R3
MOV R2,A ;把键码装入R2,以供填充缓冲使用
ACALL CORRECT ;字位修正,以免字位跳动不均匀
ACALL FILLFUL ;由于字型改变了 ,因而要重新装入字型
DIS_IT: ACALL DISPLAY ;;;;;;;;;;;
ACALL KEY_SCAN
JZ KILL_REMAIN
DJNZ 72H,DIS_IT
WAIT_FREE: ACALL FILLFUL
MOV A,70H
MOV 72H,A ;等待键释放,并且文持显示
DIS_F: ACALL DISPLAY
ACALL KEY_SCAN ;等待键释放
JZ OUT_OT
DJNZ 72H,DIS_F
SJMP CON_FIL
OUT_OT: ACALL DISPLAY
DJNZ 72H,OUT_OT
LJMP FILL ;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;填充缓冲子程序;;;;;;;;;;;;;;;
FILLFUL:MOV R1,#79H
GO_ON: MOV @R1,#10H
INC R1
CJNE R1,#7FH,GO_ON
MOV A,R2
MOV @R0,A
MOV A,71H
CJNE A,#00H,LEFT
INC R0
CJNE R0,#7FH,OUT
MOV R0,#79H
SJMP OUT
www.youerw.com
OUT: RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;通用显示子程序;;;;;;;;;;;;;;;;;;
DISPLAY:
MOV R1,#79H
MOV R4,#01H
DISP1:MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
MOV A,R4
ORL A,#0C0H
MOV P3,A
ACALL DELAYT
INC R1
MOV A,R4
JB ACC.5,DISP2
RL A
MOV R4,A
SJMP DISP1
DISP2:RET
;;;延时子程序在;;;
DELAYT:MOV R7,#02H
DLY1: MOV R6,#0FFH
DLY2: DJNZ R6,DLY2
DJNZ R7,DLY1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;键扫描、取键值和计算键码子程序
KEY_SCAN:MOV A,#0C0H
MOV P1,#0FFH
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页