首页 > 编程知识 正文

led驱动芯片引脚功能,cl1504IR驱动led电路图

时间:2023-05-05 01:27:10 阅读:120506 作者:378

我最近从TB买了很多各种各样的模块玩。 其中有用MAX7219芯片设计的8X8点模块。 于是去找这个芯片的资料,留下学习笔记。 目录概要MAX7219概要MAX7219插针图功能说明MAX7219内部结构MAX7219寄存器解码方式亮度设定扫描极限停止模式显示测试APP应用电路例自己制作的驱动程序(C51 ) () () ) () ) ) ) )

概要

MAX7219是美国MAXIM公司推出的多位LED显示驱动器,串行输入/输出共阴极显示驱动器,http://www.Sina.com 它可以直接与单片机传输数据,包括硬件动态扫描电路、BCD解码器、分段驱动器和位驱动器。 它还包含一个8X8位静态RAM,用于存储8个数字的显示数据。

MAX7219概述MAX7219的MCU引线为DIN、CLK、LOAD/CS根,采用16位数据的串行移位接收方式。 在CLK的每个上升沿将1位的数据移动到MAX7219内部的移位寄存器,在每个下降沿从DOUT侧输出数据。 16位数据的所有填充完成后,在LOAD端子信号的上升沿将16位数据加载到MAX7219内的相应位置,在MAX7219内部的动态扫描显示控制电路的作用下实现动态显示。

3358www.Sina.com/与MAX7219几乎相同,可视为MAX7219的3线。 与MAX7219相比:

1. MAX7221的分段驱动有回流限制可减少EMI;

2.http://与www.Sina.com/SPI、QSPI和MICROWIRE的兼容性

也就是说,MAX7219对EMI不敏感,所以MAX7221更可靠。

MAX7219针图MAX7219是24针芯片

端子功能说明v :正电源GND :接地CLK :移位脉冲输入端子DIN :串行数据输入端子DOUT :串行数据输出端子LOAD :负载数据信号输入端子DIG0~DIG7:LED位线SEGA~SEGP、SEGDp :

MAX7219内部结构

数据格式:

16位串行数据通过升级版输入到芯片内部。

D15~D12无效位

D11~D8 MAX7221位,决定发送数据的寄存器的地址

D7~D0 MAX7221位是导入MAX7219内寄存器的数据

高位在前的情况下,串行数据向DIN输入16位分组,并且无论LOAD/CS处于什么状态,数据都会在时钟的上升沿移动到内部的16位移位寄存器中。

对于地址,无论数据输入和输出如何,LOAD/CS都必须处于低电平,然后数据在LOAD/CS的启动时加载到内部寄存器中。

L0AD/CS端子必须与第16个时钟的上升沿同时或之后,在下一个时钟的上升沿之前处于高电平。 否则,为数据。 DIN侧的数据传输到移位寄存器是在16. 5个时钟周期后出现在DOUT侧,并在时钟下降沿输出数据。

硬件亮度调整:

MAX7219通过v和ISET之间的外部电阻控制亮度。 (MAX7219的段驱动电流峰值一般是ISET引脚上电流的100倍)该电阻的最小值为9.53K,段电流峰值为40mA。

MAX7219寄存器由于浪费了地址的前4位,因此默认为0H

解码方式解码方式有MAX7219MAX7221两种

8个LED解码方式由解码模式寄存器(09H )的8位是高电平还是低电平决定

3358 www.Sina.com/http://www.Sina.com /亮度设置

亮度有16个等级,由0AH低位4位数据将会丢失的16个值设定

MAX7219的最低亮度为1/32,MAX7221为1/16,但两者的移位间隔均为1/16

扫描极限MAX7219可以选择要扫描的LED的数量,其设置为0BH后3位BCD译码的8个值

停止模式0CH最低D0为低电平时进入停止模式,扫描振荡器截止,所有段的电流源被引向地,所有位驱动被引向v,显示器停止显示,但不译码

>,且掉电模式下是可以编写驱动的。停机模式可以节省电源。

显示测试

  当0FH的最低位 D0 为高电平时进入显示测试模式,所有LED以最大亮度(31/32)显示。停机模式下不影响进入显示测试模式,因此可以用停机模式和显示测试来制作闪烁效果。

应用电路示例



自己编写的驱动程序(C51) /********************************************************************************** * 程序名: MAX7219驱动程序 * 作者: DaveoCKII * 日期: 2020.2.27 * 版本: STC12C5A60S2 **********************************************************************************/ #ifndef _MAX7219_H_#define _MAX7219_H_#include <STC12C5A60S3.H>//--------------------------------------------------------------------------------//sbit DIN = P1^3; // 数据线sbit CS = P1^2; // 片选线sbit CLK = P1^1; // 时钟线unsigned char LED_CC[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; // 共阴LED显示数据 '0~F'unsigned char LED_CA[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; // 共阳LED显示数据 '0~F'//--------------------------------------------------------------------------------//void Write7219(unsigned char addr, unsigned char Data);// MAX7219数据写入函数void Init7219(unsigned char work_state, unsigned char test_state, unsigned char decode_nums,// MAX7219初始化设置 unsigned char display_nums, unsigned char Luminance); // 工作模式、测试模式、解码模式、扫描模式、亮度//--------------------------------------------------------------------------------//void Write7219(unsigned char addr, unsigned char dat) {unsigned char i;CS=0;// 拉低CS选中芯片for(i=0; i<8; i++) // 传输地址 {CLK=0;// 拉低时钟线DIN=Data & 0x80; // 数据格式:高位在前addr<<=1;CLK=1;// 拉高时钟线,写入数据}for(i=0; i<8; i++) // 传输数据 {CLK=0; DIN=dat & 0x80;dat<<=1;CLK=1;}CS=1;// 数据锁入}void Init7219(unsigned char work_state, unsigned char test_state, unsigned char decode_nums, unsigned char display_nums, unsigned char Luminance) {Write7219(0X0C,work_state); // 工作模式选择 1:正常工作 0:掉电模式Write7219(0X0F,test_state); // 测试模式开关 1:测试模式 0:正常工作Write7219(0X09,decode_nums);// 解码模式选择 8个位分别控制8个LED是否解码,'1'为BCD解码,'0'为不解码Write7219(0X0B,display_nums);// 扫描方式选择 0-7 设置扫描1-8个LEDWrite7219(0X0A,Luminance); // 初始亮度设置 0-15设置1-16档亮度}//--------------------------------------------------------------------------------//#endif

DaveoCKII
2020.2.27

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。