TM1629A驱动代码

一、概述

   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);//设置亮度
}


总结

如有不足请见谅

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值