一、概述
三、硬件设计
1. 8255工作原理
3. 键特征值的形成
4. 段值的形成
6. 寄存器地址选取
四、软件设计
1. 8255初始化
2. 键盘扫描的处理方法
MOV DX,0640H
MOV AL,00H
OUT DX,AL
JXSR: MOV DX,0644H
IN AL,DX
AND AL,0FH
(4)防抖动的延时子程序
RET
3. 程序核心部分
LOP1:MOV DX,0640H
OUT DX,AL
MOV DX,0644H
五、源程序代码
1. 实验代码
DZTABLE DB 3FH,06H,5BH,4FH,66DB 6DH,7DH,07H,
DB 77H,7CH,39H,5EH,79H,71H
JZTABLE DB 7EH,7DH,7BH,77H
DB 0BEH,0BDH,0BBH,0B7H
DB 0DEH,0DDH,0DBH,0D7H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,0646H
MOV AL,00H
OUT DX,AL
JXSR: MOV DX,0644H
IN AL,DX
AND AL,0FH
LOP1:MOV DX,0640H
OUT DX,AL
MOV DX,0644H
ZJSC:SHL BL,4
AND AH,0FH
LOP3:CMP BL,[SI]
JE LOP2
INC CL
LOP2:MOV DX,0640H
MOV AL,00H
OUT DX,AL
LOP4: MOV DX,0644H
IN AL,DX
AND AL,0FH
MOV AH,4CH
INT 21H
RET
2. 代码存在问题分析
PUSH CX
RET
六、难点分析
DATA SEGMENT
DZTABLE DB 3FH,06H,5BH,4FH,66DB 6DH,7DH,07H,
DB 77H,7CH,39H,5EH,79H,71H
JZTABLE DB 7EH,7DH,7BH,77H
DB 0BEH,0BDH,0BBH,0B7H
DB 0DEH,0DDH,0DBH,0D7H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,0646H
MOV AL,00H
OUT DX,AL
JXSR: MOV DX,0644H
IN AL,DX
AND AL,0FH
LOP1:MOV DX,0640H
OUT DX,AL
MOV DX,0644H
ZJSC:SHL BL,4
AND AH,0FH
LOP3:CMP BL,[SI]
JE LOP2
INC CL
LOP2:MOV DX,0640H
MOV AL,00H
OUT DX,AL
LOP4: MOV DX,0644H
IN AL,DX
AND AL,0FH
MOV DX,0640H
MOV AL,00H
OUT DX,AL
RET
七、心得体会
通过这次课程设计使我懂得了理论与实际相结合是很重要的,在设计过程中,经常会遇到这样那样的情况,就是心