独闷闷网
标题:
弹跳摸高器的工作原理是什么?如果要256个按键,IO口不够有哪些扩展IO口的办法?已解答.
[打印本页]
作者:
jianhong_wu
时间:
2015-2-10 00:00
标题:
弹跳摸高器的工作原理是什么?如果要256个按键,IO口不够有哪些扩展IO口的办法?已解答.
城堡--北京:
问一下,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
(10.21 KB, 下载次数: 119)
下载附件
保存到相册
2015-2-9 23:59 上传
上图电路,利用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的矩阵键盘一个道理.
城堡--北京:
谢谢.
欢迎光临 独闷闷网 (http://dumenmen.com/)
Powered by Discuz! X3.2