您的位置 首页 FPGA

max7219的引脚功能及使用电路材料

本站为您提供的max7219的引脚功能及应用电路资料,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-c

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 8×8 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公司出产的串行输入/输出共阴极数码管显现驱动芯片,一片MAX7219可驱动8个7段(包含小数点共8段)数字LED、LED条线图形显现器、或64个分立的LED发光二级管。该芯片具有10MHz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置一切LED的段电流。。它的操作很简单,MCU只需经过模仿SPI三线接口就能够将相关的指令写入MAX7219的内部指令和数据寄存器,一起它还答使用户挑选多种译码方法和译码位。此外它还支撑多片7219串联方法,这样MCU就能够经过3根线(即串行数据线、串行时钟线和芯片选通线)操控更多的数码管显现。MAX7219的外部引脚分配如图1所示及内部结构如图2所示。



1   MAX7219的外部引脚分配


 



2   MAX7219的内部引脚分配


各引脚的功能为:


DIN:串行数据输入端


DOUT:串行数据输出端,用于级连扩展


LOAD:装载数据输入


CLK:串行时钟输入


DIG0~DIG78LED位选线,从共阴极LED中吸入电流


SEG A~SEG G DP     7段驱动和小数点驱动


ISET  经过一个10k电阻和Vcc相连,设置段电流


 


MAX7219有下列几组寄存器:(如图3)


MAX7219内部的寄存器如图3,主要有:译码操控寄存器、亮度操控寄存器、扫描边界寄存器、关断形式寄存器、测验操控寄存器。编程时只要正确操作这些寄存器,MAX7219才可作业。


 



图 3   MAX7219内部的相关寄存器


 


 


别离介绍如下:


(1)        译码操控寄存器(X9H)


如图4所示,MAX7219有两种译码方法:B译码方法和不译码方法。当挑选不译码时,8个数据为别离一一对应7个段和小数点位;B译码方法是BCD译码,直接送数据就能够显现。实践使用中能够按位设置挑选B译码或是不译码方法。


4   MAX7219的译码操控寄存器


(2)        扫描边界寄存器(XBH)


如图5所示,此寄存器用于设置显现的LED的个数(1~8),比方当设置为0xX4时,LED 0~5显现。


 



5   MAX7219的扫描边界操控寄存器


 


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


共有16级可挑选,用于设置LED的显现亮度,从0xX0~0xXF


(4)        关断形式寄存器(XCH)


共有两种形式挑选,一是关断状况,(最低位 D0=0)一是正常作业状况(D0=1)。


(5)        显现测验寄存器(XFH)


用于设置LED是测验状况仍是正常作业状况,当测验状况时(最低位 D0=1)各位显现全亮,正常作业状况(D0=0)。


各寄存器具体操作见驱动程序详解。


 


2 读写时序阐明


MAX7129SPI总线驱动方法。它不只要向寄存器写入操控字,还需求读取相应寄存器的数据。


       要想与MAX7129通讯,首先要先了解MAX7129的操控字。MAX7129的操控字格局如图6。



图6   操控字(即地址及指令字节)


 


如图,作业时,MAX7219规则一次接纳16位数据,在接纳的16位数据中:D15~D12能够与操作无关,能够恣意写入,D11~D8决议所选通的内部寄存器地址,D7~D0为待显现数据或是初始化操控字。在CLK脉冲效果下,DIN的数据以串行方法顺次移入内部16位寄存器,然后在一个LOAD上升沿效果下,锁存到内部的寄存器中。注意在接纳时,先接纳最高位D16,最终是D0,因而,在程序发送时必须先送高位数据,在循环移位。作业时序图见图7。


因为51是8位单片机故需求分两次来送数据。具体操作见驱动程序详解。



数据读写时序


3 电路原理图


电路原理图


电路原理图如图7,MAX7219与单片机的衔接只需求3条线:LOADCS)片选引脚、CLK串行时钟引脚、DIN串行数据引脚。其间C1 为电源滤波电容,R1用来设置段电流。 MAX7219的PCB布线有些难度,作者能够供给画好的PCB给读者。有需求的读者请与作者联络。邮箱:zhaoliang_0801@dl.cn


 



电路原理图


4 驱动程序


//管脚界说


sbit LOAD=P1^2;          //MAX7219片选           12脚


sbit DIN=P1^1;           //MAX7219串行数据       1脚


sbit CLK=P1^0;           //MAX7219串行时钟        13脚


//寄存器宏界说


#define DECODE_MODE  0x09   //译码操控寄存器


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


#define SCAN_LIMIT   0x0B   //扫描边界寄存器


#define SHUT_DOWN    0x0C   //关断形式寄存器


#define DISPLAY_TEST 0x0F   //测验操控寄存器        


//函数声明


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


void Initial(void);


//地址、数据发送子程序


void Write7219(unsigned char address,unsigned char dat)


{  


    unsigned char i;


    LOAD=0;    //拉低片选线,选中器材


    //发送地址


    for (i=0;i<8;i++)        //移位循环8次             


    {  


       CLK=0;        //清零时钟总线


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


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


       CLK=1;        //时钟上升沿,发送地址


    }


    //发送数据


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


    {  


       CLK=0;


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


       dat<<=1; 


       CLK=1;        //时钟上升沿,发送数据


    }


    LOAD=1;    //发送完毕,上升沿锁存数据                      


}


//MAX7219初始化,设置MAX7219内部的操控寄存器


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);          //设置初始亮度     


}


测验程序


void main(void)


{


    unsigned char i;


    Initial();               //MAX7219初始化


    while(1)


    { 


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


       {


           Write7219(i,i);      //数码管显现1~8


       }


    }


}


典型使用电路:


声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/71908.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部