4X4 键盘扫描程序,采用查表方式,适用于AVR 单片机
此处为4X4 键盘软件部分,硬件部分设计请参照:4X4 键盘扫描电路分析
此程序对应的键盘电路为: 键盘状态扫描函数 /* 键盘扫描函数 读取当前键盘的状态 有按键按下返回相应按键值 无按键按下返回"0x00" */ unsigned char key_read(void){ unsigned char i; DDRA = 0x00;/*获取列地址*/ PORTA = 0x0F; DDRA = 0xF0; i = PINA; DDRA = 0x00;/*获取行地址*/ PORTA = 0xF0; DDRA = 0x0F; i |= PINA; DDRA = 0x00;/*输出复位*/ PORTA = 0xFF; switch (i) {/*将按键码转换成键值*/ case 0x00: return 0x00; case 0xEE: return '1'; case 0xDE: return '2'; case 0xBE: return '3'; case 0x7E: return 'A'; case 0xED: return '4'; case 0xDD: return '5'; case 0xBD: return '6'; case 0x7D: return 'B'; case 0xEB: return '7'; case 0xDB: return '8'; case 0xBB: return '9'; case 0x7B: return 'C'; case 0xE7: re