📄 d792.txt
字号:
;实验三 8279键盘显示实验
Z8279 EQU 212H
D8279 EQU 210H
LEDMOD EQU 00h ;左边输入,八位显示外部译码八位显示
LEDFEQ EQU 38H ;扫描频率
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START: ;初始化
PUSH CS
OUT DX,AL
POP DS
MOV DX,Z8279
MOV AL,LEDMOD
MOV AL,LEDFEQ
OUT DX,AL
MOV DX,D8279
MOV AL,7FH
OUT DX,AL
MOV DX,D8279
MOV AL,7FH
OUT DX,AL
MOV DX,D8279
MOV AL,7DH
OUT DX,AL
MOV DX,D8279
MOV AL,7FH
OUT DX,AL
MOV DX,D8279
MOV AL,70H
OUT DX,AL
MOV DX,D8279
MOV AL,5bH
OUT DX,AL
MOV DX,D8279
MOV AL,70H
OUT DX,AL
MOV DX,D8279
MOV AL,76H
OUT DX,AL ;以上为写(HKZK88)
NOP
MOV DX,Z8279
MOV AL,0C2H
OUT DX,AL ;置空FIFO寄存器
MOV CL,00H ;改
WAIIT:
NOP
IN AL,DX
MOV BL,AL
AND AL,80H
CMP AL,80H
JE WAIIT ;FIFO正在清除期间则跳转等待
MOV AL,BL
AND AL,0FH
CMP AL,00H
JE WAIIT ;无键按下则等待
CMP CL,02H
JE OUTPUT
NEXT: MOV AL,40H ;写 读FIFO RAM命令字
OUT DX,AL
MOV DX,D8279 ;读入FIFO RAM内容
IN AL,DX
NOP
CMP AL,3bH
JE FINI
;查表,将键码放入AL中
LEA BX,LED
XLAT
MOV DX,D8279 ;将AL中内容写到数码管上
OUT DX,AL
MOV DX,Z8279 ;清FIFO RAM寄存器
MOV AL,0C2H
OUT DX,AL
inc cl
and cl,07h
JMP WAIIT ;等待下一次键输入
FINI:MOV DX,Z8279
MOV AL,0D3H
OUT DX,AL
JMP $
LED DB 07H,66H,06H,3FH
DB 00H,00H,00H,00H
DB 7FH,6DH,5BH,71H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 6FH,7DH,4FH,79H
DB 00H,00H,00H,00H
DB 77H,7CH,39H,5EH
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
output: ;改
push dx
push ax
mov dx,d8279
mov al,7fh ;8
out dx,al
mov dx,d8279
mov al,7fh ;8
oUt dx,al
inc cl
inc cl
pop ax
pop dx
jmp next
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -