通過兩個PIC引腳驅(qū)動六只LED燈
之前的一個設(shè)計(jì)實(shí)例(參考文獻(xiàn)1)展示了如何使用兩條I/O口線驅(qū)動四只LED燈。其他幾個設(shè)計(jì)實(shí)例(參考文獻(xiàn)2~5)則使用了附加邏輯,導(dǎo)致成本和尺寸有所增加。
圖1:測試選擇PIC10F200,固件以兩個獨(dú)立、簡單的匯編程序源代碼的方式提供。
注意:VDD必須在2V和3V之間。例如,如果LED2點(diǎn)亮(表1),那么在VDD過高的情況下,LED4和LED6也將被點(diǎn)亮??梢赃x擇使用任何通用低功率晶體管,但如想使所有LED保持同樣的亮度,則需選擇低VCE(sat)的晶體管。
表1:LED驅(qū)動邏輯表。避免(0,0)和(1,1)。
測試選擇了PIC10F200,因?yàn)镻IC10F200是最小、最簡單的六引腳MCU。出于示范目的,固件以兩個獨(dú)立、簡單的匯編程序源代碼的方式提供。
dotmode1.asm為自由運(yùn)行的點(diǎn)追蹤程序。
barmode1.asm顯示了增量柱狀圖。
(通過選擇“另存為”下載DI5459PIC2IO6LEDr2.zip.pdf,并刪除虛設(shè)的“.pdf”。PIC10F322源代碼也包含在其中。)
注意:在任何一種模式下,每次僅采用最小電流(高亮度LED低至2mA)及周期性短脈沖突發(fā)模式驅(qū)動一只LED燈。匯編程序源代碼做了完整注釋,優(yōu)化了長度,不超過256個字,讓用戶可選擇其他任何引腳有限的PIC。
參考文獻(xiàn):
[1]Decoder lights the way (EDN | February 19, 2009)
[2] Microcontroller drives logarithmic/linear dot/bar 20-LEDdisplay (EDN | January 18, 2007)
[3]Squeeze extra outputs from a pin-limited microcontroller (EDN | August 4, 2005)
[4]Microcontroller’s singleI/O-port line drives a bar-graph display (EDN | July 6, 2006)
[5] Drive 12 LEDs with one I/O line (EDN | February 4, 2010)
評論