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