历史上的今天
今天是:2025年01月20日(星期一)
2018年01月20日 | max7219驱动4个数码管连接图
2018-01-20 来源:互联网
MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7段(包括小数点共8段)数字LED、LED条线图形显示器、或64个分立的LED发光二级管。该芯片具有10MHz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置所有LED的段电流。它的操作很简单,MCU只需通过模拟SPI三线接口就可以将相关的指令写入MAX7219的内部指令和数据寄存器,同时它还允许用户选择多种译码方式和译码位。此外它还支持多片7219串联方式,这样MCU就可以通过3根线(即串行数据线、串行时钟线和芯片选通线)控制更多的数码管显示。
2、MAX7219功能介绍
1.多种译码方式和译码位
2.支持多片7219串联
3.支持亮度调节
4.支持扫描范围
引脚功能:
DIN:串行数据输入端
DOUT:串行数据输出端,用于级连扩展
LOAD:装载数据输入
CLK:串行时钟输入
DIG0~DIG7:8位LED位选线,从共阴极LED中吸入电流
SEGA~SEGGDP7段驱动和小数点驱动
ISET:通过一个10k电阻和Vcc相连,设置段电流
max7219驱动8个数码管源程序:
#define Addr_Digit1 0x02
#define Addr_Digit2 0x03
#define Addr_Digit3 0x04
#define Addr_Digit4 0x05
#define Addr_Digit5 0x06
#define Addr_Digit6 0x07
#define Addr_Digit7 0x08
#define Addr_Decode_Mode 0x09 //译码模式寄存器地址
#define Addr_Intensity 0x0a //亮度控制寄存器地址(max7221)
#define Addr_Scan_Limit 0x0b //扫描控制寄存器地址
#define Addr_Shutdowm 0x0c //掉电模式寄存器地址
#define Addr_Display_Test 0x0f //显示检测寄存器地址
sbit Max7219_Din=P1^5;
sbit Max7219_Load=P1^6;
sbit Max7219_Clk=P1^7;
uchar code max7219_7led_code[18]={0x7e,0x30,0x6d,0x79, //0-1-2-3
0x33,0x5b,0x5f,0x70, //4-5-6-7
0x7f,0x7b,0x01,0x4e, //8-9-“-”-E
0x37,0x0e,0x67,0x00}; //H-L-P-空白
void wr_max7219(uchar addr,uchar dat)
{
uchar i;
Max7219_Load=0;
Max7219_Clk=0;
for(i=0;i《8;i++)
{
Max7219_Din = (bit)(addr&0x80);
addr=addr《《1;
Max7219_Clk=1;
Max7219_Clk=0;
}
for(i=0;i《8;i++)
{
Max7219_Din=(bit)(dat&0x80);
dat=dat《《1;
Max7219_Clk=1;
Max7219_Clk=0;
}
Max7219_Load=1;
Max7219_Load=0;
}
main()
{
uchar j;
for(j=200;j》0;j--);
wr_max7219(Addr_Shutdowm,0x01);
wr_max7219(Addr_Scan_Limit,0x07);
wr_max7219(Addr_Intensity,0x0f);
wr_max7219(Addr_Decode_Mode,0x00);
wr_max7219(Addr_Digit0,max7219_7led_code[1]);
wr_max7219(Addr_Digit1,max7219_7led_code[2]);
wr_max7219(Addr_Digit2,max7219_7led_code[3]);
wr_max7219(Addr_Digit3,max7219_7led_code[4]);
wr_max7219(Addr_Digit4,max7219_7led_code[5]);
wr_max7219(Addr_Digit5,max7219_7led_code[6]);
wr_max7219(Addr_Digit6,max7219_7led_code[7]);
wr_max7219(Addr_Digit7,max7219_7led_code[8]);
P0=0x00;
// wr_max7219(Addr_Display_Test,0x01); //测试
while(1);
}
史海拾趣
|
一、前言 当前视频监控系统正逐步由模拟化走向数字化。随着视频压缩技术和网络技术的发展,开发新一代基于计算机网络和多媒体MPEG-4压缩算法的视频监控系统已成为整个行业技术发展的主要方向之一。本文提出并研究设计了一种分布式网络视频监 ...… 查看全部问答> |
|
TMS320C5515 实现业界最低功耗,远远超过同类竞争产品 德州仪器 (TI) TMS320C5515/14/05/04 是 C5000 平台旗下的最新器件之一,是业界最低功耗的 16 位数字信号处理 (DSP) 平台,与前代器件相比,性能提升 20%。C5515是 ...… 查看全部问答> |
|
电烙铁是电子组装和封装上必备的重要工具,其质量和操作工艺对产品质量和生产效率有较大的影响。 1. 电烙铁的构造、分类 1.1 电烙铁是手工施焊的主要工具。是一种电热器件,通电后产生高温,可使焊锡熔化,利用它将电子元件焊接。 ...… 查看全部问答> |
|
STM32bxCAN设置Filter指向不同FIFO不成功,请指点! 贴代码: Filter代码: //CAN过滤器设置 CAN_FilterInitStructure.CAN_FilterNumber=0; CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask; ...… 查看全部问答> |
|
最近看了一篇文章,上面讲在FPGA时,最好要所有过程块都要系统时钟去触发。举个例子:例如数码管动态显示时,选通信号端,一一般频率要大于50HZ,这样人才感觉不到闪烁的效果!如果我用计数器分出50hZ的信号,作为另一个过程块的触发信号!与所有过 ...… 查看全部问答> |




