一种LED驱动专用控制电路

一、基本概述

TM1620是一种LED(发光二极管显示器)驱动控制专用IC,内部集成有MCU数字接口、数据锁存

器、LED驱动等电路。本产品质量可靠、稳定性好、抗干扰能力强。主要适用于家电设备(智能热

水器、微波炉、洗衣机、空调、电磁炉)、机顶盒、电子称、智能电表等数码管或LED显示设备。

二、基本的特性说明

  • 采用CMOS工艺

    显示模式(8 段×6 位~10段×4位)

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

    串行接口(CLK,STB,DIN)

    振荡方式:内置RC振荡

    内置上电复位电路

    内置数据锁存电路

    内置针对LED反偏漏电导致暗亮问题优化电路

    抗干扰能力强

    封装形式:SOP20

三、管脚定义

四、指令说明

五、应用电路

TM1620驱动共阴数码屏硬件电路图(18)

1、VDD、GND之间滤波电容在PCB板布线应尽量靠近TM1620芯片放置,加强滤波效果。

2、连接在DIN、CLK、STB通讯口上下拉三个100pF电容可以降低对通讯口的干扰。

3、因蓝光数码管的导通压降压约为3V,因此TM1620供电应选用5V。

六、电气参数

七、封装形式

本项目使用的是6位8段的数码管,即0x020。

注意:芯片显示寄存器在上电瞬间其内部保存的值可能是随机不确定的,此时我们直接发送开屏命令,将有可能出现显示乱码。所以建议对显示寄存器进行一次上电清零操作,即上电后向12位显存地址(00H-0BH)中全部写入数据0x00。具体操作方法是:初始化TM1620时使用(2)数据命令中的自动地址增加命令,依次给所有地址写0x00。

八、硬件电路

TM1620的STB、CLK、DIN引脚分别连接单片机的PC0、PC1、PC2引脚。

 初始化:

初始化TM1620的3个输出引脚:

代码部分:

定义结构体类型:

typedef struct
{Brightness_level_t  Brightness;void (*TM1620_Init)(void);                          //TM1620初始化void (*Disp)(Disp_NUM_t,uint8_t,Disp_DP_Status_t);  //数码管显示
} Display_t;

写入字节函数:

/** @name   TM1620_Write_Byte* @brief  TM1620写入字节* @param  dat -> 待写入数据* @retval None      
*/
static void TM1620_Write_Byte(uint8_t dat) 
{uint8_t i = 0;CLR_STB;for(i=0;i<8;i++){CLR_CLK;//准备数据位if((dat & BIT0) == BIT0) //BIT0为宏定义,为0x01SET_DIN;elseCLR_DIN;dat = dat >> 1; //移位,为发送下一位做准备//拉高CLK,发送数据	SET_CLK;	__nop();}	
}

TM1620初始化函数:

/** @name   TM1620_Init* @brief  TM1620初始化* @param  None* @retval None      
*/
static void TM1620_Init() 
{uint8_t i = 0;//设置显示模式TM1620_Write_Byte(Disp_Mode_GRID6_SEG8); SET_STB;  //设置地址自动增加模式TM1620_Write_Byte(Write_Data_Addr_Auto_Add); SET_STB;//利用循环清除显示寄存器地址TM1620_Write_Byte(Disp_SFR_Addr_00H); //首地址for(i=0;i<Disp_SFR_Addr_Num;i++)TM1620_Write_Byte(0x00); SET_STB; //调节数码管辉度TM1620_Write_Byte(Display.Brightness);SET_STB; 
}

数码管显示函数:

/** @name   Disp* @brief  数码管显示* @param  Disp_NUM:       数码管编号Dat             数据0~FDisp_DP_Status  小数点显示状态* @retval None      
*/
static void Disp(Disp_NUM_t Disp_NUM,uint8_t Dat,Disp_DP_Status_t Disp_DP_Status) 
{//检查参数范围if(Dat > 0x0F){System.Assert_Failed();}//设置显示模式TM1620_Write_Byte(Disp_Mode_GRID6_SEG8); SET_STB;//设置地址固定模式TM1620_Write_Byte(Write_Data_Addr_Fix); SET_STB;//写地址(数码管编号)TM1620_Write_Byte(Disp_NUM);//写数据,并判断有无小数点if(Disp_DP_Status == Disp_DP_ON)TM1620_Write_Byte(Disp_Decode[Dat] + 0x80); //Disp_Decode数组存贮的是数码管显示“0”~“F”的译码。elseTM1620_Write_Byte(Disp_Decode[Dat]);SET_STB;//设置辉度TM1620_Write_Byte(Display.Brightness);SET_STB; 
}

外部中断0回调函数:

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if(GPIO_Pin == KEY1_Pin){LED.LED_Flip(LED2);switch(Display.Brightness){case Brightness_level_1: Display.Brightness = Brightness_level_2; break;case Brightness_level_2: Display.Brightness = Brightness_level_3; break;case Brightness_level_3: Display.Brightness = Brightness_level_4; break;case Brightness_level_4: Display.Brightness = Brightness_level_5; break;case Brightness_level_5: Display.Brightness = Brightness_level_6; break;case Brightness_level_6: Display.Brightness = Brightness_level_7; break;case Brightness_level_7: Display.Brightness = Brightness_level_8; break;case Brightness_level_8: Display.Brightness = Brightness_level_1; break;default: Display.Brightness = Brightness_level_3;}}
}

