首页 > 其他分享 >TM1652入门学习手册

TM1652入门学习手册

时间:2023-05-16 21:47:34浏览次数:33  
标签:显示 tm1652 入门 send 手册 GPIO TM1652 data

TM1652入门学习手册

1. TM1650概述

​ TM1652 是一款LED(发光二极管、数码管、点阵屏)驱动控制专用芯片,内部集成了数字通讯电路、解码电路、数据锁存器、震荡器、LED驱动电路。通讯方式采用异步串口通信(UART)协议,因芯片只接收单片机发来的数据,仅需要单片机的一个TX端口发送数据给芯片即可,实现单线通讯;在显示驱动方面,芯片采用动态扫描方式,两种显示模式可选,8级段驱动电流可调,16级位占空比可调;TM1652内置消隐处理优化电路。
​ 本产品应用在各种消费类电子产品上,用途非常广泛,如:空调面板、洗衣机面板、DVD 显示面板、机顶盒显示等。本产品性能优良,质量可靠。

2. 特性说明

  • 采用功率CMOS工艺
  • 典型工作电压:5V
  • 支持共阴数码管显示
  • 两种显示模式(7段×6位,8段×5位)
  • 辉度调节电路(位占空比16级可调、段驱动电流8级可调)
  • 串行接口(SDA),兼容串口通信(UART)协议,支持波特率19200bps
  • 内置 OSC 频率 2.5M
  • 内置上电复位电路
  • 内置针对暗亮问题的优化电路
  • 封装形式:SOP16

3. 管脚定义:

image

4. 管脚功能定义:

image

5. 通信协议

本芯片采用异步串口通信(UART)协议,工作原理是将传输数据的每个字符以串行方式一位接一位
的传输。下图给出了其工作模式:
image

TM1652 每一位的时间为:52us。
其中每一位(bit)的意义如下:
▲起始位:为由高变低,低电平时间为一位的时间,表示传输字符的开始。
▲数据位:紧跟起始位之后,D0-D7,低位先发。
▲校验位:为一位的时间,如果 8 位数据位中 1 的个数为奇数,该位设为 0(置低电平),否则为 1(置
高电平)。
▲停止位:置高。时间为一位的时间,它是发送完一个字符数据的结束标志。
▲空闲位:置高。如果空闲位置高的时间大于 3ms,TM1652 就认为本次数据帧结束,本次数据从暂存器
打入相应寄存器开始控制芯片输出。如果一帧数据传输没有结束,那么建议设置空闲位时间范围在
0-0.5ms 以内。
TM1652 的一帧数据包括以下两种形式:
⑴ 显示地址命令+显示数据;
⑵ 显示控制命令+显示控制调节命令。
波特率:是衡量数据传输速率的指针。表示为每秒钟传送的二进制位数(bit 数)。例如资料传送速率
为 120 字符/秒,而每一个字符为 11 位,则其传送的波特率为 11×120=1320 bit/秒=1320
波特。TM1652 支持波特率范围为:17500bps~21200bps,这里我们建议用 19200bps 即每位的时间为:1s(秒)/19200≈52us(微秒)。所以 TM1652 支持的每位的时间范围为:47us~57us。
在用 IO 模拟 UART 通讯时候,SDA 数据的位宽应该满足提供的位宽范围。

6.数据包传输方式:地址自动加1模式

使用地址自动加1模式,设置地址实际上是设置传送的数据流存放的起始地址。起始地址命令字发
送完毕,紧跟着发送数据,最多6BYTE,数据发送完毕后置高数据线。

image

Command1:选择显示地址命令(0x08)
Data1~Data n:发送显示数据(最多6bytes)
Time:数据线置高时间(最小时间为3ms)
CommandX:选择显示控制命令(0x18)
CommandY:发送显示控制调节命令(包括位占空比、段驱动电流以及显示模式设置)

实例1 Eg1_TM1652——【基于STM32F103】

本节我们目标是实现TM1652点亮5位共阴极数码管,显示“0~99999”计数;

1 硬件设计

GPIO初始化配置 SDA(PB0),推挽输出,通过IO模拟驱动UART的TX驱动TM1652,波特率19200

2 软件设计

首先是TM1652初始化TM1640_GPIO_INIT,设置为推挽输出,如下:

void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOB_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);

  /*Configure GPIO pin : PB0 */
  GPIO_InitStruct.Pin = GPIO_PIN_0;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

}

接着设置TM1652,并写入段码

