📄 10_8279.asm
字号:
;//****************************************************************
;文件名: 8279 for 8088
;功能: 8279键盘显示实验
;接线: 无须接线
;//****************************************************************
Z8279 EQU 239H
D8279 EQU 238H
LEDMOD EQU 80H ;右边输入,八位显示外部译码八位显示
LEDFEQ EQU 29H ;扫描频率
LEDCLS EQU 0D1H ;清除
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START: ;初始化
PUSH CS
POP DS
MOV DX,Z8279
MOV AL,LEDMOD ;置8279工作方式
OUT DX,AL
MOV AL,LEDFEQ ;置键盘扫描速率
OUT DX,AL
MOV AL,LEDCLS ;清除 LED 显示
OUT DX,AL
MOV AL,90H
OUT DX,AL
MOV DX,D8279
MOV AL,40H
OUT DX,AL
MOV DX,D8279
MOV AL,40H
OUT DX,AL
MOV AL,00H
OUT DX,AL
MOV AL,0EFH
OUT DX,AL
MOV AL,27H
OUT DX,AL
MOV AL,5BH
OUT DX,AL
MOV AL,7FH
OUT DX,AL
NOP
MOV DX,Z8279
MOV AL,0C2H
OUT DX,AL ;置空FIFO寄存器
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 ;无键按下则等待
MOV AL,40H ;写 读FIFO RAM命令字
OUT DX,AL
MOV DX,D8279 ;读入FIFO RAM内容
IN AL,DX
NOP
CMP AL,15H ;是结束符则结束
JE FINI
NOP ;查表,将键码放入AL中
LEA BX,LED
XLAT
MOV DX,D8279 ;将AL中内容写到数码管上
OUT DX,AL
MOV DX,Z8279 ;清FIFO RAM寄存器
MOV AL,0C2H
OUT DX,AL
JMP WAIIT ;等待下一次键输入
FINI:
MOV DX,Z8279 ;清FIFO寄存器并关蜂鸣器
MOV AL,0C2H
OUT DX,AL
JMP $
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;01234567
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;89ABCDEF
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -