蓝桥杯单片机快速开发笔记——数码管

一、原理分析

二、思维导图

三、代码示例

#define TSMG  500   //定义动态显示中单个数码管点亮时长

void Delay_SMG(unsigned int t)  //数码管专用延时
{
	while(t--);
}

code unsigned char SMG_NoDot[] = 
{
	0xc0, //0
	0xf9, //1
	0xa4, //2
	0xb0, //3
	0x99, //4
	0x92, //5
	0x82, //6
	0xf8, //7
	0x80, //8
	0x90, //9
	0x88, //A
	0x83, //b
	0xc6, //C
	0xa1, //d
	0x86, //E
	0x8e, //F
	0xbf, //-
	0x7f  //.
};

code unsigned char SMG_Dot[] = 
{
	0x40, //0.
	0x79, //1.
	0x24, //2.
	0x30, //3.
	0x19, //4.
	0x12, //5.
	0x02, //6.
	0x78, //7.
	0x00, //8.
	0x10  //9.
};


void DisplaySMG_All(unsigned char value)                           //全部数码管静态显示
{
	Set_HC573(6, 0xff);  //使能所有数码管
	Set_HC573(7, value); //要显示的内容
}

void DisplaySMG_Bit(unsigned char pos, unsigned char value)        //单个数码管动态显示
{
	Set_HC573(6, 0x01<<pos);    //打开数码管位选
	Set_HC573(7,value);         //要显示的内容
	Delay_SMG(TSMG);
	Set_HC573(6, 0x01<<pos);    //打开数码管位选
	Set_HC573(7,0xff);          //消影
}
  1. Delay_SMG(unsigned int t)函数:

    • 这个函数用于实现数码管专用的延时,通过一个简单的循环等待来实现延时效果。
    • 参数t表示延时的时长,函数会在循环中不断减小t直到t为0,从而实现延时。
  2. SMG_NoDot[]SMG_Dot[]数组:

    • SMG_NoDot[]数组存储了不带小数点的数码管显示数据,包括0-9、A-F、负号和下标点。
    • SMG_Dot[]数组存储了带小数点的数码管显示数据,包括0.-9.。
  3. DisplaySMG_All(unsigned char value)函数:

    • 这个函数用于实现全部数码管的静态显示。
    • 首先通过Set_HC573(6, 0xff)使能所有数码管。
    • 然后通过Set_HC573(7, value)设置要显示的内容,其中value为要显示的数码管数据。
  4. DisplaySMG_Bit(unsigned char pos, unsigned char value)函数:

    • 这个函数用于实现单个数码管的动态显示。
    • 首先通过Set_HC573(6, 0x01<<pos)打开指定位置的数码管位选。
    • 然后通过Set_HC573(7, value)设置要显示的内容,其中value为要显示的数码管数据。
    • 调用Delay_SMG(TSMG)函数进行延时,控制数码管点亮时长。
    • 再次通过Set_HC573(6, 0x01<<pos)打开数码管位选,确保数码管保持点亮状态。
    • 最后通过Set_HC573(7, 0xff)消影,即将数码管内容清空,实现消隐效果。

       这段代码实现了对数码管的控制,可以实现静态显示和动态显示两种效果,通过控制HC573锁存器来控制数码管的显示内容和显示方式。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-16 04:00:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-16 04:00:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-16 04:00:03       82 阅读
  4. Python语言-面向对象

    2024-03-16 04:00:03       91 阅读

热门阅读

  1. 总结写力扣题中C++常用的方法

    2024-03-16 04:00:03       43 阅读
  2. TCP的可靠传输

    2024-03-16 04:00:03       51 阅读
  3. Spring、SpringMVC、SpringBoot的区别

    2024-03-16 04:00:03       44 阅读
  4. openGauss安装与使用

    2024-03-16 04:00:03       41 阅读
  5. Memcached

    Memcached

    2024-03-16 04:00:03      38 阅读
  6. ORM Bee数据源的使用, Bee有自己的数据源吗?

    2024-03-16 04:00:03       43 阅读
  7. 一文了解前端面试重点--闭包

    2024-03-16 04:00:03       49 阅读
  8. 专升本英语语法学习

    2024-03-16 04:00:03       45 阅读
  9. C++语言学习(一)—— 认识C++语言

    2024-03-16 04:00:03       33 阅读