LED 数码管共阴共阳的区别+静态/动态显示

article/2025/8/21 16:13:19

51单片机——数码管动态显示

1、共阴共阳定义

LED 共阴极指的是LED共同的接点是GND(接地),而共阳极指的是LED共同的接点是电源。LED亮灯的条件是两端有电势差。

最后一段h/dp小数点在高位,第一段a在低位

hgfedcba=xxxxxxxx 

1.共阴极:

当LED另一端接入5V电源的时候,与另一端产生电势差因此会有电流从正极流到GND,最后会亮灯

当LED另一端接入0V的时候,则不会产生电势差也就不会亮灯。

优点是符合人类的正向思维,送电ON就是开,OFF就是关。

2.共阳极:

当LED另一端接入5V电源的时候,不会产生电势差因此不会亮灯。

当LED另一端接入0V的时候,会产生电势差,电流会从5V端流经LED到0V端,会亮灯。

在编写单片机的时候,如果是共阳极的LED。则00001111表示左4个灯亮右4个灯灭

2、共阳极与共阴极LED驱动方法驱动方法

文章简单介绍了共阳极和共阴极两种LED驱动方法

单片机控制的LED数码管动态驱动电路

现在让我们用实验板上的两个数码管来做一个循环显示00~99数字的实验,先来完成必要的硬件部分,

数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同,并且相应的0~9的显示代码也正好相反。

首先我们来介绍两位共阳数码管的单片机驱动方法,电路如下图:

网友可以看到:P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。

因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。

下面我们再介绍一种共阴数码管的单片机驱动方法,电路如下图

 

网友可以看到:+5V通过1K的排阻直接给数码管的8个段位供电,P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,相应的位可以吸入电流。单片机的P0口输出的数据相当于将数码管不要显示的数字段对地短路,这样数码管就会显示需要的数字。

网友可以看到,共阴数码管的硬件更简单,所以在批量生产时,硬件开销小,节省PCB面积,减少焊接工作量,降低综合成本,所以采用共阴数码管更有利于批量生产,现在销售的试验板都是采用共阴数码管了.

《显示方式》

静态显示:

他并不是指显示数据只能静止不变的意思,而是指COM口无需扫描,也就是COM口无需电平的变化,也就是不需片选的时候;这种方式往往应用在只有一个数码管的时候,因为只有一个数码管,COM口设置完之后,显示数据只受a、b。。。。g、dp段选线电压控制,只需改变段选线数据即可显示相应的数据;因此称为静态显示;

动态显示

当我们有多个数码管参与显示同一数据时,因为所有数码管的相同段选线都是连在一起的,那为什么要连在一起?你想啊,你每个数码管都单独分配7个段选线控制IO口,就问你,你芯片IO口资源够吗?!所以人家就利用COM口的片选功能,所有数码管共用段选线,再利用COM实现对数码管的片选,这样每增加一个数码管,只需增加一个COM口的资源;

软件则只需每次只选择一个COM有效(一个数码管有效),并且根据数据改变seg口输出数码管,其他数码管无效,只要数码管的刷新频率够快,在人眼里就是点亮的(人视网膜余晖效应),这个就是常说的COM扫描频率,这样子,大家轮着利用COM的片选功能使用seg口输出数据,轮着显示,只要显示频率够快,表现出来的就是多段数码管一起点亮;这就是动态显示,也就是扫描模式显示;知道这个原理,其实很多LCD都是差不多的,只不过别人是用驱动芯片驱动的,我们只是用IO模拟驱动的;
————————————————
版权声明:本文为CSDN博主「airX嵌入式(微信公众号同名)」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_22520215/article/details/116275324

数码管的显示方式有两种:静态显示和动态显示


1.静态显示方式。

所谓静态显示就是指无论是多少位数码管,同时处于显示状态。 当单片机系统中使用静态数码管显示时,需要在每一个数码管上添加一个锁存器,当需要某个数码管显示其他内容时,只需要修改与其相连的锁存器的值即可。 当数码管处于静态显示方式时,所有位选线(数码管的公共端)连接在一起,而各个数码管的段选线(数码管上各笔段的引出线)是相互分离的。
静态显示的优点是:数码管显示无闪烁,亮度高,软件控制比较容易;缺点是:需要的硬件电路较多(每一个数码管都需要一个锁存器),如果在全国大学生电子设计竞赛中使用,将造成很大的不便,同时由于所有数码管都处于被点亮状态,所以需要的电流很大,当数码管的数量增多时,对电源的要求也就随之增高。所以,在大部分的硬件电路设计中,很少采用静态显示方式。

51单片机——数码管动态显示
2.动态显示方式。

