【单片机中的矩阵键盘编程】矩阵键盘的编单片机控制编程原理
摘 要: 在单片机操作中,常需要通过键盘来输入信息,单片机通过读取I/0口的值来判断按键情况,并由此来进行下一步操作,而利用矩阵键盘操作,提高I/0口的利用率。 关键词: 矩阵键盘;单片机;按键;程序
中图分类号:TP311.52 文献标识码:A 文章编号:1671-7597(2012)0310172-01
0 引言
在许多智能化设备中,常常需要人机交换界面,而通过矩阵键盘可以完成输入操作。本文中就矩阵键盘的电路接口及软件编程进行了分析。矩阵键盘在使用中硬件连接方便,编程简单,价格低廉,稳定性好,得到广泛应用。
1 接口电路设计
对于独立键盘,8个I/0口只能接8个按键。而矩阵键盘,按键排列成矩形,一般为4*4矩阵,有4行4列,共16个交叉点,按键接在交叉点上。这时用8个I/0口可接16个按键0~F(如下图),大大提高了I/0口的利用率。
4*4键盘上,每个按键开关的两端分别接行线和列线,其中行线和+5V电源之间接上拉电阻。在没有按键按下时,行线和列线是不相连的,当有按键按下时,列线的电平会随行线电平值而改变(如下图),通过单片机检测到的I/0口值,判断有键按下,并通过软件判别按下去的为哪个键。
2 软件编程
对于矩阵键盘的编程大概包含以下几个步骤:首先判断有无按键按下,若有,则进行延时消抖动,再次判断,确实有键按下,判断按下的为哪个键,最后检测释放。如何判断按键是关键,下面我们以反转扫描法介绍编程思路:先对P3口进行赋值0xf0,即高低四位分别为高低电平,如果有键按下,则高四位中有一位会被拉低,读取P3口的值,把它赋给一个中间变量w,此时行就确定了;再给P3口赋值0x0f,即高低四位分别为低高电平,如果有键按下则低四位中对应的位会被拉低,再读取P3口的值,赋给另一个中间变量x,这样按键的行和列都确定了,然后再对变量w和x进行“按位与”操作得到一个值y,根据y的值来判断按下的键。按键从0~F分别是0xee、0xde、0xbe、0x7e、0xed、0xdd、0xbd、0x7d、0xeb、0xdb、0xbb、0x7b、0xe7、0xd7、0xb7、0x77。在主程序中直接调用此按键子程序即可。按键子程序如下:
void anjian()
{
while(1)
{
P3=0x0f;
w=P3;
P3=0xf0;
x=P3;
y=(w&0x0f)+(x&0xf0);
switch(y)
{
case 0xee: j=0; break;
case 0xde:j=1; break;
case 0xbe:j=2; break;
case 0x7e:j=3; break;
case 0xed:j=4; break;
case 0xdd:j=5; break;
case 0xbd:j=6; break;
case 0x7d:j=7; break;
case 0xeb:j=8; break;
case 0xdb:j=9; break;
case 0xbb:j=10; break;
case 0x7b:j=11; break;
case 0xe7:j=12; break;
case 0xd7:j=13; break;
case 0xb7:j=14; break;
case 0x77:j=15; break;
}
if(i!=0)
{
while(P3!=0xf0);
delay(5);
break;
}
}
}
3 结论
使用矩阵键盘可以更好地利用单片机的I/0口,提高了I/0口的利用率,使单片机可以连接更多的模块,实现更多的功能。在当今工业化社会中得到更大的发展。
参考文献:
[1]刘春龙、张炜,单片机控制装置安装与调试[M].高等教育出版社,2010.3.
[2]仝为民、徐日生,智能化键盘的设计,电测与仪表,2000,37(10):
35-36.
[3]张俊谟,单片机中级教程[M].北京航空航天大学出版社,2006.10.
栏目最新:
- 心情二则2023-07-07
- 心情好坏心脏知2023-03-26
- 花的日记2023-03-26
- 马春晖老师辅导的日记画2023-03-24
- 西南联大师生的文学生活——以西南联大...2023-03-23
- 2022年实习日记100篇汇总通用版实习日记...2022-10-01
- 笑猫日记转动时光伞读后感2022-09-19
- 陶奇暑期日记读后感(精选文档)2022-09-19
- 2022小屁孩日记读后感集合2022-09-19
- 2022年度小屁孩日记读后感(全文)2022-09-19
相关文章:
- 【人教版小学二年级下册数学第六单元有余数的除法练习题课件】二年级有余数的除法练习题
- [2018年6月广东高中会考成绩查询时间及入口汇总]2018山东高中会考成绩查询时间
- [京翰,重庆北部新区校区(龙湖)小学三年级语文一对一补习贵吗,暑期补习班|,小学家教辅导机构电话]京翰教育(龙湖校区)怎么样
- 杨浦区政通路初一数学暑假培训班怎么收费/课外辅导机构推荐哪家好_杨浦区政通路邮编
- 【2018江苏无锡中考录取分数线(天一中学)】 无锡天一中学2018高考
- 六年级下册语文《明天,我们毕业》说课稿 人教版语文六年级下册优秀说课稿
- 冬瓜鲜荷叶煲鸭【小暑养生:老冬瓜鲜荷叶煲老鸭】
- [临盆待产:产前如何预防“早破水”?]妻子三胎待产将临盆
- [2018年兵团注册测绘师考试缴费时间:7月4日-7月26日]2017注册测绘师通过率
- 四年级作文400字:日出|日出景象作文100字四年级
- 会计个人小结范文 [学校会计工作个人小结范文]