Sound 发表于 2021-1-29 13:26:48

扩展库使用说明——TM1637

本帖最后由 陈哲东 于 2022-7-15 13:53 编辑

1-硬件概述

TM1637 是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU 数 字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良,质量可靠。主要应用于电磁炉、 微波炉及小家电产品的显示屏驱动。采用DIP/SOP20的封装形式。
2-引脚定义




3-电路原理图



4-硬件连接
TM1637与单片机连接:



5-图形化模块



6-范例代码#define TM1637_SCL P1_5
#define TM1637_SCL_OUT {P1M1&=~0x20;P1M0|=0x20;}//P1_5推挽输出
#define TM1637_SDA P1_4
#define TM1637_SDA_IN {P1M1|=0x10;P1M0&=~0x10;}//P1_4高阻输入
#define TM1637_SDA_OUT {P1M1&=~0x10;P1M0|=0x10;}//P1_4推挽输出
#include <STC8HX.h>
uint32 sys_clk = 24000000;//设置PWM、定时器、串口、EEPROM频率参数
#include "mylib/TM1637.h"
void setup()
{
TM1637_Init();//TM1637初始化
}
void loop()
{
TM1637_displayNum(1234);}
void main(void)
{
setup();
while(1){
    loop();
}
}


示例代码2#define TM1637_SCL P1_5
#define TM1637_SCL_OUT {P1M1&=~0x20;P1M0|=0x20;}//P1_5推挽输出
#define TM1637_SDA P1_4
#define TM1637_SDA_IN {P1M1|=0x10;P1M0&=~0x10;}//P1_4高阻输入
#define TM1637_SDA_OUT {P1M1&=~0x10;P1M0|=0x10;}//P1_4推挽输出

#include <STC8HX.h>
uint32 sys_clk = 24000000;//设置PWM、定时器、串口、EEPROM频率参数
#include "mylib/TM1637.h"
#include "lib/delay.h"

void setup()
{
TM1637_Init();//TM1637初始化
}

void loop()
{
TM1637_clear();//TM1637清除
TM1637_displayTime(12,30,(1));//显示时间
delay(1000);
TM1637_clear();//TM1637清除
TM1637_displayBit(0,1,1);
delay(1000);
}

void main(void)
{
setup();
while(1){
    loop();
}
}




7-TM1637数码管显示测试视频
http://www.haohaodada.com/video/new/bbs/TM1637.mp4

手册资料:









dayue 发表于 2021-7-2 15:49:55

//player.bilibili.com/player.html?bvid=BV13M4y1g7ZM




xwbqadpy 发表于 2022-1-29 19:33:16

楼主建一个TM1640扩展库

GX2022 发表于 2022-10-20 14:53:55

楼主TM1637能增加对字段的操作吗?这样就可以用在自定义的LED显示屏上。 (比如前四位显示时间数字,后边的段可以独立控制来显示客制化的图标。)

把悲伤写进心里 发表于 2022-12-6 14:13:58

1637可以支持6位数码管,目前只支持四位。大佬能搞到六位吗

感觉之灵感 发表于 2024-1-17 17:31:00

代码有个不对的地方,楼主能不能修改一下【第几位显示】那里,第一位是0,第二位是1,第三位是2,第四位是3,错位的,应该是第一位是1,第二位是2,第三位是3,第四位是4。。。。希望楼主能修改主一下,谢谢:lol:)

感觉之灵感 发表于 2024-1-18 10:42:24

主TM1637能增加对字段的操作吗?这样就可以用在自定义的LED显示屏上。 (比如前四位显示时间数字,后边的段可以独立控制来显示客制化的图标。)
页: [1]
查看完整版本: 扩展库使用说明——TM1637