文章目录

  • 自言自语
  • 一、芯片图
  • 二、通讯协议
    • 开始信号
    • 终止信号
    • 发送一字节数据
    • 获取TM1650的应答
  • 三、TM1650的各个功能
    • 数码管显示
    • 数码管关闭
    • 数码管显示数字

自言自语

今天上班被丢了块4位数码管过来,还有一份驱动数码管的芯片资料。还好只有十几页,哈哈哈。
大致浏览下手册,了解到这个芯片叫TM1650,然后是使用模拟IIC协议的。那也就是说,只需要SDA和SCL两条线就能驱动4位数码管!!!
想想好像比那种74HC595节省IO资源多了。所以记录下,哈哈哈~

一、芯片图


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

下图是本人瞎画图,逻辑是这个逻辑,但是段和字母是我自己随性的哈。

二、通讯协议

TM1650采用的是IIC协议。使用SDA、SCL两条总线。

开始信号

保持SCL、SDA两条总线在高电平,这时候两条总线是在喝茶没事干滴。要让人家干活肯定得确定人家没事干啦。
然后SCL保持住高电平,SCL变成低电平,也就是SDA产生下降沿。这时候,起始信号就产生了。
当然啦,我们跟着要将SCL拉低,钳住总线,这样才能占住这份工,才能专心工作。因为前面说了,高电平人家在喝茶。

终止信号

在SCL保持高电平的时候,SDA先是低电平,然后拉高,也就是SDA产生上升沿,这时候,终止信号就产生了。
SCL、SDA都是高电平,就表示活干完了,两人继续喝茶没事干,就像临时工,哈哈哈~

发送一字节数据

IIC数据都是一位一位发送的,每一位数据都会有两个阶段:想清楚自己是个啥和确定自己是个啥。
在SCL低电平的时候,SDA的数据是可以改变的,也就是可以是1也可以是0,先想清楚自己是1还是0;
在SCL高电平的时候,SDA的数据是稳定的,是1就是1,是0就是0,也就是确定自己是个啥,不能改了。
之后,就会顺着SDA总线自动发送出去,追都追不回来。
TM1650的数据是高位先发送,也就是说0x90 — 1001 0010,先发送的是高位的1,而不是低位的0.
至于IIC协议是不是都这样,没记,所以不乱说。

发送一字节数据的话,就是发8位数据,写个for循环,将一字节数据左移>>加与&操作凑成个函数。

获取TM1650的应答

你跟人家聊天,不是舔狗的那种,肯定是你找人家说话,人家愿意回你,才能接着聊下一个话题啦。不然的话,哥也是有脾气的,不聊了,结束话题。
每次主机发送一字节数据,都会需要TM1650回应一个应答,主机接收到了,才会接着往下发下一个字节。
也就是说,每第9个数据,是用来给TM1650回应一个应答位的。
0就是收到了,1就是没收到,发送失败,没得玩。
当SCL第9个时钟为低电平时,TM1650如果接收到数据,就会将SDA抢过来,发一个低电平给主机,否则就是高电平。

三、TM1650的各个功能

数据命令设置:0x48,这个是告诉TM1650,我们要用点亮数码管的功能,而不是按键扫描的功能
显示命令设置:

这里实际是一个字节数据,只是不同位部分代表不同功能。
bit[6:4]:设置数码管亮度,注意,000是最亮哦。
bit[3]:设置要不要显示小数点
bit[0]:是不是要开启数码管的显示

数码管显示

比如说,8级亮度,不显示小数点,那就是0x05
起始信号 — 发送数据0x48 — 判断丛机应答 — 发送 数据0x05 — 判断丛机应答 — 终止信号
这样,数码管就打开显示了。
打开之后,在后面显示数字的时候,就不用重复发送数据0x48了,因为我们已经选好了数码管功能。

亮度和显示方式可以做成枚举,清晰,而且多个数据占一个地方,很节省空间,多爽~

数码管关闭

起始信号 — 发送数据0x48 — 判断丛机应答 — 发送 数据0x00 — 判断丛机应答 — 终止信号
这样,数码管就关闭显示了。

数码管显示数字

我们要显示数字,首先得告诉TM1650,显示的是哪个数码管的数字,下面的数据就对应好了哪个数码管:

然后我们就可以显示数字了,一个数据8个位,刚好对应8个段,1就是亮,0就是灭。
我的话,因为分不清哪个位对那个段,哈哈哈,所以我是循环按位点亮来理清哪个位对哪个段的。

比如点亮数码1显示8,那就是0x68,假设0x7f是8,哈哈哈,因为还有个位是小数点。
那就是:
起始信号 — 发送数据0x68 — 判断丛机应答 — 发送 数据0x7f — 判断丛机应答 — 终止信号

然后,顺利的话,就会在数码管1亮起一个8。

将0~9对应的值,做成一个数组,通过数组下标确定就比较方便了。

之后就可以将其完善成一个个小功能,用来显示数字、调节亮度、切换小数点、数码管切换了。

两条线控制4位数码管,很不错的设计~

