keypad 键盘扫描,并返回按键值
来源:互联网 发布:geo芯片数据转换器 编辑:程序博客网 时间:2024/05/05 21:48
/*
标题:小键盘的输入函数
版本:1.0
Target:89S51
函数描述: char gotkey(void)
从4ⅹ4小键盘输入数据,返回0 15
小键盘的连接方式:
1 P20 -----0----1----2----3
| | | |
2 P21 -----4----5----6----7
| | | |
3 P22 -----8----9----10---11
| | | |
4 P23 -----12---13---14---15
| | | |
5 P24 ---- | | | |
| | | |
6 P25 ---------- | |
| |
7 P26 --------------- |
|
8 P27 --------------------
*/
#include <REGX51.H>
code char key_code[]={0x7E,0XBE,0XBD,0XBB,0XDE,0XDD,0XDB,0XEE,
0XED,0XEB,0X7D,0X7B,0XE7,0XD7,0XB7,0X77};
code ksp[4]={0x7F,0xBF,0xDF,0xEF};
void delay (void) { /* 时间延迟函数 */
unsigned char i,j;
for (i=0;i<5;i++)
for(j=0;j<255;j++)
;
}
char keypad_scan()
{
char key,i;
P2=0xF0;
while (P2!=0xF0); //这句想不明白什么作用!? W 应该是要满足条件情况下,重复执行上面一句P2=0xF0;
do{
for(i=0;i<=3;i++)
{
P2=ksp[i];
if(P2!=ksp[i])
{
delay();
key=P2;
if(key!=ksp[i])
{
return(key);
}
}
}
} while(1);
}
// 检查是否有按键按下
char gotkey()
{
char temp,i;
temp=keypad_scan();
for (i=0;i<=15;i++)
{
if(temp==key_code[i]) return(i);
}
return(16); //1.这句不知道为什么要放括号外??
//W 我想可能是因为键盘大多时间应该是不被按下的,没按下的情况返回16.
//2.还有,有按键被按下,返回相应的键值后,会不会再执行这句呢?
//会的话不是多输出一个16呢?
//查资料,得知,return是返回函数值并退出函数
}
- keypad 键盘扫描,并返回按键值
- 跨平台的检测键盘是否有键按下并返回按键的值
- keypad 按键响应流程解析
- 用扫描法读出4×4矩阵键盘,在数码管显示按键值
- 获取键盘按键值
- 单片机 电子时钟 (4*4键盘扫描)按键 源代码。
- 按键扫描
- 按键扫描
- 按键扫描
- bioskey 捕获键盘按键值
- 查询键盘按键的值
- 键盘的扫描码虚拟码概念 常见Windows键盘按键虚拟码
- 键盘的扫描码虚拟码概念 常见Windows键盘按键虚拟码
- MTK keypad调试,扩张键盘IC AW9523
- Android 重温--键盘事件--按两次按键返回例子
- 【按键】短按,长按,按键释放,三种模式的按键扫描程序(软件消抖动)--- 矩阵键盘
- 按键及矩阵键盘程序------/* 自己实验确认并总结 */
- 原生JavaScript获取键盘码并判断按键
- 20090914-20090920运动情况
- n皇后实现代码
- 《杀戮地带2》中的延迟渲染
- 跑马灯
- 新来的,请多关照。
- keypad 键盘扫描,并返回按键值
- ASP.net错误处理(错误跳转页 webconfig)
- DDoS防御的八大方法详解
- 中文传值乱码问题
- 4×4小键盘输入
- 关于TimeSpan相关
- 在面试时遇到不了解的问题,如何顺畅的与面试人员交流?
- 按钮检测(改进版)
- 编故事