基于AT89C52单片机的电子秒表设计与仿真

news/2024/7/16 7:10:14 标签: 单片机, 嵌入式硬件

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/87755619?spm=1001.2014.3001.5503
在这里插入图片描述

源码获取
主要内容:
本设计以AT89C52单片机为核心,采用常用电子器件设计,包括电源开关、按键、数码管显示、LCD1602液晶。将软、硬件有机的结合起来,使得系统能够实现四位LCD显示,最大显示时间为09:59:99,有开始、暂停、复位、记录和查看功能,并设有每秒提醒功能。
基本要求:
1、设计电子秒表,精度为0.01秒;
2、具有开始、暂停、复位等功能;
2、每到一秒提示,此功能可以关闭;
3、按键启动、停止秒表读数;
4、运行结果。
主要参考资料:
[1]胡汉才单片机原理及其接口技术第二版清华大学出版社2004
[2]汪贵平新编单片机原理及应用。机械工业出版社 2010.0
[3]戴佳.单片机C51语言应用程序设计. 电子工业出版社 2006.7
[4]朱民雄.计算机语言技术.北京航空航天大学出版社 2002. 1
[5]李鸿. 单片机原理及应用.湖南大学出版社. 2004.8
[6]刘建清.单片机技术. 国防工业出版社 2006.8
完 成 期 限:12 月 11 日 - 12 月 26 日
指导教师签名:
课程负责人签名:

摘 要
本次设计是基于AT89C52单片机的电子秒表的设计,单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计内容为以AT89C52单片机为核心的秒表,采用两个4位LED数码管显示以及外部中断电路来实现数字秒表的基本功能。它采用键盘输入,单片机技术控制。设计内容以硬件电路设计,软件设计和PCB板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示计时。
本次课程设计主要完成具备基本功能的电子秒表的理论和实践设计,电子秒表是重要的记时工具,广泛运用于各行各业中。作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点。提高了精确度,而且可以大大降低错误率。因此电子秒表常常用于体育竞赛及各种其他要求有较精确时间的各领域中。

关键词:AT89C52单片机;电子秒表;数码管
目录
摘 要 1
第一章 概论 2
1.1概述 2
1.2课程设计目的 2
1.3 任务要求 2
1.4 方案设计 2
第二章 系统的硬件电路 4
2.1 系统的总体方案 4
2.2时钟电路 4
2.3复位电路 5
2.4显示模块设计 5
2.5按键电路 6
第三章 系统设计 7
3.1 系统功能简介 7
3.2程序的主模块 8
第四章 仿真与调试 9
4.1系统仿真 9
4.2硬件调试 11
第五章 心得体会 12
第六章 参考文献 13

第一章 概论
1.1概述
近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。
人们在日常生活中,有很多时候要精确地计算时间,但往往因为人为因素造成人们不愿意看到的误差。本设计利用AT89C52单片机的定时器/计数器定时和记数的原理,使其能精确计时。计时精度达到0.01s,四个按钮开关分别实现开始、暂停、清零、保存、读取的功能。显示电路由两个四位共阴极数码管组成。
电子秒表精确度的提高,使它的运用越来越广泛,它解决了传统的由于计时精度不够造成的误差和不公平性是各种体育竞赛的必备设备之一。
1.2课程设计目的
(1)掌握52单片机的基本使用方法和相关电子器件的应用。
(2)掌握键盘的使用,灵活运用中断。
(3)掌握PROEUS的仿真与调试。
(4)秒表具有启动/停止、保存、读取、复位功能。
(5)单片机为控制核心,实现方案设计、电路的设计、程序设计,并在PROTEUS电子设计平台实现仿真。
1.3 任务要求
1、设计基于AT89C52数码管显示的电子秒表。
2、通过按键控制开始、清零、暂停和停止能够准确计时并显示。
3、开始显示00:00:0。
4、方便做出实物。
5、最大计时09:59:99、最大精确到0.01秒。
1.4 方案设计
(1)在性价比满足应用系统要求的基础上,选择更可靠、更熟悉的单片机,缩短研制周期。
(2)尽可能选择较成熟的典型应用电路,以提高系统的可靠性。
(3)单片机内部的资源与外部扩展资源应在满足应用系统设计要求的基础上留有余地,为进一步升级和扩展其功能提供方便。
(4)应充分结合软件方案统筹考虑硬件结构,通常硬件功能较完善,其相应的软件就简单,但硬件成本较高;而硬件功能略低,其相应的软件就复杂。实际中应尽量以软件替代硬件来降低成本。
(5)整个系统的相关器件应尽可能做到性能匹配,如电平、速度的匹配等。

