[蓝桥杯单片机]学习笔记——共阳数码管的静态与动态显示

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

一、理论部分

         共阳数码管引脚可以分为两个部分,一是段码,一个是位码。段码指的是一个数码管的7个段加dp小数点,一共8个,通过P0控制其亮灭使得数码管显示出不同效果。譬如亮afedcg表示的是6形状。位码指的多个数码管显示的时候,你要让哪个数码管显示,设定对应的公共端的值,简单讲位码指的是亮哪个数码管,其由P0控制

         通过查询原理图,可知Y7CY6C分别控制段码和位码,而Y7C和Y6C控制方法和LED灯相似。

         由于数码管段码只给出了8个引脚,也就是说,只能同一时让八个数码管通过这8个引脚获得相同的信号,显示相同内容。那么如何让数码管显示不同内容?这就引进了动态数码管显示:我们要使用3个数码管显示123,只需要在第一个管显示完1立刻切换到下一个管让其显示2,这样不停的在三个管中显示123,又由于人的视觉暂停作用,就可以使人看到多个数码管同时显示不同内容的效果。

编写思路:P2高三位置为110->P0输出数码管位置->P2高三位置为111->P0输出显示内容

静态显示:直接调用显示

动态显示:切换不同数码管,显示不同内容,封装成函数后放进主循环不断扫描

二、程序案例

unsigned char code SMG_duanma[18]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xbf,0x7f};//段码表,显示0~F、'-'、'.'。void Delay(unsigned int t) //延时函数
{while (t--);while (t--);
}
/*****************************************************************
*@Function:  SelecHC573    //
*@Description: 切换锁存器    //
*@Input: channel 切换的锁存器序号//
*@Output: 无//
*@Return: 无 //
*@Others: 无 //
/*****************************************************************/
void SelecHC573(unsigned char channel)  
{switch(channel){case 4:P2=(P2&0x1f)|0x80;break;case 5:P2=(P2&0x1f)|0xa0;break;case 6:P2=(P2&0x1f)|0xc0;break;case 7:P2=(P2&0x1f)|0xe0;break;}
}/*****************************************************************
*@Function:  DisplaySMG_Bit//
*@Description: 数码管显示    //
*@Input:   dat 数码管显示的数据(段码表)//
*		   pos	数码管的位置0-7//
*@Output: 无//
*@Return: 无 //
*@Others: 无 //
/*****************************************************************/
void DisplaySMG_Bit(unsigned char dat,unsigned pos) 
{SelecHC573(6);//数码管的位置P0=0x01<<pos; SelecHC573(7);//数码管的内容P0=dat;
}/*****************************************************************
*@Function:  DelaySMG    //
*@Description:  延时函数   //
*@Input: t 用于延时递减//
*@Output: 无//
*@Return: 无//
*@Others: 无//
/*****************************************************************/
void DelaySMG(unsigned int t)
{while(t--);
}void Delay(unsigned int t)
{while(t--){Display_Dynamic();//延时时放置数码管暂停显示}
}/*****************************************************************
*@Function: Display_Dynamic     //
*@Description: 切换数码管,使其显示“2018--月份”   //
*@Input: 无//
*@Output: 无//
*@Return:  //
*@Others:  //
/*****************************************************************/
void Display_Dynamic() 
{DisplaySMG_Bit(SMG_duanma[2],0);DelaySMG(500);DisplaySMG_Bit(SMG_duanma[0],1);DelaySMG(500);DisplaySMG_Bit(SMG_duanma[1],2);DelaySMG(500);DisplaySMG_Bit(SMG_duanma[8],3);DelaySMG(500);DisplaySMG_Bit(SMG_duanma[16],4);DelaySMG(500);DisplaySMG_Bit(SMG_duanma[16],5);DelaySMG(500);DisplaySMG_Bit(SMG_duanma[month/10],6);DelaySMG(500);DisplaySMG_Bit(SMG_duanma[month%10],7);DelaySMG(500);	
}在主函数将Display_Dynamic放置while循环不断扫描即可

通过断码表可以便捷输入内容,不用每次都计算。


感谢大家的观看

欢迎大家提出问题并指正~


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

相关文章

共阴/共阳数码管 ----- 学习笔记

一、数码管的动态显示原理 动态显示的特点是将所有数码管的段选线并联在一起&#xff0c;由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示&#xff0c;所谓动态扫描显示即轮流向各位数码管送出字形码和相应的选位&#xff0c;利用发光管的余晖和人眼视觉暂留作用…

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

51单片机——数码管动态显示 1、共阴共阳定义 LED 共阴极指的是LED共同的接点是GND&#xff08;接地&#xff09;&#xff0c;而共阳极指的是LED共同的接点是电源。LED亮灯的条件是两端有电势差。 最后一段h/dp小数点在高位&#xff0c;第一段a在低位 hgfedcbaxxxxxxxx 1.共…

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中&#xff0c;单例模式是一种常用的软件设计模式&#xff0c;该模式的主要目的是确保某一个类在内存中只能有一个实例对象&#xff1b;通过单例模式的方法创建的类在当前进程中只有一个实例对象。单例模式分为&#xff1a;1、懒汉式&#xff0c;类一加载就创建对象&am…

Python设计模式-单例模式

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

redis常用命令

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

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

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

redis启动,停止,重启

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

centos中常用与redis相关的命令

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

Linux重启 Redis自动启动

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

windows 重启redis的方法

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

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

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

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&#xff0c;需要重启redis 一、重启步骤&#xff1a; 1、依次输入以下指令 redis-cli -h 127.0.0.1…

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

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

如何停止重启启动Redis服务

如何停止/重启/启动Redis服务 一、命令行直接启动/停止/重启redis 1、启动redis服务及验证2、停止redis服务及验证3、重启redis服务及验证 二、通过redis的相关配置信息关闭/启动redis 1.关闭 redis服务及验证2.启动redis服务及验证 叮嘟&#xff01;最近做项目学习用到了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音频标注工具 前言一、音频标注工具二、使用环境总结 前言 为了方便查看音频标注质量&#xff0c;使用图形化音频标注工具可以更方便的对音频文本内容进行编辑。 下载链接&#xff1a; https://download.csdn.net/download/weixin_54971024/85426511 一、音频标注工具 主页…

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

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