欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 【51单片机入门】点亮数码管

【51单片机入门】点亮数码管

2025/10/21 14:47:36 来源:https://blog.csdn.net/m0_62599305/article/details/140053566  浏览:    关键词:【51单片机入门】点亮数码管

文章目录

  • 前言
  • 仿真图
  • 如何去绘制一个数字
  • 示例代码
    • 选择某个数码管
    • 显示某个数字
  • 示例代码
  • 总结


前言

在嵌入式系统的世界中,单片机扮演着至关重要的角色。51单片机,作为最早的微控制器之一,至今仍被广泛应用在各种设备中。本文将介绍如何使用51单片机点亮数码管,这是每个学习单片机的初学者都必须掌握的基本技能。我们将通过实际的操作步骤,让你了解如何编程控制单片机,以驱动数码管显示数字或字符。


仿真图

搜索7seg即可,MPX+数字,其中数字为数码管的个数,CA为共阳,CC为共阴,我们这里使用共阳
在这里插入图片描述
电路图:
在这里插入图片描述

如何去绘制一个数字

下面就是单个数码管的图片,我们输入对应的高低电平给对应的led就可以点亮对应的led
在这里插入图片描述

在共阳数码管中,你需要输入0给led,即可点亮他
共阴就是反一下。

示例代码

选择某个数码管

共阳数码管当该引脚为高电平时,即选中了他,比如1输入高电平,就可以操作显示0这个数码管了
在这里插入图片描述

void Choose(unsigned char index)
{P1 = 0;P1 = (1 << index);
}

显示某个数字

unsigned char num[6] = {0xC0, // ?? 00Xf9, // ?? 10Xa4, // ?? 20Xb0, // ?? 30X99, // ?? 40X92, // ?? 5
};void show(unsigned char digit)
{P2 = num[digit]; // ????????????P2??
}

这段代码是用来驱动数码管显示数字的。首先,我们来看看这个数组num

unsigned char num[6] = {0xC0, // ?? 00Xf9, // ?? 10Xa4, // ?? 20Xb0, // ?? 30X99, // ?? 40X92, // ?? 5
};

这个数组存储了6个16进制数,每个数对应一个数字(0到5)在数码管上的显示方式。这些数是通过设置数码管的各个段(一般为7段或8段)的亮灭来显示对应的数字。

然后,我们看看show函数:

void show(unsigned char digit)
{P2 = num[digit];
}

这个函数接收一个数字(0到5),然后将这个数字对应的数码管显示方式(也就是num数组中对应的那个数)赋值给P2。在这里,P2是一个端口,它连接着数码管。通过改变P2的值,我们就可以改变数码管的显示。

所以,这段代码之所以能点亮数码管,是因为它通过改变连接数码管的端口P2的值,来改变数码管的显示。

如果你想添加新的字符,可以看这张图,1为开,0为关,写出对应的二进制,然后转换为16进制,放到num中即可
在这里插入图片描述

示例代码

#include <regx52.h>typedef unsigned char u8;unsigned char num[10] = {0xC0, // ?? 00Xf9, // ?? 10Xa4, // ?? 20Xb0, // ?? 30X99, // ?? 40X92, // ?? 5
};void delay(unsigned int ms) {unsigned int i, j;for(i = ms; i > 0; i--)for(j = 120; j > 0; j--);
}void Choose(unsigned char index)
{P1 = 0;P1 = (1 << index);
}// ???????
void show(unsigned char digit)
{P2 = num[digit]; // ????????????P2??
}char ix = 0;void main()
{P0 = 0;Choose(1); // ????????show(1); // ????1while(1){Choose(ix);show(ix);ix++;ix%=6;delay(10);}
}

总结

通过本文的学习,我们了解了如何使用51单片机来点亮数码管。这个过程虽然看似简单,但它涵盖了许多重要的概念,如I/O编程,寄存器操作,以及时序控制等。掌握了这些,你就已经迈出了成为一名嵌入式系统工程师的第一步。希望你能继续探索51单片机的更多功能,并将其应用到更复杂的项目中去。记住,每个伟大的发明都始于简单的想法,而最重要的是你已经开始了这个旅程。祝你学习愉快!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词