單片機系統中LED顯示驅動(dòng)電路的分析
圖3 MAX7219 引腳功能
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ù)廣闊的應用前景。
評論