读按键求助

[复制链接]
2176|1
 楼主| welson 发表于 2008-9-24 16:41 | 显示全部楼层 |阅读模式
刚学单片机现有问题需请教大虾帮解决下&nbsp;&nbsp;&nbsp;谁有思路或C程序例子<br /><br />按键共16键,采用2块74HC165扩展,现解读单个按键没问题,但是两个以上按键置1时,就需要优先判断,现不知如何解决&nbsp;请大家帮帮忙&nbsp;&nbsp;&nbsp;谢谢!<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如现收到数据为:0&nbsp;1&nbsp;1&nbsp;0&nbsp;&nbsp;1&nbsp;0&nbsp;1&nbsp;0&nbsp;---&gt0X6A&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需译为:0&nbsp;0&nbsp;0&nbsp;0&nbsp;&nbsp;0&nbsp;0&nbsp;1&nbsp;0&nbsp;---&gt0X02&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;收到数据为:0&nbsp;1&nbsp;1&nbsp;0&nbsp;&nbsp;1&nbsp;0&nbsp;1&nbsp;1&nbsp;---&gt0X6B<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需译为:0&nbsp;0&nbsp;0&nbsp;0&nbsp;&nbsp;0&nbsp;0&nbsp;0&nbsp;1&nbsp;---&gt0X01<br />其他依次类推&nbsp;&nbsp;
linjing 发表于 2008-9-24 20:41 | 显示全部楼层

这样行吗?

k&nbsp;=&nbsp;get74165();<br />t&nbsp;=&nbsp;0x0001U;<br />for&nbsp;(&nbsp;i=1;&nbsp;i&lt=16;&nbsp;++i&nbsp;){<br />&nbsp;&nbsp;if&nbsp;(&nbsp;t&nbsp;&&nbsp;k&nbsp;){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;i;&nbsp;&nbsp;&nbsp;//&nbsp;第1个键返回1,&nbsp;第16&nbsp;个键返回&nbsp;16<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;或者&nbsp;return&nbsp;t;&nbsp;第1&nbsp;个键返回0x0001U,&nbsp;第16个键返回0x8000U<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;t&nbsp;&lt&lt=&nbsp;1;<br />}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

204

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部