本规划实例展现了仅运用两条MCU的I/O口线驱动六只LED灯的新办法,这种办法特别适用于任何引脚有限的芯片。这种办法运用了两条I/O口线以及一对互补双极型晶体管。经过多路复用的办法可点亮一只以上的LED灯。
之前的一个规划实例(参考文献1)展现了怎么运用两条I/O口线驱动四只LED灯。其他几个规划实例(参考文献2~5)则运用了附加逻辑,导致本钱和尺度有所增加。
图1:测验挑选PIC10F200,固件以两个独立、简略的汇编程序源代码的方法供给。
留意:VDD必须在2V和3V之间。例如,假如LED2点亮(表1),那么在VDD过高的情况下,LED4和LED6也将被点亮。能够挑选运用任何通用低功率晶体管,但如想使一切LED坚持相同的亮度,则需挑选低VCE(sat)的晶体管。
表1:LED驱动逻辑表。防止(0,0)和(1,1)。
测验挑选了PIC10F200,由于PIC10F200是最小、最简略的六引脚MCU。出于演示意图,固件以两个独立、简略的汇编程序源代码的方法供给。
dotmode1.asm为自在运转的点追寻程序。
barmode1.asm显现了增量柱状图。
(经过挑选“另存为”下载DI5459PIC2IO6LEDr2.zip.pdf,并删去虚设的“.pdf”。PIC10F322源代码也包括在其间。)
留意:在任何一种形式下,每次仅选用最小电流(高亮度LED低至2mA)及周期性短脉冲突发形式驱动一只LED灯。汇编程序源代码做了完好注释,优化了长度,不超越256个字,让用户可挑选其他任何引脚有限的P%&&&&&%。
参考文献:
[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)