所谓动态显示,是指无论在任何时刻只有一个数码管处于显示状态,每个数码管轮流显示。 当数码管处于动态显示时,所有位选线分离,而每个数码管的各条段选线相连。当需要显示数字或字符时,需要将所有数码管轮流点亮,这时对每个数码管的点亮周期有了一个较严格的要求:由于发光体从通入电流开始点亮到完全发光需要一定的时间,叫做响应时间,这个时间对于不同的发光材质是不同的,通常情况下为几百微秒,所以数码管的刷新周期(所有数码管被轮流点亮一次的时间)不要过短,这也与数码管的数量有关,一般的数码管的刷新周期应控制在5ms~10ms,即刷新率为200Hz~100Hz,这样既保证了数码管每一次刷新都被完全点亮,同时又不会产生闪烁现象。
动态显示的优点是:硬件电路简单(数码管越多,这个优势越明显),由于每个时刻只有一个数码管被点亮,所以所有数码管消耗的电流较小;缺点是:数码管亮度不如静态显示时的亮度高,例如有8个数码管,以1秒为单位,每个数码管点亮的时间只有1/8秒,所以亮度较低;如果刷新率较低,会出现闪烁现象;如果数码管直接与单片机连接,软件控制上会比较麻烦等。
在应用数码管进行显示时,首先需要考虑的问题就是驱动电流,与发光二极管相同,数码管的发光段也需要串联限流电阻,以共阳极数码管为例,串联的限流电阻阻值越大,电流越小,亮度越低;电阻值越小,电流越大,亮度越高。在使用限流电阻时需要在每一个段线上都串联限流电阻,而不要在公共端上串联电阻,如果只在公共端上串联一个限流电阻,则在显示不同的数字时,将会造成数码管亮度的不同。 由于在动态显示时,每个数码管的段选线是对应连接在一起的,同时由于数码管不存在同时点亮状态,所以之需要在段选线的引出端上串联限流电阻即可, 1.静态显示驱动电路。
数码管的静态显示虽然硬件电路较多,但与单片机之间的连接比较简单,例如可以使用串行转并行芯片74LS164作为数码管的驱动,74LS164之需要与单片机的串行接口相连接即可, 2.在动态显示时,如果将数码管直接与单片机连接,除了硬件电路简单外,似乎并没有太多的优点。但是当我们选用专用的数码管显示驱动芯片时,其优点就显现出来了。目前常见的数码管显示芯片有8279、MAX7219、HD7279、CH451等。这些芯片的主要特点是:数码管的显示全都采用动态扫描的方式,都可以连接8个数码管,控制方式都比较简单。现面对这几个芯片进行简单的介绍。
8279为Intel公司生产的较早期的产品,是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8×8=64ByteRAM,键盘控制部分可控制8×8=64个按键或8×8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示RAM容量为16×8,即显示器最大配置可达16位LED数码显示(有关键盘部分内容将在2.4节中详细介绍)。8279与单片机之间采用三总线(数据总线、地址总线和控制总线)结构连接,在用8279与数码管连接时,还需要连接驱动器,同时由于价格较高,所以现在使用的很少。 

3、单片机程序

C语言数码管是共阴共阳程序,成功C DIY 单片机(2)51单片机直接驱动共阴极数码管..._毅燃君的博客-CSDN博客

自制51单片机共阳共阴数码混用计算器(超详细的注释)-C文档类资源-CSDN下载

74hc164驱动数码管c语言程序,74hc164驱动共阴数码管与共阳数码管_74hc164驱动源程序..._weixin_39867559的博客-CSDN博客

4、电路

 【模拟电路】ULN2003驱动共阴或共阳数码管的思考_隔壁家的王小琪的博客-CSDN博客_uln2003驱动数码管电路图

 共阴/共阳数码管 ----- 学习笔记_旭日初扬的博客-CSDN博客_共阴极真值表

数码管是如何亮起来的?跟液晶屏又有什么关系?_airX嵌入式(微信公众号同名)的博客-CSDN博客

如何点亮数码管? - 知乎

 

51单片机——LED流水灯_马己的博客-CSDN博客_单片机流水灯 


http://chatgpt.dhexx.cn/article/bOKYnIXb.shtml

相关文章

python单例模式selenium driver实现单例

一、使用装饰器实现单例 def Singleton(cls):_instance {}def _singleton(*args, **kargs):if cls not in _instance:_instance[cls] cls(*args, **kargs)return _instance[cls]return _singletonSingleton class A(object):a 1def __init__(self, x0):self.x xa1 A(2) a2…

python单例模式有什么用_python单例模式是什么

在python中,单例模式是一种常用的软件设计模式,该模式的主要目的是确保某一个类在内存中只能有一个实例对象;通过单例模式的方法创建的类在当前进程中只有一个实例对象。单例模式分为:1、懒汉式,类一加载就创建对象&am…

Python设计模式-单例模式

设计思想 通过上面的介绍,我们可以知道单例模式最重要的就是要保证一个类只有一个实例并且这个类易于被访问,那么要怎么做才能保证一个类具有一个实例呢?一个全局变量使得一个对象可以被访问,但是这样做却不能防止你实例化多个对…

redis常用命令

