发新帖本帖赏金 30.00元(功能说明)我要提问
返回列表
[单片机芯片]

【TM1640驱动】基于CH32V103实现16位数码管显示0~F

[复制链接]
703|1
手机看帖
扫描二维码
随时随地手机跟帖
lilijin1995|  楼主 | 2022-9-14 10:37 | 显示全部楼层 |阅读模式
本帖最后由 lilijin1995 于 2022-9-17 17:51 编辑

#申请原创#

@21小跑堂




TM1640 是一种LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU 数字接口、数据锁存器、LED 驱动等电路。我们目标是实现TM1640点亮16位数码管,显示“0~F”数字;

1 硬件设计

GPIO初始化配置 SCL(PB6)  SDA(PB7);开漏输出,通过IO模拟驱动TM1640,TM1640IC驱动有点类似于I2C;

微信截图_20220914102525.png


我们程序采样的是自动地址的方式去驱动,1次刷16个数据;可以看到cmd1~cm3分半是设置数据、设置地址、控制显示的命令;

然后命令格式如下

spng.png

d.png

k.png

在软件设计中我们将实现这个自动地址驱动时序

2 软件设计

首先是TM1640初始化TM1640_GPIO_INIT,设置为开漏极输出,如下:


/*********************************************************************
  * @fn      TM1640_GPIO_INIT
  *
  * [url=home.php?mod=space&uid=247401]@brief[/url]   Initializes GPIOB.6 GPIOB.7
  *
  * [url=home.php?mod=space&uid=266161]@return[/url]  none
  */
void TM1640_GPIO_INIT(void) {

     GPIO_InitTypeDef GPIO_InitStructure = { 0 };

     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
     GPIO_Init(GPIOB, &GPIO_InitStructure);
     GPIO_SetBits(GPIOB, GPIO_Pin_6);//SCL
     GPIO_SetBits(GPIOB, GPIO_Pin_7);//SDA
}


接着设置TM1640,并写入段码


void TM1640_Handle(void)
{
     u8 i;
     TM1640_Generate_START();
     TM1640_WriteData(0x40);//数据命令设置:普通模式,地址自动加一
     TM1640_Generate_STOP();

     TM1640_Generate_START();
     TM1640_WriteData(0xC0);////地址命令设置:初始地址00H
     for(i=0;i<16;i++)  //发送16位显示数据
     {
         TM1640_WriteData(CODE);
     }
     TM1640_Generate_STOP();

     TM1640_Generate_START();
     TM1640_WriteData(0x8c);    //显示控制:显示开,脉冲宽度设为11/16
     TM1640_Generate_STOP();
     Delay_Ms(10);

}




3 下载验证

显示"0~F";

1966993-20220913120347792-533350568.jpg


      演示视频链接:



4. 为了方便大家理解,另有视频对代码进行见解

如下:



https://www.bilibili.com/video/BV1SG4y1z7yh/?spm_id_from=333.788&vd_source=2bbde87de845d5220b1d8ba075c12fb0

附件是代码:













TM1640.rar

504.88 KB

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 30.00 元 2022-09-19
理由:恭喜通过原创文章审核!请多多加油哦!

评论
21小跑堂 2022-9-19 15:03 回复TA
视频内容很丰富,下篇文字部分有待补充哦~ 
发新帖 本帖赏金 30.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则