历史上的今天

今天是:2024年11月08日(星期五)

2019年11月08日 | 单片机常用芯片MAX7219驱动

发布者:科技狂人 来源: eefocus关键字:单片机  MAX7219驱动  数码管显示 手机看文章 扫描二维码
随时随地手机看文章

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~DIG7:8位LED位选线,从共阴极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 读写时序说明

MAX7129是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。

       要想与MAX7129通信,首先要先了解MAX7129的控制字。MAX7129的控制字格式如图6。

图6   控制字(即地址及命令字节)

 

如图,工作时,MAX7219规定一次接收16位数据,在接收的16位数据中:D15~D12可以与操作无关,可以任意写入,D11~D8决定所选通的内部寄存器地址,D7~D0为待显示数据或是初始化控制字。在CLK脉冲作用下,DIN的数据以串行方式依次移入内部16位寄存器,然后在一个LOAD上升沿作用下,锁存到内部的寄存器中。注意在接收时,先接收最高位D16,最后是D0,因此,在程序发送时必须先送高位数据,在循环移位。工作时序图见图7。

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

图7  数据读写时序

3 电路原理图

电路原理图

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

 

图8  电路原理图

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

       }

    }

}

典型应用电路:


关键字:单片机  MAX7219驱动  数码管显示 引用地址:单片机常用芯片MAX7219驱动

上一篇:STM8S MAX7219点阵模块驱动芯片程序
下一篇:MAX7219点阵模块 Arduino

推荐阅读

近期,意法半导体(STM)、德州仪器(TI)、瑞萨(Renesas)接连对未来一段时间全球IC市场做出预测,普遍认为需求不振,整体市场情况不太乐观。 作为芯片应用大户,智能手机的销量持续低迷,从统计数据来看,全球智能手机连续四个季度下滑,中国手机市场更是六连跌,DIGITIMES Research发布的大陆市场智能手机AP(应用处理器)报告显示,今年Q4季度国内智能手机...
第二届进博会来了!汇集了服务贸易、科技、汽车医疗器械及医药保健等七大展区,国家展主宾国数量从首届的12个增加到了15个,64个参展国中,新亮相的国家超过三分之一。今年进博会进一步优化现场服务,对会场的固定标识等进行了全方位升级,全面加强综合导览服务力度。20台流利使用中英双语的小笨智能“进宝”机器人,正是负责现场导引的“工作人员”中的一...
从8月份开始,就不断传出关于Redmi Note 9系列新机消息。甚至前不久还出现过新机命名“Note 10”的流言,引发热议,看来大家对千元5G手机的关注度还是相当高的。如今,Redmi Note 9系列确定将于本月中下旬发布,具体参数也得以曝光。Redmi Note 9标准版采用6.53英寸2400*1080分辨率左上角单孔屏,前置1300万像素自拍摄像头,后置4800万像素 “奥利...
我把地址定义都加到.h文件中,使用时只需包含lcd_td35.h即可。能简单实现画点,画线,画矩形,显示图片,显示字符和字符串,显示数字功能。// lcd_td35.h// 2015.12.16#ifndef __LCD_TD35_H__#define __LCD_TD35_H__#define U32 unsigned int#define U16 unsigned short#define S32 int#define S16 short int#define U8 unsigned char#...

史海拾趣

问答坊 | AI 解惑

笔试时候遇到的一个题,高手帮忙解答

Vcc=5V, VoH(min)=3.4V, VoL(max)=0.2V, ViH(min)=2.0V, ViL(max)=0.8V, IiH=0.04ma 问后面的非门要能正确识别前一级送出的信号,R的值最大取多少…

查看全部问答∨

世界著名汽车品牌标识演化历史------标致

标致 Peugeot 法国标致公司在1812年创办于蒙特伯里亚德(Montbeliard),得名于家族祖先让·贾克斯·标致(Jean-Jaques Peugeot,1699~1741)。让·皮埃尔(Jean-Pierre)和让·弗雷德里克(Jean-Frederic)兄弟俩把他们的 ...…

查看全部问答∨

车载电源逆变器电路

一 市场上常见款式车载逆变器产品的主要指标     输入电压:DC 10V~14.5V;输出电压:AC 200V~220V±10%;输出频率:50Hz±5%;输出功率:70W ~150W;转换效率:大于85%;逆变工作频率:30kHz~50kHz。 二 常见车载逆变器产品的 ...…

查看全部问答∨

电源完整性(PI)的详细说明

电源完整性(PI)的详细说明…

查看全部问答∨

protel99se 三个小问:请勿见笑

1.在用protel99绘制三极管(或其它分立元件)符号时,需不需要加上含电气热点的PIN脚啊?还是只要画好原理图符号就可以了呢(直接可以调用的了)? 2.采用SMD表贴元件时,是不是只要在SCH编辑器中将元件的封装设定为贴片类型(如0603,0402)即可?生成PCB ...…

查看全部问答∨

QT:multiple definition of错误????????

源码:tem.h中定义Tem类 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/select.h ...…

查看全部问答∨

计数器小问题求救!!!

TIM时钟选择: ●     1> 内部时钟CK_INT ●     2> 外部时钟模式1:外部输入脚(Tix) ●     3> 外部时钟模式2:外部触发输入(ETR) ●     4> ...…

查看全部问答∨

我晕死,STM8S103K3T6抗干扰能力巨差无比

                                 手头上一个项目用STM8S103K3T6,程序调完了,无聊的时候用手摸摸芯片的IO口,发现凡是输入口,摸多几次芯片必复位(最惨 ...…

查看全部问答∨

请问刘工:i2c程序中设置I/O?

TI的文档通过设置 P1DIR 来改变SCL 和SDA的高低, 为何不把P1设为输出,再通过改变P1OUT来给SCL,SDA 置0 或 1 呢??…

查看全部问答∨

徒步者探险装备

制作一款大小约为5*5cm的探险手持机,可挂在腰间。拥有的功能:电子指南针、计步器、大气压检测(高度度量)、温度计、野外照明、充电和电量检测功能等。TFT彩色液晶翻页显示测量数据,仅用两个按键却能提供快捷操作。 [ 本帖最后由 drjloveyou ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved