51单片机数码管显示0到99(51单片机数码管显示0到99代码c语言)

引言

51单片机是嵌入式操作系统中很常见的一种,它非常的灵活和方便。在很多的电子工程中,用到了51单片机,如各种遥控器、仪表仪器和家电等。在这些设备中,数码管是常见的显示器件,可以显示数字、字母和符号等等。本文将介绍在51单片机的开发环境中设置数码管显示0~99的方法。

数码管控制

数码管的控制方式很多,其中最简单的是共阳数码管。在这种数码管中,数码管的8个LED灯的阳极连接在一起,共用一个引脚,而每个LED的阴极分别连接在8个不同的引脚上。所以,我们只需要控制每个阴极的高低电平就能控制数码管的显示数字。在51单片机中,P0口和P2口均为8位并行输入/输出口,可以很方便地控制数码管的数码,只需要通过8个引脚连接到数码管就可以实现。

实现0~99数码管显示

在实现这个功能之前,需要定义好8个引脚用来连接数码管。然后,将相同位数的数码管的阴极连接在同一个引脚上,如个位上的两个数码管的阴极连接在同一个引脚上,十位上的两个数码管的阴极连接在同一个引脚上。对于该程序而言,需要通过程序不断地循环调用显示0~99的数字函数,如下所示:

```cpp
#include

#define DISPLAY_PORT P0

void display(unsigned char num)
{
unsigned char num_table[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
DISPLAY_PORT = num_table[num % 10]; //显示个位
P2 &= 0xf0;
P2 |= 1 << 4; //第一个数码管
delay(5);
DISPLAY_PORT = num_table[num / 10]; //显示十位
P2 &= 0xf0;
P2 |= 1 << 5; //第二个数码管
delay(5);
}

void delay(unsigned int ms)
{
unsigned int i, j;

for (i = 0; i < ms; i++)
for (j = 0; j 99)
{
i = 0;
}
}
}
```

在上述代码中,我们定义了一个函数display(),该函数用来显示 0~99 的数字。首先,我们将 0~9 的数字的表示法存放在num_table数组中,其中每个数字占据一个字节。在随后的display()函数中,我们首先用该数字除以 10 来获得十位数字,并将其存储在DISPLAY_PORT端口中。然后,将P2口中的高 4 位清零,并将这个数码管的引脚连接的P2口的第 5 个引脚设置成高电平以点亮这个数码管。然后,再通过类似的方式获得个位上的数字,将其存储在DISPLAY_PORT端口中,将P2口中的高 4 位清零,并将其接到P2口的第 4 位引脚上。最后,等待几毫秒,以供数码管显示出来。

51单片机数码管显示0到99(51单片机数码管显示0到99代码c语言)

因此,我们就成功的实现了一个可以显示0~99数字的51单片机程序。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/mcuk75me.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月26日 上午6:29
下一篇 2023年4月26日 上午6:29

猜你喜欢