手机版

51单片机_矩阵按键检测(2)

发布时间:2021-06-08   来源:未知    
字号:

《51系列单片机_矩阵按键检测》此程序使用 单片机89SC52// 1、 此程序实现矩阵按键的检测功能,按下按键时,数码管显示按键的相应键值

int MatrixKeyscan() //4*4矩阵键盘键值扫描函数,返回按下的第一个按键对应的键值

{

char key[16] = //行扫描对应的键值数组

{

0xee, 0xde, 0xbe, 0x7e,

0xed, 0xdd, 0xbd, 0x7d,

0xeb, 0xdb, 0xbb, 0x7b,

0xe7, 0xd7, 0xb7, 0x77

};

char line[4] = {0xfe, 0xfd, 0xfb, 0xf7}; //行扫描值,将各行信号分别置0,列值全1

char tmp;

int i, j, k=-1;

for(i=0; i<4; i++)

{

P1 = line[i]; //将行扫描值逐个送至P1端口 tmp = P1; //再读取P1口的值

if(tmp != line[i]) //若读取的数值不等于送入的行扫描值,表示有按键被按下

{

delay_ms(10); //延时,重新读取判断,确认有键按下 tmp = P1;

if(tmp != line[i])

{

for(j=0; j<4; j++) //当有键按下时,根据变化后的P1端口值确定对应的行列值 i和j,并给k赋予键值

{

if(tmp == key[4*i+j])

{

k = 4*i+j;

return k;

}

}

}

while(tmp != line[i]) tmp = P1; //(等待按键释放)循环直到读取的P1端口值与行扫描值相同,此时按键释放

}

}

return k; //返回扫描到的键值

51单片机_矩阵按键检测(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)