单片机AT89C51六位(四位和两位)数码管秒表精度0.01s带启动、暂停、清零按钮

news/2024/11/7 2:57:33/

1.设计方案

本文主要研究基于单片机的秒表设计,主要是控制电路设计,数码管显示的设计,和软件程序的编写。该计时采用单片机定时器精确延时,秒表计时精度0.01秒。有启动,暂停,复位,提醒等功能。

2.设计任务

设计精度为0.01S的秒表系统;用3个按键设置启动、暂停、清零按钮;秒表的最长计时长度为9:59:59,超过此长度,报警。设计每一分钟都有提醒功能。

3.总体框架

在这里插入图片描述

4.主程序流程图

在这里插入图片描述

5.仿真原理图

在这里插入图片描述
开始计时,并且在一分钟时间蜂鸣器发出一声
在这里插入图片描述

6.相关程序

uchar code smgduan0[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点
uchar code smgduan1[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//显示0~9,有小数点
uchar shi=0,fen=0,miao=0,time=0;//时间
uchar sec=0;void delay(uint i)//延时
{while(i--);
}
//主函数
void main()
{TMOD|=0X01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;	ET0=1;//打开定时器0中断允许EA=1;//打开总中断while(1){if(!k1)//开始{TR0=1;}if(!k2)//暂停{TR0=0;}if(!k3)//清零{TR0=0;shi=0;miao=0;fen=0;time=0;beep=1;}//显示P0=smgduan0[fen/10];smg1=0;delay(100);smg1=1;P0=smgduan1[fen%10];smg2=0;delay(100);smg2=1;P0=smgduan0[miao/10];smg3=0;delay(100);smg3=1;P0=smgduan0[miao%10];smg4=0;delay(100);smg4=1;P0=smgduan0[time/10];smg7=0;delay(100);smg7=1;P0=smgduan0[time%10];smg8=0;delay(100);smg8=1;//每分钟响一次if((miao==0)&&(time==0)&&(fen>0)){sec=50;}//超时报警if(sec==0){if(fen>9)beep=0;elsebeep=1;	}}
}

http://www.ppmy.cn/news/615627.html

相关文章

Python基础——time模块(制作秒表、倒计时)

time模块 利用Python完成自动化的任务,往往需要基于特定的时间和日期运行或定时运行。Python的内置的time模块便可以实现读取系统时钟的当前时间。time模块中最常用的就是time.time()和time.sleep()。 一、获取当前时间 time.time()函数 返回1970年1月1日0点以来…

基于51单片机倒计时秒表99-00仿真设计

基于51单片机倒计时秒表99-00仿真设计 这里写目录标题 基于51单片机倒计时秒表99-00仿真设计仿真电路程序主函数数码管显示 百度云下载链接 (源码仿真) 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C…

c语言 自动计时的秒表,c语言实现的简单秒表计时器

#include #include #include #include struct tm //定义时间结构体,包括时分秒和10毫秒 { int hours,minutes,seconds; int hscd; }time,tmp,total; //time用以计时显示,tmp用以存储上一阶段时间,total记总时间 int cnt; FILE* fout; //每…

蓝桥杯STM32F103RB数码管计时(秒表)

STM32F103RB数码管定时(秒表) 硬件单路配置TIM2及其中断代码片如下(示例)中断执行函数代码片如下(示例)seg.c(数码管)代码片如下(示例)完整工程下载>>[GitHub](https://github.com/HDJ1839822/Github.git) 实验功能:三位数码管实现十分…

51单片机0-99秒表计数器+60秒倒计时(数码管两位数)

51秒表计数器倒计时(数码管两位数) 一:简介 我们实践的效果是用数码管显示0~99并在按下“转换键”后,实现60秒倒计时,并用蜂鸣器报警提示,兼并计数器和倒计时两种功能。 主要内容包括: 1.认识数…

使用定时器按键扫描数码管制作一个可存储数据的秒表

目录 1.前言 1.1实验现象 1.2 项目资源 2.主要程序及解释 2.1中断中进行按键扫描 2.2 中断中进行数码管扫描 2.3中断中进行秒表的驱动 2.4主函数 1.前言 1.1实验现象 实验现象:按下K1并松开按键秒表开始计时,按下K2并松开按键秒表停止计时&…

【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。

LCD1602显示字符和时间是最基本的实验,在综合前面所学知识并结合c语言程序设计,就可以通过独立按键,来对时间进行校准,计时等功能、或者通过矩阵键盘的按键进行输入,进而让LCD屏上显示的出我们想要的内容和效果。应实验…

KST-51单片机:c语言编程实现数码管动态显示秒表的倒计时

/*60S倒计时*/ /*个位每1S变一次&#xff0c;从0&#xff5e;9*/ /*十位,个位为0的下一秒十位发生变化*/#include<reg52.h>sbit ADDR0P1^0; sbit ADDR1P1^1; sbit ADDR2P1^2; sbit ADDR3P1^3; sbit ENLEDP1^4;unsigned char code LedChar[] { 0xC0,0xF9,0xA4,0xB0,0x99,0…