按键实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验环境
Windows XP Keil uVision4 Protues软件
实验内容及过程 实验原理
1、识别键的闭合,通常采用扫描法和反转法。 扫描法:是使键盘上某一行线为低电平,而其余行接高电平,然后 读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一 行,直到扫完所有行; 反转法:识别闭合键时,要将行线接一并行口,先让它工作在输出 方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU 通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某 键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进 行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才 读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那 么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必 定可以读得一对唯一的行线值和列线值。 2、矩阵按键的连接如图1所示:
电子信息工程学系实验报告
课程名称:单片机原理及接口 成 绩: 实验时间:2013-05-23 姓名: 陈小凡 学号:010709125 实验项目名称:键盘实验 指导教师(签名): 班级: 通信102
实验目的
1、掌握矩阵键盘的连接及工作原理。 2、掌握矩阵键盘的识别方法(反转法 )。 3、编程实现按不同的按键显示不同的数字。
图1 矩阵按键的连接方式
Hale Waihona Puke Baidu实验内容
利用keil4软件编程与protues软件结合实现按下第一行第一列显示1, 第二行第二列显示2,第三行第三列显示3,第四行第四列显示4。 利用89c51单片机的P3口的低四位作为矩阵按键的列线,高四位作为行 线,连接的电路图如下图1所示: 源程序代码:
#include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int void delay(int x) { uchar i; while(x--) { for(i=0;i<120;i++); } } void main() { uchar m,n,mn; P3=0x0f; while(P3==0x0f); //判断有无按键 if(P3!=0x0f) { delay(1); //消抖 P3=0x0f; //P3口的高四位为高电平,低四位为低电平 m=P3; P3=0xf0;// P3口的高四位为高电平,低四位为低电平 n=P3; mn=m|n; P2=0xff; switch(mn) { case 0xe7: P2=0x0e; P0=0X06; break;// 第一行的第一列按键 按下,显示1 case 0xdb: P2=0x0d; P0=0X5B; break; case 0xbd: P2=0x0b; P0=0X4f; break;// 第三行的第三列按键 按下,显示3 case 0x7e: P2=0x07; P0=0X66; break; } } }
图1 矩阵按键的设计电路图 电路图如上图所示,只要有按键按下的话,就会有与之相连的两端就会 出现低电平,如第一行的第一列的开关按下,P3口的第三、四输出口为 低电平,其余的均为高电平,则P3=0xe7(11100111).
实验结果分析
图2 按键1按下显示1
图3 按键4按下显示4
实 验 心 得: