单片机AT89C51六位数码管秒表

news2025/1/21 20:18:43

详细代码讨论加我QQ:1271370903

1.1设计目的

  本设计的数字电子秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现LED显示,显示时间为0~9999.99秒,计时精度为0.01秒,能正确地进行计时。其中软件系统采用C语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。

1.2设计方案

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

1.3设计任务

  采用四位数码管显示,AT89C51单片机控制,按键启动,暂停,复位,提醒功能等,计时精度00.00-9999.99秒。

1.4 设计要求

  课题需要以MCS-51系列单片机为核心,结合外围电路,制作一款时间参数测量系统。
具体要求如下:
(1)提出基于单片机的时间测量系统实现方案。
(2)制作完整的硬件电路图并编写完整的源程序,实现时间参数的测量。
(3)误差要求小于1%。

2.总体方案设计

  按模块划分可分为单片机最小系统电路、按键控制、数码管显示、三个子模块。电路结构划分可以划分为:晶振电路、复位电路、按键电路、显示电路。本次设计的核心是单片机控制模块,所以此设计是单片机应用系统的一种应用。系统采用AT89C51单片机作为核心控制单元,开始按键按下,数码管开始从0.00计时,直到按下暂停按钮,数码管时间显示,如继续计时,继续按下开始按钮,如果此次计时结束重新计时,按下清零按钮从0.00开始。
在这里插入图片描述

3.系统软件流程图

在这里插入图片描述

4. 电路总体仿真图

在这里插入图片描述

5.仿真开始

时间显示从0.00开始
在这里插入图片描述

按下开始键开始计时,暂停键看当前时间18.52秒
在这里插入图片描述

结束,按清零键,回到原始
在这里插入图片描述

6.相关代码

uchar tt,i,flag,mm;
uint num,num1,num2;
 uchar code table[]={					 //数码管段选
 0x3f,0x06,0x5b,0x4f,
 0x66,0x6d,0x7d,0x07,
 0x7f,0x6f,0x77,0x7c,
 0x39,0x5e,0x79,0x71};
 uchar code table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};	   //数码管位选


void delay(uint xms)  //延时
{
	uint xx,yy;
	for (xx=xms;xx>0;xx--)
		for(yy=110;yy>0;yy--);
}


void display() //显示函数,数码管动态扫描
{
 uchar qian,bai,shi,ge;	

	qian=num/1000;
	bai=num%1000/100;
	shi=num%100/10;
	ge=num%10;


	
 	P0=0x00;
	P0=table[num2/10];
	P2=table1[0];
	delay(5); 

	 P0=0x00;
	P0=table[num2%10]|0x80;
	P2=table1[1];
	delay(5); 

	P0=0x00;
	P0=table[qian];
	P2=table1[2];
	delay(5); 

	P0=0x00;
	P0=table[bai]|0x80;
	P2=table1[3];
	delay(5); 

	P0=0x00;
	P0=table[shi];
	P2=table1[4];
	delay(5); 

	P0=0x00;
	P0=table[ge];
	P2=table1[5];
	delay(5); 
}

  

