当前位置: 首页 > news >正文

TM1640学习手册及示例代码

数据手册 

TM1640数据手册

数据手册解读

这里我们看管脚定义DIN和SCLK,一个数据线一个时钟线

SEG1~SEG8为段码,GRID1~GRID16为位码(共阴极情况下)

这里VDD给5V

 数据指令

数据命令设置

地址命令设置

显示控制命令

共阴极硬件连接图

这里我们只介绍共阴极,共阳极需要在代码里调整,有兴趣可以私聊我

注意事项

TM1640驱动源码(非阻塞)

tm1640.c
//******************************************************************************
/*** @Name       : TM1640_Start* @Date       : 2025年4月21日* @Description: TM1640起始* @Parameters : None* @Return     : None*/  
void TM1640_Start(void)
{TM_SDA_H();TM_SCL_H();__NOP();__NOP();TM_SDA_H();__NOP();__NOP();TM_SDA_L();__NOP();__NOP();__NOP();__NOP();TM_SCL_L();__NOP();__NOP();
}//******************************************************************************
/*** @Name       : TM1640_Stop* @Date       : 2025年4月21日* @Description: TM1640结束* @Parameters : None* @Return     : None*/  
void TM1640_Stop(void)
{TM_SCL_H();__NOP();__NOP();TM_SDA_L();__NOP();__NOP();TM_SDA_H();__NOP();__NOP();TM_SCL_L();TM_SDA_L();
}//******************************************************************************
/*** @Name       : TM1640_WriteData* @Date       : 2025年4月21日* @Description: 写入一字节的数据* @Parameters : oneByte:需要发送的数据字节* @Return     : None*/  
void TM1640_WriteData(uint8_t oneByte)
{uint8_t index;for(index=0;index<8;index++){TM_SCL_L();if(oneByte&0x01) TM_SDA_H();elseTM_SDA_L();__NOP();__NOP();__NOP();TM_SCL_H();oneByte=oneByte>>1;}TM_SCL_L();__NOP();__NOP();__NOP();__NOP();TM_SDA_L();__NOP();__NOP();
}//******************************************************************************
/*** @Name       : TM1640_Handle* @Date       : 2025年4月21日* @Description: 启动、写数据和控制显示* @Parameters : None* @Return     : None*/  
void TM1640_Handle(void)
{uint8_t index;TM1640_Start();TM1640_WriteData(CMD_DATA_1);//地址自动加1,普通模式TM1640_Stop();TM1640_Start();TM1640_WriteData(START_ADDRESS_1);for(index=0;index<smg_num;index++){TM1640_WriteData(smg[index]);}TM1640_Stop();TM1640_Start();TM1640_WriteData(BRIGHTNESS_LEVEL_4);TM1640_Stop();__NOP();}

这里smg[index]需要你自己去定义,然后将数组传入tm1640中就可以 

tm1640.h
/*数码管数量*/
#define smg_num    16(最大16位)
/*显示控制命令,设置亮度打开显示屏,共8级亮度,也就是设置不同的脉冲宽度*/
#define BRIGHTNESS_LEVEL_1  0x88
#define BRIGHTNESS_LEVEL_2  0x89
#define BRIGHTNESS_LEVEL_3  0x8a
#define BRIGHTNESS_LEVEL_4  0x8b
#define BRIGHTNESS_LEVEL_5  0x8c
#define BRIGHTNESS_LEVEL_6  0x8d
#define BRIGHTNESS_LEVEL_7  0x8e
#define BRIGHTNESS_LEVEL_8  0x8f
#define CLOSE_DISPLAY       0x80/*数据设置命令*/
#define CMD_DATA_1          0X40 //地址自动加1,普通模式       0100 0000
#define CMD_DATA_2          0X44 //地址固定,普通模式          0100 0100
#define CMD_DATA_3          0X48 //地址自动加1,内部测试模式   0100 1000
#define CMD_DATA_4          0X4C //地址固定,内部测试模式      0100 1100/*地址命令设置 显存地址为0xC0-0xCF*/
#define START_ADDRESS_1       0XC0 //第一个数码管
#define START_ADDRESS_2       0XC1 
#define START_ADDRESS_3       0XC2 
#define START_ADDRESS_4       0XC3 
#define START_ADDRESS_5       0XC4 
#define START_ADDRESS_6       0XC5 
#define START_ADDRESS_7       0XC6 
#define START_ADDRESS_8       0XC7 
#define START_ADDRESS_9       0XC8 
#define START_ADDRESS_10      0XC9 
#define START_ADDRESS_11      0XCa 
#define START_ADDRESS_12      0XCb 
#define START_ADDRESS_13      0XCc 
#define START_ADDRESS_14      0XCd 
#define START_ADDRESS_15      0XCe 
#define START_ADDRESS_16      0XCf#define TM_SCL_H()  GPIOB->BSRR = GPIO_PIN_6
#define TM_SCL_L()  GPIOB->BRR = GPIO_PIN_6#define TM_SDA_H()  GPIOB->BSRR = GPIO_PIN_7
#define TM_SDA_L()  GPIOB->BRR = GPIO_PIN_7

 

 

相关文章:

  • 傲来云分享,负载均衡:提升网站性能与稳定性
  • 13.QT-DateTime Edit|Dial|Slider|日期计算器|调整窗口透明度|调整窗口大小|自定义快捷键(C++)
  • 在 UE5 编辑器中,由于游戏设置 -> EV100 设置,点击播放前后的光照不同。如何保持点击播放前后的光照一致?
  • 【HDFS入门】深入解析DistCp:Hadoop分布式拷贝工具的原理与实践
  • 利用课程编辑器创新教学,提升竞争力​
  • 【Spring Boot基础】MyBatis的基础操作:日志、增删查改、列名和属性名匹配 -- 注解实现
  • Kafka 生产者的幂等性与事务特性详解
  • C++--负载均衡在线OJ
  • Java 性能优化:如何利用 APM 工具提升系统性能?
  • 怎样用 esProc 将数据集中重复内容置空
  • .NET WPF 三维模型
  • 蓝桥杯 16.对局匹配
  • GPU高效利用率实战揭秘:蓝耘元生代VS传统云平台的降维打击
  • 解析三大中间件:Nginx、Apache与Tomcat
  • AOSP Android14 Launcher3——远程窗口动画关键类SurfaceControl详解
  • Unreal 如何实现一个Vehicle汽车沿着一条指定Spline路径自动驾驶
  • 应用层核心协议详解:HTTP, HTTPS, RPC 与 Nginx
  • StarRocks:一款开源的高性能分析型数据仓库
  • C#常用LINQ
  • ubuntu学习day4
  • 全总:五一拟表彰全国劳模先进工作者2426名,盛李豪入选
  • 浙江一季度GDP为22300亿元,同比增长6.0%
  • 纪念沈渭滨︱在恩师沈渭滨老师指导下走上学术研究之路
  • 林间徐行寻风眠——关于浙美“徐宗帅捐赠纪念展”
  • 何立峰会见美国英伟达公司总裁黄仁勋:欢迎美资企业深耕中国市场
  • “75后”长春副市长朱光明已任长春市委常委、市委秘书长