返回

用代码点亮数码管,让它告诉你按键被按了多少次

见解分享

使用 8051 单片机和数码管构建简单的显示器

简介

数码管是一种常见的电子显示器件,可将数字信息转换为可视格式。在电子产品中,它们广泛用于显示时间、计数或温度读数。本文将指导您使用 8051 单片机和数码管构建一个简单的显示器,您可以使用它来计数按钮按下的次数。

所需组件

要构建这个项目,您需要以下组件:

  • 8051 单片机(例如 AT89C51 或 AT89S51)
  • 两个数码管
  • 两个按钮
  • 电阻器(1kΩ 和 470Ω)
  • 面包板
  • 跳线

电路图

构建显示器需要按照下图所示连接这些组件:

[插入电路图图像]

工作原理

该程序使用两个按钮来控制两个数码管。当按下按钮 SW1 时,左边的数码管将显示按下的次数。当按下按钮 SW2 时,右边的数码管将显示按下的次数。数码管上的显示范围为 0 到 9。

程序

以下是使用 C 语言编写的程序:

#include "reg52.h"

sbit C1 = P3^0;
sbit C2 = P3^1;

unsigned char count1 = 0;
unsigned char count2 = 0;

void main()
{
    while (1)
    {
        if (C1 == 0)
        {
            count1++;
            if (count1 > 9)
            {
                count1 = 0;
            }
            display_count1(count1);
        }

        if (C2 == 0)
        {
            count2++;
            if (count2 > 9)
            {
                count2 = 0;
            }
            display_count2(count2);
        }
    }
}

void display_count1(unsigned char count)
{
    P0 = seven_segment_code[count];
}

void display_count2(unsigned char count)
{
    P2 = seven_segment_code[count];
}

unsigned char seven_segment_code[] = {
    0x3F, // 0
    0x06, // 1
    0x5B, // 2
    0x4F, // 3
    0x66, // 4
    0x6D, // 5
    0x7D, // 6
    0x07, // 7
    0x7F, // 8
    0x6F  // 9
};

步骤

要构建此显示器,请按照以下步骤操作:

  1. 将 8051 单片机插入面包板。
  2. 将数码管连接到单片机的引脚,如电路图所示。
  3. 将按钮连接到单片机的引脚,如电路图所示。
  4. 将电阻器连接到按钮和单片机引脚,如电路图所示。
  5. 将程序烧录到单片机中。
  6. 给电路供电。

常见问题解答

1. 我可以使用不同的数码管吗?

是的,您可以使用不同的数码管,但您可能需要更改程序中的引脚分配。

2. 我可以显示更大的数字吗?

是的,您可以通过级联多个数码管来显示更大的数字。

3. 我可以使用其他类型的按钮吗?

是的,您可以使用其他类型的按钮,但您可能需要更改程序中的引脚分配。

4. 如果显示器不工作怎么办?

检查电路连接并确保程序已正确烧录到单片机中。

5. 如何更改显示器的计数范围?

修改程序中的 count1count2 变量的范围。

结论

使用 8051 单片机和数码管构建一个简单的显示器是一个相对简单的项目,但它可以帮助您了解电子设备的工作原理。通过遵循本文中的步骤,您可以轻松创建自己的显示器,并使用它来显示按钮按下的次数或其他信息。