標(biāo)題: MCU如何讓兩個io口控制三個LED顯示呢? [打印本頁]

作者: 禿頭小隊(duì)長    時間: 2022-9-13 09:32
標(biāo)題: MCU如何讓兩個io口控制三個LED顯示呢?

我的原理圖是這樣的,想用兩個io控制三個LED顯示,但是LED口輸入狀態(tài)時,并沒有辦法讓兩個LED同時熄滅,反而同時點(diǎn)亮,實(shí)際加大了LED后面電阻也很難熄滅LED

作者: mirenhuan    時間: 2022-9-13 21:52
看圖可以理解為1個IO口控制兩顆LED燈,聽說IO口配置為高阻狀態(tài)兩顆燈都不亮,不過我也還沒試過。
作者: 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
你這應(yīng)該就是D2的點(diǎn)亮電壓加D3的點(diǎn)亮電壓低于VDD的電壓,所以無論I/O口是什么狀態(tài),至少會有一個LED點(diǎn)亮的,如果是高阻輸出,則兩個LED都亮。
作者: 禿頭小隊(duì)長    時間: 2022-9-14 09:16
hhdsdy 發(fā)表于 2022-9-13 23:27
你這應(yīng)該就是D2的點(diǎn)亮電壓加D3的點(diǎn)亮電壓低于VDD的電壓,所以無論I/O口是什么狀態(tài),至少會有一個LED點(diǎn)亮的 ...

是的,請問有什么辦法可以讓高阻狀態(tài)下,兩個都不亮呢?
作者: 禿頭小隊(duì)長    時間: 2022-9-14 09:16
hhdsdy 發(fā)表于 2022-9-13 23:27
你這應(yīng)該就是D2的點(diǎn)亮電壓加D3的點(diǎn)亮電壓低于VDD的電壓,所以無論I/O口是什么狀態(tài),至少會有一個LED點(diǎn)亮的 ...

是的,請問有什么辦法可以讓高阻狀態(tài)下,兩個都不亮呢?
作者: hhh402    時間: 2022-9-14 10:41
樓主想省IO但是方向錯了,應(yīng)該3個IO控制3個LED,按鍵KEY與一個控制LED的IO共用。按鍵與LED共用IO有現(xiàn)成方案,很簡單不需要增加元件。
作者: mtdzok    時間: 2022-9-14 10:51
禿頭小隊(duì)長 發(fā)表于 2022-9-14 09:16
是的,請問有什么辦法可以讓高阻狀態(tài)下,兩個都不亮呢?

關(guān)鍵是兩個LED壓降相加要大于5V,只要有一個截止兩個都不亮,可以采用壓降大的LED,白、藍(lán)、翠綠都大約是3V左右,如果壓降不夠可以串聯(lián)二極管。另外可以充分利用其他IO口復(fù)用方案,比如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位數(shù)碼管,6個IO可以控制24個LED。

51hei.png (129.85 KB, 下載次數(shù): 102)

51hei.png

1.jpg (19.1 KB, 下載次數(shù): 105)

1.jpg

作者: 禿頭小隊(duì)長    時間: 2022-9-14 11:17
mirenhuan 發(fā)表于 2022-9-13 21:52
看圖可以理解為1個IO口控制兩顆LED燈,聽說IO口配置為高阻狀態(tài)兩顆燈都不亮,不過我也還沒試過。

高阻狀態(tài)下是兩個都亮的
作者: lhj422322    時間: 2022-9-14 19:58
可以參考一下這個

51hei圖片20220914195602.png (8.95 KB, 下載次數(shù): 98)

51hei圖片20220914195602.png

作者: yyzf998    時間: 2022-9-14 21:17
軟件上實(shí)現(xiàn)就行了,不需要浪費(fèi)那么多的元器件!





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1