一、要求

在CT107D单片机训练综合平台上,实现数码管的动态显示,在8位数码管中,前面4位显示年份“2022”,接着是2个分隔符“--”,最后两位是月份,从1月份开始,每个一段时间加1个月,到12月之后又从1月开始递增,如此循环往复。例:2022--01

二、数码管动态显示设计思路

共阳数码管介绍参考该文章:

【蓝桥杯-单片机学习笔记(三)】共阳数码管的静态显示_Backlight__的博客-CSDN博客

此处重点说明数码管的动态显示。

数码管动态显示实质上就是轮流点亮单个数码管实现多位数码管整体显示的效果。在轮流显示过程中,每位数码管点亮时间为1~2ms,由于人的视觉暂留现象以及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,人眼看到的就是一组稳定的显示数据,不会有闪烁感,显示效果和静态显示效果一样。动态显示能够节省大量的I/O端口,而且功耗更低。

三、硬件电路分析

硬件电路分析参考该文章:

【蓝桥杯-单片机学习笔记(三)】共阳数码管的静态显示_Backlight__的博客-CSDN博客

数码管动态显示和静态显示硬件电路相同,所不同的就是程序中动态显示对数码管的位选端状态的控制是分时进行的,而不是同时进行控制。

四、程序

在数码管动态显示的程序编写中,需要逐个开启单个数码管所对应的位选端。为了使动态显示的8位数字显示效果达到和静态显示相同的效果,在对每个数码管进行操作后(即打开位选,设置段选)让其延时1~2ms。

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned charuchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xbf,0xff};//共阳段码表
uchar month;
void delay_ms(uchar xms)        //@11.0592MHz
{uchar i,j;while(xms){    _nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);xms--;}
}void HC138_select(uchar n)
{switch(n){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;}
}    void SMG_mode(uchar channel,uchar num)  //数码管选择显示通道和数字
{HC138_select(6);    //打开位选P0 = 0x01 << channel;HC138_select(7);    //打开段选P0 = num;
}void SMG_show()
{//显示年份SMG_mode(0,table[2]);delay_ms(2);    //此处延时不能过长SMG_mode(1,table[0]);delay_ms(2);SMG_mode(2,table[2]);delay_ms(2);SMG_mode(3,table[2]);delay_ms(2);//显示--SMG_mode(4,table[16]);delay_ms(2);SMG_mode(5,table[16]);delay_ms(2);//显示月份SMG_mode(6,table[month/10]);delay_ms(2);SMG_mode(7,table[month%10]);delay_ms(2);
}void delay_SMG(uchar t) //让变化的数码管那两位显示不闪烁
{while(t--){SMG_show();}
}void system_init()
{HC138_select(4);    //关闭LEDP0 = 0xff;HC138_select(5);    //关闭蜂鸣器和继电器P0 = 0x00;
}void main()
{system_init();while(1){SMG_show();month++;    if(month > 12){month = 1;}delay_SMG(50);}
}

【蓝桥杯—单片机学习笔记(四)】共阳数码管的动态显示相关推荐

  1. 【蓝桥杯-单片机学习笔记(六)】矩阵键盘控制数码管显示0~F

    一.要求 在CT107D单片机训练平台上,首先将J5处的跳线帽接到1~2引脚,使按键S4~S19组成4*4的矩阵键盘.在扫描按键的过程中,发现有按键触发信号后,待按键松开后,数码管显示相应的数字.按键 ...

  2. 【蓝桥杯-单片机学习笔记(三)】共阳数码管的静态显示

    一.要求 在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复. 二.数码管 1.七段数码管 七段数码管,其实内部由8个发光二极管构 ...

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

    一.理论部分 共阳数码管引脚可以分为两个部分,一是段码,一个是位码.段码指的是一个数码管的7个段加dp小数点,一共8个,通过P0控制其亮灭使得数码管显示出不同效果.譬如亮afedcg表示的是6形状.位 ...

  4. 蓝桥杯单片机学习日记1-LED 蜂鸣器 继电器 数码管的简单驱动

    此片文章用于记录蓝桥杯单片机的学习. LED 蜂鸣器 继电器 数码管 这些都是比赛时常用的外设,如下原理图:  LED部分:  蜂鸣器和继电器部分(图中还有步进电机部分):  数码管部分: 可见,上述 ...

  5. 【蓝桥杯-单片机学习笔记(十五)】NE555频率测量

    一.要求 在CT107D平台上测量NE555产生方波的频率值并显示在数码管上.频率数据显示用5位数码管,单位是Hz,数码管最左边显示"F".改变滑动变阻器Rb3可以改变频率大小. ...

  6. 【蓝桥杯-单片机学习笔记(十二)】工厂灯光控制系统

    一.要求 在CT107D单片机综合训练平台上,设计程序,实现实时显示开机系统运行时间和按键控制灯光. 1.设计系统初始化函数,关闭蜂鸣器和继电器等无关设备. 2.设计设备检测函数,首先检测LED灯,从 ...

  7. 【蓝桥杯-单片机学习笔记(十七)】24C02原理及其读写操作

    一.24C02 24C02是一个2K Bit的串行EEPROM存储器,内部含有256个字节.在24C02里面有一个8字节的页写缓冲器.24C02支持I2C总线协议.I2C是一种双向.两线串行通信接口, ...

  8. 【蓝桥杯——单片机学习笔记】五.数码管显示(STC15F2K60S2)

    一.原理图 二.原理图分析 如上图,U7锁存器控制数码管的段选(即每个数字的7个短横和1个点),U6锁存器控制数码管的位选(即8个数字).具体锁存器的输出端对应数码管的哪个输入端可看上图.控制锁存器的 ...

  9. 【蓝桥杯-单片机学习笔记(十四)】DS1302

    一.DS1302介绍 1.功能介绍 DS1302包括时钟/日历寄存器和31字节(8位)的数据暂存寄存器,数据通信仅通过一条串行输入输出口,实时时钟/日历提供包括秒.分.时.日期.月份和年份信息.闰年可 ...

最新文章

  1. 被公司圈养的年轻人,如何避免被市场淘汰?
  2. linux常用性能分析命令详解#TOP
  3. 深度学习——人工神经网络再掀研究热潮
  4. Kali忘记登录密码——修改root密码
  5. 计算机科学速成课36:自然语言处理
  6. 第七届蓝桥杯大赛个人赛省赛(软件类)真题4
  7. html的各种基本标签 fylong,HTML:text标签不工作
  8. [译] Bulma: 2018年你应该关注的CSS框架
  9. perl引用中的闭包closure
  10. 低配本用win10服务器系统,低配电脑装win10会怎么样
  11. 合并m3u8(ts)文件的工具
  12. 中国工程院院士倪光南:拥抱开源 与世界协同创新
  13. 关于部分手机通话录音报start failed的问题
  14. 6、API网关 Zuul
  15. 好消息!ios10越狱插件造成桌面图标消失的完美解决方法来了!!!
  16. 有关于3GPP SUL的一些学习
  17. C++:运算符重载与类的赋值运算符重载函数
  18. 西北乱跑娃 --- python爬虫
  19. C语言大数相乘(整形)
  20. 【分享】QT读取EXCEL文件(附代码)

热门文章

  1. 读《VR虚拟现实与AR增强现实的技术原理与商业应用》
  2. H3C配置远程登录(console、telnet、ssh)
  3. 西行漫记(3):敏捷的奥秘
  4. 零售业进入立异时期:O2O榜首战
  5. msdtc相关问题汇总
  6. 新概念1 课文和单词(2022/12/24)
  7. 苹果 macOS 13 开发者预览版 Beta 11(内部版本号:22A5373b)发布
  8. 量化投资工具-AKShare是如何进行投资交易的?
  9. 通用计算机的雏形是图灵机吗,什么是图灵机和通用计算机
  10. 一文搞定python绘折线图(标题,自定义刻度范围,xy轴刻度值的大小,垂直xy轴的虚线,标签,图例)