本帖最后由 跟屁虫 于 2015-10-12 20:45 编辑
- #define KEY P1 //键盘所连接的I/O接口组定义
-
- *********************************************************************************************
- 函数名:8个独立式键盘驱动程序
- 调 用:? = Key ();
- 参 数:无
- 返回值:unsigned char 键值0~8
- 结 果:有键按下时返回值为键值1~8,无键按下时返回值为0
- 备 注:在主函数中不断调用
- **********************************************************************************************/
- unsigned char Key ( ){ //8个独立键盘处理程序
- unsigned char a,b;
- KEY = 0xff; //设定键盘初始电平状态
- if (KEY != 0xff){ //读取键盘状态是否改变
- Delay (20); //延时20ms去抖动
- if (KEY != 0xff){ //重新读取
- a = KEY; //寄存状态值到a
- }
- switch(a){ //键盘状态查表
- case 0xfe: b = 1; break;
- case 0xfd: b = 2; break;
- case 0xfb: b = 3; break;
- case 0xf7: b = 4; break;
- case 0xef: b = 5; break;
- case 0xdf: b = 6; break;
- case 0xbf: b = 7; break;
- case 0x7f: b = 8; break;
- default: b = 0 ; break;
- }
- }
- return (b); //将b中的键值代号送入函数返回值
- }
|