一、概述
TM1629A是一种LED(发光二极管显示器)驱动控制专用IC,内部集成有MCU数字接口、数据锁
存器、LED驱动等电路。本产品质量可靠、稳定性好、抗干扰能力强。主要适用于家电设备(智能
热水器、微波炉、洗衣机、空调、电磁炉)、机顶盒、电子称、智能电表等数码管或LED显示设备。
二、使用步骤
1.指令说明:
2.显示寄存器地址:
3.串行数据传输格式:
4.应用时串行数据的传输:
一般地址自增加模式就可以。
5. 代码
首先宏定义,GPIO口根据实际的口自己定义
#define _DIO1(x) (P32 =(x))
#define _CLK1(x) (P31 =(x))
#define _STB1(x) (P30 =(x))
写入数据,8个bit
void TM1629A1_data(uint8_t dat)
{
uint8_t i=0;
for(i=0;i<8;i++)
{
// if(dat & 0x01)
// {
// _DIO1(1);
// }
// else
// {
// _DIO1(0);
// }
_DIO1((dat & 0x01)==0x01);
_CLK1(1);
_CLK1(0);
dat>>=1;
}
}
写命令的函数,这里写命令和写数据的函数是分开的
void TM1629A1_order(uint8_t datas)
{
_STB1(0);
TM1629A1_data(datas);
_STB1(1);
}
然后地址自增加显示函数,这里就写全显吧
void TM1629A1_show(void)
{
uint16_t i=0;
TM1629A1_order(0x40);//设置地址增加模式
_STB1(0);
TM1629A1_data(0xC0);//设置首地址
for(i=0;i<16;i++)
{
TM1629A1_data(0xFF);//全显
}
_STB1(1);
TM1629A1_order(0x8F);//设置亮度最大
}
再看
清零就等于全不亮嘛
void TM1629A1_init(void)
{
uint16_t i=0;
TM1629A1_order(0x40);//设置地址增加模式
_STB1(0);
TM1629A1_data(0xC0);//设置首地址
for(i=0;i<16;i++)
{
TM1629A1_data(0x00);//清屏
}
_STB1(1);
TM1629A1_order(0x80);//设置亮度
}
总结
如有不足请见谅