MAX7219的PROTEUS仿真
MAX7219是美國MAXIM(美信)公司生產(chǎn)的串行輸入/輸出共陰極顯示驅(qū)動(dòng)器。它采用了3線串行接口,傳送速率達(dá)10M數(shù)據(jù),能驅(qū)動(dòng)8位七段數(shù)字型LED或條形顯示器或64只獨(dú)立的LED。MAX7219內(nèi)置BCD碼譯碼器、多路掃描電路、段和數(shù)字驅(qū)動(dòng)器和存儲(chǔ)每一位的8*8靜態(tài)RAM。能方便的用模擬或數(shù)字方法控制段電流的大小,改變顯示器的數(shù)量;能進(jìn)入低功耗的關(guān)斷模式(僅消耗150uA電流,數(shù)據(jù)保留);能方便地進(jìn)行級(jí)聯(lián)。可廣泛用于條形圖顯示、七段顯示、工業(yè)控制、儀器儀表面板等領(lǐng)域。而且其最重要的一點(diǎn)是,每個(gè)顯示位都能個(gè)別尋址和刷新,而不需要重寫其他的顯示位,這使得軟件編程十分簡單且靈活。MAX719后綴表示其封裝方式和工作溫度,如表所示: 一. MAX7219的結(jié)構(gòu)和功能
1.引腳說明 MAX7219的引腳排列如圖所示,各引腳功能敘述如下: (1)腳:DIN,串行數(shù)據(jù)輸入。在CLK的上升沿到來時(shí),數(shù)據(jù)被移入到內(nèi)部的16位移位寄存器中。 (2)、(3)、(5)~(8)、(10)、(11)腳:DIG0—DIG7,輸入。8位數(shù)字位位選線,從共陰極顯示器吸收電流。 (4)、(9)腳:GND,地。兩個(gè)引腳必須連接在一起。 (12)腳:LOAD,數(shù)據(jù)裝載輸入端。在LOAD上升沿,移位寄存器接受的數(shù)據(jù)被鎖存。 (13)腳:CLK,時(shí)鐘輸入端,最高時(shí)鐘頻率10MHz。在CLK的上升沿,數(shù)據(jù)被移入到內(nèi)部的16位移位寄存器中。在CLK的下降沿,數(shù)據(jù)從DOUT腳輸出。 (14)~(15)、(20)~(23)腳:輸出。七段驅(qū)動(dòng)器和小數(shù)點(diǎn)驅(qū)動(dòng)器。它供給顯示器電流。 (18)腳:ISET,電流調(diào)節(jié)端。通過一個(gè)電阻和VCC相連,來調(diào)節(jié)最大段電流。 (19)腳:VCC。電源輸入端。 (24)腳:DOUT。串行數(shù)據(jù)輸出。輸入到DIN的數(shù)據(jù)在16.5各時(shí)鐘周期后,在DOUT端有效。該腳常用于幾個(gè)MAX7219的級(jí)聯(lián)。
2.串行數(shù)據(jù)傳送的說明 MAX7219采用串行尋址方式,在傳送的串行數(shù)據(jù)中包含內(nèi)部RAM的地址。加在DIN腳上的串行數(shù)據(jù),必須在LOAD信號(hào)為高電平的前提下,以每個(gè)字節(jié)為一個(gè)數(shù)據(jù)包,在CLK信號(hào)上升沿移入16位的移位寄存器。然后在LOAD信號(hào)的上升沿鎖存進(jìn)數(shù)字或控制寄存器中。LOAD信號(hào)必須在第16個(gè)CLK信號(hào)上升沿的同時(shí),或在下一個(gè)CLK信號(hào)上升沿之前升高,否則,數(shù)據(jù)會(huì)丟失。DIN腳上的串行數(shù)據(jù)在16.5個(gè)CLK信號(hào)后出現(xiàn)在DOUT腳上,以便級(jí)聯(lián)應(yīng)用時(shí)傳到下一個(gè)MAX7219上。 其數(shù)據(jù)串行傳送時(shí)序圖如下圖所示:
發(fā)送的16位串行數(shù)據(jù)格式為: 發(fā)送的16位串行數(shù)據(jù)格式如上表所示:D15在先,D15---D12位(4位)可為任意值。D11---D8位(4位)指定14個(gè)內(nèi)部寄存器的地址。D7---D0位(8位)為送入的指定寄存器的數(shù)據(jù)(包括顯示數(shù)據(jù)和控制數(shù)據(jù))。 3.寄存器功能及說明 MAX7219內(nèi)部共有14個(gè)可尋址的數(shù)字、控制寄存器和空操作寄存器。數(shù)字寄存器由一個(gè)片內(nèi)8×8靜態(tài)RAM組成。控制寄存器包括譯碼方式、亮度控制、掃描數(shù)量、停機(jī)模式、測試模式等寄存器組成,如下表所示: 下面從使用的角度,對(duì)MAX7219內(nèi)部控制器的功能加以說明: (1)譯碼控制寄存器(地址09H):譯碼方式寄存器可以對(duì)每個(gè)數(shù)進(jìn)行設(shè)置,使其為BCD譯碼方式或不譯碼方式。寄存器的每一位和一個(gè)數(shù)位相對(duì)應(yīng)。為“1”時(shí),選擇BCD譯碼方式,為“0”選擇不譯碼方式。例如,0---7位不譯碼,則給譯碼寄存器09H送00H。第一位譯碼,其余位不譯碼,則給譯碼寄存器09H送01H。 譯碼方式控制寄存器舉例(地址09H): * 當(dāng)采用BCD譯碼方式時(shí),譯碼器僅對(duì)寄存器中數(shù)據(jù)的低四位(D3-D0)有效,高四位(D7-D4)位無效。BCD碼的字形為:當(dāng)數(shù)據(jù)為00-09H時(shí),顯示為0-9;當(dāng)數(shù)據(jù)為0AH-0EH時(shí),顯示為-,E,H,L,P。當(dāng)數(shù)據(jù)為0FH時(shí),數(shù)據(jù)被消隱,處于不顯示狀態(tài)。 代碼BCD字形表: 小數(shù)點(diǎn)由D7設(shè)置,D7=1亮,D7=0不亮。 * 當(dāng)采用不譯碼方式時(shí),數(shù)據(jù)位D7-D0和字段的對(duì)應(yīng)關(guān)系如圖3所示:
需要說明的是:不管對(duì)MAX7219設(shè)置的是譯碼方式還是非譯碼方式,D7位始終和數(shù)碼位的小數(shù)點(diǎn)DP相連,當(dāng)D7=1時(shí),小數(shù)點(diǎn)亮,當(dāng)D7=0時(shí),小數(shù)點(diǎn)滅。 (2)亮度控制寄存器(地址0AH):MAX7219的亮度控制有兩種方式:即模擬法和數(shù)字法。 * 模擬法:在引腳ISET和VCC之間接電阻RSET,各段驅(qū)動(dòng)峰電流約為RSET中電流(Iset)的100倍,RSET的最小阻值為9.53KΩ,這時(shí)數(shù)碼顯示處于最亮狀態(tài)。RSET可用電位器代替,放到面板上用來調(diào)節(jié)數(shù)碼顯示的亮度。 * 數(shù)字法:將數(shù)據(jù)寫入到亮度控制寄存器中,即可按16各等級(jí)控制亮度。數(shù)值為00H,對(duì)應(yīng)電流1/32Iset(最暗);數(shù)值為0FH,對(duì)應(yīng)電流31/32Iset(最亮)。此數(shù)值加1,電流增大1/16。 亮度寄存器格式(地址0AH) (3)掃描位數(shù)(界限)寄存器(地址0BH):掃描(界限)寄存器用來設(shè)定多少個(gè)數(shù)位處于顯示態(tài),范圍為1到8。MAX7219的各個(gè)數(shù)位按1300Hz的掃描頻率分路驅(qū)動(dòng),輪流點(diǎn)亮8各顯示器。若需要顯示的數(shù)位少,可降低掃描數(shù)量,以提高掃速和亮度。該寄存器的低3位指定要掃描的數(shù)位,即00-07H分別對(duì)應(yīng)1-8個(gè)數(shù)位。但此值最好不要小于4,否則需要改變RSET的值。 掃描位數(shù)寄存器(地址0BH)的格式: (4)停機(jī)控制寄存器(地址0CH):關(guān)斷寄存器的D0位控制MAX7219處于怎樣的顯示狀態(tài)。當(dāng)D0=0時(shí),MAX7219處于關(guān)斷狀態(tài),當(dāng)D0=1時(shí),MAX7219處于正常顯示狀態(tài)。當(dāng)處于關(guān)斷狀態(tài)時(shí),掃描振蕩器暫停,顯示器熄滅,各寄存器中的數(shù)據(jù)不變,這時(shí)總電流小于150uA,,但仍可以編程。進(jìn)入此狀態(tài)后,至少250uS才能退出。當(dāng)將D0位置1后(即0CH寫01H),即可回到正常顯示狀態(tài)。 (5)顯示測試寄存器(地址0FH):顯示測試寄存器有兩種工作方式:當(dāng)送01H時(shí),MAX7219便進(jìn)入測試工作狀態(tài),所有數(shù)碼管顯示8及小數(shù)點(diǎn),電流占空比為31/32,內(nèi)部的所有數(shù)據(jù)及控制寄存器的值都不改變。當(dāng)送00H時(shí),MAX7219進(jìn)入正常工作方式。 (6)空操作寄存器(地址00H):即寫入0000H,可允許數(shù)據(jù)通過而不對(duì)當(dāng)前的MAX7219產(chǎn)生影響,可用于兩個(gè)或多個(gè)MAX7219進(jìn)行級(jí)連。這樣只要三根信號(hào)線就可以驅(qū)動(dòng),在控制時(shí)只要把待編程的MAX7219之前的那些MAX7219設(shè)置為空操作即可。 4.典型應(yīng)用電路
典型應(yīng)用
級(jí)聯(lián)應(yīng)用連線 二 MAX7219的PROTUES仿真電路 據(jù)說PROTEUS里的MAX7219模型在級(jí)連時(shí)仿真有問題,時(shí)序和實(shí)際電路的不同。 三 MAX7219的PROTUES仿真源程序 /* 顯示12345678*/
- #include <reg52.h>
- #include <stdio.h>
- #define uchar unsigned char
-
- sbit DIN=P3^1;
- sbit CLK=P3^3;
- sbit LOAD=P3^2;
- void send(uchar add,uchar dat)
- {
- uchar ADS,i,j;
- CLK=0;
- LOAD=0;
- DIN=0;
- i=4;
- while(i<16)
- {
- if(i<8)
- {
- ADS=add;
- }
- else
- {
- ADS=dat;
- }
- for(j=8;j>=1;j--)
- {
-
- if((ADS&0x80)==0)
- { DIN=0 ;}
- else
- { DIN=1;}
- ADS=ADS<<1;
-
- CLK=1;
- CLK=0;
- }
- i=i+8;
- }
- LOAD=1;
- }
-
- void main(void)
- {
- send(0x0c,0x01);//正常狀態(tài)
- send(0x0b,0x07);//設(shè)置掃描范圍DIG0-7
- send(0x0a,0x05);//設(shè)置亮度11/32
- send(0x09,0xff);//采用譯碼方式
-
- while(1)
- {
- send(0x01,0x81);
- send(0x02,0x82);
- send(0x03,0x83);
- send(0x04,0x84);
- send(0x05,0x85);
- send(0x06,0x86);
- send(0x07,0x87);
- send(0x08,0x88);
-
- }
- }
復(fù)制代碼
全部資料51hei下載地址:
|