十分好用的单片机4*4矩阵键盘扫描代码,送给初学单片机的你

时间:2023-03-27来源:佚名

花了一段时间整理了一段51的4*4矩阵键盘扫描代码,与一般代码不同的是这个程序十分的简短,几行代码就解决了4*4 扫描取键值,防抖动 ,因为在此程序运用了一个很巧妙的算法!现在供上代码供大家学习研究,此程序经过一些改进,可以实现长按键识别 组合按键识别。可以做各种调试程序的二次开发等等。程序算法先自己研究,为了方便初学者,每一行代码每一个变量后面都进行了详细的注释,如果还有其他问题请关注我并给我留言,我看到后会第一时间回复,谢谢! 这次写的文字比较少,大家主要看代码感受一下它的魅力吧

十分好用的单片机4*4矩阵键盘扫描代码,送给初学单片机的你

volatile unsigned char CF[4]; //按键触发标志(表示4列,每一列同一行的

//值是一样的但列标不一样来区分不同列的键)

volatile unsigned char KeyVal; //键值

code unsigned char KeyOut[4] = {0xef,0xdf,0xbf,0x7f}; //4X4按输出端控制

#define KEY P2 //P2口作为4*4矩阵键盘输入

/*

**描述:新型4X4按键扫描程序 放在1ms-10ms中断内使用(十分稳定不需要再写消抖程序)

**备注:按键弹起时 keyVal = 0 单键按下 keyVal 有16个值,你自己程序可以针对不同值

**进行不同程序操作 keyVal单键值分别为

**0x11,0x12,0x14,0x18,

**0x21,0x22,0x24,0x28,

**0x31,0x32,0x34,0x38,

**0x41,0x42,0x44,0x48,

*/

void Key_Head()

{

unsigned char ReadData[4];

static unsigned char i;

if( i>=4)i=0;

KEY = KeyOut[i]|0x0f; //忽略低4位

ReadData[i] = (KEY|0xf0)^0xff; //忽略高4位 取反

CF[i] = ReadData[i] & (ReadData[i] ^ Cont[i]);

Cont[i] = ReadData[i];

//输出键值

switch(CF[i])//第i列

{

case 0x08: KeyVal = (i<<4 8);break;

case 0x04: KeyVal = (i<<4 4);break;

case 0x02: KeyVal = (i<<4 2);break;

case 0x01: KeyVal = (i<<4 1);break;

default:KeyVal = 0;break;

}

}

    相关阅读

    三相四线空开的接线图说明

    有关三相四线空开怎么接线的问题,在电路接线过程中,空气开关 是三根线,三相四线也称为动力线,黄绿红或ABC相,把三根火线 接入空开的上桩头。 三相四线空开的接线图 在漏电开...
    2022-12-15
    三相四线空开的接线图说明

    空调铜管裸露在外面有什么影响?

    几十年前安装的空调,铜管都是裸露的,没有现在这么讲究,但制冷制热效果一样杠杠的。先抛开“空调用铜管还是铝管好 ”不说,单从使用者的角度来说,将铜管裸露在外是有影响的...
    2022-12-12
    空调铜管裸露在外面有什么影响?

    空调小管(供液管)结霜是什么原因

    空调空调小管(供液管)结霜,常见原因如下: 1、缺冷媒 当空调中缺少冷媒时,极有可能出现空调结霜 现象。解决办法:及时查漏补漏,添加适量的制冷剂,使空调恢复运行。 2、系统...
    2022-12-12
    空调小管(供液管)结霜是什么原因

    脉冲电子电表怎么偷电,一招教会你偷电方法

    用来偷电的方法有多种,对于脉冲电子表应该怎么偷电,其实这个偷电方法很简单的,只需要拔掉一根线就可以达到偷电的目的了,一起来了解下吧。 脉冲电子电表的偷电方法 说明:...
    2022-12-17
    脉冲电子电表怎么偷电,一招教会你偷电方法

    关了LED灯仍然微亮怎么办,二种方案完美解决微亮(鬼火)问题

    有关LED灯的使用问题,晚上关了LED灯或者节能灯后,会发现仍然有微亮的光线,这种称之为“鬼火”,怎么来解决关了LED灯仍然微亮的问题,这里分享了二种解决方法,加中间继电器...
    2022-12-23
    关了LED灯仍然微亮怎么办,二种方案完美解决微亮(鬼火)问题

    小牛电动车怎么解锁限速,6个步骤帮你搞定解限速问题

    有关小牛电动车解限速的方法,可以破解20公里限速的,破解流程不复杂,只要6个步骤就可以搞定,小牛电动车怎么解锁限速,可以来试一试本文给出的解锁限速的方法。 小牛电动车解...
    2022-12-13
    小牛电动车怎么解锁限速,6个步骤帮你搞定解限速问题

    空调指示灯亮着会不会费电,一年能费多少度电

    对于空调指示灯亮着会不会费电的问题,会费电,这个不用怀疑。无论哪一种电器设备,哪怕是微小的指示灯,也会是费电的,只是费电量微乎其乎,一年消耗的电量可以忽略不计。...
    2022-12-23
    空调指示灯亮着会不会费电,一年能费多少度电

    雅迪电动车怎么解除25码,附详细解限速步骤说明

    雅迪电动车解除25码限速的方法 方法1:先不要打开电源,捏住刹把,调速把转到底,立即打开电源,在捏住刹把状态下连续转动调速把到最大限度3次,第三次调速把转到底保持5至8秒,...
    2022-12-13
    雅迪电动车怎么解除25码,附详细解限速步骤说明

    网站栏目