void TM_Digtal_Display(u16 num)
{

    tm1652_send_data(0x08);
    tm1652_send_data(CODE[num/10000]);//"0"
    tm1652_send_data(CODE[num%10000/1000]);//"0"
    tm1652_send_data(CODE[num%1000/100]);//"0"
    tm1652_send_data(CODE[num%100/10]);//"0"
    tm1652_send_data(CODE[num%10]);//"0"

    delay_ms(5);
    tm1652_send_data(0x18);
    tm1652_send_data(0x1C);//设置位占空比为 15/16,设置段驱动电流为 8/8,最大亮度

}

3 下载验证

显示"0~99999";

image

标签:显示,tm1652,入门,send,手册,GPIO,TM1652,data
From: https://www.cnblogs.com/Li-Share/p/17406894.html

相关文章

  • SpringBoot入门案例后的4个问题
    1.我们的工程在引入`spring-boot-starter-web`依赖的时候,为什么没有指定版本版本锁定 我们的项目继承了spring-boot-starter-parent父工程,它内部的父工程spring-boot-dependencies已经锁定了部分依赖的版本号,因此自己创建工程中无需再指定版本。2.`spring-......
  • Python语法入门
    数据类型(续上)1.字符串(str)不用于计算,仅用于描述,任何数据类型都可以转变为字符串,类似文本的存在。 方式(被引号引起来的部分):   1. name= '蔡敏'   推荐使用   2.  name= "蔡敏"   推荐使用   3. name=  '''蔡敏'''   ......
  • 一篇文章让你入门API测试
     什么是APIAPI是ApplicationProgrammingInterface的简写。实现了两个或多个独立系统或模块间的通信和数据交换能力。什么是API测试API测试是不同于UI级自动化测试,其主要关注在系统架构的业务逻辑层,所以其主要关注不在于UI操作或用户感观上,更重调用逻辑关系。与UI级自动化测试通......
  • 从龙套到跑路:自动化测试入门
     目标首先要定义自动化测试的目标是什么?在笔者的企业实践中,给自动化测试明确了两个目标:主动或被动方式触发主业务流全流程覆盖验证(应用于大规模持续集成验证)能够与日常手工业务测试协作交互(提升手工业务测试过程效率)基础要进行自动化测试实践,需要必备哪些技术功底呢?下面我们一起看......
  • matplotlib —入门基础
    importmatplotlib.pyplotaspltplt.rcParams["font.sans-serif"]=["SimHei"]plt.rcParams["axes.unicode_minus"]=False#解决中文乱码问题fig,ax=plt.subplots()#fig画板ax图fig.dpi=150#dpi函数,设置画板大小ax.bar(['5.5'......
  • javescript入门
    js组成和基本结构javascript缘由:可以实现html,css初级验证实现不了的复杂的验证减轻服务器压力(在发送请求到服务器之前用javescript验证客户端)w3c标准:结构化(html)表现化(css)行为化(javescript)javascript定义:脚本语言(一堆命令组合在一起,可以批量执行的)有一定的安全性javascript......
  • E840-TTL(4G05-DGC)型号4G/LTE数传模块快速入门测试教程
    亿佰特LTE数传模块E840-TTL(4G05-DGC)快速入门测试教程E840-TTL(4G05-DGC)是亿佰特推出的4G/LTE数传模块产品,是为实现串口设备与网络服务器,通过网络相互传输数据而开发的产品,该4G/LTE数传模块产品软件功能完善,覆盖绝大多数常规应用场景,用户只需通过简单的设置,即可实现串口到网络......
  • Hadoop入门
    2.Hadoop入门1.分布式和集群分布式:多台服务器相互配合完成一件工作(工作内部,各台服务器所完成的子任务不同)集群:多台服务器联合起来独立完成流水线式工作举例:洗衣店洗衣服如果分为四步:放入洗衣机、晾晒衣服、熨衣服、送给客户,每步都分别由不同种类的员工来做,那么这四个员工......
  • .NET 使用Camunda快速入门
    简介参考:https://www.cnblogs.com/lvdeyinBlog/p/16095603.html 一.工作流介绍1.什么是工作流工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流将一套大的业务逻辑分解成业务逻辑段,并统一控制这些业务逻辑段的执行条件,执行顺序以及相互通信......
  • nodejs 入门基本操作
    操作fs模块constpath=require("path");constfs=require("fs");/*相对路径是命令窗口执行的目录node提供了path模块来操作路径相关的api,其中__dirname是一个内置的变量,返回当前文件所在的目录*/constgetDirUrl=dir=>{returnpath.resolve(__dirname,dir)......