电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

4X4键盘扫描程序

4X4键盘扫描程序_第1页
1/6
4X4键盘扫描程序_第2页
2/6
4X4键盘扫描程序_第3页
3/6
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: 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; } 我有两个问题关于这个程序请教: 一,无按键按下返回"0x00",这个"0x00"是自己规定的还是什么来头? 二,"case 0xEE: return '1';",返回'1'是键值?如果我要把按键的值用数码管显示,那么这个返回值应该在主函数里面怎么处理? 三,"return i;",返回值到哪里? 回复:(du du beibei)我有两个问题关于这个程序请教:一... 1、无按键按下返回"0x00",这是自己定义的。就是为了表明现在没有按键按下。 2、case 0xEE: return '1';这个地方我可能没说清楚,返回的是ASCII 码,...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

4X4键盘扫描程序

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部