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