九、立创商城供货信息

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

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

相关文章

033.Python面向对象_类补充_生命周期

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

[NOIP2006]明明的随机数

一、题目 登录—专业IT笔试面试备考平台_牛客网 二、代码 set去重&#xff0c;再利用vector进行排序 std::set是一个自带排序功能的容器&#xff0c;它已经按照一定的规则&#xff08;默认是元素的小于比较&#xff09;对元素进行了排序。因此&#xff0c;你不能直接对std::s…

【JAVA杂货铺】一文带你走进面向对象编程|继承|重载|重写|期末复习系列 | (中4)

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏:Java学习系列专栏&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 继承 私有成员变量在继承中的使用​编辑 当子类和父类变量不重名时: 当子类和父类重名时: &#x1f4dd;总结: 继承的含义: …

卷积神经网络经典backbone

特征提取是数据分析和机器学习中的基本概念&#xff0c;是将原始数据转换为更适合分析或建模的格式过程中的关键步骤。特征&#xff0c;也称为变量或属性&#xff0c;是我们用来进行预测、对对象进行分类或从数据中获取见解的数据点的特定特征或属性。 1.AlexNet paper&#…

jQuery_06 过滤器的使用

什么是过滤器&#xff1f; 过滤器就是用来筛选dom对象的&#xff0c;过滤器是和选择器一起使用的。在选择了dom对象后在进行过滤筛选。 jQuery对象中存储的dom对象顺序与页面标签声明有关系。 声明顺序就是dom中存放的顺序 1.基本过滤器 使用dom对象在数组中的位置来作为过滤条…

一网打尽异步神器CompletableFuture

Future接口以及它的局限性 我们都知道&#xff0c;Java中创建线程的方式主要有两种方式&#xff0c;继承Thread或者实现Runnable接口。但是这两种都是有一个共同的缺点&#xff0c;那就是都无法获取到线程执行的结果&#xff0c;也就是没有返回值。于是在JDK1.5 以后为了解决这…

FloodFill

"绝境之中才窥见&#xff0c;Winner&#xff0c;Winner" FloodFill算法简介: floodfill又翻译成漫水填充。我们可以将下面的矩阵理解为一片具有一定高度的坡地&#xff0c;此时突发洪水&#xff0c;洪水会将高度<0的地方填满。 话句话来说&#xff0c;Fl…

IDEA2023版本创建Sping项目只能勾选17和21,却无法使用Java8?(已解决)

文章目录 前言分析解决方案一&#xff1a;替换创建项目的源方案二&#xff1a;升级JDK版本 参考文献 前言 起因 想创建一个springboot的项目&#xff0c;本地安装的是1.8&#xff0c;但是在使用Spring Initializr创建项目时&#xff0c;发现版本只有17和21。 在JDK为1.8的情况下…

代码随想录算法训练营第四十六天【动态规划part08】 | 139.单词拆分、背包总结

139.单词拆分 题目链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 求解思路&#xff1a; 单词是物品&#xff0c;字符串s是背包&#xff0c;单词能否组成字符串s&#xff0c;就是问物品能不能把背包装满。 动规五部曲 确定dp数…

