news 2026/4/28 6:35:24

TM1650数显模块(下载就能用)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TM1650数显模块(下载就能用)

Keil5 TM1650.c文件

#include "TM1650.h" #include "Delay.h" // Êý×ֵĶÎÂë (0-9) const uint8_t data_num[10] = { 0x3f, // 0 0x06, // 1 0x5b, // 2 0x4f, // 3 0x66, // 4 0x6d, // 5 0x7d, // 6 0x07, // 7 0x7f, // 8 0x6f // 9 }; // Ó¢ÎÄa-fµÄ¶ÎÂë const uint8_t data_alphabet[6] = { 0x77, // a 0x7c, // b 0x39, // c 0x5e, // d 0x79, // e 0x71 // f }; // ÊýÂë¹ÜµÄ¶ÎµØÖ· const uint8_t display_address[4] = { 0x6e, // DIG4 0x6c, // DIG3 0x6a, // DIG2 0x68 // DIG1 }; // ÁÁ¶ÈÉèÖà (0-7) const uint8_t display_brightness[8] = { 0x11, // 0¼¶ÁÁ¶È (×îС) 0x21, // 1¼¶ 0x31, // 2¼¶ 0x41, // 3¼¶ 0x51, // 4¼¶ 0x61, // 5¼¶ 0x71, // 6¼¶ 0x01 // 7¼¶ÁÁ¶È (×î´ó) }; void TM1650_Init(void) // TM1650Ä£¿é¶Ë¿ÚGPIO³õʼ»¯ { GPIO_InitTypeDef GPIO_InitStruct; // ¶¨ÒåÒ»¸öGPIO½á¹¹Ìå±äÁ¿ // ´ò¿ªGPIO B×éʱÖÓ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // ÅäÖÃPB12(SCL), PB13(SDA) GPIO_InitStruct.GPIO_Pin = TM1650_SCL_PIN | TM1650_SDA_PIN; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; // ÍÆÍìÊä³ö GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; // ËÙ¶È50MHz GPIO_Init(TM1650_GPIO, &GPIO_InitStruct); // ³õʼ״̬£º¸ßµçƽ TM1650_SCL_1; TM1650_SDA_1; } void Iic_Mode(GPIOMode_TypeDef Mode) { GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = TM1650_SDA_PIN; GPIO_InitStruct.GPIO_Mode = Mode; // ÉèÖÃģʽ GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(TM1650_GPIO, &GPIO_InitStruct); } void TM1650_start(void) // ¿ªÊ¼ÐźŠ{ Iic_Mode(GPIO_Mode_Out_PP); TM1650_SCL_1; TM1650_SDA_1; Delay_us(5); TM1650_SDA_0; Delay_us(5); TM1650_SCL_0; Delay_us(5); } void TM1650_stop(void) // Í£Ö¹ÐźŠ{ Iic_Mode(GPIO_Mode_Out_PP); TM1650_SCL_0; TM1650_SDA_0; Delay_us(5); TM1650_SCL_1; Delay_us(5); TM1650_SDA_1; Delay_us(5); } void TM1650_send(uint8_t data) // ´«ÊäÊý¾Ý { Iic_Mode(GPIO_Mode_Out_PP); uint8_t i; TM1650_SCL_0; TM1650_SDA_0; Delay_us(5); for(i = 0; i < 8; i++) { if(data & 0x80) // ¸ßλÏÈ·¢ËÍ TM1650_SDA_1; else TM1650_SDA_0; Delay_us(5); TM1650_SCL_1; Delay_us(5); TM1650_SCL_0; Delay_us(5); data <<= 1; // ×óÒÆÒ»Î» } } uint8_t TM1650_ack(void) // µÈ´ýÓ¦´ð { uint8_t ack = 0; Iic_Mode(GPIO_Mode_IN_FLOATING); // ÉèÖÃΪ¸¡¿ÕÊäÈë TM1650_SCL_0; Delay_us(5); TM1650_SCL_1; Delay_us(5); // ¶ÁÈ¡SDAÏß״̬ if(GPIO_ReadInputDataBit(TM1650_GPIO, TM1650_SDA_PIN)) ack = 1; // ÎÞÓ¦´ð TM1650_SCL_0; Delay_us(5); return ack; } void Write_DATA(uint8_t add, uint8_t DATA) // Ö¸¶¨µØÖ·Ð´ÈëÊý¾Ý { TM1650_start(); // Æô¶¯ÐźŠTM1650_send(add); // ·¢Ë͵ØÖ· TM1650_ack(); // Ó¦´ðÐźŠTM1650_send(DATA); // дÈëÊý¾Ý TM1650_ack(); // Ó¦´ðÐźŠTM1650_stop(); // Í£Ö¹ÐźŠ} void Display_Init(void) // ÏÔʾÉ豸µÄ³õʼ»¯ { Delay_us(500); // ÐèÒªÑÓʱ500msµÈ´ýоƬµÄÆô¶¯ Write_DATA(TIM_COMMAND, display_brightness[7]); // ÏÔʾ×î´óÁÁ¶È Write_DATA(DIS_ADD_1, data_null); // Çå¿ÕÏÔʾ Write_DATA(DIS_ADD_2, data_null); Write_DATA(DIS_ADD_3, data_null); Write_DATA(DIS_ADD_4, data_null); } void Show_Num(uint16_t num, uint8_t dp) // ÏÔʾÊý×Ö { uint8_t buff = 0; uint8_t i; if(num <= 9999) // Êý×ÖÔÚºÏÊÊ·¶Î§ { for(i = 0; i < 4; i++) { buff = num % 10; // »ñÈ¡×îµÍλÊý×Ö num /= 10; // ÒÆ³ý×îµÍλ if(dp & 0x01) // ¸ÃλÐèÒªÏÔʾСÊýµã { Write_DATA(display_address[i], data_num[buff] | data_dp); } else { Write_DATA(display_address[i], data_num[buff]); } dp >>= 1; // ¼ì²éÏÂһλСÊýµã } } } void Display_Change_Brightness(uint8_t num) // ÐÞ¸ÄÁÁ¶È { if(num < 8) { Write_DATA(TIM_COMMAND, display_brightness[num]); } }

