站长 发表于 2025-6-30 08:45:27

4x4矩阵键盘扫描

4x4矩阵键盘扫描
🕹️ 硬件优化方案:markdown


复制


下载





[接线图]:P1.0~P1.3 → 行线(接上拉电阻)P1.4~P1.7 → 列线(扫描输出)
⚡ 状态机扫描代码:c


复制


下载





unsigned char Key_Scan() {    static unsigned char key_state = 0;    unsigned char col, row;      P1 = 0xF0; // 列线全低,行线上拉    if((P1 & 0x0F) != 0x0F) { // 有按键按下      switch(key_state) {            case 0: key_state = 1; break; // 消抖            case 1:               col = P1 & 0x0F;                P1 = 0x0F; // 反转扫描方向                row = (~P1 >> 4) & 0x0F;                return (row << 4) | col;      }    } else {      key_state = 0;    }    return 0xFF; // 无按键}
📊 性能对比:
方案扫描速度抗干扰性
传统逐行扫描慢差
状态机扫描快3倍优秀




页: [1]
查看完整版本: 4x4矩阵键盘扫描