单⽚机数码管显⽰芯⽚MAX7219芯⽚指令详解数码管显⽰芯⽚MAX7219 仿真在⾥
1.max7219芯⽚
各引脚的功能为:
DOUT:串⾏数据输出端,⽤于级连扩展
LOAD:装载数据输⼊
CLK:串⾏时钟输⼊
DIG0~DIG7:8位LED位选线,从共阴极LED中吸⼊电流
多聚甲醛配制直流系统绝缘监测装置SEG A~SEG G DP 7段驱动和⼩数点驱动
ISET: 通过⼀个10k电阻和Vcc相连,设置段电流
2.数据及时序
1.max7219通信⽅式为SPI,16bit 数据格式就是2字节 = 地址 + 数据 。先发⾼位,即先发地址再发数据。16位数据包结构如下图:
2.对AX719串⾏数据以16位包的形式从DIN引脚串⾏输⼈,在CLK的每⼀个上升沿⼀位⾏地送⼊芯⽚
内部16位移位寄存器,⽽不管LOAD脚的状态如何,LOAD脚必须在第16CK上升沿出现的同时或之后,并在下⼀个 CLK上升沿之前变为⾼电平,否则移⼊的数据将丢失。 3.寄存器及指令
下图就是寄存器表地址
5个控制寄存器分别为:译码⽅式,亮度设置,扫描范围(选择扫描位数),停机⽅式,显⽰测试 功能概述
解码模式(指令=X9+hex code)
萝卜切条机
是否⽀持BCD解码
选址方法
亮度设置(指令=XA+hex code)
选择亮度
扫描限制(指令=XB+hex code)
选择使⽤⼏个数码管,数量⼩于等于三个时必须进⾏电流设置
掉电模式 (指令=XC+hex code)纳米网
选择是否掉电
显⽰测试 (指令=XF+hex code)
正常显⽰=0;显⽰测试=1;
4.初始化max7219
//寄存器宏定义
#define DECODE_MODE 0x09 //译码控制寄存器
低温脱硝催化剂#define INTENSITY 0x0A //亮度控制寄存器
#define SCAN_LIMIT 0x0B //扫描界限寄存器
#define SHUT_DOWN 0x0C //掉电模式寄存器
#define DISPLAY_TEST 0x0F //显⽰控制寄存器
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);//设置初始亮度9/32
}