Keil5 TM1650.h文件

#ifndef NUMTM1650_H #define NUMTM1650_H #include "stm32f10x.h" // Òý½Å¶¨Òå #define TM1650_SCL_PIN GPIO_Pin_12 #define TM1650_SDA_PIN GPIO_Pin_13 #define TM1650_GPIO GPIOB // ºê¶¨Òå #define TM1650_SCL_1 GPIO_SetBits(TM1650_GPIO, TM1650_SCL_PIN) #define TM1650_SCL_0 GPIO_ResetBits(TM1650_GPIO, TM1650_SCL_PIN) #define TM1650_SDA_1 GPIO_SetBits(TM1650_GPIO, TM1650_SDA_PIN) #define TM1650_SDA_0 GPIO_ResetBits(TM1650_GPIO, TM1650_SDA_PIN) // ÊýÂë¹ÜµØÖ·¶¨Òå #define DIS_ADD_1 0x68 // µÚÒ»¸öÊýÂë¹ÜµÄµØÖ· #define DIS_ADD_2 0x6A // µÚ¶þ¸öÊýÂë¹ÜµÄµØÖ· #define DIS_ADD_3 0x6C // µÚÈý¸öÊýÂë¹ÜµÄµØÖ· #define DIS_ADD_4 0x6E // µÚËĸöÊýÂë¹ÜµÄµØÖ· // ÃüÁÒå #define TIM_COMMAND 0x48 // ÏÔ´æµØÖ· #define data_dp 0x80 // СÊýµã #define data_null 0x00 // ²»ÏÔʾ extern const uint8_t data_num[10]; extern const uint8_t data_alphabet[6]; extern const uint8_t display_address[4]; extern const uint8_t display_brightness[8]; // º¯ÊýÉùÃ÷ void TM1650_Init(void); // TM1650Ä£¿é¶Ë¿ÚGPIO³õʼ»¯ void Iic_Mode(GPIOMode_TypeDef Mode); void TM1650_start(void); void TM1650_stop(void); uint8_t TM1650_ack(void); void TM1650_send(uint8_t data); void Write_DATA(uint8_t add, uint8_t DATA); void Display_Init(void); void Show_Num(uint16_t num, uint8_t dp); void Display_Change_Brightness(uint8_t num); #endif
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 6:35:20

轻量级多模态模型Qwen3.5-2B效果展示:YOLOv8检测结果的智能描述生成

轻量级多模态模型Qwen3.5-2B效果展示&#xff1a;YOLOv8检测结果的智能描述生成 1. 核心能力概览 Qwen3.5-2B作为一款轻量级多模态模型&#xff0c;在视觉-语言理解任务中展现出令人惊喜的表现。当它与YOLOv8这样的高效目标检测模型配合使用时&#xff0c;能够将冰冷的检测框…

作者头像 李华
网站建设 2026/4/28 6:21:55

记事本txt文件里面内容中下划线看不见

这是 Win11 23H2/24H2 记事本的已知渲染 Bug&#xff1a;在默认字体&#xff08;微软雅黑/Consolas&#xff09; 非 100% DPI 缩放&#xff08;常见 125%/150%&#xff09;时&#xff0c;下划线 _ 会被“吃掉”&#xff0c;显示成空白。 快速解决&#xff08;任选其一&#xff…

作者头像 李华
网站建设 2026/4/28 6:19:10

多进程不只是绕过 GIL:从 Python 性能优化到进程级隔离的工程实战

多进程不只是绕过 GIL&#xff1a;从 Python 性能优化到进程级隔离的工程实战 很多 Python 开发者第一次听到“多进程”&#xff0c;往往会想到一句话&#xff1a;Python 有 GIL&#xff0c;所以 CPU 密集型任务要用多进程。这句话没有错&#xff0c;但不完整。 在真实工程里&a…

作者头像 李华
网站建设 2026/4/28 6:18:23

福莉最大胆的一次判断:AGI两年内到来,工作模式先被颠覆

"我之前认为我们自己做的工作已经足够有创造力、足够不会被Skill化、不会被Workflow化。但我现在发现&#xff0c;它竟然也能&#xff01;"小米大模型团队负责人罗福莉在接受「语言即世界」访谈时&#xff0c;抛出了这个让她自己都感到残酷的发现。当被问及AGI&#…

作者头像 李华
网站建设 2026/4/28 6:18:21

2026年4月GPT-Image2深度测评优缺点真实客观解析

AI模型聚合平台推荐&#xff1a;库拉c.kulaai,cn聚合GPT-Image 2、Midjourney、Flux等主流图像模型&#xff0c;一站式对比&#xff0c;选工具不再纠结。 GPT-Image 2全量上线一周了&#xff0c;网上要么吹上天&#xff0c;要么踩到地。我不想站队&#xff0c;这篇文章只说事实…

作者头像 李华
网站建设 2026/4/28 6:17:49

个人Linux操作系统学习笔记1 - Linux权限与工具

文件默认权限 普通文件起始权限从666开始 目录文件起始权限从777开始 最终权限 起始权限“去掉”umask 最终权限 起始权限 & (~umask) 例&#xff1a; 666 110 110 110 000 000 010 -> umask 111 111 101 -> ~umask & 110 110 100 -> 664 777 …

作者头像 李华