单片机实验报告
信息处理实验实验二矩阵键盘
专业:电气工程及其自动化指导老师:高哲组员:明洪开张鸿伟张谦赵智奇学号:152703117152703115152703118152703114
f室温:18℃日
日期:2017年10月25
矩阵键盘
一、实验内容
1、编写程序,做到在键盘上每按一个键0-F用数码管将该建对应的名字显示出来。按其它键没有结果。
二、实验目的
1、学习独立式按键的查询识别方法。2、非编码矩阵键盘的行反转法识别方法。3、掌握键盘接口的基本特点,了解独立键盘和矩阵键盘的应用方法。4、掌握键盘接口的硬件设计方法,软件程序设计和贴士排错能力。5、掌握利用Keil51软件对程序进行编译。6、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果能做出分析和解释,能写出符合规格的实验报告。
三、实验原理
1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先
f
向端口写入“1”。2、用查询方式检测按键时,要加入延时通常采用软件延时10~
20mS以消除抖动。3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。
由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P16被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P16
f
为低,其余均为高,若此时被按下的键是“4”,则P11被拉低,从P1口读出的值为0xBE;这样,当r