8279A可编程键盘显示接口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8279A可编程键盘显示接口实验内容
一、实验目的
学习8279A与微机8088系统的接口方法,了解8279A用在译码扫描和编码扫描方式时的编程方法,以及8088CPU用查询方式和中断方式对8279A进行控制的编程方法。
二、实验原理
如图所示,系统中8279A接口芯片及其相关电路完成键盘扫描和显示,本实验以查询方式获取键盘状态信息,读取键值。键值转换成显示代码供显示。根据原理图5-20,得到键值和键名的对照表5-5,显示值和显示代码对照表。
三、实验程序清单
见随机光盘,文件名为H8279.ASM
四、实验步骤
运行实验程序
在DVCC-8086JHN上显示"8279-1"
在系统键盘上输入数字键,在系统显示器上显示相应数字,按EXEC键显示"8279 good",按其它键不予理睬。
源程序:
CODE SEGMENT
ASSUME CS:CODE
START: JMP KEYLED
CONTPORT EQU 00DFH
DA TAPORT EQU 00DEH
DA TA1 EQU 0500H
DA TA2 EQU 0508H
DA TA3 EQU 0510H
DA TA4 EQU 0518H
DA TA5 EQU 0580H
KEYLED: CALL FORMAT
CLD
MOV DI,DATA5
MOV CX,08H
XOR AX,AX
REP STOSB
MOV SI,DATA2
CALL LEDDISP ;DISP 8279-1
MOV BYTE PTR DS:[0601H],00H
KEY0: MOV DX,CONTPORT
IN AL,DX
TEST AL,07H
JZ KEY0
MOV CX,0FFFH
DELAY1: LOOP DELAY1
MOV DX,CONTPORT
MOV AL,40H
OUT DX,AL
MOV DX,DATAPORT
IN AL,DX
MOV DI,AX ;
AND AL,0F0H
JZ KEY1
MOV AX,DI ;
CMP AL,10H
JNZ KEY0
MOV SI,DATA3
CALL LEDDISP
KEYEND: JMP KEYEND
KEY1: CALL CONVERS
MOV SI,DATA5
CALL LEDDISPD
JMP KEY0
CONVERS:MOV BH,0H
MOV AX,DI
AND AL,0FH
MOV BL,AL
MOV AL,CS:[BX+DATA4]
MOV Bl,DS:[0601H]
MOV BH,0H
MOV BYTE PTR DS:[BX+DA TA5],AL
INC BX
MOV DS:[0601H],BX
CMP BX,08H
JZ SA VE0
RET
SA VE0: MOV BYTE PTR DS:[0601H],0H RET
LEDDISP:MOV AL,90H
MOV DX,CONTPORT
OUT DX,AL
MOV BYTE PTR DS:[0600H],00
LED1: CMP BYTE PTR DS:[0600H],07H JA LED2
MOV BL,DS:[0600H]
MOV BH,0H
MOV AL,CS:[BX+SI]
MOV DX,DATAPORT
OUT DX,AL
ADD BYTE PTR DS:[0600H],01H
JNZ LED1
LED2: RET
LEDDISPD:MOV AL,90H
MOV DX,CONTPORT
OUT DX,AL
MOV BYTE PTR DS:[0600H],00
LEDD1: CMP BYTE PTR DS:[0600H],07H JA LEDD2
MOV BL,DS:[0600H]
MOV BH,0H
MOV AL,DS:[BX+SI]
MOV DX,DATAPORT
OUT DX,AL
ADD BYTE PTR DS:[0600H],01H
JNZ LEDD1
LEDD2: RET
FORMAT: MOV BX,0
MOV WORD PTR DS:[BX+0500H],5050H
ADD BX,2
MOV WORD PTR DS:[BX+0500H],0079H
ADD BX,2
MOV WORD PTR DS:[BX+0500H],0000H
ADD BX,2
MOV WORD PTR DS:[BX+0500H],0000H
ADD BX,2
MOV WORD PTR DS:[BX+0500H],4006H
ADD BX,2
MOV WORD PTR DS:[BX+0500H],4040H
ADD BX,2
MOV WORD PTR DS:[BX+0500H],076FH
ADD BX,2
MOV WORD PTR DS:[BX+0500H],7F5BH ADD BX,2
MOV WORD PTR DS:[BX+0500H],3F5EH
ADD BX,2
MOV WORD PTR DS:[BX+0500H],3F5CH ADD BX,2
MOV WORD PTR DS:[BX+0500H],076FH
ADD BX,2
MOV WORD PTR DS:[BX+0500H],7F5BH ADD BX,2
MOV WORD PTR DS:[BX+0500H],063FH