1、MAX7219介紹
MAX7219是一種高集成化的串行輸入/輸出共陰極顯示驅(qū)動器,可實(shí)現(xiàn)微處理器與7段碼的接口,可以顯示8位或64位單一LED。芯片上包括BCD碼譯碼器、多位掃描電路、段驅(qū)動器、位驅(qū)動器、內(nèi)含8&TImes;8位靜態(tài)RAM,用于存放顯示數(shù)據(jù)。只需外接一個(gè)電阻就可為所有的LED提供段電流。
MAX7219的三線串行接口適用于所有微處理器,單一位數(shù)據(jù)可被尋址和修正,無需重寫整個(gè)顯示器。MAX7219具有軟件譯碼和硬件譯碼兩種功能,軟件譯碼是根據(jù)各段筆劃與數(shù)據(jù)位的對應(yīng)關(guān)系進(jìn)行編碼,硬件譯碼采用BCD碼(簡稱B碼)譯碼。MAX7219工作模式包括150μA低壓電源關(guān)閉模式、模擬數(shù)字亮度控制、限掃寄存器(允許用戶從第1位數(shù)字顯示到第8位)及測試模式(點(diǎn)亮所有LED)。
2、MAX7219引腳功能
MAX1279引腳排列如圖1所示,
圖1 MAX1279引腳排列圖
引腳功能:
DIN:串行數(shù)據(jù)輸入端。當(dāng)CLK為上升沿時(shí),數(shù)據(jù)存入內(nèi)部的16位寄存器
DOUT:串行數(shù)據(jù)輸出端,用于級連擴(kuò)展
LOAD:裝載數(shù)據(jù)輸入,在裝載的上升沿,串行輸入的最后一個(gè)16位數(shù)據(jù)被鎖存。
CLK:串行時(shí)鐘輸入,其最大工作頻率可達(dá)10MHz。時(shí)鐘上升沿是數(shù)據(jù)輸入,時(shí)鐘下降時(shí)數(shù)據(jù)從串行數(shù)據(jù)輸出口輸出
DIG0~DIG7:8位LED位選線,從共陰極LED中吸入電流
SEGA~SEGGDP7段驅(qū)動和小數(shù)點(diǎn)驅(qū)動
ISET:通過一個(gè)10k電阻和Vcc相連,設(shè)置段電流
GND:地線
V+:電源
3、MAX7219的功能框圖
圖2 MAX7219的功能框圖
串行輸入數(shù)據(jù)在時(shí)鐘上升沿時(shí)移入內(nèi)部的16位移位寄存器,在裝載的上升沿時(shí)數(shù)據(jù)被鎖存在每一位或寄存器中。裝載信號必須在第16個(gè)時(shí)鐘上升沿發(fā)生時(shí)或之后達(dá)到高電平,但要在下一個(gè)時(shí)鐘的上升沿和數(shù)據(jù)丟失之前到達(dá)。串行輸入數(shù)據(jù)通過移位寄存器傳輸,在以后數(shù)據(jù)輸出的16.5個(gè)時(shí)鐘循環(huán)出現(xiàn),數(shù)據(jù)在時(shí)鐘的下降沿記錄下來。數(shù)據(jù)各位記錄為D0~D15(如表2所列),D8~D11為移位寄存器地址,D0~D7為數(shù)據(jù),D12~D15是無關(guān)位。第一位接收到的位是最高位D15。D7為數(shù)據(jù)最高有效位,D0為數(shù)據(jù)最低有效位。
4、MAX7219控制字
MAX7219有14個(gè)可尋址的控制字寄存器(如表3),控制字寄存器由芯片的8&TImes;8雙端口SRAM識別,SRAM直接尋址,這樣單一的位能被更改或保留,條件是電源電壓明顯大于2V。控制字寄存器包括譯碼模式、顯示強(qiáng)度、掃描限制(被掃描位的個(gè)數(shù))、關(guān)閉模式、顯示測試(點(diǎn)亮所有的LED)。另外還有一個(gè)空操作寄存器,該寄存器允許數(shù)據(jù)從DIN直送DOUT,在設(shè)備串接情況下,不會改變顯示或影響任何控制寄存器。
圖3 MAX7219內(nèi)部的相關(guān)寄存器
分別介紹如下:
(1)譯碼控制寄存器(X9H)
如圖4所示,MAX7219有兩種譯碼方式:B譯碼方式和不譯碼方式。當(dāng)選擇不譯碼時(shí),8個(gè)數(shù)據(jù)為分別一一對應(yīng)7個(gè)段和小數(shù)點(diǎn)位;B譯碼方式是BCD譯碼,直接送數(shù)據(jù)就可以顯示。實(shí)際應(yīng)用中可以按位設(shè)置選擇B譯碼或是不譯碼方式。
圖4 MAX7219的譯碼控制寄存器
當(dāng)選擇軟件譯碼方式時(shí),數(shù)據(jù)D7~D0對應(yīng)的MAX7219碼的各段筆劃如表5所列。當(dāng)工作于硬件(B碼)譯碼模式時(shí),譯碼器只選擇數(shù)據(jù)寄存器中較低的幾位(D3~D0),不考慮D4~D6位。D7位顯示十進(jìn)制小數(shù)點(diǎn),獨(dú)立于譯碼器,當(dāng)D7=1時(shí),十進(jìn)制小數(shù)DP點(diǎn)亮。字符0~9對應(yīng)的16進(jìn)制碼為&TImes;0~&TImes;9,字符-、E、H、L、P和消隱分別對應(yīng)的16進(jìn)制碼為×A~×F。
(2)掃描界限寄存器(XBH)
如圖5所示,此寄存器用于設(shè)置顯示的LED的個(gè)數(shù)(1~8),比如當(dāng)設(shè)置為0xX4時(shí),LED0~5顯示。
圖5 MAX7219的掃描界限控制寄存器
(3)亮度控制寄存器(XAH)
共有16級可選擇,用于設(shè)置LED的顯示亮度,從0xX0~0xXF
(4)關(guān)斷模式寄存器(XCH)
共有兩種模式選擇,一是關(guān)斷狀態(tài),(最低位D0=0)一是正常工作狀態(tài)(D0=1)。
(5)顯示測試寄存器(XFH)
顯示檢測寄存器有兩種操作模式:一般測試和顯示測試。顯示測試模式時(shí)所有的LED點(diǎn)亮,方法是將所有控制字寄存器(包括關(guān)閉寄存器)置成無效。在顯示測試模式下掃描8位的串行接口8位LED顯示驅(qū)動器MAX7219工作周期是31/32。正常測試的16進(jìn)制碼為×0,顯示測試的16進(jìn)制碼為×1。
(6)空操作寄存器
空操作寄存器在MAX7219串接時(shí)使用,把所有芯片的LOAD端連在一起,并將DOUT連接到下一個(gè)MAX7219的DIN上。DOUT是CMOS輸出,可以驅(qū)動后邊的串接MAX7219。例如,4個(gè)MAX7219串聯(lián),然后寫第4個(gè)片子,再送入設(shè)想的16位字,緊跟3個(gè)空操作碼(×0××),當(dāng)LOAD升高時(shí),所有裝置的數(shù)據(jù)被鎖存,前3個(gè)芯片接到空操作命令,第4個(gè)芯片接到設(shè)想的數(shù)據(jù)。
5、讀寫時(shí)序說明
MAX7129是SPI總線驅(qū)動方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。
要想與MAX7129通信,首先要先了解MAX7129的控制字。MAX7129的控制字格式如圖6。
圖6 控制字(即地址及命令字節(jié))
如圖,工作時(shí),MAX7219規(guī)定一次接收16位數(shù)據(jù),在接收的16位數(shù)據(jù)中:D15~D12可以與操作無關(guān),可以任意寫入,D11~D8決定所選通的內(nèi)部寄存器地址,D7~D0為待顯示數(shù)據(jù)或是初始化控制字。在CLK脈沖作用下,DIN的數(shù)據(jù)以串行方式依次移入內(nèi)部16位寄存器,然后在一個(gè)LOAD上升沿作用下,鎖存到內(nèi)部的寄存器中。注意在接收時(shí),先接收最高位D16,最后是D0,因此,在程序發(fā)送時(shí)必須先送高位數(shù)據(jù),在循環(huán)移位。工作時(shí)序圖見圖7。
由于51是8位單片機(jī)故需要分兩次來送數(shù)據(jù)。具體操作見驅(qū)動程序詳解。
圖7 數(shù)據(jù)讀寫時(shí)序
6、使用時(shí)需注意事項(xiàng)
下圖是MAX7219的一種典型應(yīng)用電路。
1)三根信號線
MAX7219的3線串行接口可方便地連接到各種通用的μP上,當(dāng)其16位數(shù)據(jù)串行發(fā)送到DIN端后,該數(shù)據(jù)將在每個(gè)CLK的上升沿被移入內(nèi)部16位移位寄存器中,然后在LOAD的上升沿鎖存到數(shù)字或控制寄存器中。在強(qiáng)干擾環(huán)境下,如大功率電機(jī)的起停或高壓發(fā)生過程中,干擾源可能通過供電電源或3根信號線串入顯示電路而造成顯示器的不穩(wěn)定,從而出現(xiàn)筆段跳躍、顯示不全、甚至全暗或全亮的現(xiàn)象。為此,可通過在3根信號線上對地接入一個(gè)1000pF的瓷片電容來有效地濾除因空間干擾而引起的尖脈沖。
2)亮度控制電阻
MAX7219通過V+和ISET之間所接的外部電阻(RSET)來控制亮度。通常來自驅(qū)動器的峰值電流為ISET的100倍,當(dāng)RSET取最小值9.53kΩ時(shí),段電流為37mA。在筆者的產(chǎn)品應(yīng)用中,最初RSET取10kΩ電阻,當(dāng)采用RC復(fù)位電路時(shí),顯示正常;而采用MAX813L監(jiān)控復(fù)位電路時(shí),在LED各段均亮?xí)r復(fù)位有效,從而使單片機(jī)系統(tǒng)無法工作。其原因在于MAX7219的各個(gè)數(shù)字驅(qū)動器的消耗功率太大,即選定的RSET太小而使峰值段電流增大,從而引起單片機(jī)系統(tǒng)的供電電壓低于MAX813L的監(jiān)控電壓而使系統(tǒng)長期復(fù)位。后來將RSET換為30kΩ電阻后,顯示電路可正常工作。
3)工作電源
為防止微機(jī)系統(tǒng)電源及其干擾源對顯示電路造成影響和避免上面所描述的問題,同時(shí)為了給顯示電路提供足夠的電源功率,在實(shí)際設(shè)計(jì)中,應(yīng)對顯示電路單獨(dú)供電,并在MAX7219的電源(V+)與地(GND)間并接一個(gè)0.1μF去耦電容和一個(gè)10μF/16V電解電容,以有效提高其工作可靠性。
評論
查看更多