TM1650驱动数码管(模拟IIC)

        TM1650可以节省单片机引脚驱动数码管利用时序图写出驱动程序。

void I2CStart(void)//开始信号
{
	CLK_H;
	DIO_H;
	Delay_us(5);
	DIO_L;

}

void I2Cask(void) //ACK信号
{
	u8 timeout = 1;
	CLK_H;
	Delay_us(5);
	CLK_L;
	while((DIO)&&(timeout<=100))
	{
	  timeout++;
	}
	Delay_us(5);
	CLK_L;
}

void I2CStop(void) //停止信号
{
	CLK_H;
	DIO_L;
	Delay_us(5);
	DIO_H;
}

void I2CWrByte(u8 oneByte) //写一个字节高位在前,低位在后
{
	u8 i;
	CLK_L;
	Delay_us(1);
	for(i=0;i<8;i++)
	{
	oneByte = oneByte<<1;
	DIO = CY;
	CLK_L;
	Delay_us(5);
	CLK_H;
	Delay_us(5);
	CLK_L;
	}
}


/****************数码管显示*****************/
void TM1650_Set(u8 add,u8 dat) 
{
//写显存必须从高地址开始写
	I2CStart();
	I2CWrByte(add); //第一个显存地址
	I2Cask();
	I2CWrByte(dat);
	I2Cask();
	I2CStop();
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值