📄 he11.asm
字号:
;===================硬件实验十一 8279键盘、显示实验===================
ORG 00D0H
H900: MOV SP,#53H
MOV DPTR,#0FFE1H
MOV A,#00H
MOVX @DPTR,A ;8279方式字写入
MOV A,#32H
MOVX @DPTR,A ;分频
MOV A,#0DFH
MOVX @DPTR,A
H901: MOVX A,@DPTR ;清缓冲区
JB ACC.7,H901
MOV DPTR,#0FFE0H
MOV A,#0C8H
MOVX @DPTR,A ;字形送入
INC DPTR
MOV A,#80H
MOVX @DPTR,A ;字位送入.显示P
H902: MOV 30H,#80H
MOV 31H,#40H
H903: MOV DPTR,#0FFE1H
MOVX A,@DPTR
ANL A,#07H
CJNE A,#00H,H904 ;有键按下吗?
AJMP H903
H904: MOV DPTR,#0FFE0H
MOVX A,@DPTR
MOV B,A ;取出键值
MOV R1,#00H
MOV DPTR,#GOJZ
H905: MOV A,#00H
MOVC A,@A+DPTR ;查键值表是否相同
CJNE A,B,H906
AJMP H907 ;转数字外处理程序
H906: INC DPTR ;键表地址加1
INC R1 ;查找次数加1
MOV A,R1
JB ACC.4,H908 ;是功能键吗?
AJMP H905 ;继续查找
H908: MOV R1,#00H
MOV DPTR,#GOJZ1
H909: MOV A,#00H
MOVC A,@A+DPTR ;功能键键值取出
CJNE A,B,H90A ;键值相等吗?
AJMP H90B ;转功能键处理子程序
H90A: INC DPTR
INC R1
MOV A,R1
JNB ACC.2,H909 ;继续查找
AJMP H900 ;无键按下返回
H907: MOV A,30H
MOV DPTR,#0FFE1H ;字位送入8297
MOVX @DPTR,A
MOV A,R1
MOV R0,31H
MOV @R0,A
INC 31H ;字形缓冲区加1
MOV DPTR,#ZOE0
MOVC A,@A+DPTR ;取出字形代码
MOV DPTR,#0FFE0H
MOVX @DPTR,A ;送入8279显示
INC 30H
MOV A,30H ;字位加1
CJNE A,#88H,H90C ;显示到第八位,从头显示
AJMP H902
H90C: AJMP H903
H90B: MOV DPTR,#CKEY3
MOV A,R1
RL A ;功能键 散转处理
ADD A,R1
JMP @A+DPTR
CKEY3: LJMP L240
LJMP L241
LJMP L242
GOJZ: DB 0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H
DB 0D9H,0DAH,0C3H,0CBH,0D2H,0D3H,0DBH
GOJZ1: DB 0E3H,0E2H,0E1H
ZOE0: DB 0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H
DB 38H,6CH,1AH,68H,0E8H
;--------------------------------------------------------
L240: MOV R5,#0CH
LJMP L245 ;0字循环
L241: MOV R5,#9FH
LJMP L245 ;1字循环
L242: MOV R5,#4AH
L245: MOV R6,#08H ;2字循环
L246: MOV A,R6
MOV DPTR,#0FFE1H
MOVX @DPTR,A ;字位送入8279
MOV A,R5
MOV DPTR,#0FFE0H
MOVX @DPTR,A ;字形送入8279
MOV R2,#20H
LCALL DELY ;延时
MOV A,#0FFH
MOVX @DPTR,A ;关显示
INC R6 ;下一位显示
CJNE R6,#88H,L246
AJMP L245 ;不到最后一位继续
;----------------------------------------------------------
DELY: PUSH 02H
DEL2: PUSH 02H
DEL3: PUSH 02H ;延时
DEL4: DJNZ R2,DEL4
POP 02H
DJNZ R2,DEL3
POP 02H
DJNZ R2,DEL2
POP 02H
DJNZ R2,DELY
RET
;--------------------------------------------------------
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -