TM1650芯片驱动四位数码管(含部分代码)

TM1650芯片驱动四位数码管

在这里插入图片描述
SCL:IIC的时钟线
SDA:IIC的数据线
DIGx:每个数码管的总开关,不开,怎么搞也不会亮滴,数码管1、2、3、4
A/K11~G/K17/DP/KP:因为只用了下数码管,所以建议不用键盘扫描的可以简化成如下:
A~G + DP:也就是一个数码管上的八个段。

二、IIC(Inter-Integrated Circuit BUS)结构解析

    1、IIC协议介绍
    I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。 

    软件IIC:软件IIC通信指的是用单片机的两个I/O端口模拟出来的IIC,用软件控制管脚状态以模拟I2C通信波形,软件模拟寄存器的工作方式。

    硬件IIC:一块硬件电路,硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,硬件(固件)I2C是直接调用内部寄存器进行配置。

在这里插入图片描述
通讯协议
TM1650 采用2线串行传输协议通讯。
1:开始信号(START)/结束信号(STOP)
开始信号:保持SCL为“1”电平,SDA从“1”跳“0”,认为是开始信号,
如(图3)A段;
结束信号:保持SCL为“1”电平,SDA从“0”跳“1”,认为是结束信号,
如(图3)E段;
2:ACK信号
如果本次通讯正常,芯片在串行通讯的第8个时钟下降沿后,TM1650主动把SDA拉低。直到检
测到SCL来了上升沿,SDA释放为输入状态(对芯片而言),如(图3)D段。
3: 写“1”和写“0”。
写“1”:保持 SDA 为“1”电平,SCL 从“0”跳到“1”,再从“1”跳到“0”,则认为是写入“1”
如(图3)B段。
写“0”:保持 SDA 为“0”电平,SCL 从“0”跳到“1”,再从“1”跳到“0”,则认为是写入“0“
在这里插入图片描述
一个字节数据传输格式
一个字节数据的传输格式如图4,数据发送时MSB在前,LSB在后。微处理器的数据通过两线总线
接口和TM1650通信,在输入数据时当SCL是高电平时,SDA上的信号必须保持不变;只有SCL上的
时钟信号为低电平时,SDA上的信号才能改变。数据输入的开始条件是SCL为高电平时,SDA由高变
低;结束条件是SCL为高时,SDA由低电平变为高电平。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开始/停止代码:

void TM1650_start(void)    //开始信号
{    
  TM1650_SDA_OUT = 1;
	TM1650_SCL = 1;
	TM1650_SDA_IN = 1;
	Delay4us();		
	TM1650_SDA_IN = 0;
	Delay4us();		
  TM1650_SCL = 1;
  Delay4us();		
}


void TM1650_stop(void)    //停止信号
{
    TM1650_SDA_OUT = 1;
    TM1650_SCL = 1;
    TM1650_SDA_IN = 0;
    Delay4us();		
		TM1650_SCL = 1;
    TM1650_SDA_IN = 1;
    Delay4us();		
    
}

发送数据


void TM1650_send(u08t data)    //传输数据
{
    TM1650_SDA_OUT = 1;
    TM1650_SCL = 0;
    TM1650_SDA_IN = 0;
    Delay4us();	
    for(s32t i=7; i>=0; i--)
    {
        if(data&(1<<i))    //判断SDA为高电平还是低电平,高位到低位操作
            TM1650_SDA_IN = 1;    
        else
            TM1650_SDA_IN = 0;
        Delay4us();	
        TM1650_SCL = 1;
        Delay4us();	
        TM1650_SCL = 0;
        Delay4us();	
    }

	}

	

我们一些喜欢嵌入式的朋友一起建立的一个技术交流平台,本着大家一起互相学习的心态而建立,不太成熟,希望志同道合的朋友一起来。

在这里插入图片描述

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就爱吃夜宵

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值