LED驱动控制专用电路

一、基本概述

TM1628是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用IC,内部集成有MCU 数

字接口、数据锁存器、LED 驱动、键盘扫描等电路。本产品质量可靠、稳定性好、抗干扰能力强。

主要适用于家电设备(智能热水器、微波炉、洗衣机、空调、电磁炉)、机顶盒、电子称、智能电

表等数码管或LED显示设备。

二、特性说明

  • 采用CMOS工艺

  • 多种显示模式(10 段×7 位 ~ 13段×4 位)

  • 最大支持矩阵按键10×2

  • 辉度调节电路(8 级占空比可调)

  • 串行接口(CLK,STB,DIO)

  • 振荡方式:内置RC振荡

  • 内置上电复位电路

  • 内置数据锁存电路

  • 抗干扰能力强

  • 封装形式:SOP28

三、引脚定义

四、指令说明

五、显示

六、应用电路

七、封装尺寸

电路原理图设计

程序代码
.c文件
#include "TM1628.h"u8 const CODE[]={0xC0,0xC2,0xC4,0xC6,0xC8,0xCA,0xCC};//GRID1 GRID2 GRID3 GRID4 GRID5 GRID6 GRID7     /*************************************
函数名称:Tm1628init
函数说明:TM1628初始化
函数参数:NULL
函数返回:NULL
*************************************/
void Tm1628init(void)
{GPIO_InitTypeDef  GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_5;   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIO_Init(GPIOB, &GPIO_InitStructure);     //GPIO_SetBits(GPIOB,GPIO_Pin_5);Tm1628_ClearDisplay(); //清屏Tm1628_GrayScale(2); 	 //亮度2
}/*************************************
函数名称:Tm1628_Write_Bit
函数说明:写单个字节
函数参数:命令返回
函数返回:NULL
*************************************/
void Tm1628_Write_Bit(uint8_t data)
{uint8_t i;for(i = 0; i < 8; i++){if((data & 0x01) == 1){Tm1628_DIO_H;}else{Tm1628_DIO_L;}Tm1628_CKL_L;Tm1628_CKL_H;data = data >> 1;}
}/*************************************
函数名称:Tm1628_Write_Command
函数说明:写命令
函数参数:命令参数
函数返回:NULL
*************************************/
void Tm1628_Write_Command(u8 unm)
{Tm1628_STB_H;Tm1628_STB_L;Tm1628_Write_Bit(unm);
}/*************************************
函数名称:Tm1628_Continuous
函数说明:固定写显示
函数参数:(1)add 地址    (2)data 数据  
函数返回:NULL
*************************************/void Tm1628_Continuous(uint8_t add,uint8_t data)
{Tm1628_Write_Command(0x03);Tm1628_Write_Command(0x44);Tm1628_Write_Command(add);Tm1628_Write_Bit(data);Tm1628_Write_Command(0x8F);Tm1628_STB_H;
}/*************************************
函数名称:Tm1628_ClearDisplay
函数说明:清屏
函数参数:NULL
函数返回:NULL
*************************************/void Tm1628_ClearDisplay(void)
{uint8_t i;Tm1628_Write_Command(0x03);   //7位10段for(i = 0; i < 7; i++){Tm1628_Write_Command(CODE[i]);Tm1628_Write_Bit(0x00);Tm1628_STB_H;}}/*************************************
函数名称:Tm1628_GrayScale
函数说明:用于亮度调节 0 - 9
函数参数:亮度 0 - 9
函数返回:NULL
*************************************/
void Tm1628_GrayScale(uint8_t data)
{switch(data){case(0): Tm1628_Write_Command(GrayScale_ON);   break;case(1): Tm1628_Write_Command(GrayScale1); 	   break;case(2): Tm1628_Write_Command(GrayScale2);     break;case(3): Tm1628_Write_Command(GrayScale3);     break;case(4): Tm1628_Write_Command(GrayScale4);     break;case(5): Tm1628_Write_Command(GrayScale5);     break;case(6): Tm1628_Write_Command(GrayScale6);     break;case(7): Tm1628_Write_Command(GrayScale7);     break;case(8): Tm1628_Write_Command(GrayScale8);     break;}}

.h文件
#ifndef __TM1628_H
#define __TM1628_H#include "sys.h"
#include "delay.h"#define Tm1628_CKL_H GPIO_WriteBit(GPIOB,GPIO_Pin_6,Bit_SET)
#define Tm1628_CKL_L GPIO_WriteBit(GPIOB,GPIO_Pin_6,Bit_RESET)#define Tm1628_DIO_H GPIO_WriteBit(GPIOB,GPIO_Pin_7,Bit_SET)
#define Tm1628_DIO_L GPIO_WriteBit(GPIOB,GPIO_Pin_7,Bit_RESET)#define Tm1628_STB_H GPIO_WriteBit(GPIOB,GPIO_Pin_5,Bit_SET)
#define Tm1628_STB_L GPIO_WriteBit(GPIOB,GPIO_Pin_5,Bit_RESET)#define GrayScale_OFF 0x80 //关显示
#define GrayScale_ON 0x81 //开显示#define GrayScale1   0x88 //灰度等级1
#define GrayScale2   0x89 //灰度等级2
#define GrayScale3   0x8A //灰度等级3
#define GrayScale4   0x8B //灰度等级4
#define GrayScale5   0x8C //灰度等级5
#define GrayScale6   0x8D //灰度等级6
#define GrayScale7   0x8E //灰度等级7
#define GrayScale8   0x8F //灰度等级8void Tm1628init(void);   //TM1628初始化
void Tm1628_Fixed(uint8_t data, uint8_t add); //固定写地址 data 地址 add 数据
void Tm1628_Continuous(uint8_t add,uint8_t data); 
void Tm1628_ClearDisplay(void); //清屏
void Tm1628_GrayScale(uint8_t data); //亮度调节
void Tm1628_Write_Command(u8 unm);#endif

main主函数int main(void)
{RCC_Configuration();	Tm1628init();//TM1628初始化程序while(1){Tm1628_Continuous(0xCA,0xFF);	//GRID6Tm1628_Continuous(0xC8,0xFF);	//GRID5Tm1628_Continuous(0xC6,0xFF);	//GRID4Tm1628_Continuous(0xC4,0xFF); //GRID3 Tm1628_Continuous(0xC2,0xFF);	//GRID2Tm1628_Continuous(0xC0,0xFF); //GRID1} 
}
实物效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/215458.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全—自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

番外篇之矩阵运算

矩阵的运算代码&#xff08;加减乘除&#xff09;&#xff08;内有注释&#xff09; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #define ROW 10 //定义行 #define COL 10 //定义列 //设置全局变量A矩阵的m代表实际矩阵的行数&#xff0c;n代表实际矩阵的列…

【数据结构】最小生成树(Kruskal算法)

一.基本思想 设无向连通网为G&#xff08;V&#xff0c;E&#xff09;&#xff0c;令G的最小生成树为T&#xff08;U&#xff0c;TE&#xff09;&#xff0c;其初态为UV&#xff0c;TE{},然后&#xff0c;按照边的权值由小到大的顺序&#xff0c;考察G的边集E中的各条边。若被考…

大数据Doris(二十八):Routine Load查看和修改作业

文章目录 Routine Load查看和修改作业 一、​​​​​​​查看导入作业状态

2023年【熔化焊接与热切割】免费试题及熔化焊接与热切割模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 熔化焊接与热切割免费试题是安全生产模拟考试一点通生成的&#xff0c;熔化焊接与热切割证模拟考试题库是根据熔化焊接与热切割最新版教材汇编出熔化焊接与热切割仿真模拟考试。2023年【熔化焊接与热切割】免费试题及…

用栈实现队列的功能,用队列实现栈的功能?

我们知道队列的特点是先入先出&#xff0c;栈的特点是后入先出&#xff0c;那么如何用栈实现队列的功能&#xff0c;又如何用队列实现栈的功能呢&#xff0c;且听我一一道来 我们首先来看用栈实现队列的功能&#xff0c;首先大伙儿要知道队列和栈的特点其实是“相反”&#xf…

OSG粒子系统与阴影-雾效模拟(1)

虚拟现实中有很多效果&#xff0c;如雨效、雪效、雾效等&#xff0c;这些都可以通过粒子系统来实现。一个真实的粒子系统的模式能使三维场景达到更好的效果。 本章对OSG粒子系统的使用以及生成自定义粒子系统的方法进行了详细介绍最后还附带说明了阴影的使用方法。在实时的场景…

电源控制系统架构(PCSA)之系统分区电源域

目录 4.2 电源域 4.2.1 电源模式 4.2.2 电源域的选择 4.2.3 系统逻辑 4.2.4 Always-On域 4.2.5 处理器Clusters 4.2.6 CoreSight逻辑 4.2.7 图像处理器 4.2.8 显示处理器 4.2.9 其他功能 4.2.10 电源域层次结构要求 4.2.11 SOC域示例 4.2 电源域 电源域在这里被定…

流程图是什么,用什么软件做?

在工作流程中&#xff0c;经常会遇到需要图形化呈现整个流程的情况。流程图就是一种一目了然的图形化表现方式&#xff0c;便于人们理解、沟通和管理整个流程。 1.Visio Visio是一款微软公司的图表软件&#xff0c;可以用于创建各种类型的流程图、组织结构图、网络图、平面图…

笔记:内网渗透流程之信息收集

信息收集 首先&#xff0c;收集目标内网的信息&#xff0c;包括子网结构、域名信息、IP地址范围、开放的端口和服务等。这包括通过主动扫描和渗透测试工具收集信息&#xff0c;以及利用公开的信息源进行信息搜集。 本机信息收集 查看系统配置信息 查看系统详细信息&#xf…

第一百七十八回 介绍一个三方包组件:SlideSwitch

文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"如何创建垂直方向的Switch"相关的内容&#xff0c;本章回中将 介绍SlideSwitch组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们…

linux -系统通用命令查询

有时候内网环境下&#xff0c;系统有些命令没有安装因此掌握一些通用的linux 命令也可以帮助我们解决一些问题查看 1.查看系统内核版本 uname -r2.查看系统版本 cat /etc/os-release3. 查看cpu 配置 lscpu4.查看内存信息 free [参数] 中各个数值的解释如下表 数值解释t…