51单片机和MAX7219的接口及编程应用

合集下载

51单片机程序 MAX7219

51单片机程序 MAX7219
#define MSB 0x80
#define LSB 0x01
//max7219 part
#define DECODE_MODE 0x09
#define INTENSITY 0x0A
#define SCAN_LIMIT 0x0B
#define SHUT_DOWN 0x0C
#define DISPLAY_TEST 0x0F
{
LOAD = LOW;
Write_Max7219_byte(address);
Write_Max7219_byte(dat);
LOAD = HIGH;
}
void Init_Max7219(void) //初始化max7219子函数设置工作寄存器需要查看芯片手册
{
Write_Max7219(SHUT_DOWN,0x01); //Normal Operation XXXXXXX1 Shutdown Mode XXXXXXXX0
Write_Max7219(SCAN_LIMIT,0x07); //SCAN LIMIT 0~7 0xX0~0xX7
Write_Max7219(INTENSITY,0x0f); //Set Intensity 0xX0~0xXf强度调节
}
void main(void)//显示1~8数字
{
unsigned char i;
void delayms(uint z)//延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y-Fra bibliotek);}
void Write_Max7219_byte(unsigned char temp)//发送一个字节的子程序,上升沿发送数据

显示驱动芯片MAX7219在单片机中的应用

显示驱动芯片MAX7219在单片机中的应用

《自动化技术与应用》2009年第28卷第10期Techniques of Automation & Applications | 121从Din脚串行输入,在CLK的每一个上升沿一位一位地送入芯片内部16位移位寄存器,而不管Dout脚的状态如何。

Load脚必须在第16个CLK上升沿出现的同时或之后,但在下一个CLK上升沿之前变为高电平,否则移入的数据将丢失。

操作者只需编程发送16位数据包,就能简单地操作LED的位选以及段选,设置和改变MAX7219的工作模式。

16位数据包的数据格式如下[3]: 经验交流Technical Communications显示驱动芯片MAX7219在单片机中的应用王喜军,姜 军,孙福东,贾云婷(辽河油田总机械厂自动控制研究所,辽宁 盘锦 124209)摘 要:阐述了新型显示驱动芯片MAX7219的基本工作原理和软件设计方法。

该芯片功能强大、编程简单、控显可靠,可广泛用于工业控制器等方面的数码显示驱动。

并且运用P18高端系列的单片机进行程序测试。

关键词:SPI;MAX7219;单片机中图分类号:TP216 文献标识码:B 文章编号:1003-7241(2009)10-0121-03The MAX7219 Display Driver Chip for MCUWANG Xi-jun, JIANG Jun, SUN Fu-dong, JIA Yun-ting( The Automatic Control Research Institute of LiaoHe Petroleum Exploration Bureau Ceneral Machinery Plant, PanJin 124209 China )Abstract: This paper introduces the software design of the display driver chip MAX7219. An application example is also presented.Key word: SPI; MAX7219; Single-chip收稿日期:2009-04-011 引言MAX7219是美国MAXIM公司生产的串行输入/输出共阴极显示驱动器。

MAX7219在单片机系统显示电路中的应用

MAX7219在单片机系统显示电路中的应用

摘要:介绍8位串行LED显示驱动 ̄MAX7219的特性,并给出了单片机系统中MAX7219与MCS--51的硬件接口设计,以及相应的软件流程图和编程实现。

关键词:MAX721;单片机;显示电路单片机系统通常需要有LED对系统的状态进行观测,而很多工业控制用单片机FIMCS51系列本身并无显示接口部分,需要外接显示的译码驱动电路。

在MCS51单片机的控制系统中,采用MAxIM公司的MAX7219构成显示接口电路,仅需使用单片机3个引脚,即可实现对8位LED数码管的显示控制和驱动,线路简单,控制方便。

1MAx7219与单片机的连接MAX7219与MCS一51单片机连接时可根据具体的系统要求和系统资源占用情况选用2种驱动方式:串行口移位驱动MAX7219或I/0口模拟三线协议时序驱动MAX7219。

通常单片机系统的串口要用作其他用途,比如和上位机联机通信等。

故本系统利用单片机的I/O口来模拟MAX7219的时序,应用电路如图1所示。

其中,P2.0作串行数据输出,连接 ̄IDIN端,P2.1和P2.2连扫描电路选通某字时,相引脚DIG×为低电平。

显示接至CLK和LOAD,通过程序分别模拟MAX7219的时钟数据串行输入MAX7219,移位存入数字寄存器,片内多脉CLK及数据加载LOAD信号。

ISET管脚接l0kQ电阻路扫描电路顺序扫描,分时选通各字,被选通字的引脚用于限定峰值段电流。

置为低电平,LED发光显示数字,未选通的字引脚保持本系统的设计中,只需要5个LED,所以DIG5~DIG7高电平。

未用悬空。

显示电路中,所有LED显示器的同名段(a~f,系统设计中,应用MAX7219芯片时需要注意如下dp)连接在一起并与MAX7219的同名段引脚(SA~SG,几个关键问题:SDP)H连,各LED显示器的共阴极分别与MAX721的相(1)3根信号线。

应字引脚(DIG0一DIG4)相连,以实现位选,当MAX7219在强干扰环境中,如大功率电机的启停或高压发生过程中,干扰源可能通过供电电源或3根信号线串入显示电路,造成显示器的不稳定,从而出现段闪烁、显示不全、甚至全暗或全亮的现象。

max7219驱动数码管程序(51单片机+STM32 MAX7219数码管程序案例)

max7219驱动数码管程序(51单片机+STM32 MAX7219数码管程序案例)
SPI1_InitStructure.SPI_Mode=SPI_Mode_Master;//设置SPI工作模式;设置为主SPI
SPI1_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB; //高位MSB在先
SPI1_InitStructure.SPI_CPOL = SPI_CPOL_High; //选择了串行时钟的稳态,时钟悬空高
*功能:STM32_SPI1硬件配置初始化
*入口参数:无
*出口参数:无
*说明:STM32_SPI1硬件配置初始化,使用3V3
****************************************************************************/
void SPI1_Init(void)
SPI1_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;//数据捕获于第二个时钟沿
SPI1_InitStructure.SPI_NSS = SPI_NSS_Soft;CPolynomial = 7;//CRC值计算的多项式
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOA,GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;//SPI1相关引脚

max7219使用详解介绍

max7219使用详解介绍
该寄存器的主要功能有两个: 1 选择解码模式,MAX7219 有两种解码模式,Code B 和 No decode。 2 选择解码个数(戒范围) (MAX7219 最多可以解码 8 个数码管) 该寄存器所在地址为 0x9(D15~D12 设置为 0) 当我们向该地址写数据 0x00,则选择 No decode 解码模式,并丏解码数码管 7 到 0。此时,Code B 解码模式
D15~12 以 X 表示,代表可为 0,也可为 1。 Digit0~7 对应到 8 个数码管的地址。 Decode Mode:解码模式寄存器,其地址用 16 迚制表示为 0x09; Intensity:亮度调节寄存器,其地址用 16 迚制表示为 0x0A; Scan Limit:扫描范围寄存器,其地址用 16 迚制表示为 0x0B; Shutdown:省电模式,其地址用 16 迚制表示为 0x0C; Display Test:测试寄存器,其地址用 16 迚制表示为 0x0F;
这个图由三部分组成:
第一部分:是要显示的数据 第二部分:是要发送的数据 D7~D0 第三部分:是数码管的八个段,分别用 DP*,A,B,C,D,E,F,G(DP*表示小数点)
D7 来控制小数点的显示 在弄清这个图之前,我们有必要了解数码管的构造。 下面是数码管的构造图:
数码管有八个段(DP,A,B,C,D,E,F,G)每个段都有一个电路来驱动它, 当你要显示"0",就让 A,B,C,D,E,F 亮,让 G 灭。 当你要显示"1",就让 B,C 亮,让 A,D,E,F,G 灭。 其他的就丌用多说了。 我们再回过头去看 Code B Font 图, 当我们想让数码管显示"0",就向数据位 D3~D0 赋值"0000",那么 MAX7219 就会让 A,B,C,D,E NhomakorabeaF 亮,

max7129 使用方法

max7129 使用方法

(一)、MAX7219 MAX7219是一种串入、并出的共阴极LED数码管显示驱动器,每片可驱动8位LED数码管显示,与单片机的接口只需3根线,内带BCD译码器,及显示测试、移位、锁存器等,输出电流达40mA,外围只需一只亮度调整电阻。

MAX7219引脚图1、引脚功能说明DIN:串行数据输入端,CLK的上升沿时数据被载入内部16位移位寄存器中CLK:串行时钟输入端,最高工作频率可达10MHz LOAD:片选端,低电平接收DIN端的数据,高电平时数据被所存DIG0~7:LED的位控制端A~DP:LED 的端控制端DOUT:串行数据输出端,用于芯片的级联ISET:硬件亮度调整端,在该引脚与VCC之间跨接一个电阻,LED的亮度即可通过该电阻来调节,流过LED的段驱动平均电流为流过此电阻电流的100倍,此电阻值范围为:10~80K之间。

2、内部寄存器说明A、译码方式选择寄存器地址:09H 赋值:FFH 表示使用MAX7219内部的BCD译码器00H 表示不使用MAX7219内部的BCD译码器B、亮度调节寄存器地址:0AH 赋值:00H~0FH 可改变MAX7219所驱动的LED的亮度,其变化范围在1/32~31/32之间C、扫描位数设定寄存器地址:0BH 赋值:00H 所有位不显示01H~07H 依次对应于1~8位及前面位全部显示(即需显示的位应为“1”)D、待机模式开关寄存器地址:0CH 赋值:00H LED全灭01H LED正常显示E、显示器测试寄存器地址:0FH 赋值:00H LED为正常显示状态01H LED测试状态,即LED全亮F、8位LED显示数据寄存器地址:01H~08H 对这些寄存器赋值(即需显示的内容),就会在对应的1~8位LED数码管上显示出来3、使用注意事项由于电源中杂波或附近的电磁等干扰信号,使MAX7219在上电后不显示或乱显示;为了消除这种现象应在MAX7219的VCC端与地之间接一只104pf的瓷片电容,在LOAD端于地之间接一只10K的电阻。

max7219使用详解

max7219使用详解

Max7219驱动程序一般的MCU因IO脚驱动能力不够,再加之MCU IO口资源有限,产品开发中通常是通过专门的驱动IC来驱动数码管。

7.1 学会看DatasheetMAX7219就是一款可以同时驱动8个数码管的IC。

下图是其引脚图及典型应用电路:我们的CPU只须三根线就可以控制MAX7219,这三根线是:DIN(第一脚),CS(第12脚),CLK(第13脚)。

DIN是数据输入脚,我们要显示的数据就是通过这根线发送到MAX7219的;CS是片选脚,MCU通过把该脚电平拉低来选中MAX7219,或者说MAX7219通过判断该引脚是否为低电平来使能该芯片。

CLK是时钟引脚,该时钟频率是MCU给到MAX7219的,MCU与7219之间的通信频率就根据该信号做基准。

7.2 MAX7219数据格式我们要让8个数码管显示"12345678",这个过程是怎么实现的呢?首先,要搞清楚MAX7219的数据格式,看图:MAX7219是以16位数据接收和发送的,也就是MCU传给MAX7219的数据必须是16位。

下面分析这16位数据格式:D15~D12为X:表示可以为任意值,因为这四位MAX7219目前还用不到。

D11~D8为ADDRESS:表示MAX7219的地址。

D7~D0为DATA,并且位7为高位(最先发送),位0位低位(最后发送)。

也就是当MCU向MAX7219发送一个16位数据时,其中的D11~D8表示选择MAX7219哪个地址,即数据D7~D0是送到该地址的。

7.3 地址译码MAX7219可以挂8个数码管,MCU是怎么把数据显示到指定的数码管的呢?这就要理解MAX7219的地址译码原理。

下图为MAX7219的地址映射图:D15~12以X表示,代表可为0,也可为1。

Digit0~7对应到8个数码管的地址。

Decode Mode:解码模式寄存器,其地址用16进制表示为0x09;Intensity:亮度调节寄存器,其地址用16进制表示为0x0A;Scan Limit:扫描范围寄存器,其地址用16进制表示为0x0B;Shutdown:省电模式,其地址用16进制表示为0x0C;Display Test:测试寄存器,其地址用16进制表示为0x0F;如果,我们要让第一个数码管显示,那么我们这里送到MAX7219的16位数据中的D11~8应该为0001。

8位串行接口数码显示驱动器MAX7219及其应用

8位串行接口数码显示驱动器MAX7219及其应用

8位串行接口数码显示驱动器MAX7219及其应用潍坊高等专科学校 王瑞兰LED数码管的应用已十分广泛,用于数码管显示的驱动电路种类较多,但大致可分为静态显示驱动和动态扫描显示驱动两大类别。

本文所要介绍的MAX7219芯片就是 用于动态扫描显示驱动的芯片。

该芯片的特点是利用一块芯片就能完成8位字数据和8位线数据的驱动,使得电路紧凑。

多芯片级联时,采用串行输入输出,可节省CPU的口线和接口芯片。

与数码管联接时无需限流电阻,8位显示的电流可通过一个外部电阻进行调节。

显示亮度也可通过程序进行控制。

片内具有,可以对输入的数据先进行译码再驱动输出,也可以将输入的数据直接驱动。

一、管脚功能MAX7219采用24管脚DIP和SO两种封装形式,管脚排列如图1所示,各引脚功能见表1。

二、MAX7219内部结构MAX7219的内部功能框图如图2所示。

16位移位寄存器所存数据为D0~D15,见表2。

D8~D11为寄存器地址,D0-D7为数据,D12-D15为不关心位。

片内有14个寄存器,其中8个数据寄存器,寄存着与DIG 0-DIG 7对应的显示数据,地址依次为×1H-8H;6个控制寄存器,即译码控制寄存器(Decode Mode)、显示亮度控制寄存器(Intensity)、扫描频率限制寄存器(Scan Limit)、消隐控制寄存器(Shutdown)、显示测试寄存器Display Test)及无操作寄存器(No-Op),其地址依次为×9H-CH、×FH、×0H。

