单片机按键扫描程序单片机按键扫描程序
单片机4*4按键扫描程序
扫描函数
int saomiao() //扫描键盘,输出一个数
{
int i,j,y=20,x=20,temp;
int aa[]={0xf7,0xfb,0xfd,0xfe,}; dingwei:
P3=0xf0;
if(P3!=0xf0) //判断是否有输入
{
delay(5); //防抖(延时10ms)
if(P3!=0xf0) //再判断是否有输入
{
for(i=0; i<4; i++)
{
P3 = aa[i];
temp...
单片机按键扫描程序
单片机4*4按键扫描程序
扫描函数
int saomiao() //扫描键盘,输出一个数
{
int i,j,y=20,x=20,temp;
int aa[]={0xf7,0xfb,0xfd,0xfe,}; dingwei:
P3=0xf0;
if(P3!=0xf0) //判断是否有输入
{
delay(5); //防抖(延时10ms)
if(P3!=0xf0) //再判断是否有输入
{
for(i=0; i<4; i++)
{
P3 = aa[i];
temp=0x10;
for(j=0; j<4; j++)
{
if(!(P3 & temp)) //判断P1口高4位某一行为低电平
x=i+j*4; //使用中间变量X
temp <<= 1;
}
}
}
}
if(P3!=0xf0) goto dingwei; //判断是否松开按键,防止重复赋值
switch(x)
{
case 0:y=7; break;
case 1:y=8; break;
case 2:y=9; break;
case 3:y=14;break;
case 4:y=4; break;
case 5:y=5; break;
case 6:y=6; break;
case 7:y=13;break;
case 8:y=1; break;
case 9:y=2; break;
case 10:y=3;break;
case 11:y=12;break;
case 12:y=10;break;
case 13:y=0; break;
case 14:y=15;break;
case 15:y=11;break;
default:y=20;
}
return y; //返回键盘编号,方便起见:数为0~9; } //符号点+-*/=分别为10,11,12,13,14,15。
本文档为【单片机按键扫描程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。