驅(qū)動12個LED的3端口微控制器
圖1中的電路基于以前出版的設(shè)計實例(參考文獻1),僅用3條I/O線路來驅(qū)動12個LED。在本應(yīng)用中,電路充當電動車引擎的轉(zhuǎn)速計,并在一組排列成直線或圓弧形LED上顯示引擎相對速度。三對反向并聯(lián)LED(D2和D3、D4和D5、D6和D7)通過限流電阻器R5、R6、R7從IC1的端口獲得驅(qū)動電流。每組三個的兩組LED(D8、D9、D10以及D11、D12、D13)在IC1的端口和兩個分壓器之間(供應(yīng)參考電壓VREF1和VREF2)連接。如果改變電阻器R5、R6、R7的值,就能調(diào)節(jié)中間6個LED的亮度,而R1、R2、R4則控制其它6個LED 的亮度。一般而言,該電路能用主機微處理器的N 條I/O線路來驅(qū)動多達N(N-1)+2N個LED,或比最初的設(shè)計實例中的電路能驅(qū)動的LED多2N個。
本文引用地址:http://butianyuan.cn/article/201706/348591.htm 該電路使用了Microchip公司的PIC10F200微控制器,即IC1,這是一種小尺寸廉價的6引腳器件,只提供3根I/O引腳和1根單純輸入引腳。I/O引腳GP0、GP1、GP2驅(qū)動由 12 個 LED 組成的條形圖,包括多路復(fù)用模式驅(qū)動的4個黃色LED、4 個綠色LED、4個紅色LED( 圖2)。
微處理器的單純輸入引腳GP3用于輸入來自點火線圈初級端子的脈沖。電阻器R3和二極管D1提供輸入信號調(diào)節(jié),而軟件反跳例程則消除來自脈沖的振鈴效應(yīng)。由于R3的額定值高達390 kΩ,因此該電路能承受高壓輸入尖峰,并防止PIC10F200閉鎖。端口GP3充當處理器的編程端口,之所以不同于處理器的其它端口,是因為它包含內(nèi)部保護二極管。這只20mA二極管防止GP3受到負向瞬間電壓的損害。該電路工作可靠,但可以添加外部保護二極管來加強針對瞬態(tài)引發(fā)閉鎖的保護。把二極管的陽極接地,陰極連到IC1的GP3引腳。
可以配置條形圖按接通的LED數(shù)量(條狀)來表示引擎速度,或只照亮一兩只LED(點狀)來表示。圖2中的顏色方案用黃色LED來表示速度太低、綠色LED表示標稱速度、紅色LED表示速度過快。圖3為表示指示軟件的流程圖。處理器的內(nèi)部時鐘驅(qū)動Timer0每512ms溢出一次,這表示一個時隙,即一個多路傳送階段。在8個時隙當中,其中1個驅(qū)動3只上方的LED,第二個則驅(qū)動3只下方的LED。為了簡化軟件,最后6個時隙逐個驅(qū)動中間的LED。在主循環(huán)開始時,微處理器計算時鐘脈沖數(shù)量,并等待Timer0溢出。發(fā)生溢出后,輸出端口按照分配的時隙驅(qū)動LED。在經(jīng)過8個時隙后,處理器把端口設(shè)定到相同狀態(tài)。在200個時隙后,處理器計算進入測速儀脈沖數(shù)量,并按照進入脈沖數(shù)量(即按照輸入頻率)設(shè)置LED圖案。
轉(zhuǎn)速計可表示高達120 轉(zhuǎn)/秒的轉(zhuǎn)速。伴隨的軟件列表包含C語言文件 (led12.c.pdf) 和匯編語言文件 (led12.asm.pdf)。ZIP源文件包含完整的 MPLab 項。圖4顯示了波形,是由數(shù)字示波器在GP0、GP1、GP2 端口捕獲的。
參考文獻
1.Benabadji, Noureddine, PIC microprocessor drives 20-LED dot- or bar-graph display, EDN, Sept 1, 2006, pg 71, www.edn.com/article/CA6363904.
評論