数据寄存器为8×8双指针SRAM。

因为各寄存器可直接寻址,所以寄存器的数据可分别进行修改。

寄存器的数据可以保存到电源电压降低到2V。

三、控制寄存器1. Shutdown 寄存器Shutdown 寄存器写入×××××××0B数据时,将呈现消隐状态。

51单片机+MAX7219

51单片机+MAX7219

Protues仿真51单片机+MAX7219循环显示0-9仿真电路代码:void delayms(unsigned int ms);//声明毫秒延时函数/********************************************************** **************I/O定义*********************************************************** **************/sbit DIN=P0^0;//MAX7219 DIN引脚sbit LOAD=P0^1;//MAX7219 Load引脚sbit CLK=P0^2; //MAX7219 CLK引脚/********************************************************** **************指令函数*********************************************************** **************/void Command(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){uchar d=0;Command(0x0c,0x01);//工作模式--常规模式Command(0x0b,0x07);//扫苗模式--7个数码管Command(0x0a,0x05);//亮度模式--11/32Command(0x09,0xff);//译码模式--7段数码管while(1){for(d=0;d<10;d++){switch(d){case0:Command(0x01,0x00);Command(0x02,0x01);Command(0x03,0x02);Co mmand(0x04,0x03);Command(0x05,0x04);Command(0x06,0x05);Comm and(0x07,0x06);Command(0x08,0x07);break;case1:Command(0x01,0x01);Command(0x02,0x02);Command(0x03,0x03);Co mmand(0x04,0x04);Command(0x05,0x05);Command(0x06,0x06);Comm and(0x07,0x07);Command(0x08,0x08);break;case2:Command(0x01,0x02);Command(0x02,0x03);Command(0x03,0x04);Co mmand(0x04,0x05);Command(0x05,0x06);Command(0x06,0x07);Comm and(0x07,0x08);Command(0x08,0x09);break;case3:Command(0x01,0x03);Command(0x02,0x04);Command(0x03,0x05);Co mmand(0x04,0x06);Command(0x05,0x07);Command(0x06,0x08);Comm and(0x07,0x09);Command(0x08,0x00);break;case4:Command(0x01,0x04);Command(0x02,0x05);Command(0x03,0x06);Co mmand(0x04,0x07);Command(0x05,0x08);Command(0x06,0x09);Comm and(0x07,0x00);Command(0x08,0x01);break;case5:Command(0x01,0x05);Command(0x02,0x06);Command(0x03,0x07);Co mmand(0x04,0x08);Command(0x05,0x09);Command(0x06,0x00);Command(0x07,0x01);Command(0x08,0x02);break;case6:Command(0x01,0x06);Command(0x02,0x07);Command(0x03,0x08);Co mmand(0x04,0x09);Command(0x05,0x00);Command(0x06,0x01);Comm and(0x07,0x02);Command(0x08,0x03);break;case7:Command(0x01,0x07);Command(0x02,0x08);Command(0x03,0x09);Co mmand(0x04,0x00);Command(0x05,0x01);Command(0x06,0x02);Comm and(0x07,0x03);Command(0x08,0x04);break;case8:Command(0x01,0x08);Command(0x02,0x09);Command(0x03,0x00);Co mmand(0x04,0x01);Command(0x05,0x02);Command(0x06,0x03);Comm and(0x07,0x04);Command(0x08,0x05);break;case9:Command(0x01,0x09);Command(0x02,0x00);Command(0x03,0x01);Co mmand(0x04,0x02);Command(0x05,0x03);Command(0x06,0x04);Comm and(0x07,0x05);Command(0x08,0x06);break;default:Command(0x01,0x00);Command(0x02,0x00);Command(0x03 ,0x00);Command(0x04,0x00);Command(0x05,0x00);Command(0x06,0x0 0);Command(0x07,0x00);Command(0x08,0x00);break;}delayms(1000);}}}/********************************************************** **************毫秒延时函数*********************************************************** **************/void delayms(unsigned int ms){unsigned int i,j;for(j=0;j<ms;j++)for(i=0;i<115;i++);}。