TM1650芯片驱动四位数码管相关推荐

  1. MicroPython-On-ESP8266——数码管的使用,2片HC595驱动四位数码管

    MicroPython-On-ESP8266--数码管的使用,2片HC595驱动四位数码管 1. 背景 前面在使用四位数码管时,需要用来12个GPIO接口,结果咱micropython能驱动的esp8 ...

  2. 74HC595驱动四位数码管

    74HC595驱动四位数码管 数码管编码 出处 硬件原理图 出处 驱动程序 出处 1.数码管编码介绍 它每一段是一个发光二极管,排成一个"日"字形.通过控制某几段发光二极管的发光来 ...

  3. Arduino Uno驱动四位数码管

    Arduino Uno驱动四位数码管 我用的是 四位共阳极数码管 型号是5461BS-1数码管 接线方法 UNO引脚 数据码 3 1 4 2 5 3 6 4 7 A 8 B 9 C 10 D 11 E ...

  4. 树莓派模块化编程之TM1637驱动四位数码管

    一.驱动TM1637的时序图 二.代码实现 #encoding:utf-8 import RPi.GPIO as GPIO import time GPIO.setwarnings(False) GP ...

  5. 74HC595/四位按键 驱动四位数码管

    一.主要元器件和原理 GD32F303RCT6 74HC595 共阳数码管 按键(图片数码管名字有误) 风中凌乱的笔记: A1A2A3A4下拉工作模式.给A1A2A3A4一个低电平.当abcdefg来 ...

  6. STM32 经过TM1637驱动四位数码管

    产品简介 代码 TM1637.H ```c#ifndef __TM1637_H #define __TM1637_H #include "sys.h"#define GPIO_CL ...

  7. 国产航顺HK32F030M:TM1624四位数码管驱动显示

    1. 什么是数码管? 一位LED数码管的实物外形如图所示,它将a.b.c.d.e.f.g.dp共8个LED排成图示的 "8." 字形,通过让a.b.c.d.e.f.g不同的段发光来 ...

  8. TM1637芯片驱动数码管 – play with TM1637 seven segment display driver

    因为一个项目要使用到数码管,所以今天研究了一下TM1637这款数码管驱动芯片,在这里做个记录,方便以后使用时参考. 最初以为芯片是I2C通信,想将几块不同的芯片挂在同一个I2C总线上,然后开始了研究. ...

  9. Arduino基础入门篇17—四位数码管的驱动

    本篇介绍四位数码管的使用,通过数码管库驱动四位数码管从0开始累加显示数字. 1. 四位数码管介绍 根据实际需要,把多个一位数码管封装在一起就成了多位数码管.常见的有两位.三位.四位.五位.六位等. 数 ...

最新文章

  1. javaSocket与C通信
  2. 全球及中国现金自动化(管理)行业运作模式与前景趋势展望报告2022版
  3. extJs相关名字解释
  4. 3A公司年薪30万建模师总结:怎么做才能学好3D建模?
  5. 乐华网上阅卷系统服务器地址,乐华网上阅卷系统
  6. html中怎么给网页添加音乐播放器,怎么给网站或网页添加音乐
  7. Google Analytics(分析)网址构建器
  8. Unity 贴图自动匹配材质工具 贴图自动添加到材质球工具 材质球匹配贴图工具 Substance Painter制作的贴图自动匹配材质球工具
  9. Win7连接蓝牙4.0鼠标
  10. 分支定界法求解整数规划
  11. 今日股市板块利好早知道,全球科技巨头聚齐联手保护云数据
  12. java实现微信二维码支付
  13. #新学期,新FLAG#飞翔的小野猪
  14. 虚无世界java路_[AoA3]虚无世界3 (Advent of Ascension 3)
  15. workman php 视频,利用workerman实现webrtc实时音视频通话
  16. Unity初级案例-愤怒的小鸟:六:17把粒子系统显示在UI之前+18让星星一颗一颗的显示+19添加暂停动画
  17. php 浏览器打开excel文件夹里,php网页显示excel表格数据-phpexcel 读取excel里的数据并在页面显示出来...
  18. RIGOL DS1102D示波器说明及纹波、上电脉冲、时序测试
  19. Java小型项目:购物车小程序
  20. 量子计算机算爱情,量子纠缠或许才是世间最伟大的爱情

热门文章

  1. aspectjweaver.jar+ aopalliance.jar+mchange-commons-java.jar+cglib.jar官网下载
  2. 7-20 设计一个People类 (20 分)
  3. adb不是内部或外部命令,AndroidStudio中ADB命令不能用的问题
  4. Signatures-based、Anomaly-based、Specification-based三种入侵检测方法的简介
  5. nodejs+vue基于决策树算法的大学生就业预测系统
  6. SQL Server 代理 显示异常,未开启
  7. 软件开发的过程中,这些文档你都用到了吗?
  8. 我的PHP爬虫实现一页式学习工具 : 我的超级文档查看利器 把文档所有页面当做一个页面输出 一直pagedown就可以快速学习 关键词完整全文搜索...
  9. linux 内核链表
  10. 员工转正申请书_员工转正申请书简短的