![]() |
Bikho 發表于 2024-9-26 21:14 周期0: 全部引腳輸出高阻 引腳1輸出高,其他引腳按需求輸出低 周期1: 全部引腳輸出高阻 引腳2輸出高,其他引腳按需求輸出低 周期2: 全部引腳輸出高阻 引腳3輸出高,其他引腳按需求輸出低 周期3: 。。。 回到周期0 每個周期維持1ms |
Bikho 發表于 2024-9-26 21:14 switch() { case0: break; ....... },查理復用,掃描,這個應該用不到6K,我用過三位數碼管的,2K都不到 |
想練習技術,用查理復用方式,理論上10個引腳可驅動10*9=90個LED; 想簡單從事,找端口擴展或LED驅動芯片或混用,可節省引腳,可驅動無數LED; 想玩得花些,可以上述方法疊加,并使用可編程的LED,LED數量和顯現的花式都不限。 |
采用查理復用方式,理論上10個引腳可以驅動90個LED,符合你的要求。 |
我經常用,用過好多,省IO,N個IO可以驅動N*(N-1)個LED,9腳可以驅動72個LED,或9個帶小數點的8。 驅動很簡單,共陰或共陽均可,看排列,那個方便用哪個。 驅動原則是:一個腳為COM,其余腳為SEG,驅動的COM就輸出高(共陽)或低(共陰),驅動的SEG就輸出低(共陽)或高(共陰),不驅動的SEG為高阻。 |
zhuls 發表于 2024-9-26 17:36 就是啊就算復用能夠實現。軟件開銷又大。驅動還要三極管,二極管,電阻。七十幾個LED。這小元件也就是七十幾個。真不如上一個LED驅動芯片算了。省事又省錢。 |
代碼怎么寫才會是最簡潔的呢請問 |
zhuls 發表于 2024-9-26 17:36 請問有沒有什么寫法可以使得代碼量在6k以內呢 |
IdeaMing 發表于 2024-9-26 16:44 代碼方面怎么寫是最高效和節約單片機內存的呢請問 |
10個引腳可驅動90個燈,但軟件開銷不是一般的小,小體量的單片機用的會很難受,不如用一個tm16xx,控制簡單,IO只要2/3個,自帶掃描,亮度可調,如果舍不得那幾毛錢,那就沒得說了~~ 人的視覺殘留有一定的時間,所以單個IO時間長了顯示可能會閃,時間短了亮度可能不夠,麻煩。。。。 |
巧了,剛好用過類似的兩位數碼管 這個確實比較麻煩 看圖應該是有四個數碼管 DIG1 ~ DIG4 顯示DIG1的時候所有端口先配置成輸入狀態以免個別燈亮, 然后比如要顯示1,對應的B、C段就要設置3,4輸出高電平,然后把1設置為輸出低電平。 這樣數碼管DIG1就亮了B、C段顯示1, 同樣的步驟處理下面的數碼管和其他顯示點。 然后,合理規劃每組顯示的持續時間,保證刷新速度。 |
用專門的LED驅動芯片(如TM1629D,最多可以驅動96個LED)。單片機只需3個IO口就可以分別控制啦。 |
查理復用 |