max7219使用详解

max7219使用详解

Max7219驱动程序一般的MCU因IO脚驱动能力不够,再加之MCU IO口资源有限,产品开发中通常是通过专门的驱动IC来驱动数码管。

7.1 学会看DatasheetMAX7219就是一款可以同时驱动8个数码管的IC。

下图是其引脚图及典型应用电路:我们的CPU只须三根线就可以控制MAX7219,这三根线是:DIN(第一脚),CS(第12脚),CLK(第13脚)。

DIN是数据输入脚,我们要显示的数据就是通过这根线发送到MAX7219的;CS是片选脚,MCU通过把该脚电平拉低来选中MAX7219,或者说MAX7219通过判断该引脚是否为低电平来使能该芯片。

CLK是时钟引脚,该时钟频率是MCU给到MAX7219的,MCU与7219之间的通信频率就根据该信号做基准。

7.2 MAX7219数据格式我们要让8个数码管显示"12345678",这个过程是怎么实现的呢?首先,要搞清楚MAX7219的数据格式,看图:MAX7219是以16位数据接收和发送的,也就是MCU传给MAX7219的数据必须是16位。

下面分析这16位数据格式:D15~D12为X:表示可以为任意值,因为这四位MAX7219目前还用不到。

D11~D8为ADDRESS:表示MAX7219的地址。

