單片機(jī)系統(tǒng)中LED顯示驅(qū)動(dòng)電路的研究
近年來,單片機(jī)系統(tǒng)以其體積小、功能強(qiáng)、擴(kuò)展靈活、使用方便等優(yōu)點(diǎn),逐漸滲透到各行業(yè)的工程實(shí)際應(yīng)用中。而LED顯示電路就像單片機(jī)系統(tǒng)的眼睛,實(shí)時(shí)地向人們傳遞著系統(tǒng)工作的各種狀態(tài)信息和處理結(jié)果。因此,高效、方便的LED顯示驅(qū)動(dòng)電路是構(gòu)成完善的單片機(jī)系統(tǒng)必不可少的元素。常用的LED顯示驅(qū)動(dòng)電路有并行譯碼方式、串行—并行轉(zhuǎn)換方式、顯示驅(qū)動(dòng)接口芯片方式等。下面分別對(duì)這幾種方式進(jìn)行討論,并給出顯示驅(qū)動(dòng)芯片MAX7219的應(yīng)用實(shí)例。
并行譯碼顯示方式
圖 1為單片機(jī)89C2051輸出顯示的一個(gè)例子,4位BCD碼數(shù)據(jù)從其P1.0~P1.3并行輸出,經(jīng)7段LED顯示驅(qū)動(dòng)電路CD4511譯碼后驅(qū)動(dòng)LED 顯示,這樣只需向P1.0~P1.3 寫入欲顯示數(shù)字的BCD碼,即可顯示出相應(yīng)的數(shù)字。這種方式雖然簡(jiǎn)單,但占用單片機(jī)口線較多,資源利用率低,因此不常采用。
圖1 并行譯碼顯示方式
串行- 并行轉(zhuǎn)換方式
圖 2所示為89C2051的串口驅(qū)動(dòng)數(shù)碼管的電路,其中串口工作在方式0,74LS164是8位串入并出移位寄存器,負(fù)責(zé)將RXD輸出的串行數(shù)據(jù)轉(zhuǎn)換成并行信號(hào)。顯然,這種方式顯示同樣的位數(shù)使用單片機(jī)的口線大大減少,并且可以讓LED顯示BCD碼以外的字符(如A、B、C、D 等),但是,當(dāng)要顯示的位數(shù)較多時(shí),仍需占用較多的口線,并且在許多情況下需要串口工作在UART方式,以便進(jìn)行串行通信,從而限制了這種方式的使用范圍。
圖2 并行譯碼顯示方式
LED顯示驅(qū)動(dòng)芯片
隨著單片機(jī)技術(shù)的發(fā)展,許多公司都推出了專用LED顯示驅(qū)動(dòng)芯片,如Microchip公司的A Y0438、Maxim公司的MAX7219等都是其中的典型代表。下面以MAX7219為例說明LED顯示驅(qū)動(dòng)芯片在單片機(jī)系統(tǒng)中的應(yīng)用。
MAX7219簡(jiǎn)介
MAX7219 是Maxim公司推出的8位LED串行顯示驅(qū)動(dòng)器,它采用3線串口傳送數(shù)據(jù),占用資源少且硬件簡(jiǎn)單,只需一個(gè)外部電阻即可方便地調(diào)節(jié)LED的亮度;可靈活地選擇顯示器的個(gè)數(shù)( 1~8個(gè), 級(jí)聯(lián)可成倍增加);可進(jìn)行譯碼或不譯碼顯示;內(nèi)含硬件動(dòng)態(tài)掃描控制,可設(shè)置低功耗停機(jī)方式。
引腳功能和工作原理
MAX7219采用24腳雙列直插式封裝,其引腳如圖3所示。SEGA~SEGG和DP分別為L(zhǎng)ED七段驅(qū)動(dòng)器線和小數(shù)點(diǎn)線,供給顯示器源電流;DIG0~DIG7為8位數(shù)字驅(qū)動(dòng)線,輸出位選信號(hào),從每位LED共陰極吸入電流。
圖3MAX7219 引腳功能
DIN 是串行數(shù)據(jù)輸入端。在CLK 的上升沿,一位數(shù)據(jù)被加載到內(nèi)部16位移位寄存器中,CLK最高頻率可達(dá)10MHz,在輸入時(shí)鐘的每個(gè)上升沿均有一位數(shù)據(jù)由DIN端移入到內(nèi)部寄存器中;LOAD用來裝載數(shù)據(jù),在LOAD的上升沿,16位串行數(shù)據(jù)被鎖存到數(shù)據(jù)或控制寄存器中,LOAD必須在第16個(gè)時(shí)鐘上升沿的同時(shí)或之后、在下一個(gè)時(shí)鐘上升沿之前變高, 否則數(shù)據(jù)將被丟失。每組數(shù)據(jù)為16 位二進(jìn)制數(shù)據(jù)包,其格式如表1所示。
其中D15~D12位不用,D11~D8位為內(nèi)部5個(gè)控制寄存器和8個(gè)LED顯示數(shù)據(jù)寄存器的地址,D7~D0位為5個(gè)控制寄存器和8個(gè)LED數(shù)碼管待顯示的數(shù)據(jù),因?yàn)榭刂萍拇嫫髋c顯示數(shù)據(jù)寄存器獨(dú)立編址,所以可以通過程序?qū)γ總€(gè)寄存器進(jìn)行操作。一般情況下,程序先送控制命令,后向顯示寄存器送數(shù)據(jù),每16 位為一組,從高位地址字節(jié)最高位開始送,直到低位數(shù)據(jù)字節(jié)最后一位。MAX7219內(nèi)部有14個(gè)可尋址的控制字寄存器,各寄存器的功能及地址如表2所示。
其中,地址×0H 為空操作寄存器,允許數(shù)據(jù)從輸入到輸出直接通過,可用于設(shè)備串接。地址×1H~×8H為顯示RAM區(qū),分別對(duì)應(yīng)DIG0~DIG7引腳的8 位LED顯示數(shù)據(jù)。地址×9H為譯碼模式寄存器,其8 位二進(jìn)制數(shù)分別控制著8個(gè)LED顯示器的譯碼模式,邏輯高電平時(shí)選擇硬件譯碼(BCD - B碼譯碼), 譯碼器選擇數(shù)據(jù)寄存器中的低4位(D3~D0)進(jìn)行BCD- B碼譯碼, ×0H~×9H對(duì)應(yīng)BCD碼字符0~9,而×AH~×FH分別對(duì)應(yīng)B碼字符-、E、H、L、P及消隱,D4~D6無(wú)效,D7單獨(dú)控制小數(shù)點(diǎn);譯碼模式寄存器為邏輯低電平時(shí)選擇軟件譯碼,數(shù)據(jù)D6~D0分別對(duì)應(yīng)LED顯示器的A~G段,D7對(duì)應(yīng)小數(shù)點(diǎn)DP。
地址×AH為顯示亮度寄存器,通過對(duì)該寄存器的D0~D3位寫入不同的數(shù)值可實(shí)現(xiàn)對(duì)LED顯示亮度的控制,從00H到0FH共16級(jí)可調(diào)。地址×BH為掃描界限寄存器,其D0~D3位數(shù)值設(shè)定為00H~07H,表示顯示器動(dòng)態(tài)掃描個(gè)數(shù)為1~8。地址×CH為停機(jī)寄存器,當(dāng)其D0位為0時(shí),MAX7219處于停機(jī)狀態(tài),掃描振蕩器停振,所有顯示器消隱,寄存器數(shù)據(jù)保持不變;當(dāng)D0為1時(shí),正常工作。地址×FH為顯示測(cè)試寄存器,當(dāng)其D0位為0時(shí),正常工作;當(dāng)D0為1時(shí)處于測(cè)試狀態(tài),全部LED顯示器的所有字段都以最大亮度接通顯示。
應(yīng)用舉例
圖4 為MAX7219的位LED顯示電路實(shí)例。圖4中,單片機(jī)89C2051的P1.0、P1.1分別接MAX7219的串行數(shù)據(jù)輸入端DIN和時(shí)鐘信號(hào)CLK, P1.2作為L(zhǎng)OAD信號(hào)。電阻R根據(jù)不同的LED選值,范圍在7KΩ~ 60KΩ之間。
圖4 MAX7219 應(yīng)用電路
結(jié)語(yǔ)
通過以上對(duì)比,并行譯碼方式電路最簡(jiǎn)單,但是資源利用率低,因此并不常用,串行- 并行轉(zhuǎn)換方式在小型系統(tǒng)中應(yīng)用具有很強(qiáng)的優(yōu)勢(shì),但隨著單片機(jī)應(yīng)用系統(tǒng)的發(fā)展,很多復(fù)雜系統(tǒng)中都采用了專用顯示驅(qū)動(dòng)芯片。從上述應(yīng)用實(shí)例可以看出,使用 MAX7219 后,系統(tǒng)硬件結(jié)構(gòu)簡(jiǎn)潔、程序流程清晰、控制靈活方便,應(yīng)用于儀器儀表、醫(yī)療設(shè)備及智能家電等領(lǐng)域,可省去很多鎖存器、譯碼器及驅(qū)動(dòng)器,大大提高顯示部分的集成程度,因此這種顯示驅(qū)動(dòng)方式在單片機(jī)系統(tǒng)設(shè)計(jì)中有著廣闊的應(yīng)用前景。
評(píng)論