redis常用命令 服务端客户端 服务端 1.使用help查看帮助文档 redis-server --help2.启动redis服务 sudo service redis start3.停止redis服务 sudo service redis stop4.重启redis服务 sudo service redis restart如果上面命令不行,用下面的命令: …

运维维护服务器redis常用命令

查看服务器是否有redis ps -ef | grep redis知道有redis存在了,查看下redis状态 systemctl status redis知道redis状态是运行态和只能本机访问后,想查看redis配置文件位置 cat /etc/systemd/system/redis.service知道redis配置在哪里,修改…

redis启动,停止,重启

1、查看redis是否在运行: ps aux | grep redis 2、启动redis: /etc/init.d/redis start 3、关闭redis:redis-cli shutdown 4、当设置密码后, 上面的关闭命令无效:带密码输入:redis-cli -a [password] 回…

centos中常用与redis相关的命令

该篇指令只针对完全不懂Linux,但是却不得不配置redis的同学(没错就是我) 安装过程就不阐述了,默认都安好了嗷。 启动redis 首先进入到redis安装位置的bin目录下,路径因人而异,这里用本人的路径作为示例 …

Linux重启 Redis自动启动

今天又要维护新的服务器了,翻了一下网上Redis自动启动,结果配置一大堆,其实很多没什么用,也不好理解,所以干脆把我自己的记录给写这里给大家参考。 第一步:创建Redis启动服务 在系统开机启动项目录 /lib/…

windows 重启redis的方法

目录 打开本地的文件夹 选中文件的路径输入cmd 在cmd命令窗口中输入以下的指令 指令的内容以及对应的命令含义 前言: 最近在本地搭建redis环境,突然发现本地的redis启动失败了,使用reids的启动命令也不行,于是找了不少的方法&…

redis linux 重启命令行,redis 如何重启? linux下请输入命令不要用kill 的方式

噜噜哒 1、如果是用apt-get或者yum install安装的redis,可以直接通过下面的命令停止/启动/重启redis:/etc/init.d/redis-server stop/etc/init.d/redis-server start/etc/init.d/redis-server restart2、如果是通过源码安装的redis,则可以通过…

redis重启命令Linux,Redis启动、配置 及 常用命令-Go语言中文社区

启动 Redis 服务 src/redis-server或者src/redis-server redis.conf 注:src/redis-server 会不加载redis.conf配置文件,提示: Warning: no config file specified, using the default config. 标题 而:src/redis-server redis.conf 为载入redis.conf配置的启动方式 标题 sr…

Windows环境下redis重启

在redis安装的目录下打开cmd窗口 输入以下命令打开启动redis redis-server redis.windows.conf 如果提示 Creating Server TCP listening socket *:6379: bind: No error,需要重启redis 一、重启步骤: 1、依次输入以下指令 redis-cli -h 127.0.0.1…

如何停止/重启/启动Redis服务

如何停止/重启/启动Redis服务 一、命令行直接启动/停止/重启redis1、启动redis服务及验证2、停止redis服务及验证3、重启redis服务及验证 二、通过redis的相关配置信息关闭/启动redis1.关闭 redis服务及验证2.启动redis服务及验证 叮嘟!最近做项目学习用到了Redis&a…

如何停止重启启动Redis服务

如何停止/重启/启动Redis服务 一、命令行直接启动/停止/重启redis 1、启动redis服务及验证2、停止redis服务及验证3、重启redis服务及验证 二、通过redis的相关配置信息关闭/启动redis 1.关闭 redis服务及验证2.启动redis服务及验证 叮嘟!最近做项目学习用到了Re…

语音识别,标注数据

切割音频文件 from pydub import AudioSegment from pydub.silence import split_on_silence import ossound AudioSegment.from_mp3("E:/data/AcsData/zfBX/hw202003301111246_23401.wav") loudness sound.dBFS outputPath "E:/data/AcsData/zfBX/output/&…

音频标注工具

ASR音频标注工具 前言一、音频标注工具二、使用环境总结 前言 为了方便查看音频标注质量,使用图形化音频标注工具可以更方便的对音频文本内容进行编辑。 下载链接: https://download.csdn.net/download/weixin_54971024/85426511 一、音频标注工具 主页…

数据标注工具、平台、类型

华为云ModelArts标注工具,支持的标注类型有: 图片: imgClassify 图像分类:识别一张图片中是否包含某种物体 objDetect 物体检测:识别出图片中每个物体的位置及类别 imgSevering 图像分割:根据图片中的物体…

Python-实现语音识别并批处理标注(重命名)文件

由于我的测试经常需要对音频文件内容标注(根据语音的内容用拼音标注),一个一个人工标注很费时费力!那有没有简单点的方法,答案是有!!!一起学习吧~ 1.在百度AI开发平台获取AppID、AP…

景联文科技提供语音数据采集标注服务

什么是语音标注? 语音标注是数据标注行业中一种常见的标注类型,是由标注员对语音信息进行不断标注转写,让人工系统进行进一步学习,标注后的数据主要用于人工智能机器学习,相当于给计算机系统装上了“耳朵”&#xff0…