欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>接口定義>

max7219的引腳功能及應(yīng)用電路資料

2008年02月29日 10:07 本站原創(chuàng) 作者:本站 用戶評(píng)論(0
關(guān)鍵字:MAX7219(24656)

The MAX7219/MAX7221 are compact, serial input/output common-cathode display drivers that interface microprocessors (µPs) to 7-segment numeric LED displays of up to 8 digits, bar-graph displays, or 64 individual LEDs. Included on-chip are a BCD code-B decoder, multiplex scan circuitry, segment and digit drivers, and an 8x8 static RAM that stores each digit. Only one external resistor is required to set the segment current for all LEDs. The MAX7221 is compatible with SPI™, QSPI™, and MICROWIRE™, and has slew-rate-limited segment drivers to reduce EMI.

A convenient 4-wire serial interface connects to all common µPs. Individual digits may be addressed and updated without rewriting the entire display. The MAX7219/MAX7221 also allow the user to select code-B decoding or no-decode for each digit.

The devices include a 150µA low-power shutdown mode, analog and digital brightness control, a scan-limit register that allows the user to display from 1 to 8 digits, and a test mode that forces all LEDs on.

For applications requiring 3V operation or segment blinking, refer to the MAX6951 data sheet.

MAX7219是MAXIM公司生產(chǎn)的串行輸入/輸出共陰極數(shù)碼管顯示驅(qū)動(dòng)芯片,一片MAX7219可驅(qū)動(dòng)8個(gè)7段(包括小數(shù)點(diǎn)共8段)數(shù)字LED、LED條線圖形顯示器、或64個(gè)分立的LED發(fā)光二級(jí)管。該芯片具有10MHz傳輸率的三線串行接口可與任何微處理器相連,只需一個(gè)外接電阻即可設(shè)置所有LED的段電流。。它的操作很簡(jiǎn)單,MCU只需通過模擬SPI三線接口就可以將相關(guān)的指令寫入MAX7219的內(nèi)部指令和數(shù)據(jù)寄存器,同時(shí)它還允許用戶選擇多種譯碼方式和譯碼位。此外它還支持多片7219串聯(lián)方式,這樣MCU就可以通過3根線(即串行數(shù)據(jù)線、串行時(shí)鐘線和芯片選通線)控制更多的數(shù)碼管顯示。MAX7219的外部引腳分配如圖1所示及內(nèi)部結(jié)構(gòu)如圖2所示。

1   MAX7219的外部引腳分配

 

2   MAX7219的內(nèi)部引腳分配

各引腳的功能為:

DIN:串行數(shù)據(jù)輸入端

DOUT:串行數(shù)據(jù)輸出端,用于級(jí)連擴(kuò)展

LOAD:裝載數(shù)據(jù)輸入

CLK:串行時(shí)鐘輸入

DIG0~DIG78LED位選線,從共陰極LED中吸入電流

SEG A~SEG G DP     7段驅(qū)動(dòng)和小數(shù)點(diǎn)驅(qū)動(dòng)

ISET  通過一個(gè)10k電阻Vcc相連,設(shè)置段電流

 

MAX7219有下列幾組寄存器:(如圖3)

MAX7219內(nèi)部的寄存器如圖3,主要有:譯碼控制寄存器、亮度控制寄存器、掃描界限寄存器、關(guān)斷模式寄存器、測(cè)試控制寄存器。編程時(shí)只有正確操作這些寄存器,MAX7219才可工作。

 

圖 3   MAX7219內(nèi)部的相關(guān)寄存器

 

 

分別介紹如下:

(1)        譯碼控制寄存器(X9H)

如圖4所示,MAX7219有兩種譯碼方式:B譯碼方式和不譯碼方式。當(dāng)選擇不譯碼時(shí),8個(gè)數(shù)據(jù)為分別一一對(duì)應(yīng)7個(gè)段和小數(shù)點(diǎn)位;B譯碼方式是BCD譯碼,直接送數(shù)據(jù)就可以顯示。實(shí)際應(yīng)用中可以按位設(shè)置選擇B譯碼或是不譯碼方式。

4   MAX7219的譯碼控制寄存器

(2)        掃描界限寄存器(XBH)

如圖5所示,此寄存器用于設(shè)置顯示的LED的個(gè)數(shù)(1~8),比如當(dāng)設(shè)置為0xX4時(shí),LED 0~5顯示。

 

5   MAX7219的掃描界限控制寄存器

 

(3)        亮度控制寄存器(XAH)

共有16級(jí)可選擇,用于設(shè)置LED的顯示亮度,從0xX0~0xXF

(4)        關(guān)斷模式寄存器(XCH)

共有兩種模式選擇,一是關(guān)斷狀態(tài),(最低位 D0=0)一是正常工作狀態(tài)(D0=1)。

(5)        顯示測(cè)試寄存器(XFH)

用于設(shè)置LED是測(cè)試狀態(tài)還是正常工作狀態(tài),當(dāng)測(cè)試狀態(tài)時(shí)(最低位 D0=1)各位顯示全亮,正常工作狀態(tài)(D0=0)。

各寄存器具體操作見驅(qū)動(dòng)程序詳解。

 

2 讀寫時(shí)序說明

MAX7129SPI總線驅(qū)動(dòng)方式。它不僅要向寄存器寫入控制字,還需要讀取相應(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ū)動(dòng)程序詳解。

數(shù)據(jù)讀寫時(shí)序

3 電路原理

電路原理圖

電路原理圖如圖7,MAX7219與單片機(jī)的連接只需要3條線:LOADCS)片選引腳、CLK串行時(shí)鐘引腳、DIN串行數(shù)據(jù)引腳。其中C1 電源濾波電容,R1用來設(shè)置段電流。 MAX7219的PCB布線有些難度,作者可以提供畫好的PCB給讀者。有需要的讀者請(qǐng)與作者聯(lián)系。郵箱:[email protected]

 

