微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机矩阵按键的设计

单片机矩阵按键的设计

时间:11-26 来源:互联网 点击:
一、矩阵按键的原理

矩阵键盘一般是4*4的按键组成,当然也有其他的按键组合,这里我们分析4*4的按键,其他组合原理类似。4*4的按键采用的行列扫描方式,也就是先预设端口的状态,然后扫描行的状态,检测到扫描行的状态以后,再次检测扫描列的状态。

下面这段程序是4*4的行列按键的扫描程序

void scankey(void)//16路热键扫描
{char a=0;
P1=0x0F;
if(P1!=0x0F)//读取按键是否按下
{
delay_ms(150);//延时150ms进行消抖
if(P1!=0x0F)//再次检测键盘是否按下
{
switch(P1)//测试列
{
case(0X07):Keynum=0;break;
case(0X0b):Keynum=1;break;
case(0X0d): Keynum=2;break;
case(0X0e):Keynum=3;break;
}
P1=0XF0;//测试行
switch(P1)
{
case(0X70):Keynum=Keynum;break;
case(0Xb0):Keynum=Keynum+4;break;
case(0Xd0): Keynum=Keynum+8;break;
case(0Xe0):Keynum=Keynum+12;break;
}
while((a<200)&&(P1!=0xF0))//检测按键松手检测
{
delay_ms(100);
a++;
}
}
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top