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