D7~D0为DATA,并且位7为高位(最先发送),位0位低位(最后发送)。

也就是当MCU向MAX7219发送一个16位数据时,其中的D11~D8表示选择MAX7219哪个地址,即数据D7~D0是送到该地址的。

7.3 地址译码MAX7219可以挂8个数码管,MCU是怎么把数据显示到指定的数码管的呢?这就要理解MAX7219的地址译码原理。

下图为MAX7219的地址映射图:D15~12以X表示,代表可为0,也可为1。

Digit0~7对应到8个数码管的地址。

Decode Mode:解码模式寄存器,其地址用16进制表示为0x09;Intensity:亮度调节寄存器,其地址用16进制表示为0x0A;Scan Limit:扫描范围寄存器,其地址用16进制表示为0x0B;Shutdown:省电模式,其地址用16进制表示为0x0C;Display Test:测试寄存器,其地址用16进制表示为0x0F;如果,我们要让第一个数码管显示,那么我们这里送到MAX7219的16位数据中的D11~8应该为0001。

MAX7219与51单片机的驳接

MAX7219与51单片机的驳接

MAX7219与51单片机的驳接
MAX7219 是一种高集成化的串行输入/输出的共阴极LED 显示驱动器。

每片可驱动8 位7 段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3 根线。

