打印

读按键求助

[复制链接]
1625|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
welson|  楼主 | 2008-9-24 16:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚学单片机现有问题需请教大虾帮解决下   谁有思路或C程序例子

按键共16键,采用2块74HC165扩展,现解读单个按键没问题,但是两个以上按键置1时,就需要优先判断,现不知如何解决 请大家帮帮忙   谢谢!
                 
                  如现收到数据为:0 1 1 0  1 0 1 0 --->0X6A  
                         
                          需译为:0 0 0 0  0 0 1 0 --->0X02  
                         
                      收到数据为:0 1 1 0  1 0 1 1 --->0X6B
                         
                          需译为:0 0 0 0  0 0 0 1 --->0X01
其他依次类推  

相关帖子

沙发
linjing| | 2008-9-24 20:41 | 只看该作者

这样行吗?

k = get74165();
t = 0x0001U;
for ( i=1; i<=16; ++i ){
  if ( t & k ){
      return i;   // 第1个键返回1, 第16 个键返回 16
     // 或者 return t; 第1 个键返回0x0001U, 第16个键返回0x8000U
  }
  t <<= 1;
}

使用特权

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

本版积分规则

36

主题

204

帖子

0

粉丝