信息工程学院实验报告
成 绩: 指导老师(签名): 课程名称:微机原理与接口技术
实验项目名称:键盘扫描及显示实验 实验时间:2017.1.6 班级: 姓名: 学号:
一、实 验 目 的
1. 掌握 8254 的工作方式及应用编程。 2. 掌握 8254 典型应用电路的接法。 二、实 验 设 备
了解键盘扫描及数码显示的基本原理,熟悉 8255 的编程。 三、实 验 原 理
将 8255 单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。实验具体内容如下:将键盘进行编号,记作 0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。
键盘及数码管显示单元电路图如图 7-1 和 7-2 所示。8255 键盘及显示实验参考接线图如图 7-3 所示。
图 7-1 键盘及数码管显示单元 4×4 键盘矩阵电路图
图 7-2 键盘及数码管显示单元 6 组数码管电路图
图 7-3 8255 键盘扫描及数码管显示实验线路图
四、实 验 内 容 与 步 骤
1. 实验接线图如图 7-3 所示,按图连接实验线路图。
图 7-4 8255 键盘扫描及数码管显示实验实物连接图
2. 运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。
图 7-5 8255 键盘扫描及数码管显示实验程序编辑界面
3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 五、实 验 结 果 及 分 析:
1. 运行程序,按下按键,观察数码管的显示。
图7-6 实验结果
分析:当按下键盘其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。
六、实 验 总 结:
通过本实验,我了解键盘扫描及数码显示的基本原理,以及熟悉 8255 的编程。通过本次实验加深了对理论编程的知识的理解,巩固了我的理论知识。
附 录:
;Keyscan.asm
;键盘扫描及数码管显示实验
;查看端口资源分配情况,记录实验系统I/O端口始地址
IOY0 EQU 0D000H ;片选IOY0对应的端口始地址 MY8255_A EQU IOY0+00H*4 ;8255的A口地址
MY8255_B EQU IOY0+01H*4 ;8255的B口地址 MY8255_C EQU IOY0+02H*4 ;8255的C口地址
MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址
STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS
DATA SEGMENT
DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS ;键值表,0~F对应的7段数码管的段位值
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX
MOV SI,3000H ;建立缓冲区,存放要显示的键值 MOV AL,00H ;先初始化键值为0 MOV [SI],AL MOV [SI+1],AL MOV [SI+2],AL MOV [SI+3],AL MOV [SI+4],AL MOV [SI+5],AL MOV DI,3005H
MOV DX,MY8255_MODE ;初始化8255工作方式
MOV AL,81H ;方式0,A口、B口输出,C口低4位输入 OUT DX,AL MOV CX,0040h BEGIN1: PUSH CX BEGIN:
CALL DIS ;显示刷新 CALL CLEAR ;清屏 CALL CCSCAN ;扫描按键 JNZ GETKEY1 ;有键按下则跳置GETKEY1 POP CX LOOP BEGIN1 MOV CX,0040h
MOV AH,01h ;判断PC键盘是否有按键按下 INT 16H
JZ BEGIN1 ;无按键则跳回继续循环,有则退出