MAX7219 内部设有扫描电路,除了更新显示数据时从单片
机接收数据外,平时独立工作,极大地节省了MCU 有限的运行时间和程序资源。

MAX7219 芯片上包括BCD 译码器、多位扫描电路、段驱动器、位驱动器和用于存放每个数据位的8 乘以8 静态RAM 以及数个工作寄存器。

通过指令设置这些工作寄存器,可以使MAX7219 进入不同的工作状态。

1管脚说明
图1 是MAX7219 的管脚分布图。

其中:
(1)DIN为串行数据输入端。

当CLK 为上升沿时,数据被载入16 b 内部移位寄存器。

(2)CLK为串行时钟输入端。

其最大工作频率可达10 MHz。

(3)LOAD为片选端,当LOAD 为低电平时,芯片接收来自DIN 的数据,
接收完毕,LOAD 回到高电平时,接收的数据将被锁定。

(4)DIG0~DIG7为吸收显示器共阴极电流的位驱动线。

其最大值可达500 mA,关闭状态时,输出+VCC。

(5)SEGA~SEGG,DP为驱动显示器7 段及小数点的输出电流,一般为40 mA 左右,可软件调整,关闭状态时,接入GND。

(6)DOUT为串行数据输出端,通常直接接入下一片MAX7219 的DIN 端。