弹窗concrt140.dll丢失的解决方法,深度解析concrt140.dll丢失的原因

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示或者系统崩溃的情况。其中&#xff0c;concrt140.dll是一个常见的错误提示&#xff0c;这个错误通常会导致某些应用程序无法正常运行。为了解决这个问题&#xff0c;本文将介绍5种详细的解决方法&#xff0c;帮助您恢…

蓝桥杯官网算法赛(蓝桥小课堂)

问题描述 蓝桥小课堂开课啦&#xff01; 海伦公式&#xff08;Herons formula&#xff09;&#xff0c;也称为海伦-秦九韶公式&#xff0c;是用于计算三角形面积的一种公式&#xff0c;它可以通过三条边的长度来确定三角形的面积&#xff0c;而无需知道三角形的高度。 海伦公…

Python 进阶(十):数学计算(math 模块)

《Python入门核心技术》专栏总目录・点这里 文章目录 1. 导入math模块2. 常用数学函数3. 常量4. 其他函数和用法5. 总结 大家好&#xff0c;我是水滴~~ Python的math模块提供了许多数学运算函数&#xff0c;为开发者在数值计算和数据处理方面提供了强大的工具。本教程将详细介…

【100个Cocos实例】看完这个,我再也不要当赌狗了...

引言 探索游戏开发中抽奖转盘的奥秘。 抽奖转盘是一种常见的互动元素&#xff0c;通常用于游戏、营销活动等场景。 本文将介绍一下抽奖转盘的原理和实现。 本文源工程可在文末阅读原文获取&#xff0c;小伙伴们自行前往。 1.抽奖转盘的组成 抽奖转盘的实现涉及多个组成部分…

基于springboot校园车辆管理系统

背景 伴随着社会经济的快速发展&#xff0c;机动车保有量不断增加。不断提高的大众生活水平以及人们不断增长的自主出行需求&#xff0c;人们对汽车的 依赖性在不断增强。汽车已经发展成为公众日常出行的一种重要的交通工具。在如此形势下&#xff0c;高校校园内的机动车数量也…

【KubeSphere】基于AWS在 Linux 上以 All-in-One 模式安装 KubeSphere

文章目录 一、实验配置说明二、实验准备工作1.确认系统版本2. 修改网络DNS3. 关闭SELINUX4. 关闭防火墙 三、实验依赖项安装四、下载 KubeKey五、一键化安装部署六、验证安装结果七、登录KubeSphere管理控制台八、参考链接 一、实验配置说明 本实验基于AWS启动一台新实例&…

I/O多路转接之epoll

承接上文 I/O多路转接之poll-CSDN博客 简介 epoll的相关系统调用 epoll底层原理 编写epoll的server 重新回归一下epoll原理&#xff0c;LT&#xff0c;ET epoll改成ET工作模式 -- 初识(有bug) epoll初识 按照man手册的说法: 是为处理大批量句柄而作了改进的poll. 它是在2.5.4…

CANdelaStudio 使用教程4 编辑State

文章目录 简述1、State Groups2、Dependencies3、 Defaults State1、 会话状态2、 新增会话状态3、 编辑 服务对 State 的依赖关系 State Diagram 简述 1、State Groups 2、Dependencies 在这里&#xff0c;可以编辑现有服务在不同会话状态或安全访问状态的支持情况和状态转换…

粒子群算法Particle Swarm Optimization (PSO)的定义,应用优点和缺点的总结!!

文章目录 前言一、粒子群算法的定义二、粒子群算法的应用三、粒子群算法的优点四、粒子群算法的缺点&#xff1a;粒子群算法的总结 前言 粒子群算法是一种基于群体协作的随机搜索算法&#xff0c;通过模拟鸟群觅食行为而发展起来。该算法最初是由Eberhart博士和Kennedy博士于1…

概念解析 | 玻尔兹曼机

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:玻尔兹曼机。 概念解析 | 玻尔兹曼机 引言 随着人工智能技术的飞速发展,玻尔兹曼机作为一种重要的生成模型,受到了广泛的关注。 背景介绍 玻尔兹曼机(Boltzmann Machine)是一…

uniapp+vue基于Android的校园二手跳蚤市场的设计与实现 微信小程序

实现功能&#xff1a; 用户管理&#xff1a;登陆、注册、注销、修改密码、上传头像、修改资料 发布与检索&#xff1a;发布商品、模糊搜索、人气排序、价格排序、时间排序、推送商品&#xff08;协同过滤算法实现个性化推荐&#xff09;&#xff0c;最新发布、分类检索 核心交易…