从零开始打造自己的时间显示神器-数码管时钟程序

从零开始打造自己的时间显示神器

本时钟使用 STC12C2052AD 单片机控制,采用共阳 4 位时钟数码管显示时间,并通过两个按键进行调时。当整点时,蜂鸣器会发出报时声。

所需材料

  • STC12C2052AD 单片机一片
  • 黄色共阳 4 位时钟数码管一块
  • 6mm×6mm 按键两个
  • 蜂鸣器一个
  • 电阻若干
  • 电容若干
  • PCB 板一块

电路图

电路图如下所示:

程序

程序如下:

include <reg52.h>

sbit SEG1 = P2^0;
sbit SEG2 = P2^1;
sbit SEG3 = P2^2;
sbit SEG4 = P2^3;
sbit SEG5 = P2^4;
sbit SEG6 = P2^5;
sbit SEG7 = P2^6;
sbit SEG8 = P2^7;

sbit KEY1 = P3^0;
sbit KEY2 = P3^1;

sbit BUZZER = P3^6;

unsigned char code table[] = {
  0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f,
  0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x80, 0x40
};

void display(unsigned char num) {
  SEG1 = table[num] & 0x01;
  SEG2 = table[num] & 0x02;
  SEG3 = table[num] & 0x04;
  SEG4 = table[num] & 0x08;
  SEG5 = table[num] & 0x10;
  SEG6 = table[num] & 0x20;
  SEG7 = table[num] & 0x40;
  SEG8 = table[num] & 0x80;
}

void delay(unsigned int n) {
  while (n--) {
    for (unsigned int i = 0; i < 100; i++);
  }
}

void main() {
  unsigned char hour = 0;
  unsigned char minute = 0;
  unsigned char second = 0;

  while (1) {
    display(hour / 10);
    delay(10);
    display(hour % 10);
    delay(10);
    display(0x80 | ':');
    delay(10);
    display(minute / 10);
    delay(10);
    display(minute % 10);
    delay(10);
    display(0x80 | ':');
    delay(10);
    display(second / 10);
    delay(10);
    display(second % 10);
    delay(10);

    if (second == 59) {
      second = 0;
      minute++;
    }

    if (minute == 59) {
      minute = 0;
      hour++;
    }

    if (hour == 24) {
      hour = 0;
    }

    if (KEY1 == 0) {
      if (hour < 23) {
        hour++;
      }
    }

    if (KEY2 == 0) {
      if (minute < 59) {
        minute++;
      }
    }

    if (second == 0) {
      BUZZER = 1;
      delay(1000);
      BUZZER = 0;
    }
  }
}
  

制作步骤

  1. 绘制 PCB 板。
  2. 焊接元件。
  3. 烧录程序。
  4. 装入外壳。

注意事项

  • 在焊接元件时,注意正负极不要接错。
  • 在烧录程序时,选择正确的 COM 口和波特率。
  • 数码管时钟程序
  • 在使用时钟时,请注意校准时间。

使用说明

  • 使用按键 1 调节小时。
  • 使用按键 2 调节分钟。
  • 当整点时,蜂鸣器会发出报时声。

总结

本时钟是一款实用且易于制作的项目,它可以帮助您准确地掌握时间。通过使用数码管显示和单片机控制,该时钟既美观又可靠。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论