[求解]如何用一个IO口控制三个外围设备?

[复制链接]
3187|5
 楼主| phenixfish 发表于 2008-11-11 18:37 | 显示全部楼层 |阅读模式
只有一个GPIO口了,还有三个外围部件,两个按钮(输入),一个LED(输出)。估计不能用一根线来搞定了,能否用一个最简单的逻辑器件来控制这三个东西呢?按钮只在开始时候起作用,决定用户的起始状态,LED在之后起作用,用于程序运行状态的显示。<br /><br />高手们有解决方案么?<br />
ljm810010 发表于 2008-11-11 19:14 | 显示全部楼层

不用这样吧

这个IO就接LED,按键一般都能与其它IO复用的,只要你肯挤
chunyang 发表于 2008-11-11 20:20 | 显示全部楼层

可以是可以,但最好整体权衡,除非迫不得已

用RC时间常数来实现,两个按钮对应不同的充电时间即可分辨,LED做灌电流源同时也是按钮动作指示,操作恰好一次性有效。两个IO可以实现反复操作,多引入的IO也有可能实现复用,看电路结构了。
ljm810010 发表于 2008-11-12 13:28 | 显示全部楼层

实在要用,可以这样做

ljm810010 发表于 2008-11-12 21:26 | 显示全部楼层

说明一下1个IO带3个器件方法

LED用两个470电阻分压供电,程序每20MS执行一次下面操作:<br />IO输出高电平1MS,然后切换为高阻抗输入,马上检测IO状态,若没键按下,则为0,若有键按下,为1,再过1MS,小电容放电完成,此时IO检测为0,说明接小电容的按键按下,仍为1,说明接大电容的键按下。以上时间LED暂时不亮。然后剩下19ms让IO切换为输出,按需要输出高/低电平让LED亮或不亮。
ejack 发表于 2008-11-13 07:51 | 显示全部楼层

这些都是实在迫不得已的办法。

如果设计还没有定型,最好还是调整思路,重新分配IO吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

79

主题

86

帖子

0

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