MAX7219及单片机的SPI接口设计[教育]

MAX7219及单片机的SPI接口设计[教育]

串行显示驱动器PS7219及单片机的SPI接口设计在单片机的应用系统中,为了便于人们观察和监视单片机的运行情况,常常需要用显示器显示运行的中间结果及状态等等。

因此显示器往往是单片机系统必不可少的外部设备之一。

常用的显示器有很多种,其中LED(发光二极管显示器)是应用较多的一种,它特别适用于强光和光线极弱的场合。

要使LED显示,必须提供段选码和位选码。

传统的硬件译码显示接口广泛采用由中央处理器CPU(如:Intel 8031)扩展I/O口(如:8255),然后再使用逻辑门驱动芯片(如7407等)驱动相应的位码和段码。

这种设计,芯片间连线十分复杂,系统工作可靠性不高,已越来越不适应单片机系统集成化、小型化的发展要求。

特别是系统并行扩展I/O,其缺点十分明显(1)连线太多,系统连线复杂,印制板布线不方便;(2)并行总线上挂靠的器件太多,系统工作的稳定性和可靠性低;(3)体积较大,集成度不高。

正是由于上述原因,近年来,各厂家相继开发出了集成度较高、驱动能力较强、驱动位数较多、功能齐全的LED显示驱动器。

本文介绍一种低价位、高性能的多位LED显示驱动器PS7219芯片,以及它与单片机89C51具体的SPI接口设计与应用软件。

1PS7219简介PS7219是一种新型的串行接口的8位数字静态显示芯片。

它是由武汉力源公司新推出的24脚双列直插式芯片,采用流行的同步串行外设接口(SPI),可与任何一种单片机方便接口,并可同时驱动8位LED (或64只独立LED),其引脚图如图1所示。

PS7219内部具有15×8RAM功能控制寄存器,可方便选址,对每位数字可单独控制、刷新、不需重写整个显示器。

显示数字亮度可由数字进行控制,每位具有闪烁使能控制位。

当引脚CON(13脚)置高电平,可禁止所有显示,达到降低功耗的效果,但同时并不影响对控制寄存器的修改。

PS7219还有一个掉电模式、一个允许用户从1位数显示到8位数显示选择的扫描界限寄存器和一个强迫所有LED接通的测试模式。

用MCS-51单片机串行口对MAX7219及显示器控制的方法和程序

用MCS-51单片机串行口对MAX7219及显示器控制的方法和程序

介绍MAX7219的功能,与MCS-51的时序配合及一种新颖的利用MCS-51串行方式0对MAX7219及显示器控制的方法和程序。

单片机系统通常需要有LED对系统的状态进行观测,而很多工业控制用单片机如MCS-51系列本身并无显示接口部分,需要外接显示的译码驱动电路。

LED数码管显示有动态显示和静态显示两种方式。

通常不管采用哪种显示方式,单片机往往都工作于并行I/O或存储器方式。

