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

时间:2025-07-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文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219