打印

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

[复制链接]
2289|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
phenixfish|  楼主 | 2008-11-11 18:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
只有一个GPIO口了,还有三个外围部件,两个按钮(输入),一个LED(输出)。估计不能用一根线来搞定了,能否用一个最简单的逻辑器件来控制这三个东西呢?按钮只在开始时候起作用,决定用户的起始状态,LED在之后起作用,用于程序运行状态的显示。

高手们有解决方案么?

相关帖子

沙发
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 | 只看该作者

实在要用,可以这样做

使用特权

评论回复
5
ljm810010| | 2008-11-12 21:26 | 只看该作者

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

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

使用特权

评论回复
6
ejack| | 2008-11-13 07:51 | 只看该作者

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

如果设计还没有定型,最好还是调整思路,重新分配IO吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

79

帖子

0

粉丝