第二章 系统的硬件电路
2.1 系统的总体方案
本系统采用AT89C52单片机为中心器件,利用其定时器/计数器定时和记数的原理,如图2-1所示,结合硬件电路如复位电路,晶振电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用C语言编写程序,包括显示程序,计数程序,中断,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
在这里插入图片描述

        图:2-1 系统电路原理图

2.2时钟电路
单片机属于数字电路,其工作实在统一的时钟电路脉冲控制下一拍一拍地进行,这个脉冲是由单片机振荡电路和控制器中的时序电路电路发出的。单片机内部有一个高增益反向放大器,用于构成振荡器,但要形成时钟脉冲,外部还需要附加电路。STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图2—3所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在5,50MHz之间选择,电容值在22 pF之左右,电容值的大小可对频率起微调的作用。
在这里插入图片描述

              图:2-2时钟电路图 

2.3复位电路
复位时单片机的初始化操作。复位电路有两种:上电复位和上电加键复位。上电自动复位是通过外部复位电路的电容充电来实现的,在电路加电工作业后,系统处在正常工作状态,且振荡器工作稳定以后,在RST端维持2个机器周期以上的高电平,单片机就可完成复位操作。只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。上电加键复位是通过使复位端经电阻与Vcc电源接通而实现的,而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。当复位按键弹起后,电源通过电阻对电容重新充电,RST引脚端出现复位正脉冲。其维持时间取决于RC电路的时间常数。
在这里插入图片描述

               图:2-3复位电路图

2.4显示模块设计
显示模块是两个四位一体的共阴极数码管,用于显示秒表记录的数据,显示模块电路图如图2-5所示。
在这里插入图片描述

             图:2-4显示模块设计图

2.5按键电路
按键是常开的按键开关,每个按键都被赋予一个代码,称为键码。按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/0端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动 持续时间的长短与开关的机械特性有关,一般在5,10ms之间。本设计中是用软件程序来去除抖动。
由于系统使用到的按键数并不多,所以不选用矩阵键盘而选用独立式键盘电路。。直接用I/0口线构成单个按键电路,每个按键占用一条I/0口线,每个按键的工作状态不会产生互相影响。Key3接开始/暂停按键,key5接复位按键,key4接保存按键,key3和4接读取按键,然后按键都与地相接。按键电路图如图2-5所示:
在这里插入图片描述

                  图:2-5按键电路

第三章 系统设计
3.1 系统功能简介
(1)开机后,点击开始按钮,计时开始。
(2)停止按键用来暂停程序的运行,当按下暂停键时,程序停留在原地,等待次按下暂停键,再次按下暂停键后,程序继续运行。
(3)记录按钮用来记录数据,每按下一次计数按钮,程序自动记录一个数据,存放到指定内存单元中,该系统可以同时记录多个数据。
(4)复位按钮是用来对程序复位,每当程序出现死循环的时候,按下复位键即跳出死循环,回到程序的开始。
在这里插入图片描述

