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