蓝桥杯之单片机学习(四)——共阳数码管的动态显示

简介: 蓝桥杯之单片机学习(四)——共阳数码管的动态显示

一、动态显示的设计思路


0a2653c851af460fa595bd959398a8f1.png


二、训练目标


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


三、训练重点


4cebaac233b3433da32a72337a77fc60.png


四、代码展示


#include <reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
//定义月份
uint yue = 1;
uchar code SMG_duanma[18] = 
  {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
  0x88,0x80,0xc6,0xc0,0x86,0x8e,
  0xbf,0x7f};//分别是0-9(对应下标),A-F,“-”,“.”
void Delay_SMG(uint n)
{
  while(n--);
}
//配置HC138
void SelectHC138(uchar 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;
  }
}
//选择位码并显示
void DisplaySMG_Bit(uchar pos, uchar dat)
{
  SelectHC138(6);
  P0 = 0X01 << pos;
  SelectHC138(7);
  P0 = SMG_duanma[dat];
}
void Display_Dymaic()
{
  //uint i;
  DisplaySMG_Bit(0,2);
  Delay_SMG(500);
  DisplaySMG_Bit(1,0);
  Delay_SMG(500);
  DisplaySMG_Bit(2,2);
  Delay_SMG(500);
  DisplaySMG_Bit(3,2);
  Delay_SMG(500);
  DisplaySMG_Bit(4,16);
  Delay_SMG(500);
  DisplaySMG_Bit(5,16);
  Delay_SMG(500);
  DisplaySMG_Bit(6,yue / 10);
  Delay_SMG(500);
  DisplaySMG_Bit(7,yue % 10);
  Delay_SMG(500);
}
//初始化系统
void Initsys()
{
  SelectHC138(5);
  P0 = 0X00;//关闭蜂鸣器和继电器
  SelectHC138(4);
  P0 = 0XFF;//关闭LED
}
void Delay_yue(uint n)
{
  while(n--)
  {
  Display_Dymaic();
  }
}
void main()
{
  while(1)
  {
  Initsys();
  //DisplaySMG_Bit(2,6);
  Display_Dymaic();
  yue++;
  if(yue > 12)
  {
    yue = 1;
  }
  Delay_yue(200);
  }
}


相关文章
|
4月前
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
354 1
|
4月前
51单片机汇编语言点亮一位数码管,并计时(超详细分析汇编语言)
51单片机汇编语言点亮一位数码管,并计时(超详细分析汇编语言)
217 0
|
4月前
【51单片机】开发板上矩阵键盘键码在数码管上的显示,按下键盘在数码管上显示对应段码
【51单片机】开发板上矩阵键盘键码在数码管上的显示,按下键盘在数码管上显示对应段码
159 0
|
4月前
|
算法
51单片机不用定时器的数码管倒计时
51单片机不用定时器的数码管倒计时
|
5月前
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
|
6月前
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
144 4
【51单片机】自定义动态数码管显示(设计思路&原理&代码演示)
【51单片机】自定义动态数码管显示(设计思路&原理&代码演示)
【51单片机】自定义静态数码管显示(设计思路&代码演示)
【51单片机】自定义静态数码管显示(设计思路&代码演示)
【51单片机】静态数码管显示(设计思路&原理&代码演示)
【51单片机】静态数码管显示(设计思路&原理&代码演示)
|
7月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
110 0