|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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个按键。具体思路,请搜索节约单片机端口资源的键盘电路。
上图电路,利用3个IO,扫描16个按键。
以下是按键程序,可参考。
- uchar getkey(void)
- {
- uchar x
- P1=P1|0x07; /*I/O1至I/O3写“1”*/
- xP1&0x07; /*读入I/O1至I/O3并屏蔽其它位*/
- if(x= =10)
- {
- P1=P1|0x07;
- P1=P1&0xfd; /*I/O2写“0”*/
- x=P1&0x07;
- x=(x+1)/2+10; /*屏蔽I/O2并转换K10至K12的键值*/
- if(x = =13)
- {
- P1=P1|0x07;
- P1=P1&0xfb; /*I/O3写“0”*/
- x=P1&0x07;
- x=x+13; /*屏蔽I/O3并转换K13至K15的键值*/
- }
- }
- }
- return x;
- }
复制代码
理论上,N个IO,可以组合成的按键数:N = (2n-1)+(2n-1)n。
虽然我没用过,不过已经有人实现了,原因是我从来不需要这么多按键,我没有一个项目是利用这么多按键的。
城堡--北京:
我现在做这个需要的是稳定性。
南山--河北:
之前做过4096个按键扫描的,用8个74hc165,8个74hc595,6个io口搞定呵呵,其实不算是按键 ,是扫描64个线链接关系的,组合起来和64*64的矩阵键盘一个道理.
城堡--北京:
谢谢.
|
|