要不用完32個引腳,我想過38解碼器,但是那個樣子每8個燈只能一個燈一個燈的亮,想實現像32個引腳那樣可以每8個隨意控制,而且我是新手,剛接觸51,所以有一些晶元功能也不清楚,還想過四個腳控制輸入,8個腳控制輸出,但也不行(▼皿▼#)想問問大佬們有沒有什麼好的思路,謝謝了(^~^)


這個一般要上驅動IC,加上硬體支持了。

我以前搞過,做過相關項目,TM1650了解一下,只需要2個引腳,而且很便宜,當時是2-4毛錢一個,用IIC驅動的,每個燈都可以控制亮滅(on-off),但是不能每個燈都控制亮度(light)。以下是接線圖

如果需要控制每個燈的亮度的話,就複雜很多。TLC5971了解一下。這是TI的晶元,很貴,十幾塊錢吧。用的也是2個引腳,可以級聯。每個IC控制12個LED,32個LED需要3個IC。用的是類IIC程序。原理圖如下:

另外,我的github上傳了好多程序和源碼,歡迎下載!

mmdanielmm/Project-update-weekly?

github.com圖標

瀉藥

不加解碼器或者鎖存器的話,可以用12個引腳+4個三極體(當然還有必要的電阻)實現,如果你的單片機有大電流io口的話,4個三極體也可以省了,12個引腳可以組成4x8的矩陣電路,剛好可以控制32個LED,想多幾個,還可以組成5x7,6x6的矩陣,就可以控制36個LED了,而且程序上驅動起來也更簡單,不用去查解碼器/鎖存器的使用方法!

你還要4個按鍵輸入,這12個引腳還可以利用起來,分時復用,程序上可能會複雜一點點,但是絕對可以實現,還能幫助你理解定時器和分時掃描的使用方法!


可以考慮採用移位寄存器來控制。


矩陣掃描、HC595移位寄存器等等都可以……看得懂數據手冊寫得了驅動,很多東西都可以實現

參照數碼管


參考4*4矩陣鍵盤,可以激發你的思路


應該用解碼器吧,數電知識


用max7219串聯,理論上想接多少接多少


推薦閱讀:
相关文章