图 3-2 系统流程图
3.2程序的主模块
本程序主要分为四部分:主程序模块、显示模块、按键中断模块、定时模块。
(1)主程序分析:主程序负责整个程序的调用和转跳,实现启动与暂停、复位、读取之间的切换。程序开始时进行系统初始化,之后显示“00:00:00”,接着等待“启动”按键触发。
(2)显示模块分析:显示模块负责把分、秒、毫秒通过四位LCD显示出来,中间通过“:”隔开。首先根据定时器用来保存分、秒、毫秒的寄存器的值,判断得知每个数字的段码,把分的高位送到数码管的第一位,再把分的低位送到数码管的第二位,接着把“:”的段码送到数码管的第三位,同样的方法把秒和微秒送到数码管,然后循环扫描每一位把时间显示出来。
(3)按键中断服务程序分析:产生外部中断时,进行按键判断,程序采用3次条件转跳进行按键判断,每个按键都标志相应的值:“启动/停止”时把定时器开放或与停止,“复位”时,把用来保存时间的寄存器清0,“保存”时,把用来保存时间的寄存器的值保存到连续的单元中,“读取”时把保存时间的单元依次读取出来放回到用来保存时间的寄存器里。
(4)定时程序分析:当按了“启动”键时,开放定时,以10MS作为一个计时单位,每计100个10毫秒(即1秒),就进一位,用(INCR6)实现,R6加了60次之后,R7就加1,表示“分”加1。

第四章 仿真与调试
4.1系统仿真
Proteus仿真测试结果如下图:
在这里插入图片描述

图:4-1仿真效果图1

在这里插入图片描述

图:4-2 仿真效果图 2

在这里插入图片描述

图:4-3 仿真效果图 3
4.2硬件调试
硬件调试一般分为四个步骤:
第一个是目测法。这个方法是我们最常用的方法之一,只要是检查一些很明显的错误,如电解电容的电极是否连错、焊点否光亮饱满无虚焊,用万用板连的线是否连好了、焊盘有否脱落。
单片机应用系统中所用的器件与设备,要仔细核对型号,检查它们对外连线(包括集成芯片引脚)是否完整无损。通过目测查出一些明显的器件、设备故障并及时排除。
第二个是万用表测试。目测检查后,可进行万用表测试。先用万用表复核目测中认为可疑的连接或接点,检查它们的通断状态是否与设计规定相符。再检查各种电源线与地线之间是否有短路现象,如有再仔细查出并排除。
第三个是上电检查。首先检查所有插座或器件的电源端是否有符合要求的电压,接地端电压是否接近于零,接固定电平的引脚端是否电平正确。在对各芯片、器件加电过程中,是否出现打火、过热、变色、冒烟、异味的现象。如出现这些现象,应立即断电,仔细检查电源加载的情况、各个芯片是否插反等,找出产生异常的原因并加以解决;并且用万用表测各芯片的引脚电平是否合理。再有就是,在加电期间,通过给合逻辑功能简单的芯片加载固定输入电平,用万用表测其输出电平的方法来判定该芯片的好坏。在调试过程中,没有注意STC89C52与之对应的连接以及要注意的地方,最后结果功能不可以实现,经过查找电路,发现应该是读取片内的内容,31引脚/VPP要接高电平,结果在设计的时候没有注意,功能就实现不了。
第四个是复位检查。在上电检查后,按一下复位按钮,看实验板上的LED灯是否闪烁。如果不闪烁,那么说明复位有问题。就要仔细检查复位的电容是否接错了电极,线是否连错。刚开始时,我就把复位按键给接错了,把它和开始、停止键同时接地了,应该是并联电容接的。
第五章 心得体会
经过一个星期的课程设计,让我更加巩固了有关于单片机电路设计上的一些知识,运用所学的知识制作了一个基于52单片机的电子秒表设计。学会如何的去思考电路的制作,确定方案是这次课程设计的首要任务,确定了方案后,我们才知道如何的去实现它的功能,查找关于这方面的资料,然后动手去分析和制作电路。
通过本次电子秒表的设计,让我对单片机知识的实际应用有了更深刻的理解和体会,这次课程设计,不仅提高了动手能力,对设计的整个流程有了一定的了解,更了解到了单片机知识应用的广泛性和前景。设计的成功,极大地提高了自信心,促进了对单片机的学习兴趣,明白了理论联系实际的重要性。此次设计清楚了一项设计的整体流程:明确设计要求、功能及功能模块的设计,查阅相关资料并确定元器件,电路连接、调试、调整改进与检查,电路成型,总结;设计电路时,和搭档上网查阅了很多资料,这培养了搜索的能力,开拓了视野。调试过程中掌握了一些电路调试的方法和规律,同时也掌握了如何来检查和排除实验中的所遇到的一些常见故障,明白了动手的重要性,懂得了实践出真知的道理。电路的连接和调试极大地提高了动手实践能力,这也是目前较为缺乏的。作为工科的学生,就应该具备这样的动手能力。最后,设计报告的制作还培养了整理知识的能力。
总之,这次设计,认识到了知识的局限性,培养了动手能力,懂得了团队合作精神,对今后的学习起到了极大的促进作用。

