欢迎来到天天文库
浏览记录
ID:55647826
大小:24.50 KB
页数:2页
时间:2020-05-22
《键盘扫描函 读取当前键盘的状态 有按键按下返回相应按键.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*键盘扫描函数读取当前键盘的状态有按键按下返回相应按键值无按键按下返回"0x00"*/unsignedcharkey_read(void){unsignedchari;DDRA=0x00;/*获取列地址*/PORTA=0x0F;DDRA=0xF0;i=PINA;DDRA=0x00;/*获取行地址*/PORTA=0xF0;DDRA=0x0F;i
2、=PINA;DDRA=0x00;/*输出复位*/PORTA=0xFF;switch(i){/*将按键码转换成键值*/case0x00:return0x00;case0xE
3、E:return'1';case0xDE:return'2';case0xBE:return'3';case0x7E:return'A';case0xED:return'4';case0xDD:return'5';case0xBD:return'6';case0x7D:return'B';case0xEB:return'7';case0xDB:return'8';case0xBB:return'9';case0x7B:return'C';case0xE7:return'*';case0xD7:return'0';
4、case0xB7:return'#';case0x77:return'D';default:return0x00;}}/*按键获取函数获取按键信号,其中包含有状态记录及按键去颤抖。有正确按键按下返回相应按键值无正确按键按下返回"0x00"*/unsignedcharget_key(void){unsignedchari;staticunsignedcharj;/*按键记录*/i=key_read();if(i==0x00){/*无有效按键按下*/j=0x00;/*清除按键记录*/return0x00;/*程序退出
5、*/}if(j==0x00){/*为新按键*/j=i;/*保存本次采样结果*/delay_ms(10);/*去按键颤抖*/i=key_read();if(i==j){returni;}}return0x00;}
此文档下载收益归作者所有