作者在采用MCS-51单片机的控制系统中,利用MAXIM公司的串行接口8位LED显示驱动器MAX7219构成显示接口电路,仅需使用单片机3个引脚,即可实现对8位LED数码管的显示控制和驱动,线路非常简单,控制简单方便。

1 MAX7219的功能和设置:MAX7219芯片为MAXIM公司推出的串行输入/输出共阴极显示驱动器,是用一个芯片实现以往用软件完成的动态显示电路扫描工作的器件。

每片可控制显示8个七段LED数码管、条形图或64个发光二极管,控制字简单,可与各种微机接口。

为24引脚芯片,除与显示器连接外,与微机串行口为3线连接,芯片外部电路仅为一限制峰值段电流的电阻,线路简单,极大地方便了对显示器件的控制。

该芯片控制的显示位数多,控制字少,可对全部或个别显示位的数据进行更新。

并可方便地进行多个芯片的级联,扩展显示容量。

MAX7219有多种封装形式,如窄式DIP封装。

MAX7219的串行数据格式如表1所示。

其中:D12~D15位不用;D8~D11为显示位和各种工作方式的控制寄存器地址位,可选择要显示的位、解码方式、显示亮度、扫描位数、停止方式、显示测试等,其地址分布如表2所示;D0~D7为数据位,其形式与显示出的数字间的关系与解码方式有关。

表2中X可为16进制任意值,一般取为0。

每组16位数据中,首先接收的为最高有效位,最后接收的为最低有效位。

解码方式寄存器可设置各位数码管为解码显示方式,或非解码的数据位与显示段直接对应的显示方式。

max7219芯片4片级联C51程序与电路

max7219芯片4片级联C51程序与电路
send(0);//输入空操作
send(0);//输入空操作 load=1;//收尾 LOAD 升高 }
write3(uchar pos,num)//同理,多输出一对空操作数 { load=0; send(pos); send(num);
send(0); send(0); send(0); send(0); load=1; }
}
void main()//主函数! { init();初始化四片 7219,里面的 write,write2,write3,write4 就是分别向 4 片 7219 写入数据的程序! for(number=1;number<9;number++)//简单的循环,让四片 7219 都显示出 1~8,顺 序相反 { write(number,number); write2(number,9-number); write3(number,number); write4(number,9-number);
4 片 7219 芯片级联 C51 程序与电路
7219 芯片可以直接带动 8 个数码管显示只需要 3 个 IO 口控制,功能强大,现 在用四片 7219 级联,使用 C 语言编程,力求简单、有效,借鉴了前辈的一些经 验,欢迎各路人马提出宝贵意见! 一.电路 这是在 proteus 中模拟的电路图:
看了这个图你一定知道 4 片 7219 级联是绝对可行的,那么请看细节:
write2(0x0c,1);//开启正常工作模式 1 正常 0 关闭芯片 write2(0x0f,0);//显示测试 正常工作 0 全亮 1 write2(0x09,0xff);//解码方式 0xff 全译码 write2(0x0b,0x07);//8 只 LED 全用 write2(0x0a,10);//亮度为 10

MAX7219原理及其应用1

MAX7219原理及其应用1

MAX7219原理及其应用西安通信学院(710106) 王建华 逄玉台摘 要 在单片机应用系统中,单片机与LED的连接有并行和串行方式。

由于串行方式占用单片机口线少,因而得到广泛应用。

MAX7219芯片是一个专用的八位LED显示驱动串行接口,文章介绍了其组成原理、应用电路、程序设计及应用中应注意的问题。

关键词 寄存器 液晶显示器 单片机MAX7219是微处理器和共阴极七段——八位LED显示、图条/柱图显示或64点阵显示接口的小型串行输入/输出芯片。

片内包括BCD译码器、多路扫描控制器、字和位驱动器和8×8静态RAM。

外部只需要一个电阻设置所有LED显示器字段电流。

MAX7219和微处理器只需三根导线连接,每位显示数字有一个地址由微处理器写入。

允许使用者选择每位是BCD译码或不译码。

使用者还可选择停机模式、数字亮度控制、从1~8选择扫描位数和对所有LED显示器的测试模式。

1 MAX7219工作原理1.1 MAX7219简介MAX7219和单片计算机连接有三条引线(DIN、CLK、LOAD),采用16位数据串行移位接收方式。