第六章 参考文献
[1]胡汉才单片机原理及其接口技术第二版清华大学出版社2004
[2]汪贵平新编单片机原理及应用。机械工业出版社 2010.0
[3]戴佳.单片机C51语言应用程序设计. 电子工业出版社 2006.7
[4]朱民雄.计算机语言技术.北京航空航天大学出版社 2002. 1]
[5]李鸿. 单片机原理及应用.湖南大学出版社. 2004.8
[6]刘建清.单片机技术. 国防工业出版社 2006.8


http://www.niftyadmin.cn/n/291790.html

相关文章

CAN FD的一致性测试 助力汽车电子智能化

后起之秀——CAN FD:随着各个行业的快速发展,消费者对汽车电子智能化的诉求越来越强烈,这使整车厂将越来越多的电子控制系统加入到汽车控制中,且在传统汽车、新能源汽车、ADAS和自动驾驶等汽车领域中,也无不催生着更高…

Java多线程入门到精通学习大全?深入了解线程:生命周期、状态和优先级!(第二篇:线程的基础知识学习)

本文详细介绍了线程的基础知识,包括什么是线程、线程的生命周期、线程的状态和线程优先级等。在了解这些知识后,我们能够更好地掌握线程的使用方式,提高程序的并发性和效率。如果您对线程有更深入的问题,也欢迎向我们提问。 1. 什…

nodejs的安装以及Dos的命令

1.0 nodeJS nodejs是基于谷歌v8引擎的执行环境,他没有BOM、DOM nodeJS安装 找官网 ->下载 -> 傻瓜式下一步 -> win键 r -> 输入cmd 进入dos操作命令 -> node -v 查看版本 1.1 DOS 命令【掌握】 进入指定文件夹 cd 文件目录 退出到上一层 cd .…

Stable-Diffusion AI画画本地搭建详细步骤

ChatGPT出来后,第一次感觉到人工智能真的可能要来了,因此也顺便尝试了下开源AI画画的搭建。网络上写的教程总是不那么面面俱到,因此本文参考了3篇文章才成功把Stable-Diffusion 本地搭建搭建了起来。参考教程在文末。 本文是本地搭建AI画画&a…

【Java数据结构】优先级队列(堆)

优先级队列(堆) 概念模拟实现堆的概念堆的存储方式堆的创建向下调整堆的创建建堆的时间复杂度 堆的插入和删除堆的插入堆的删除 用堆模拟实现优先级队列 常用接口PriorityQueue的特性PriorityQueue常用接口介绍构造方法插入/删除/获取优先级最高的元素 P…

【论文阅读】EPnP: An Accurate O(n) Solution to the PnP Problem

目录 EPnP: An Accurate O(n) Solution to the PnP ProblemOpencv.solvePnP documentationsimilar functionscv::SOLVEPNP_EPNP: Paper 008 EPnP: An Accurate O(n) Solution to the PnP Problem Opencv.solvePnP documentation solvePnP bool cv::solvePnP( InputArray ob…

国产版ChatGPT大盘点

我们看到,最近,国内大厂开始密集发布类ChatGPT产品。 一方面,是因为这是最近10年最大的趋势和机会。 另一方面,国内的AI,不能别国外卡了脖子。 那在类ChatGPT赛道上,哪些中国版的ChatGPT能快速顶上?都各有哪些困境需要突破呢?本文给诸位带来各个玩家的最新进展。 *…

JAVA测试之多线程实现多窗口售票------JAVA入门基础教程

public class WindowT1 {public static void main(String[] args){Windows1 w1 new Windows1();Windows1 w2 new Windows1();Windows1 w3 new Windows1();w1.setName("窗口一");w2.setName("窗口二");w3.setName("窗口三");w1.start();w2.sta…