数码管驱动芯片 TM1640

本文详细介绍了数码管驱动芯片TM1640的引脚描述、通信协议,包括设置数据、设置地址、传输显示数据的步骤,并重点讲解了如何使用QuecPython进行程序编写,确保正确驱动数码管显示。
摘要由CSDN通过智能技术生成


提示:TM1640 最大可以驱动16个8位数码管

一、引脚描述

在这里插入图片描述
如图,TM1640 的 GRID1–GRID16 一共16个脚连接共阴数码管的阴极,SEG1–SEG8连接数码管的8个阳极,MCU通过SCLK和DIN将16个数据对应发送到 TM1640的16个地址里面,然后TM1640就会根据这些数据自动扫描驱动16个数码管显示对应的数据,不再需要MCU扫描操作。

二、通信协议

在这里插入图片描述
本来有两种操作方式,但是我一般使用数据地址自动加1模式:

1.Command1:设置数据

在这里插入图片描述
要发送数据 B7B6 = 01 使用地址自动加1模式所以 B3B2 = 00 所以 发送 0x40

2.Command2:设置地址

在这里插入图片描述
所以我们发送 0xC0 地址后,再接着发送16个数据就可以了,因为地址会自动加1

3.data1~N:传输显示数据

这里我们固定发送16个字节数据,每一个字节对应显示一个8段数码管

注意: 芯片显示寄存器在上电瞬间其内部保存的值可能是随机不确定的,此时客户直接发送开屏命令, 将有可能出现显示乱码。 所以我司建议客户对显示寄存器进行一次上电清零操作,即上电后向16位显存地址 (C0H-CDH) 中全部写入数据0x00。

4.Command3:控制显示

在这里插入图片描述
控制显示关,发送 0x80
控制显示开,发送 0x88 (0x88亮度最低,我们一般会设置亮度高一点)

三、程序编写

我们这里使用 QuecPython 编写

from machine import Pin
import utime

# 定义TM1640的引脚
DIN_PIN = Pin(Pin.GPIO23, Pin.OUT)  # CLK引脚
CLK_PIN = Pin(Pin.GPIO24, Pin.OUT)  # DATA引脚

# TM1640的命令定义
CMD_START = 0x8A
CMD_DISP_ON = 0x88
CMD_DISP_OFF = 0x80

def start
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值