4X4键盘扫描程序
时间:11-10
来源:互联网
点击:
4X4键盘扫描程序,采用查表方式,适用于AVR单片机。
此处为4X4键盘软件部分,硬件部分avr.com/news/2008-01/1945.htm&rn=252847&v=1&ref=http%3A//www.picavr.com/news/c37/defaultp7.htm&province=%u5E7F%u4E1C&city=%u5E7F%u5DDE" qs_is_on_div="" rel="nofollow" target="_blank">设计请参照:
此程序对应的键盘电路为:
/*键盘扫描函数读取当前键盘的状态有按键按下返回相应按键值无按键按下返回"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:return *;case 0xD7:return 0;case 0xB7:return #;case 0x77:return D;default :return 0x00;} }
/*按键获取函数获取按键信号,其中包含有状态记录及按键去颤抖。有正确按键按下返回相应按键值无正确按键按下返回"0x00"*/unsigned char get_key(void){unsigned char i;static unsigned char j;/*按键记录*/
i = key_read();if (i == 0x00){/*无有效按键按下*/j = 0x00;/*清除按键记录*/return 0x00;/*程序退出*/}if (j == 0x00) {/*为新按键*/j = i;/*保存本次采样结果*/delay_ms(10);/*去按键颤抖*/i = key_read();if(i == j) {return i;}}return 0x00;}
4X4键盘扫描程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)