独闷闷网

 找回密码
 立即注册
搜索
查看: 1535|回复: 0
收起左侧

[原创] 弹跳摸高器的工作原理是什么?如果要256个按键,IO口不够有哪些扩展IO口的办法?已解答.

[复制链接]
发表于 2015-2-10 00:00:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
城堡--北京:
问一下,io口要扩展,我现在要做16*16的矩阵扫描键盘,有啥好的扩展芯片嘛?

Zed-青岛:
74HC595.

坚鸿-深圳:
74hc165。3个IO口驱动两片74hc165联级,就可以扫描16个按键了。74hc595是扩展输出的,74hc165是扩展输入的.

城堡--北京:
我是扫描256个按键.我现在要做个弹跳摸高器,检测精度是1cm。现在手上的样品测量高度是120cm,它是用11*11的矩阵键盘检测的。我现在要做测量240cm的。

脑残橙廊坊:
这和键盘有啥关系?

城堡--北京:
标准的弹跳摸高器,上边的触摸板类似按键似的,你摸上去其实是按下一个键,根据触发的按键就知道你触摸的高度了。所以弹跳摸高器其实里边就是一个大矩阵键盘扫描。

坚鸿-深圳:
用stc15系列的单片机,这个系列的单片机特点就是IO口多,62个IO口都有,48个IO口也有,而且非常便宜,6元左右一个。可能用一个单片机就够了。如果系统任务太多,跑步过来就用两个单片机,一个单片机专门用来扫描按键,然后跟另外一个单片机通讯。


Inc-东莞:
刚刚搜查了一下资料,只需要6~7个IO即可,6个IO可以扫描249个按键,7个IO可以扫描568个按键。具体思路,请搜索节约单片机端口资源的键盘电路。
按键.png
上图电路,利用3个IO,扫描16个按键。
以下是按键程序,可参考。
  1. uchar getkey(void)

  2. {

  3. uchar x

  4. P1=P1|0x07; /*I/O1至I/O3写“1”*/

  5. xP1&0x07; /*读入I/O1至I/O3并屏蔽其它位*/

  6. if(x= =10)

  7. {

  8. P1=P1|0x07;

  9. P1=P1&0xfd; /*I/O2写“0”*/

  10. x=P1&0x07;

  11. x=(x+1)/2+10; /*屏蔽I/O2并转换K10至K12的键值*/

  12. if(x = =13)

  13. {

  14. P1=P1|0x07;

  15. P1=P1&0xfb; /*I/O3写“0”*/

  16. x=P1&0x07;

  17. x=x+13; /*屏蔽I/O3并转换K13至K15的键值*/

  18. }

  19. }

  20. }

  21. return x;

  22. }
复制代码

理论上,N个IO,可以组合成的按键数:N = (2n-1)+(2n-1)n。
虽然我没用过,不过已经有人实现了,原因是我从来不需要这么多按键,我没有一个项目是利用这么多按键的。

城堡--北京:
我现在做这个需要的是稳定性。

南山--河北:
之前做过4096个按键扫描的,用8个74hc165,8个74hc595,6个io口搞定呵呵,其实不算是按键 ,是扫描64个线链接关系的,组合起来和64*64的矩阵键盘一个道理.


城堡--北京:
谢谢.


乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2020-11-30 06:53 , Processed in 0.158447 second(s), 21 queries .

快速回复 返回顶部 返回列表