即单片机将16位二进制数逐位发送到DIN端,在CLK上升沿到来前准备就绪,CLK的每个上升沿将一位数据移入MAX7219内移位寄存器,当16位数据移入完,在LOAD引脚信号上升沿将16位数据装入MAX7219内的相应位置,在MAX7219内部硬件动态扫描显示控制电路作用下实现动态显示。

1.2 MAX7219引脚说明MAX7219为24引脚芯片,引脚排列如图1所示,各引脚功能如下:DIN:串行数据输入端;DIG0~DIG7:LED位线;LOAD:数据装载信号输入端;SEGA~SEGG,SEGDp:段码输出端;ISET:硬件亮度调节端;DOUT:串行数据输出端;CLK:移位脉冲输入端;V+:正电源;GND:地。

SEGDpSEGASEGCSEGDDOUTDINDIG0DIG4GNDDIG6DIG2DIG3DIG7GNDDIG5DIG1LOAD CLKSEGFSEGBSEGGISETSEGEV+图1 MAX7219引脚图1.3 MAX7219内部组成结构MAX7219组成如图2所示。

max7219应用

max7219应用

显示电路的核心部件是MAX7219串行显示驱动器,它采用共阴极动态扫描方式,每片可以驱动8位LED。

MAX7219最高时钟速率为10MHz,扫描速率为1300Hz(V+=5V,扫描八位),可以关闭显示来降低功耗。

MAX7219可以级联使用,驱动多于8位的LED,在智能变送器和智能执行器上各用一片已经足够。

MAX7219的数据16位为一组,D15~D12取任意值,D11~D8为寄存器地址,D7~D0为寄存器数据,高位数据先写入。

它有13个功能寄存器,其中8个数据寄存器,5个控制寄存器,各寄存器功能如表4-9所示。

时钟、数据和数据锁存信号。

用单片机的串行口也可和它相连接,这时待发送的数据高位、低位要换位后写入发送缓存器SBUF,以适应MAX7219的数据输出方式。

在变送器和执行器中都只用了4位显示,详细接线见附图1或附图2的相应部分。

表4-9 MAX7219功能寄存器说明注:亮度控制可外接电阻Rset调节,Rset最小为9.53K MAX7219的初始化及显示子程序入口:地址放在A,数据放在R4;初始化部分INIL: mov a,#0bh ;显示4位mov R4,#03acall WRITEmov a,#09h ;BCD码方式mov r4,#0ffhacall WRITEmov a,#0ch ;开显示mov r4,#01hacall WRITEWRITE:mov r2,#08h ;写入(显示)子程序clr P2.1 ;load=0loop1: rlc a ;发送地址clr P2.2 ;clk=0mov P2.0,C ;写入setb P2.2 ;clk=1djnz r2,loop1mov a,r4 ;发送数据mov r2,#08hloop2:rlc amov P2.0,Cclr P2.2setb P2.2djnz r2,loop2setb P2.1 ;load=1,数据锁存ret。

MAX7219与51单片机的驳接

MAX7219与51单片机的驳接

MAX7219与51单片机的驳接
杨鸣;毛婕;冯文利
【期刊名称】《现代电子技术》
【年(卷),期】2004(027)004
【摘要】MAX7219是一个高集成化的串行输入/输出的共阴极LED驱动显示器.文章对MAX7219的管脚功能和操作指令做了详细介绍.给出了与51系列单片机的两种连接方式及参考程序和操作方式.最后介绍了MAX7219的多片级联.【总页数】3页(P90-92)
【作者】杨鸣;毛婕;冯文利
【作者单位】郑州自动化研究所,河南,郑州,450006;郑州自动化研究所,河南,郑州,450006;郑州自动化研究所,河南,郑州,450006
【正文语种】中文
【中图分类】TP368.1
【相关文献】
1.51单片机和MAX7219的接口及编程应用 [J], 刘爱娟;王青
2.51单片机和MAX7219的接口及编程应用 [J], 刘爱娟;王青
3.用MCS—51单片机串行口对MAX7219的控制 [J], 玉瑞
4.低压带电驳接装置的研制 [J], 方俊俊
5.LED显示驱动器MAX7219与MCS-51单片机接口及应用 [J], 杨志峰
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档