電路原理圖

4 驅(qū)動(dòng)程序

//管腳定義

sbit LOAD=P1^2;          //MAX7219片選           12腳

sbit DIN=P1^1;           //MAX7219串行數(shù)據(jù)       1腳

sbit CLK=P1^0;           //MAX7219串行時(shí)鐘        13腳

//寄存器宏定義

#define DECODE_MODE  0x09   //譯碼控制寄存器

#define INTENSITY    0x0A   //亮度控制寄存器

#define SCAN_LIMIT   0x0B   //掃描界限寄存器

#define SHUT_DOWN    0x0C   //關(guān)斷模式寄存器

#define DISPLAY_TEST 0x0F   //測(cè)試控制寄存器        

//函數(shù)聲明

void Write7219(unsigned char address,unsigned char dat);

void Initial(void);

//地址、數(shù)據(jù)發(fā)送子程序

void Write7219(unsigned char address,unsigned char dat)

{  

    unsigned char i;

    LOAD=0;    //拉低片選線,選中器件

    //發(fā)送地址

    for (i=0;i<8;i++)        //移位循環(huán)8次             

    {  

       CLK=0;        //清零時(shí)鐘總線

       DIN=(bit)(address&0x80); //每次取高字節(jié)     

       address<<=1;             //左移一位

       CLK=1;        //時(shí)鐘上升沿,發(fā)送地址

    }

    //發(fā)送數(shù)據(jù)

    for (i=0;i<8;i++)              

    {  

       CLK=0;

       DIN=(bit)(dat&0x80);    

       dat<<=1; 

       CLK=1;        //時(shí)鐘上升沿,發(fā)送數(shù)據(jù)

    }

    LOAD=1;    //發(fā)送結(jié)束,上升沿鎖存數(shù)據(jù)                      

}

//MAX7219初始化,設(shè)置MAX7219內(nèi)部的控制寄存器

void Initial(void)                

{

    Write7219(SHUT_DOWN,0x01);         //開啟正常工作模式(0xX1)

    Write7219(DISPLAY_TEST,0x00);      //選擇工作模式(0xX0)

    Write7219(DECODE_MODE,0xff);       //選用全譯碼模式

    Write7219(SCAN_LIMIT,0x07);        //8只LED全用

    Write7219(INTENSITY,0x04);          //設(shè)置初始亮度     

}

測(cè)試程序

void main(void)

{

    unsigned char i;

    Initial();               //MAX7219初始化

    while(1)

    { 

       for(i=1;i<9;i++)

       {

           Write7219(i,i);      //數(shù)碼管顯示1~8

       }

    }

}

典型應(yīng)用電路:

非常好我支持^.^

(513) 98.3%

不好我反對(duì)

(9) 1.7%

( 發(fā)表人:admin )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?