打印

谁写过1629读Key的程序有小疑问

[复制链接]
1338|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aimie|  楼主 | 2013-8-24 18:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
write(0x42);//送读按键命令(42H),
   for(i=0;i<5;i++)
   {
     key[i]=read();        //读4BIT按键数据,
   }


这里 读到的4个 Key[i]的只  分别是多少表示K 几  有没有对应的表格,,比如K1按下 key[]读出来的值是多少  k32按下  读出来的值又是多少

相关帖子

沙发
aimie|  楼主 | 2013-8-25 10:39 | 只看该作者
继续更新。。。。。

无标题2.png (78.25 KB )

无标题2.png

无标题.png (83.89 KB )

无标题.png

使用特权

评论回复
板凳
ZG11211| | 2013-8-25 11:38 | 只看该作者
本帖最后由 ZG11211 于 2013-8-25 11:49 编辑

  for(i=0;i<5;i++)
改成  for(i=0;i<4;i++)//最多只能读取4个字节
将读到的数据取来识别,每个字节返回的数据对应的该字节和KS位的按键状态,按下的返回1.没按下的为0.将硬件连接的实际按键位放到判断里即可。
switch(KEY[0]){
case 0x01: ....//如上图的KS1和K0按键按下,返回的值即为0X01;
case 0x02: ....//如上图的KS2和K0按键按下,返回的值即为0X02;
....
}
switch(KEY[1]){
case 0x01: ....//如上图的KS1和K1按键按下,返回的值即为0X01;
case 0x02: ....//如上图的KS2和K1按键按下,返回的值即为0X02;
....
}
switch(KEY[2]){
case 0x01: ....//如上图的KS1和K2按键按下,返回的值即为0X01;
case:
....
}
switch(KEY[3]){
case:
case:
....
}
由于是分成纵向4次扫描按键,所以组合键只能针对当次扫描的那一组按键,比如上图的横向的8个按键。

使用特权

评论回复
地板
aimie|  楼主 | 2013-8-25 13:55 | 只看该作者
ZG11211 发表于 2013-8-25 11:38
for(i=0;i

非常 感谢    问题解决

以后看到类似的说明    就明白了

使用特权

评论回复
5
ayb_ice| | 2013-8-26 08:16 | 只看该作者
最简单有效的方法:每个按键测试一下即可

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

123

帖子

2

粉丝