基于51单片机的电子钟倒计时设计

发布时间:2025-12-19 09:37

家庭新年倒计时9: 制作电子数字倒计时钟,科技感十足。 #生活乐趣# #日常生活趣事# #家居生活趣闻# #家庭节日活动创意#

基于51单片机的电子钟倒计时设计

设计主要包含仿真+代码+报告+原理图+讲解视频

1 开发环境

仿真图:proteus7.8以上

程序代码:KEIL4/KEIL5

设计编号:B006

功能说明介绍

结合实际情况,基于51单片机设计一个电子钟倒计时系统仿真。该系统应满足的功能要求为:

设计一个基于51单片机和数码管显示的倒计时定时器,实现功能如下:

1、用4位共阳数码管作为显示器件;

2、用独立按键或矩阵按键作为输入器件,实现定时时间的设置和其他功能的设置;

3、能够实现2种模式的倒计时定时功能:

A.秒级:最大99秒,显示格式为“99:00”,其中“00”为毫秒的百位和十位;

B.分钟级:最大99分钟,显示格式为“99:00”,其中“00”为秒位。

4、有清晰明了的功能显示界面和倒计时的“启动”和“停止”功能;

5、用单片机内部定时器/计数器来获取时间信号,要求走时准确,误差小于5秒/小时;

6、定时时间到,有相应的声光提示功能。

7、倒计时定时时间可以任意设置;

8、没有倒计时定时任务时,能够显示实时时间。

架构:

img

本资料下载链接(可点击)

AT89C51可以替换为AT89C52,实物可以换做STC89C51,STC89C52

2 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真默认进入时间显示模式,显示电脑当前时间。

img

显示时间的情况下,按下秒级或者分级键进入倒计时模式,对应的模式指示灯点亮。

秒级模式:

按键5:秒值增加,按键6:秒值减少

按键7:百分秒值增加,按键8:百分秒值减少

分级模式:

按键5:分钟值增加,按键6:分钟值减少

按键7:秒值增加,按键8:秒值减少

img

设置完点击开始倒计时,时间逐级递减。

3 程序

工程文件使用Keil4/keil5打开。编译产生hex加载到对应的单片机中。实物代码和仿真代码略有不同。分别的工程文件。

代码

img

部分代码

#include “reg51.h”

#include"ds1302.h"

#define uchar unsigned char

#define uint unsigned int

sbit led1=P2^5;//指示灯

sbit led2=P2^6;

sbit led3=P2^7;

sbit beep=P3^7;//蜂鸣器

sbit smg1=P2^0;//数码管

sbit smg2=P2^1;

sbit smg3=P2^2;

sbit smg4=P2^3;

uchar code smgduan0[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//显示0~9,无小数点

uchar code smgduan1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//显示0~9,有小数点

uchar mode=0;//模式

uint sec=0;

uchar time2=0,time1=0;//秒级

uchar time4=0,time3=0;//分级

uchar start=0;

void delay(uint i)//延时函数

{

while(i–);

}

uchar key_scan()//按键检测

{

uchar i,j;

i=0;

j=0;

P1=0x0f;

if(P1!=0x0f) //检测有无按下

{

switch(P1)//检测行

{

case 0x0e:i=1;break;

case 0x0d:i=5;break;

case 0x0b:i=9;break;

case 0x07:i=13;

}

P1=0xf0;

switch(P1)//检测列

{

case 0xe0:j=0;break;

case 0xd0:j=1;break;

case 0xb0:j=2;break;

case 0x70:j=3;

}

while(P1!=0xf0);//等待按键松开

}

return i+j;

}

//显示函数

void disp()

{

if(mode==0)//实时时间

{

P0=smgduan0[TIME[2]>>4];smg1=1;delay(100);smg1=0;

P0=smgduan1[TIME[2]&0x0f];smg2=1;delay(100);smg2=0;

P0=smgduan0[TIME[1]>>4];smg3=1;delay(100);smg3=0;

P0=smgduan0[TIME[1]&0x0f];smg4=1;delay(100);smg4=0;

led1=0;led2=1;led3=1;

}

if(mode==1)//秒级

{

P0=smgduan0[time2/10];smg1=1;delay(100);smg1=0;

P0=smgduan1[time2%10];smg2=1;delay(100);smg2=0;

P0=smgduan0[time1/10];smg3=1;delay(100);smg3=0;

P0=smgduan0[time1%10];smg4=1;delay(100);smg4=0;

led1=1;led2=0;led3=1;

}

if(mode==2)//分级

{

P0=smgduan0[time4/10];smg1=1;delay(100);smg1=0;

P0=smgduan1[time4%10];smg2=1;delay(100);smg2=0;

P0=smgduan0[time3/10];smg3=1;delay(100);smg3=0;

P0=smgduan0[time3%10];smg4=1;delay(100);smg4=0;

led1=1;led2=1;led3=0;

}

}

img

4 视频讲解

主要包括仿真运行讲解

5 原理图

img

6 设计报告

随着科技的飞速发展和人们生活水平的不断提高,多功能电子钟在我们的日常生活和工业控制领域中的应用越来越广泛。多功能电子钟的设计与实现,不仅融入了先进的科技元素,而且充分考虑到了人们在日常生活和工业控制中的实际需求。

本课题的主要目标是基于51单片机,设计一款具有时间显示、倒计时的电子钟。为了实现这一目标,我们将通过Proteus仿真软件进行模拟和测试,以确保设计的电子钟能够在虚拟环境中正常运行。

此外,该电子钟还具有较高的实用价值。它可以满足人们对时间精确度的要求,提供及时的信息反馈,帮助人们更好地安排和管理自己的时间。同时,它还可以根据需要进行功能扩展,以满足不同环境和应用的需求。

img

7 资料清单和下载链接

img

本资料下载链接(可点击)

网盘分享的文件:B006

链接: https://pan.baidu.com/s/1wqNv3lGu3TVNTmBjsJBL8w?pwd=gg59

提取码: gg59

网址:基于51单片机的电子钟倒计时设计 https://www.yuejiaxmz.com/news/view/1420502

相关内容

基于51单片机的流水灯设计
【单片机设计项目课题】基于51单片机的智能垃圾桶设计
基于51单片机的家电控制系统设计
单片机课程设计=倒计时60秒定时器.doc
基于51单片机的智能小车设计绪论
基于单片机的智能垃圾桶设计(51基础版)
基于51单片机的红外智能垃圾桶系统设计
基于51单片机的智能家居控制系统设计.docx
51单片机医疗电子设备设计:探索医疗领域的单片机应用
【毕设论文】基于51单片机的超智能鞋柜设计

随便看看