标题: MCU如何让两个io口控制三个LED显示呢? [打印本页]

作者: 秃头小队长    时间: 2022-9-13 09:32
标题: MCU如何让两个io口控制三个LED显示呢?

我的原理图是这样的,想用两个io控制三个LED显示,但是LED口输入状态时,并没有办法让两个LED同时熄灭,反而同时点亮,实际加大了LED后面电阻也很难熄灭LED

作者: mirenhuan    时间: 2022-9-13 21:52
看图可以理解为1个IO口控制两颗LED灯,听说IO口配置为高阻状态两颗灯都不亮,不过我也还没试过。
作者: 188610329    时间: 2022-9-13 22:30
大概这个样子:



IOA = 0; IOB = 1;  LED1 亮
IOA = 1; IOB = 0;  LED2 亮
IOA = 1; IOB = 1;  LED3 亮
IOA = 0; IOB = 0;  全灭

IOA,IOB 需要限流电阻,我这里就不画了

作者: hhdsdy    时间: 2022-9-13 23:27
你这应该就是D2的点亮电压加D3的点亮电压低于VDD的电压,所以无论I/O口是什么状态,至少会有一个LED点亮的,如果是高阻输出,则两个LED都亮。
作者: 秃头小队长    时间: 2022-9-14 09:16
hhdsdy 发表于 2022-9-13 23:27
你这应该就是D2的点亮电压加D3的点亮电压低于VDD的电压,所以无论I/O口是什么状态,至少会有一个LED点亮的 ...

是的,请问有什么办法可以让高阻状态下,两个都不亮呢?
作者: 秃头小队长    时间: 2022-9-14 09:16
hhdsdy 发表于 2022-9-13 23:27
你这应该就是D2的点亮电压加D3的点亮电压低于VDD的电压,所以无论I/O口是什么状态,至少会有一个LED点亮的 ...

是的,请问有什么办法可以让高阻状态下,两个都不亮呢?
作者: hhh402    时间: 2022-9-14 10:41
楼主想省IO但是方向错了,应该3个IO控制3个LED,按键KEY与一个控制LED的IO共用。按键与LED共用IO有现成方案,很简单不需要增加元件。
作者: mtdzok    时间: 2022-9-14 10:51
秃头小队长 发表于 2022-9-14 09:16
是的,请问有什么办法可以让高阻状态下,两个都不亮呢?

关键是两个LED压降相加要大于5V,只要有一个截止两个都不亮,可以采用压降大的LED,白、蓝、翠绿都大约是3V左右,如果压降不够可以串联二极管。另外可以充分利用其他IO口复用方案,比如KEY口。
作者: hhh402    时间: 2022-9-14 11:09
理论上n个IO可以控制n*(n-1)个LED,2个IO可以控制2*1=2个LED,3个IO可以控制3*2=6个LED,6个IO可以控制6*5=30个LED,下面是一个6脚3位数码管,6个IO可以控制24个LED。

51hei.png (129.85 KB, 下载次数: 102)

51hei.png

1.jpg (19.1 KB, 下载次数: 105)

1.jpg

作者: 秃头小队长    时间: 2022-9-14 11:17
mirenhuan 发表于 2022-9-13 21:52
看图可以理解为1个IO口控制两颗LED灯,听说IO口配置为高阻状态两颗灯都不亮,不过我也还没试过。

高阻状态下是两个都亮的
作者: lhj422322    时间: 2022-9-14 19:58
可以参考一下这个

51hei图片20220914195602.png (8.95 KB, 下载次数: 98)

51hei图片20220914195602.png

作者: yyzf998    时间: 2022-9-14 21:17
软件上实现就行了,不需要浪费那么多的元器件!





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1