<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)系統(tǒng)中LED顯示驅(qū)動電路的研究

          單片機(jī)系統(tǒng)中LED顯示驅(qū)動電路的研究

          作者: 時間:2012-01-18 來源:網(wǎng)絡(luò) 收藏

          近年來,系統(tǒng)以其體積小、功能強(qiáng)、擴(kuò)展靈活、使用方便等優(yōu)點(diǎn),逐漸滲透到各行業(yè)的工程實際應(yīng)用中。而LED顯示電路就像系統(tǒng)的眼睛,實時地向人們傳遞著系統(tǒng)工作的各種狀態(tài)信息和處理結(jié)果。因此,高效、方便的LED電路是構(gòu)成完善的系統(tǒng)必不可少的元素。常用的LED電路有并行譯碼方式、串行—并行轉(zhuǎn)換方式、接口芯片方式等。下面分別對這幾種方式進(jìn)行討論,并給出顯示驅(qū)動芯片的應(yīng)用實例。

          并行譯碼顯示方式

          圖 1為單片機(jī)89C2051輸出顯示的一個例子,4位BCD碼數(shù)據(jù)從其P1.0~P1.3并行輸出,經(jīng)7段LED顯示驅(qū)動電路CD4511譯碼后驅(qū)動LED 顯示,這樣只需向P1.0~P1.3 寫入欲顯示數(shù)字的BCD碼,即可顯示出相應(yīng)的數(shù)字。這種方式雖然簡單,但占用單片機(jī)口線較多,資源利用率低,因此不常采用。

          圖1 并行譯碼顯示方式

          串行- 并行轉(zhuǎn)換方式

          圖 2所示為89C2051的串口驅(qū)動數(shù)碼管的電路,其中串口工作在方式0,74LS164是8位串入并出移位寄存器,負(fù)責(zé)將RXD輸出的串行數(shù)據(jù)轉(zhuǎn)換成并行信號。顯然,這種方式顯示同樣的位數(shù)使用單片機(jī)的口線大大減少,并且可以讓LED顯示BCD碼以外的字符(如A、B、C、D 等),但是,當(dāng)要顯示的位數(shù)較多時,仍需占用較多的口線,并且在許多情況下需要串口工作在UART方式,以便進(jìn)行串行通信,從而限制了這種方式的使用范圍。

          圖2 并行譯碼顯示方式

          LED顯示驅(qū)動芯片

          隨著單片機(jī)技術(shù)的發(fā)展,許多公司都推出了專用LED顯示驅(qū)動芯片,如Microchip公司的A Y0438、Maxim公司的等都是其中的典型代表。下面以為例說明LED顯示驅(qū)動芯片在單片機(jī)系統(tǒng)中的應(yīng)用。

          MAX7219簡介

          MAX7219 是Maxim公司推出的8位LED串行顯示驅(qū)動器,它采用3線串口傳送數(shù)據(jù),占用資源少且硬件簡單,只需一個外部電阻即可方便地調(diào)節(jié)LED的亮度;可靈活地選擇顯示器的個數(shù)( 1~8個, 級聯(lián)可成倍增加);可進(jìn)行譯碼或不譯碼顯示;內(nèi)含硬件動態(tài)掃描控制,可設(shè)置低功耗停機(jī)方式。

          引腳功能和工作原理

          MAX7219采用24腳雙列直插式封裝,其引腳如圖3所示。SEGA~SEGG和DP分別為LED七段驅(qū)動器線和小數(shù)點(diǎn)線,供給顯示器源電流;DIG0~DIG7為8位數(shù)字驅(qū)動線,輸出位選信號,從每位LED共陰極吸入電流。

          圖3MAX7219 引腳功能

          DIN 是串行數(shù)據(jù)輸入端。在CLK 的上升沿,一位數(shù)據(jù)被加載到內(nèi)部16位移位寄存器中,CLK最高頻率可達(dá)10MHz,在輸入時鐘的每個上升沿均有一位數(shù)據(jù)由DIN端移入到內(nèi)部寄存器中;LOAD用來裝載數(shù)據(jù),在LOAD的上升沿,16位串行數(shù)據(jù)被鎖存到數(shù)據(jù)或控制寄存器中,LOAD必須在第16個時鐘上升沿的同時或之后、在下一個時鐘上升沿之前變高, 否則數(shù)據(jù)將被丟失。每組數(shù)據(jù)為16 位二進(jìn)制數(shù)據(jù)包,其格式如表1所示。

          其中D15~D12位不用,D11~D8位為內(nèi)部5個控制寄存器和8個LED顯示數(shù)據(jù)寄存器的地址,D7~D0位為5個控制寄存器和8個LED數(shù)碼管待顯示的數(shù)據(jù),因為控制寄存器與顯示數(shù)據(jù)寄存器獨(dú)立編址,所以可以通過程序?qū)γ總€寄存器進(jìn)行操作。一般情況下,程序先送控制命令,后向顯示寄存器送數(shù)據(jù),每16 位為一組,從高位地址字節(jié)最高位開始送,直到低位數(shù)據(jù)字節(jié)最后一位。MAX7219內(nèi)部有14個可尋址的控制字寄存器,各寄存器的功能及地址如表2所示。

          其中,地址×0H 為空操作寄存器,允許數(shù)據(jù)從輸入到輸出直接通過,可用于設(shè)備串接。地址×1H~×8H為顯示RAM區(qū),分別對應(yīng)DIG0~DIG7引腳的8 位LED顯示數(shù)據(jù)。地址×9H為譯碼模式寄存器,其8 位二進(jìn)制數(shù)分別控制著8個LED顯示器的譯碼模式,邏輯高電平時選擇硬件譯碼(BCD - B碼譯碼), 譯碼器選擇數(shù)據(jù)寄存器中的低4位(D3~D0)進(jìn)行BCD- B碼譯碼, ×0H~×9H對應(yīng)BCD碼字符0~9,而×AH~×FH分別對應(yīng)B碼字符-、E、H、L、P及消隱,D4~D6無效,D7單獨(dú)控制小數(shù)點(diǎn);譯碼模式寄存器為邏輯低電平時選擇軟件譯碼,數(shù)據(jù)D6~D0分別對應(yīng)LED顯示器的A~G段,D7對應(yīng)小數(shù)點(diǎn)DP。

          地址×AH為顯示亮度寄存器,通過對該寄存器的D0~D3位寫入不同的數(shù)值可實現(xiàn)對LED顯示亮度的控制,從00H到0FH共16級可調(diào)。地址×BH為掃描界限寄存器,其D0~D3位數(shù)值設(shè)定為00H~07H,表示顯示器動態(tài)掃描個數(shù)為1~8。地址×CH為停機(jī)寄存器,當(dāng)其D0位為0時,MAX7219處于停機(jī)狀態(tài),掃描振蕩器停振,所有顯示器消隱,寄存器數(shù)據(jù)保持不變;當(dāng)D0為1時,正常工作。地址×FH為顯示測試寄存器,當(dāng)其D0位為0時,正常工作;當(dāng)D0為1時處于測試狀態(tài),全部LED顯示器的所有字段都以最大亮度接通顯示。

          應(yīng)用舉例

          圖4 為MAX7219的位LED顯示電路實例。圖4中,單片機(jī)89C2051的P1.0、P1.1分別接MAX7219的串行數(shù)據(jù)輸入端DIN和時鐘信號CLK, P1.2作為LOAD信號。電阻R根據(jù)不同的LED選值,范圍在7KΩ~ 60KΩ之間。

          圖4 MAX7219 應(yīng)用電路

          結(jié)語

          通過以上對比,并行譯碼方式電路最簡單,但是資源利用率低,因此并不常用,串行- 并行轉(zhuǎn)換方式在小型系統(tǒng)中應(yīng)用具有很強(qiáng)的優(yōu)勢,但隨著單片機(jī)應(yīng)用系統(tǒng)的發(fā)展,很多復(fù)雜系統(tǒng)中都采用了專用顯示驅(qū)動芯片。從上述應(yīng)用實例可以看出,使用 MAX7219 后,系統(tǒng)硬件結(jié)構(gòu)簡潔、程序流程清晰、控制靈活方便,應(yīng)用于儀器儀表、醫(yī)療設(shè)備及智能家電等領(lǐng)域,可省去很多鎖存器、譯碼器及驅(qū)動器,大大提高顯示部分的集成程度,因此這種顯示驅(qū)動方式在單片機(jī)系統(tǒng)設(shè)計中有著廣闊的應(yīng)用前景。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();