




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,第13章单片机实现4*4矩阵键盘控制项目,.,学习内容,13.1项目需求13.2项目工作原理分析13.3项目硬件电路设计13.4项目软件程序设计13.5系统调试结果总结,.,13.1项目需求,矩阵键盘又称行列键盘,它是用四条I/O线作为行线,四条I/O线作为列线组成矩阵键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4*4个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。项目要求:设定矩阵键盘编号,按下键盘中的某个按键,可以通过数码管看到显示对应的键盘编号值。,(4*4)矩阵键盘实物图,.,13.2项目工作原理分析,4*4矩阵键盘的行信号分别接P2.0P2.3,列信号分别接P2.4P2.7,无按键闭合时,P2.0P2.3与P2.4P2.7开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。判断矩阵键盘有按键按下方法如下:先让P2.0P2.3输出低电平,监测P2.4P2.7的状态,如果P2.4P2.7输出为高电平则没有按键闭合,如果检测到P2.4P2.7输出为低电平则表示有按键按下发生闭合状态,以上只是说明有按键闭合,具体是哪个按键闭合好需要进一步检测。,.,一旦确定有按键已经稳定闭合后,接着判断为哪一个按键闭合,采用对按键进行扫描的方式,依次给每一条列线送低电平,其余各列都为高电平,并检测每次扫描的行状态。每当扫描输出某一列为低电平时,相继读入行线状态。若全为高电平,表示为低电平的这列没有按键闭合。否则行线不全部为高电平,表示为低电平的这列上有按键闭合。确定闭合按键的位置后,计算出按键值,产生按键码。,.,在矩阵按键处理过程中,一旦检测到有按键闭合与确认按键已经稳定闭合期间,通过调用10-20ms延时子程序避开按键抖动问题。由于按键是机械器件,按下或者松开时有固定的机械抖动,抖动图如图所示。,.,按键去抖分为硬件去抖和软件去抖,硬件去抖最简单的是按键两端并联电容,容量根据实验而定。软件去抖使用方便不增加硬件成本,容易调试,所以现在处理按键抖动问题大部分选择软件去抖。软件去抖操作步骤如下:检测到按键按下后进行10-15ms延时,用于跳过这个抖动区域。延时后再检测按键状态,如果没有按下表明是抖动或者干扰造成,如果仍旧按下,可以认为是真正的按下。并进行对应的操作。同样按键释放后也要进行去抖动延时,延时后检测按键是否真正松开。,.,采用单片机控制矩阵按键实现按键键码值显示的电路结构由51单片机最小系统、数码显示电路、数码驱动电路、矩阵键盘电路和电源供电电路组成。,单片机控制矩阵键盘电路结构图,.,13.3项目硬件电路设计,矩阵键盘电路的行信号分别接P2.0P2.3,列信号分别接P2.4P2.7,进行按键检测时,假设查询到P25为低电平,P24P26P27为高电平,那么可能按下的按键为S2S6S10S14。进一步探测,先把P20设置为低电平,P21P22P23为高电平,如果此时P25一直为低电平,就是S2按键被按下。如果P25为高电平,令其P21设为低电平,P20P22P23为高电平,如果此时P25为低电平,表明S6按键被按下。依此类推,可以确定S1-S16中哪个按键被按下。,.,单片机控制矩阵键盘硬件电路原理图,.,13.4项目软件程序设计,矩阵键盘行线P20P23为输出线,列线P24P27为输入线。单片机将行线(P20P23)全部输出低电平,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低电平时调用延时程序以此来去除按键抖动。延时完成后再判断是否有低电平,如果此时读入列线数据还是有低电平,则说明确实有键按下,再来进一步确定键值。,.,系统软件设计流程图,.,程序代码,#include/包含头文件,头文件包含特殊功能寄存器的定义#defineucharunsignedchar#defineuintunsignedintunsignedcharconsttable=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xa7,0 xa1,0 x86,0 x8e;/定义共阳数码管段码表0-Fucharkeyscan(void);/键盘扫描函数声明voiddelay(void);/延时函数声明ucharkeyscan(void)/键盘扫描函数ucharkey_h,key_l;/行列值中间变量P2=0 xf0;/行线输出全为0key_h=P2/返回该值,voiddelay(void)/延时函数unsignedchari,j;for(i=0;i20;i+)for(j=0;j250;j+);,.,voidmain()/定义主函数ucharkey;P1=0 xff;/设置数码管位码端电平,显示按键上的按键码while(1)key=keyscan();/调用键盘扫描,switch(key)case0 xee:P0=table0;break;/显示按键码“0”case0 xde:P0=table1;break;/显示按键码“1”case0 xbe:P0=table2;break;/显示按键码“2”case0 x7e:P0=table3;break;/显示按键码“3”case0 xed:P0=table4;break;/显示按键码“4”case0 xdd:P0=table5;break;/显示按键码“5”case0 xbd:P0=table6;break;/显示按键码“6”case0 x7d:P0=table7;break;/显示按键码“7”case0 xeb:P0=table8;break;/显示按键码“8”case0 xdb:P0=table9;break;/显示按键码“9”case0 xbb:P0=table10;break;/显示按键码“a”case0 x7b:P0=table11;break;/显示按键码“b”case0 xe7:P0=table12;break;/显示按键码“c”case0 xd7:P0=table13;break;/显示按键码“d”case0 xb7:P0=table14;break;/显示按键码“e”case0 x77:P0=table15;break;/显示按键码“f”,.,voidsend_char(unsignedchartxd)/传送一个字符SBUF=txd;while(!TI);/等特数据传送TI=0;/清除数据传送标志voidsend_str()/传送字串unsignedchari=0;uintj;while(stri!=0 x00)SBUF=stri;while(TI=0);/等特数据传送TI=0;/清除数据传送标志i+;/下一个字符for(j=0;j50000;j+);/延迟,.,13.5系统调试结果总结,采用单片机控制矩阵键盘实现对应按键值在数码管上显示,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年海南省烟草专卖局招聘考试笔试试题(含答案)
- 地球村课件教学课件
- 2025年甘肃省武威市辅警招聘考试题题库(含参考答案)
- 国防教育双拥工作课件
- 国有企业安全培训信息课件
- 水环境治理应急处理方案
- 大学毕业论文致谢词合集10篇
- 毕业设计致谢6篇
- 2025合同履行所需设备与专业技术能力承诺书范本
- 工业固废分类回收技术方案
- 胖东来店长培训课件
- 呼吸衰竭患者的急救及护理
- 老年急危重症容量管理急诊专家共识解读 2
- 2025年4月自考00841第二外语(法语)试题
- 脊膜瘤的护理查房
- 法拍房介绍课件
- 器械gcp培训课件
- 《医院感染监测与控制》课程教学大纲(本科)
- 访问控制安全管理制度
- 【课件】数轴(课件)数学人教版2024七年级上册
- 乌镇景区管理制度
评论
0/150
提交评论