logo资料库

综合实验 键盘扫描与显示设计实验.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
综合实验 键盘扫描及显示设计实验 一、 实验目的 (1) 学习按键扫描的原理及电路接法。 (2) 掌握利用8255 完成按键扫描及显示。 二、 实验内容 连接8255 与键盘扫描单元,编写程序完成按键扫描功能,并将读到的按键 值依次显示在数码管上。 三、实验说明及步骤 实验系统中的键盘及数码管显示单元提供了4 行×4 列共16 个按键,6 位7 段数码管也接成扫描电路方式。共用段位控制信号A~Dp,各自独立的公共端X1~ X6,其中X1~X4 是与列扫描信号复用,行扫描信号为Y1~Y4。电路原理如图10-1 所示。 图10-1 键盘及数码管显示单元电路结构图 X1~X6 控制6 位数码管的公共端,其中X1~X4 连接到按键的一端,作为列选, 确定是哪一列的按键按下。Y1~Y4 连接到按键的另一端,作为行选,用于检测 哪一行的按键按下。结合行选和列选即可得出是哪一个按键按下。在软件设计上 要注意消除按键抖动的处理以及数码管显示的刷新。参考程序流程如图10-2 所 示,参考实验接线如图10-3 所示。
图10-2 键盘扫描及显示实验参考程序流程图
图10-3 键盘扫描及显示实验参考接线图 实验步骤如下。 (1) 确认从PC 机引出的两根扁平电缆已经连接在实验平台上。 (2) 运行Tdpit 集成操作软件,查看端口资源分配情况。记录与所使用片选信号 对应的I/O端口始地址。 (3) 利用查出的地址,参考图10-2 所示流程图编写程序,然后编译链接。 (4) 参考图10-3 所示连接实验线路。 (5) 运行程序,按动键盘矩阵上的按键,观察数码管显示是否正确。 六、思考题 (1)实验结果是什么?不修改连线图,如何能显示其他的结果(字符)? (2) 你能修改实验参考连线图,得出不同的显示现象(顺序)吗? ;使用行扫描方式寻找按下键的编号(键号)的程序如下: 0FFF8H 0FFFAH 0FFFCH 0FFFEH EQU PORTA EQU PORTB PORTC EQU PORTCN EQU ;代码段开始 CODE SEGMENT ASSUME CS:CODE
START: ;初始化 8255 ;方式 0,A 口、B 口、C 口低四位均为输出,C 口高四位输入 ;保存键号 DX,PORTCN AL,81H DX,AL MOV MOV OUT MOV DL,16 MOV BX,OFFSET SSEGCODE ;要求用 BX 寄存器指向表的首地址 MOV AL,DL XLAT MOV DX,PORTA OUT DX,AL MOV AH,10000000B MOV AL,AH MOV DX,PORTB OUT DX,AL ;取段选码 ;送位选码 WAITK: ;判读是否有键按下 ;写出 C 口内容 00H,即令所有行为低电平 ;C 口低四位作行选择线 DX,PORTC AL,00001111B DX,AL AL,DX AL,0FH AL,0FH WAITK MOV MOV OUT IN AND CMP JZ MOV CX,0BFFFH ;延迟常数,可以修改来改变延时时间 ;判断是否有列线为低电平 ;无键按下继续等待 DELAY: LOOP DELAY ;有,则延迟清除抖动,当 cx=0 时则停止该循环 MOV MOV MOV ;有键按下判断具体按键,BL 为键号,初始值=0 BL,0 BH,01111111B ;行扫描码 ;扫描 4 行 CX,4 ;行处理 FNDROW: MOV OUT ROR IN AND CMP JNZ AL,BH DX,AL BH,1 AL,DX AL,0FH AL,0FH FNDCOL ;输出行扫描码 ;保存下一行扫描码 ;读取检测码 ;取低四位 ;检测码有一位, ;表示找到按键所在行了
ADD BL,4 ;检测码全 1,按键在后面行 ;键号加 4,继续扫描下一行 LOOP JMP FNDROW WAITK ;DONE ;列处理 FNDCOL: ROR AL,1 JNC LOOPDISP INC BL JMP FNDCOL ;找按键所在列 ;JNC,CF 为 0 则转移 ;检测码中的第一个零位,就是按键所在列。 ;**************************************** DB SSEGCODE 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH,0FFH LOOPDISP: BX,OFFSET SSEGCODE ;取段选码 ROL AH,1 MOV AL,BL MOV XLAT DX,PORTA MOV OUT DX,AL MOV AL,AH MOV OUT DX,PORTB DX,AL ;送位选码 NOP NOP JMP WAITK CODE ENDS END START
分享到:
收藏