void keyscan()			  //按键扫描函数
{
  if(s1==0)			   //s1按键被按下	   暂停
  {
    delay(10);
	if(s1==0)
	{
	  while(!s1);				  //等待按键释放
	  TR0=0;	  				   //定时器开
	}
  }

  if(s2==0)					//s2按键被按下 ,开始
  {
    delay(10);
	if(s2==0)
	{
	  while(!s2);
	  TR0=1;						  //
	}
	 
  }
   if(s4==0)					   //s4按键被按下
  {
    delay(10);
	if(s4==0)
	{
	  while(!s4);
	  TR0=0;
	  num=0;
	  num2=0;
	  }

	}

  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/105651.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Unity大气渲染】关于单次大气散射的理论知识

参考 最近在实现程序化天空盒,到了实现大气散射这一步,索性查漏补缺,把大气散射这块儿的理论知识补充明白了。跟着【实战】从零实现一套完整单次大气散射_一的推荐,学习这块我直接从Volumetric Atmospheric Scattering啃起。 补…

平安夜,愿大家平安健康!

12月24日平安夜(Christmas Eve),是圣诞节前夕的晚上,寓意着耶稣诞生的夜晚会给世人带来平安幸福。 据《圣经》记载,耶稣诞生的那一晚,在旷野看守羊群的牧羊人,突然听见有声音自天上传来,向他们报耶稣降生的…

华为云桌面能为设计行业提供哪些“黑科技”?

华为云桌面能为设计行业提供哪些“黑科技”? 如今,传统设计模式中的软硬件更新迭代成本高、团队协作低效、资产利用率低和上下游进步不同步等缺陷日益显露,已经不能适应市场需求。华为云桌面携手赞奇科技打造出一个全方位的一站式云上内容制作…

[内网渗透]—GPO批量控制域内主机

GPO GPO(组策略管理),用来存储Active Directory中的策略。 自Windows Server2008开始,GPO开始支持计划任务,便于管理域中的计算机和用户,默认情况下,域用户的组策略每90分钟更新一次,但会随机偏移0-30分钟,域控制器的组策略每5分钟刷新一次 应用场景 在拿到域控后,…

数字硬件建模SystemVerilog-组合逻辑建模(3)使用函数表示组合逻辑

数字门级电路可分为两大类:组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点,在后面会作为单独的主题处理。组合逻辑描述了门级电路,其中逻辑块的输出直接反映到该块的输入值的组合,例如,双输入AND门的输出…

艾美捷Annexin V-FITC凋亡检测试剂盒:简单、快速

艾美捷Annexin V-FITC凋亡检测试剂盒:简单、快速的检测,区分凋亡细胞和坏死细胞。 艾美捷Annexin V-FITC凋亡检测试剂盒基本参数: 中文名称:Annexin V-FITC apoptosis detection kit 英文名字:Annexin V-FITC apopto…

Redis6入门到实战------ 四、Redis配置文件介绍

1.1 单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 大小写不敏感 1.2 INCLUDES包含 类似jsp中的include,多实例的情况可以把公用的配置文件提取出来 1.3 网络相关配置 1.3.1 bind 默认情况bind127.0.0.1只能接…

linux基础学习-vim使用方法

直接输入vim,进入的是空白vim基本使用 命令模式:按键代表命令 i/a,切换为编辑模式:,切换到末行模式dd,删掉一行(前面可以加数字)yy,复制光标所在行(前面可以加数字)p&…

一建,PMP,软考,优先考哪个?

需要pmp资料可看封面或在文末获取。 这三者的共同点都是含有“项目管理”知识,可以用于项目管理岗位。 根据容易程度和知识点的基础程度来分,最好按照:PMP,软考,一建的顺序来考。 分别介绍一下三者: 【…

Robust Pose Estimation in Crowded Scenes with Direct Pose-Level Inference 阅读笔记

基于直接姿态级推理的拥挤场景鲁棒姿态估计 NeurIPS 2021 论文链接 代码链接 摘要:拥挤场景下的多人姿态估计具有挑战性,因为重叠和遮挡使得难以检测人体边界框并从单个关键点推断姿态线索(关键点位置)。为解决该问题&#xff0…

[MySQL]-死锁案例-唯一索引上的并发插入

[MySQL]-死锁案例-唯一索引上的并发插入 森格 | 2022年12月 本文是对实际work中遇到的死锁问题的复现,其目的是学会去分析死锁日志、还原日志上下文、理解死锁产生原因、MySQL处理机制(回滚事务的选择),最后到死锁的解决方案的提…

7张图,剖析Redis缓存,文末附Redis工具类源码,建议收藏

一、缓存是什么? 缓存就是数据交换的缓存区,是存储数据的地方,一般读写性能较高。 二、缓存的作用和成本 1、缓存的作用 降低后端负载 提高读写效率,降低响应时间 2、缓存的成本 数据一致性成本 代码维护成本 运维成本 三、…

IDEA中新建找不到Vue Component | IDEA右键Create New Servlet找不到Setvlet

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 解决:IDEA中新建找不到Vue Component 打开IDEA,依次打开 (文件——设置——编辑器——文件或代码模板) 找到右侧&#…

Spring—Spring AOP1

文章目录AOP概念的引入AOP相关的概念1.AOP的概述2. AOP的优势3. AOP的底层原理如何利用AOP对原有业务进行增强利用注解方式切入点表达式AOP相关的术语————————————————————————————————AOP概念的引入 首先我们来看一下登录的原理 如上图所示这…

【云原生 | Kubernetes 实战】16、K8s 配置管理中心 ConfigMap 实现微服务配置管理

目录 一、ConfigMap 概述 1.1 什么是 ConfigMap? 1.2 ConfigMap 能解决哪些问题? 1.3 ConfigMap 应用场景 1.4 局限性 二、ConfigMap 创建方法 2.1 根据字面值创建 ConfigMap 2.2 基于文件创建 ConfigMap 2.3 基于目录创建 ConfigMap 2.4 编…

【大数据系列之MySQL】(二十二):MySQL中的分组查询group by

对于常见的函数都是单行函数,说白了就是一一映射,输入一个值则输出对应的值,但是MySQL中还存在聚合函数就是输入一组值则返回一个值,常见的例如:sum、max等 很多时候需要对数据中的某些字段进行分组,探究每…

%27 CORS 跨域资源共享

1、CORS (跨域资源共享) 由一系列的 HTTP 响应头组成,这些响应头可以决定浏览器是否阻止前端 js 代码跨域获取资源 2、CORS 的响应头 (1)、Access-Control-Allow-Origin res.setHeader(‘Access-Control-Allow-Origin’…

web:常见安全问题

一、XSS XSS(Cross-Site Scripting),跨站脚本攻击,因为缩写和css重叠,所以只能叫XSS。跨站脚本攻击是指通过存在安全漏洞的web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。 跨站脚本攻击有可能造成一下影响&#…

记一次赤裸裸的教训:All elements are null

wshanshi:记一次赤裸裸的教训…All elements are null… 一、异常信息 数据库查询统计相关业务,未使用分组group by,仅单独使用聚合函数。如下图所示,使用了SUM()函数。 假如数据库中未匹配到相关数据,结果集用List接…

希尔伯特-包络分析步骤与实例

希尔伯特-包络分析流程 对于齿轮箱振动信号而言,由于存在多对齿轮同时参与啮合,那么,测量得到的信号将可能出现多个以齿轮啮合频率或及谐频为载波频率、轴频为调制频率的幅值调制、频率调制或混合调制的情况,除此之外&#xff…