1 引 言 傳統的數碼管顯示驅動電路占用的系統資源較多。若是動態顯示,8位顯示驅動電路一般由1片8255,4片5407構成,不僅硬件資源占用多,而且需要由軟件定時刷新,軟件資源占用也不少;若是靜態顯示,8位數碼管顯示驅動電路一般由8片54LS164構成,硬件資源占用太多。現在,一片MAX7219便可完成8位數碼管的顯示驅動任務。 MAX7219是一種串行接口的8位數碼管顯示驅動器。它與通用微處理器只有3根串行線相連,最多可驅動8個共陰數碼管或64個發光二極管。它內部有可存儲顯示信息的8×8靜態RAM,動態掃描電路,以及段、位驅動器。 它的特點有:串行接口的傳輸速率可達10MHz;獨立的發光二極管段控制;譯碼與非譯碼兩種顯示方式可選;數字、模擬兩種亮度控制方式;可以級聯使用。 MAX7219的典型應用如圖1所示。 2 MAX7219使用簡介 MAX7219的內部功能框圖如圖2所示。 MAX7219的數據輸入主要由三根輸入線完成。 它們分別是串行數據線、時鐘線與加載線。當1個16位的數據從高位到低位依次輸入MAX7219后,在加載的上升沿將D7-D0送入對應的內部寄存器。 MAX7219的輸入時序圖如圖3所示。 MAX7219的串行輸入數據格式,高位字節的高4位保留,低4位為片內寄存器地址;低位字節為8位數據。 MAX7219的內部寄存器地址分配如表1所示。 此外,MAX7219的RSET值與段電流及LED的驅動電壓有關,應按表2選擇。(RSET是ISET端的外接電阻,單位kΩ) 為使MAX7219能夠正常工作,必需在使用前對其進行初始化。MAX7219的軟件初始化框圖略。 正常顯示時的程序十分簡單,只需向內部寄存器地址X1~X8H寫入相應的顯示值即可。 3 MAX7219在發射顯示中的應用 隨著新技術的不斷運用,雷達的發射部分變得越來越復雜,需要指示的內容 也越來越多。發射部分中相當數量的狀態顯示需要用到數碼管和發光二極管等器件,但原先的電路使用的芯片多,驅動數碼管與發光二極管的數量少,所以必需尋找一種集成度高,驅動能力強的芯片來取代原先的電路,MAX7219就是其中一個很好的選擇。 圖4就是MAX7219在目前發射顯示中的一個應用實例。 在圖5中,8位51單片機與MAX7219組成了一個數碼管或發光二極管的顯示系統。其中單片機的P1.0作為串行數據線,P1.1作為數據加載控制線,P1.2作為時鐘線。由單片機向MAX7219輸送信息的工作流程描述如下: (1)將P1.1置“低”; (2)將P1.0置成與“D15”相同的狀態; (3)將P1.2先 置“低”,再置“高”,產生1個移位脈沖將“D15”移入MAX7219; (4)重復過程(2)(3)將“D14~D0”移入MAX7219; (5)將P1.1置“高”,將“D7~D0”送入MAX7219片內相應的寄存器。 過程(1)~(5)用軟件實現非常方便,可以由專門的子程序來完成。此外,對MAX7219各控制寄存器和位寄存器賦值也可方便地由循環程序來完成。因為MAX7219有自動的動態刷新功能,所以賦值完畢后,單片機不必對它有其它的操作(如定時刷新),這就大大減輕了單片機的工作負擔。 如果在實際工作中需要驅動的數碼管個數大于8個,或需要驅動的發光二極管個數大于64個,可以用多片MAX7219的級連來實現,即將一片MAX7219的串行數據輸出與下一片MAX7219的串行數據輸入相連,時鐘信號與加載信號多片復用,圖6就是一個MAX7219級連驅動16個共陰數碼管的例子。 4 結束語 經過多個產品的實際應用,證明MAX7219是一種非常好的共陰數碼管及發光二極管顯示驅動芯片。它與微處理器只有3根連線,印制板走線簡單,占用系統軟、硬件資源少。它適用范圍廣,通過改變RSET的阻值,可適用于驅動電壓為1.5V~3.5V,驅動電流為10mA~40mA的所有發光二極管。它擴展能力強,可實現多片的級連。由于MAX7219具有較多優點,所以今后它的應用將越來越廣泛。 |