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();	
    }

	}

	

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/509388.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文搞定防盗链设计

大家好&#xff0c;我是蓝胖子&#xff0c;在涉及到图片或者视频链接时&#xff0c;通常都会提到防盗链&#xff0c;这一节我将会从防盗链的含义到落地&#xff0c;向大家展示如何设计资源的防盗链。 防盗链的含义与作用 防盗链&#xff0c;顾名思义&#xff0c;是为了防止资…

16_嵌入式文件系统选择

嵌入式文件系统选择 在进行嵌入式系统开发过程中&#xff0c;文件系统的选择和制作与硬件条件息息相关。根据硬件&#xff08;Flash 或 RAM&#xff09;的特性来指定相应的文件系统&#xff0c;能够充分利用硬件资源及提高系统效率。因为目前大部分的嵌入式文件系统都是建立在 …

【技巧】Leetcode 287. 寻找重复数【中等】

寻找重复数 给定一个包含 n 1 个整数的数组 nums &#xff0c;其数字都在 [1, n] 范围内&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 &#xff0c;返回 这个重复的数 。 你设计的解决方案必须 不修改 数组…

2013年认证杯SPSSPRO杯数学建模C题(第二阶段)公路运输业对于国内生产总值的影响分析全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 C题 公路运输业对于国内生产总值的影响分析 原题再现&#xff1a; 交通运输作为国民经济的载体&#xff0c;沟通生产和消费&#xff0c;在经济发展中扮演着极其重要的角色。纵观几百年来交通运输与经济发展的相互关系&#xff0c;生产水平越高…

中国90米分辨率可蚀性因子K数据

土壤可蚀性因子&#xff08;K&#xff09;数据&#xff0c;基于多种土壤属性数据计算&#xff0c;所用数据包括土壤黏粒含量&#xff08;%&#xff09;、粉粒含量&#xff08;%&#xff09;、砂粒含量&#xff08;%&#xff09;、土壤有机碳含量&#xff08;g/kg&#xff09;、…

计算机组成原理1:计算机系统概述

此系列介绍计算机的组成原理&#xff0c;参考书&#xff1a;《计算机组成原理考研复习指导》(王道论坛组编)。 1.计算机发展史 1.1 计算机发展 计算机变化 第一代计算机 ( 1946 − 1957 ) (1946-1957) (1946−1957)&#xff1a;电子管时代。 逻辑元件采用电子管&#xff1b;使…

LVS、HAProxy

集群&#xff1a;将很多个机器组织到一起&#xff0c;作为一个整体对外提供服务。集群在扩展性、性能方面都可以做到很灵活。集群的分类&#xff1a;负载均衡集群&#xff1a;Load Balance。高可用集群&#xff1a;High Available。高性能集群&#xff1a;High Performance Com…

酷开系统覆盖尽可能多的用户,助力酷开科技走在数字化营销前面

用户画像可看作企业应用大数据的根基&#xff0c;是定向广告投放与个性化推荐的前置条件&#xff0c;为数据驱动运营奠定了基础。酷开系统家庭激活终端超过6000万&#xff0c;针对全量用户进行分析&#xff0c;覆盖尽可能多的用户&#xff0c;为提升用户画像准确率提供了很好的…

GWO-CNN-BiLSTM多输入回归预测|灰狼群算法优化的卷积-双向长短期神经网络|Matlab

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台编译&…

谷歌翻译示例

概述 项目需要&#xff0c;使用谷歌翻译&#xff0c;前提是得翻墙。 1、获取所有语言和其对应编码如下所示&#xff1a; {auto: 检测语言,sq: 阿尔巴尼亚语,ar: 阿拉伯语,am: 阿姆哈拉语,as: 阿萨姆语,az: 阿塞拜疆语,ee: 埃维语,ay: 艾马拉语,ga: 爱尔兰语,et: 爱沙尼亚语,or…

主站设备通过Modbus转Profinet网关与湿度传感器通讯配置

Modbus转Profinet网关&#xff08;XD-MDPN100&#xff09;可以实现不同协议设备通讯&#xff0c;有些现场需要实时监测环境参数&#xff0c;但大由于当时环境仪表设备不能达到直连效果&#xff0c;通过Modbus转Profinet网关&#xff0c;湿度传感器的数据可以被准确、可靠地传输…

三十个中文AI对话网站推荐

目录 写在前面 一、kimi 二、WeexAI 三、Cursor 四、智谱清言 五、讯飞星火 六、通义千问 七、文心一言 八、混元 九、豆包AI 十、其它 写在前面 总的来说&#xff0c;现在国内能用到的大模型类产品分国产和套壳两种。对于中文任务&#xff0c;这些大模型功能都大同…

文献学习-25-综合学习和适应性教学:用于病理性胶质瘤分级的多模态知识蒸馏

Comprehensive learning and adaptive teaching: Distilling multi-modal knowledge for pathological glioma grading Authors: Xiaohan Xing , Meilu Zhu , Zhen Chen , Yixuan Yuan Source: Medical Image Analysis 91 (2024) 102990 Key words: 知识蒸馏、模态缺失、胶质瘤…

C++ vector 动态 向量/数组

文章目录 【 1. vector 的声明与初始化 】1.1 vector 的声明1.2 vector 的初始化1.2.1 构造一个空的 vector1.2.2 指定数量初值的方式初始化 vector1.2.3 迭代器的方式初始化1.2.4 构造一个相同的 vector 【 2. vector 的相关操作 】2.1 插入元素2.1.1 在vector的末尾插入新元素…

ios 之 netty版本swiftNio(socket创建)

SwiftNio 简介 用于高性能协议服务器和客户端的事件驱动、无阻塞的网络应用程序框架。 SwiftNIO是一个跨平台异步事件驱动的网络应用程序框架&#xff0c;用于快速开发可维护的高性能协议服务器和客户端。 这就像Netty&#xff0c;但是为Swift写的。 Xcode引入swiftNio 在实…

【Linux】常见命令

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 常用命令 1. ls2. pwd3. cd4. touch5. cat6. mkdir7. rm8. cp9. mv10. tail11. vim12.…

idea使用docker将Java项目生成镜像并使用

1&#xff1a;开启docker 远程访问 使用 vim 编辑docker服务配置文件 vim /lib/systemd/system/docker.service [Service] Typenotify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not suppor…

2024-04-02 在使用QtRemoteObject 过程中遇到的问题记录

前言 QtRemoteObject 的使用分为静态和动态使用&#xff0c;静态使用需要定义rep文件&#xff0c;相当于通信协议&#xff0c;保证源端和节点端类型的统一。 这些可以参考这两文章&#xff1a; https://zhuanlan.zhihu.com/p/36501814 https://zhuanlan.zhihu.com/p/3710817…

校园圈子系统-论坛,跑腿,地图找伴,二手市场,语音交友,APP小程序H5三端源码交付,支持二开!

2024年最新版推荐一个论坛社区系统 /社区论坛小程序/商城论坛小程序/源码。 带热门,带算法推荐 &#xff0c;低成本上线的&#xff0c;论坛社区小程序源码强大售后&#xff0c;持续更新 功能&#xff1a;小程序授权登陆&#xff0c;支持app双端&#xff0c;小程序&#xff0c;…

qt5-入门-自定义委托-简单例子

参考&#xff1a; Qt 自定义委托_w3cschool https://www.w3cschool.cn/learnroadqt/ov8h1j4z.html C GUI Programming with Qt 4, Second Edition 本地环境&#xff1a; win10专业版&#xff0c;64位&#xff0c;Qt 5.12 理论知识 Qt的model/view架构中&#xff0c;view只是…