秒表的设计与实现
- 格式:doc
- 大小:641.50 KB
- 文档页数:30
秒表计时器毕业设计报告秒表计时器毕业设计报告一、引言在快节奏的现代社会中,时间对于人们来说显得尤为重要。
无论是工作、学习还是生活,我们都需要一个准确、方便的计时工具来帮助我们管理时间。
因此,我选择了设计并开发一个秒表计时器作为我的毕业设计项目。
本报告将详细介绍我的设计思路、实现过程以及遇到的挑战和解决方案。
二、设计目标1. 实现基本的计时功能:包括开始、停止、暂停和重置功能。
2. 提供多种计时模式:可以选择倒计时模式或计时器模式。
3. 显示准确的计时结果:保证计时的准确性和精确度。
4. 用户友好的界面设计:界面简洁清晰,易于操作。
5. 适用于不同平台和设备:可以在电脑、手机等多种设备上使用。
三、设计思路1. 界面设计:我采用了简洁明了的界面设计,将计时器显示在屏幕中央,并在周围添加开始、停止、暂停和重置按钮,方便用户操作。
2. 计时功能实现:使用编程语言编写代码,通过调用系统时间函数来实现计时功能。
开始计时时记录当前时间,停止计时时再次获取当前时间,两个时间的差值即为计时结果。
3. 计时模式选择:根据用户的需求,提供倒计时模式和计时器模式的选择,用户可以根据实际情况进行设置。
4. 计时结果显示:将计时结果以小时、分钟、秒的形式显示在屏幕上,保证计时的准确性和精确度。
5. 跨平台适配:根据不同设备的屏幕尺寸和分辨率进行适配,确保在不同平台上都能正常显示和使用。
四、实现过程1. 界面设计:使用HTML和CSS进行界面设计,采用响应式布局,确保在不同设备上都能良好显示。
2. 编程语言选择:我选择使用JavaScript作为主要编程语言,因为它具有广泛的应用性和良好的跨平台性。
3. 计时功能实现:通过JavaScript编写代码,使用Date对象获取系统时间,并进行计算和显示。
4. 计时模式选择:使用JavaScript编写代码,通过监听用户的选择,切换不同的计时模式。
5. 计时结果显示:使用JavaScript编写代码,将计时结果以合适的格式显示在屏幕上。
课题五电子秒表的设计与制作电子秒表作为典型的数字电路应用产品,它的电路组成涉及到触发器,单稳态触发电路,时钟发生电路及计数器,译码显示等数字电路中常用的单元电路。
通过对一个简易的电子秒表的设计与制作,可以使学生熟悉这些单元电路的综合应用及一个数字电路小系统的安装与调试方法。
1. 设计内容和要求用数字集成组件设计.安装与调试,1只电子秒表,设计要求为:1.两位数码管显示,计时范围为0.1~0.9S,步进为0.1S。
2.制成的电子秒表应具有起动,停止与清零等基本功能。
3.计数精度要求为在9.9S计数时间内,时间误差不超过±10ms。
4.可以用外接直接电流。
完成对电路的选择,参数设计,安装与调式,达到设计要求。
2. 设计方案的选择对电子秒表的设计虽然有多种方案,但主体电路都是对高稳定的时钟信号进行分频、计数译码与显示,再配以方便的使能按键,如起动、停止、保存和清除等。
对于本课题,选择的设计方案如图3—5—1所示。
图3-5-1 电子秒表设计方案方框图图中,时钟发生器产生频率较高的,脉冲波以提高系统的计时精度,由于设计要求中对精度的要求并不高,选用普通器件组成一个方波发生器产生100Hz的脉冲波。
100Hz 的脉冲波经十分频电路获得10Hz的脉冲波,作为0.1S位计时器的脉冲源。
0.1S位设计成一个十进制计数器,其进位输出即为秒脉冲,作为秒位计数器的时钟。
启动开关给闸门电路一个高电平以打开闸门,100Hz脉冲源作为分分频电路的时钟,若分频电路也是一个十进制计数器,则进位输出即为10HZ的时钟脉冲信号。
启动、停止开关控制电路应在起动端产生一个高电平使闸门打开,同行在它的停止端应提供一个供清零信号产生电路的起动信号,同时清零信号使输出各计数器瞬间清零。
当停止端输出高电平时,启动端必须为低电平以封锁闸门,使各计数器停止计数并保持。
3.单元电路的设计⑴启动和停止开关控制电路设置两个按键开关K1,K2,K1作为启动开关,K2作为停止开关,且按下为低电平,松开为高电平。
电子科技大学《数字秒表课程设计》姓名: xxx学号:学院:指导老师:xx摘要EDA技术作为电子工程领域的一门新技术,极大的提高了电子系统设计的效率和可靠性。
文中介绍了一种基于FPGA在ISE10.1软件下利用VHDL语言结合硬件电路来实现数字秒表的功能的设计方法。
采用VHDL硬件描述语言,运用ModelSim等EDA仿真工具。
该设计具有外围电路少、集成度高、可靠性强等优点。
通过数码管驱动电路动态显示计时结果。
给出部分模块的VHDL源程序和仿真结果,仿真结果表明该设计方案的正确,展示了VHDL语言的强大功能和优秀特性。
关键词:FPGA, VHDL, EDA, 数字秒表目录第一章引言 (4)第二章设计背景 (5)2.1 方案设计 (5)2.2 系统总体框图 (5)2.3 -FPGA实验板 (5)2.4 系统功能要求 (6)2.5 开发软件 (6)2.5.1 ISE10.1简介 (6)2.5.2 ModelSim简介 (6)2.6 VHDL语言简介 (7)第三章模块设计 (8)3.1 分频器 (8)3.2 计数器 (8)3.3 数据锁存器 (9)3.4 控制器 (9)3.5 扫描控制电路 (10)3.6 按键消抖电路 (11)第四章总体设计 (12)第五章结论 (13)附录 (14)第一章引言数字集成电路作为当今信息时代的基石,不仅在信息处理、工业控制等生产领域得到普及应用,并且在人们的日常生活中也是随处可见,极大的改变了人们的生活方式。
面对如此巨大的市场,要求数字集成电路的设计周期尽可能短、实验成本尽可能低,最好能在实验室直接验证设计的准确性和可行性,因而出现了现场可编程逻辑门阵列FPGA。
对于芯片设计而言,FPGA的易用性不仅使得设计更加简单、快捷,并且节省了反复流片验证的巨额成本。
对于某些小批量应用的场合,甚至可以直接利用FPGA实现,无需再去订制专门的数字芯片。
文中着重介绍了一种基于FPGA利用VHDL硬件描述语言的数字秒表设计方法,在设计过程中使用基于VHDL的EDA工具ModelSim对各个模块仿真验证,并给出了完整的源程序和仿真结果。
数电课程设计:电子秒表
电子秒表是一种常见的计时工具,它通过使用电子元件实现高精度的计时功能。
下面是一个基于数电的电子秒表的设计方案:
1. 运算部分设计:
- 使用一个1Hz的时钟源,可以通过计数器或者振荡器实现。
- 使用一个可重置的二进制计数器,位数根据需要的计时范
围确定。
例如,如果计时范围为1小时,可使用一个4位二进制计数器。
- 计时开始/停止控制逻辑:这可以通过一个开关电路实现,可以使用一个门电路或者触发器电路。
- 计数器重置逻辑:可以使用一个按钮或者开关来重置计数
器的值。
2. 显示部分设计:
- 使用数码管或者液晶显示器来显示计时结果。
数码管可以
使用共阳或者共阴的7段数码管。
- 使用译码器将计数器的二进制输出转换为译码信号,用于
控制数码管显示的数字。
3. 其他功能:
- 可以添加一个暂停功能,通过一个按钮或者开关来实现。
当计时中按下暂停按钮时,计时器会停止计数,再次按下暂停
按钮时,计时器继续计数。
- 可以添加一个拆表功能,通过一个按钮或者开关来实现。
按下拆表按钮时,计时器会记录当前的计时值,然后重置为0,再次按下拆表按钮时,计时器恢复原来的计时状态。
该设计方案中的电子秒表可根据实际需求进行调整和扩展,例如增加更多的功能按钮、调整计时范围和精度等。
同时,需要注意电路的稳定性和可靠性,以及对供电电源和信号的处理。
简易数字秒表的电路设计概述及解释说明1. 引言1.1 概述本文主要介绍了一种简易数字秒表的电路设计。
秒表是一种用于计算时间间隔的常见工具,广泛应用于日常生活和各行各业中。
传统的机械秒表用起来不够便捷,因此我们将使用电路设计来实现一个数字秒表,使其更加方便使用。
1.2 文章结构本文分为四个主要部分进行阐述。
首先,在“引言”部分中我们将对文章进行概述和介绍。
接下来,在“简易数字秒表的电路设计”部分中,我们将详细介绍设计原理、电路元件选择与说明以及电路连接与布局等内容。
然后,在“解释说明”部分中,我们将解释秒表功能的实现方法,并探讨其功能扩展可能性,并指出在电路设计过程中需要注意的问题。
最后,在“结论”部分中,我们对本次设计成果进行总结,并就可能存在的改进空间进行分析和未来应用进行展望和思考。
1.3 目的本文旨在通过详细描述并解释简易数字秒表的电路设计,提供一个清晰易懂、全面深入的指南,帮助读者了解该设计思路及其实现方法。
同时,通过对功能扩展可能性的探讨和对电路设计过程中需要注意的问题的分析,可以引导读者在实际应用和改进中做出更好的决策。
最后,通过总结和展望,为未来的研究和发展提供参考思路。
2. 简易数字秒表的电路设计2.1 设计原理:简易数字秒表的电路设计基于计时器和显示器组成。
其主要原理是利用计时器模块产生一个稳定的时间基准,然后将该时间以数字形式显示在显示器上。
2.2 电路元件选择与说明:在设计简易数字秒表的电路时,我们需要选取合适的电子元件来实现功能。
以下是一些常见的元件选择:- 计时器芯片:可选择集成型计时器芯片,如NE555等,它们具有稳定的时钟信号输出。
- 显示屏:一般选用7段LED数码管,由于它们能够直观地显示数字。
- 驱动芯片:如果使用多个7段LED数码管进行显示,则必须选择合适的驱动芯片,如74HC595等。
这些元件经过合理的选择和配套可以实现精确、稳定地测量和显示时间。
2.3 电路连接与布局:简易数字秒表电路连接和布局对功能稳定性有重要影响。
电子秒表设计方案电子秒表是一种按时间计数的仪器,主要用于精确测量短时间内的时间间隔。
传统的机械秒表已经逐渐被电子秒表所取代,因为电子秒表具有更高的精确度、更便捷的使用和更多的功能。
电子秒表的设计方案如下:1. 时钟系统:电子秒表需要一个准确的时钟系统来实现时间的测量和显示。
可以采用晶体振荡器来提供稳定的时钟信号,并通过倒数计数器来计算出时间。
2. 按键设计:电子秒表需要一个按键来控制计时的开始、停止和重置。
可以采用机械按键或者触摸按键,通过按下按钮来触发计时动作。
3. 显示屏幕:电子秒表需要一个清晰的数字显示屏来显示计时结果。
可以采用液晶显示屏或者LED显示屏,显示出秒表的计时时间。
4. 计时精确度:电子秒表需要具有高精确度的计时功能。
可以采用纳秒级的计时芯片来提供更精确的计时结果,并且可以进行校准来保持计时的准确性。
5. 记录功能:电子秒表可以添加记录功能,可以记录多个计时数据,并提供查看和保存功能,方便用户随时查看和比较不同的计时结果。
6. 声音提示功能:电子秒表可以添加声音提示功能,用于在计时开始、停止和重置时发出提示音,方便用户的操作。
7. 计时模式选择:电子秒表可以提供不同的计时模式选择,如计时、计次、倒计时等,满足不同用户的需求。
8. 电池供电:电子秒表可以采用电池供电,方便携带和使用。
可以选择使用可充电电池或者干电池,提供持久的使用时间。
9. 外观设计:电子秒表的外观设计可以采用简洁大方的设计风格,便于携带和使用。
可以选择耐用的材质和防水设计,增加秒表的使用寿命和适应性。
总之,电子秒表是一种精确、便捷、多功能的计时工具,设计方案可以结合以上要点进行设计,以提供用户更好的计时体验。
单片机课程设计_基于单片机的数字秒表设计在当今科技迅速发展的时代,电子设备的应用无处不在,其中数字秒表作为一种常见的计时工具,具有广泛的应用场景,如体育比赛、科学实验、工业生产等。
本次课程设计旨在基于单片机技术实现一个数字秒表,通过对硬件电路的设计和软件程序的编写,掌握单片机系统的开发流程和方法,提高实践动手能力和解决问题的能力。
一、设计要求1、能够实现秒表的启动、暂停、复位功能。
2、计时精度达到 001 秒。
3、能够通过数码管显示计时结果。
二、系统方案设计1、硬件设计单片机选型:选用常见的 STC89C52 单片机作为核心控制器,其具有性能稳定、价格低廉、易于编程等优点。
显示模块:采用 8 位共阴极数码管作为显示器件,通过动态扫描的方式实现数字的显示。
按键模块:设置三个独立按键,分别用于启动、暂停和复位操作。
时钟模块:使用单片机内部的定时器/计数器产生精确的时钟信号,实现计时功能。
2、软件设计主程序:负责系统的初始化、按键扫描和计时处理等。
中断服务程序:利用定时器中断实现 001 秒的定时,更新计时数据。
三、硬件电路设计1、单片机最小系统包括单片机芯片、晶振电路和复位电路。
晶振频率选择 12MHz,为单片机提供时钟信号。
复位电路采用上电复位和手动复位相结合的方式,确保系统能够可靠复位。
2、显示电路将 8 位数码管的段选引脚通过限流电阻连接到单片机的 P0 口,位选引脚通过三极管连接到单片机的 P2 口。
通过动态扫描的方式,依次点亮每个数码管,实现数字的显示。
3、按键电路三个按键分别连接到单片机的 P10、P11 和 P12 引脚,采用低电平有效。
当按键按下时,相应引脚的电平被拉低,单片机通过检测引脚电平的变化来判断按键的操作。
四、软件程序设计1、主程序流程系统初始化后,进入主循环。
在主循环中,不断扫描按键状态,如果检测到启动按键按下,则启动计时;如果检测到暂停按键按下,则暂停计时;如果检测到复位按键按下,则将计时数据清零。
摘要要求设计一个计数范围在0.0-9.9秒的数字秒表,精确度为0.1秒。
电路设计基本包括0.1秒脉冲发生器、信号控制端、整形电路、计数电路、译码电路和显示器这几部分构成。
0.1秒脉冲发生器由555定时器构成的多谐振荡电路实现,信号控制端由D触发器实现,即74LS74N,能够对整个电路进行清零、计数、停止和复位的作用。
计数器由两个十进制BCD 码74LS160级联而成。
在计数器的四个输出端分别接译码器的四个置数端,译码器由74LS48实现。
这个电路设有两个开关s1,s2,来实现对电路的清零、计数、暂停、复位的控制。
这样,一个简易的数字秒表便设计完成了。
关键字:555定时器、D触发器、编码、译码ABSTRACTDesign a digital stopwatch counting range in 0.0-9.9 seconds, accuracy of 0.1 seconds. Basic including 0.1 second pulse generator circuit design, signal control terminal, shaping circuit, counting circuit, decoding circuit and a display of this a few parts. More than 0.1 second pulse generator composed of 555 timer harmonic oscillation circuit implementation, signal control comprised D flip-flop, namely 74LS74N, can be reset to the whole circuit, counting, stop and reset. Two decimal counter by BCD 74LS160 cascade. In the four output end of the counter four load respectively at the decoder side, decoder by 74LS48 implementation. This circuit is equipped with two switch S1, S2, to implement to reset circuit, counting, suspend, and reset the control. So will design a simple digital stopwatch is complete.Key Word:555 timer, D flip-flop, encoding and decoding目录摘要------------------------------------------------------------------------1 1.设计目的及要求------------------------------------------------------31.1设计目的-----------------------------------------------------------31.2设计要求-----------------------------------------------------------32.设计原理及分析------------------------------------------------------42.1设计构想框图-------------------------------------------------------42.2设计原理分析-------------------------------------------------------42.2.1多谐振荡电路------------------------------------------------42.2.2开关控制端与D触发器----------------------------------------52.2.3与非门电路--------------------------------------------------52.2.4显示译码电路------------------------------------------------53.制作过程--------------------------------------------------------------73.1布局连线-----------------------------------------------------------73.2调试---------------------------------------------------------------73.3遇到问题及解决方法-------------------------------------------------84.心得感悟--------------------------------------------------------------8参考文献------------------------------------------------------------------9附录附录一元器件清单------------------------------------------------------10 附录二电路图----------------------------------------------------------101.设计目的及要求1.1设计目的通过对数字秒表的设计,熟练掌握555定时器脉冲信号产生的原理和D触发器的功能及原理,利用所学的电子技术基础(模拟部分)知识,回顾脉冲信号产生、计数、编码、译码的原理机制,进行对生活中不可或缺的秒表的设计。
电子秒表的设计目录一、设计要求 (2)二、设计的目的与作用 (2)三、设计的具体体现 (2)1. 电子秒表的基本组成 (3)2.电子秒表的工作原理 (3)3.电子秒表的原理图 (4)4. 单元电路设计 (4)5.设计仿真与PCB制版 (12)四、心得体会 (17)五、附录 (18)六、参考文献 (20)一、设计要求1.以0.01秒为最小单位进行显示。
2.秒表可显示0.01~59:59:99秒的量程。
3.该秒表具有清零、开始计时、停止计时功能。
二、设计方案方案一:通过单片机来实现电子秒表基于51单片机电子秒表,设计简单,而且技术准确,缺点是价格相比于数字电路实现的秒表技术要昂贵。
方案二:采用数字电路来实现秒表计数,优点是价格便宜,计数精确,反应较快,缺点是,电路芯片较多,设计电路复杂。
经过比较选择了较为经济适用的数字电路。
二、设计的目的与作用1.培养我们运用有关课程的基础理论和技能解决实际问题,并进一步提高专业基本技能、创新能力。
通过课程设计,学习到设计写作方法,能用文字、图形和现代设计写作方法系统地、正确地表达课程设计和研究成果。
2. 熟悉555方波振荡器的应用。
3.熟悉计数器的级联及计数、译码、显示电路的整体配合。
4.建立分频的基本概念。
三、设计的具体体现1.电子秒表的基本组成电子秒表电路的基本组成框图如图所示,它主要由基本RS 触发器、多谐振荡器、计数器和数码显示器4个部分组成。
电子秒表电路的基本组成(方框图)如下:图(1)电子秒表基本组成方框图2.电子秒表的工作原理由555定时器构成多谐振荡器,用来产生50Hz 的矩形波。
第Ⅰ块计数器作5分频使用,将555输来的50Hz 的脉冲变为0.1秒的计数脉冲,在输出端Qd 取得,作为第2块计数器的始终输入,第2、第3块计数器QA 与CP2相连,都已接成8421码十进基本RS 触发器 多谐振荡器 单稳态触发器 计数器译码显示器制计数电路,第4块接成六进制形式,其输出端与译码显示器的相应输入端连接,可显示00:00:00——59:59:99s3.电子秒表的原理图图(2)原理图4.单元电路设计(1)由NE555P组成的多谐振荡器(多谐振荡器)ne555是一种应用特别广泛作用很大的的集成电路,属于小规模集成电路,在很多电子产品中都有应用。
论文摘要:本毕业论文通过电子秒表的设计,给出了以555定时器为核心,以分频、计数与译码显示模块为主要构成部分的电子秒表的设计方案。
系统具有随时启动、停止以及清零功能。
关键词: 555定时器分频计数译码艾力达引言随着电子技术的发展,电子技术在各个领域的运用也越来越广泛。
人们对它的认识也逐步加深。
在秒表的设计上功能不断完善,在时间的设计上不断的精确,人们也利用了电子技术以及相关的知识解决了一些实际问题。
秒表的设计是由555芯片提供的,秒表时间由相关的电阻与电容的大小决定。
除了时间的设计精确外,秒表还在功能上有所改变,如实现倒计时。
电子秒表广泛应用于对运动物体的速度、加速度的测量实验,还可用来验证牛顿第二定律、机械能守恒等物理实验,同时也适用于对时间测量精度要求较高的场合,如测定短时间间隔的仪表。
秒表有机械秒表和电子秒表两类。
机械秒表与机械手表相仿,但具有制动装置,可精确至百分之一秒;电子秒表用微型电池作能源,电子元件测量显示,可精确至千分之一秒,广泛应用于科学研究、体育运动及国防等方面。
在当今非常注重工作效率的社会环境中,定时器能给我们的工作、生活以及娱乐带来很大的方便。
充分利用定时器,能有效的加强我们的工作效率。
目前数字电子技术已经广泛地应用于计算机、自动控制、电子测量仪表、电视、雷达、通信等各个领域。
例如在现代测量技术中,数字测量仪表不仅比模拟测量仪表精度高、功能强,而且容易实现测量的自动化和智能化。
随着集成技术的发展,尤其是中、大规模和超大规模集成电路的发展,数字电子技术的应用范围将会更广泛地渗透到国民经济的各个部门,并将产生越来越深刻的影响。
随着现代社会的电子科技的迅速发展,要求我们要理论联系实际,数字电路课题设计的进行使我们有了这个非常好的机会,通过这种综合性训练,我们的动手能力、实际操作能力、综合知识应用能力得到了更好的提升。
本设计是基于数字电路和模拟电路的电子秒表的设计思路及实现方法。
51单片机秒表程序设计1. 简介秒表是一种用于测量时间间隔的计时器,常见于体育比赛、实验室实验等场合。
本文将介绍如何使用51单片机设计一个简单的秒表程序。
2. 硬件准备•51单片机开发板•LCD液晶显示屏•按键开关•连接线3. 程序流程3.1 初始化设置1.设置LCD液晶显示屏为8位数据总线模式。
2.初始化LCD液晶显示屏。
3.设置按键开关为输入模式。
3.2 主程序循环1.显示初始界面,包括“00:00:00”表示计时器初始值。
2.等待用户按下开始/暂停按钮。
3.如果用户按下开始按钮,则开始计时,进入计时状态。
4.如果用户按下暂停按钮,则暂停计时,进入暂停状态。
5.在计时状态下,每隔1毫秒更新计时器的数值,并在LCD液晶显示屏上显示出来。
6.在暂停状态下,不更新计时器的数值,并保持显示当前数值。
3.3 计时器控制1.定义一个变量time用于存储当前的计时器数值,单位为毫秒。
2.定义一个变量running用于标记计时器的状态,0表示暂停,1表示运行。
3.定义一个变量start_time用于存储计时器开始的时间点。
4.定义一个变量pause_time用于存储计时器暂停的时间点。
5.在计时状态下,每隔1毫秒更新time的值为当前时间与start_time的差值,并将其转换为小时、分钟、秒的表示形式。
6.在暂停状态下,保持time的值不变。
3.4 按键检测1.检测按键开关是否被按下。
2.如果按键被按下,判断是开始/暂停按钮还是复位按钮。
3.如果是开始/暂停按钮,并且当前处于计时状态,则将计时状态设置为暂停状态,并记录暂停时间点为pause_time;如果当前处于暂停状态,则将计时状态设置为运行状态,并记录开始时间点为当前时间减去暂停时间的差值。
4.如果是复位按钮,则将计时器数值重置为0,并将计时状态设置为暂停。
4. 程序代码示例#include <reg51.h>// 定义LCD控制端口和数据端口sbit LCD_RS = P1^0;sbit LCD_RW = P1^1;sbit LCD_EN = P1^2;sbit LCD_D4 = P1^3;sbit LCD_D5 = P1^4;sbit LCD_D6 = P1^5;sbit LCD_D7 = P1^6;// 定义按键开关端口sbit START_PAUSE_BTN = P2^0;sbit RESET_BTN = P2^1;// 定义全局变量unsigned int time = 0; // 计时器数值,单位为毫秒bit running = 0; // 计时器状态,0表示暂停,1表示运行unsigned long start_time = 0; // 开始时间点unsigned long pause_time = 0; // 暂停时间点// 函数声明void delay(unsigned int ms);void lcd_init();void lcd_command(unsigned char cmd);void lcd_data(unsigned char dat);void lcd_string(unsigned char *str);void lcd_clear();void lcd_gotoxy(unsigned char x, unsigned char y);// 主函数void main() {// 初始化设置lcd_init();while (1) {// 显示初始界面lcd_clear();lcd_gotoxy(0, 0);lcd_string("00:00:00");// 等待用户按下开始/暂停按钮while (!START_PAUSE_BTN && !RESET_BTN);// 判断按钮类型并处理计时器状态if (START_PAUSE_BTN) {if (running) { // 当前处于计时状态,按下按钮将进入暂停状态 running = 0;pause_time = time;} else { // 当前处于暂停状态,按下按钮将进入计时状态running = 1;start_time = get_current_time() - pause_time;}} else if (RESET_BTN) { // 复位按钮按下,重置计时器time = 0;running = 0;}}}// 毫秒级延时函数void delay(unsigned int ms) {unsigned int i, j;for (i = ms; i > 0; i--) {for (j = 110; j > 0; j--);}}// LCD初始化函数void lcd_init() {lcd_command(0x38); // 设置8位数据总线模式lcd_command(0x0C); // 显示开,光标关闭lcd_command(0x06); // 光标右移,不移动显示器lcd_command(0x01); // 清屏}// 向LCD发送指令函数void lcd_command(unsigned char cmd) {LCD_RS = 0;LCD_RW = 0;LCD_EN = 1;LCD_D4 = cmd >> 4 & 1;LCD_D5 = cmd >> 5 & 1;LCD_D6 = cmd >> 6 & 1;LCD_D7 = cmd >> 7 & 1;delay(1);LCD_EN = 0;LCD_D4 = cmd >> 0 & 1;LCD_D5 = cmd >> 1 & 1;LCD_D6 = cmd >> 2 & 1;LCD_D7 = cmd >> 3 & 1;delay(1);LCD_EN = 0;}// 向LCD发送数据函数void lcd_data(unsigned char dat) { LCD_RS = 1;LCD_RW = 0;LCD_EN = 1;LCD_D4 = dat >> 4 & 1;LCD_D5 = dat >> 5 & 1;LCD_D6 = dat >> 6 & 1;LCD_D7 = dat >> 7 & 1;delay(1);LCD_EN = 0;LCD_D4 = dat >> 0 & 1;LCD_D5 = dat >> 1 & 1;LCD_D6 = dat >> 2 & 1;LCD_D7 = dat >> 3 & 1;delay(1);LCD_EN = 0;}// 向LCD发送字符串函数void lcd_string(unsigned char *str) {while (*str) {lcd_data(*str++);delay(5);}}// 清屏函数void lcd_clear() {lcd_command(0x01);}// 设置光标位置函数void lcd_gotoxy(unsigned char x, unsigned char y) {unsigned char addr;if (y == 0)addr = x | (0x80 + y);else if (y == 1)addr = x | (0xC0 + y);lcd_command(addr);}5. 总结本文介绍了使用51单片机设计一个简单的秒表程序。
1、实训任务目的1.根据单片机课程所学内容,结合其他相关课程知识,设计电子秒表,以加深对单片机知识的理解,锻炼实践动手能力,为以后的毕业设计和工作打下坚实基础;2.熟悉汇编语言或C语言的程序设计方法,熟悉51系列单片机的使用;3.掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口、串行口通讯等功能;4.掌握单片机应用系统的软硬件设计过程、方法及实现。
2、设计方案2.1系统总体设计方案使用STC89C52单片机作为核心控制部件,采用12M晶体振荡器及30PF微小电容构成振荡电路;用1个四位一体共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的计时、清零、停止、增减初始时间等各项功能。
2.2 系统总体整体框图图2.2 系统设计框图3、电路设计3.1 硬件部分系统设计3.1.1电路原理图图3.1.秒表计时器电路图1. 时钟电路在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。
在本设计中采用的12M 的石英晶振。
和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。
当采用石英晶振时,电容可以在20 ~ 40pF 之间选择。
2.复位电路复位操作通常有两种基本形式:上电自动复位和开关复位。
上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。
随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。
并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。
3. EA/VPP(31 脚)的功能和接法51 单片机的EA/VPP(31 脚)是内部和外部程序存储器的选择管脚。
当EA 保持高电平时,单片机访问内部程序存储器;对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。
数字秒表课程设计及仿真一、课程目标知识目标:1. 学生能理解数字秒表的基本原理,掌握其计时功能的工作机制。
2. 学生能描述数字秒表电路的组成,包括时钟电路、触发器、计数器等关键元件。
3. 学生能够运用所学知识,分析并解释数字秒表中时间测量的精度和误差来源。
技能目标:1. 学生能够运用仿真软件设计并搭建一个简单的数字秒表电路模型。
2. 学生通过实际操作,学会设置数字秒表,进行时间的测量和记录,掌握基本的时间计算方法。
3. 学生能够利用仿真工具对数字秒表电路进行调试,解决简单的故障问题。
情感态度价值观目标:1. 学生通过课程学习,培养对电子科技的兴趣,增强对科学探究的热情。
2. 学生能够在小组合作中发展团队协作精神,学会相互尊重和交流分享。
3. 学生通过实际操作和问题解决,培养面对挑战的积极态度和解决实际问题的自信心。
课程性质:本课程属于电子技术实践课程,结合理论教学与实际操作,强调知识的应用与创新。
学生特点:考虑到学生年级特点,课程设计将结合学生的好奇心和动手能力,通过形象直观的仿真实验,激发学生的学习兴趣。
教学要求:教学过程中应注重理论与实践相结合,强调知识的应用和技能的培养,通过课程学习,使学生能将所学知识内化为解决实际问题的能力。
教学评估将基于学生在课程中的具体学习成果进行。
二、教学内容本课程教学内容主要包括以下几部分:1. 数字秒表基本原理:介绍数字秒表的计时原理,分析时钟电路、触发器、计数器等关键元件的工作原理。
2. 数字秒表电路组成:详细讲解数字秒表的电路结构,包括时钟电路、控制电路、显示电路等组成部分。
3. 仿真软件应用:教授学生如何使用仿真软件,搭建数字秒表电路模型,并进行调试。
4. 实践操作:指导学生进行数字秒表的设置、时间测量和记录,以及基本的时间计算方法。
5. 故障分析与解决:教授学生如何分析数字秒表电路中的常见故障,并运用所学知识解决问题。
教学内容安排如下:第一课时:数字秒表基本原理及电路组成1. 介绍计时原理和关键元件2. 分析电路结构及工作原理第二课时:仿真软件应用与实践操作1. 搭建数字秒表电路模型2. 进行仿真调试和实际操作第三课时:故障分析与解决1. 分析常见故障及其原因2. 解决实际问题,提高操作技能教学内容与教材关联性:本课程内容紧密联系教材中关于数字电路、计时器等方面的知识,确保学生所学内容的科学性和系统性。
电子秒表的设计电子秒表是一种用于测量时间间隔的电子设备,可以用来计算时间,计时等。
其设计包括硬件和软件两个部分。
下面将详细介绍电子秒表的设计。
一、硬件设计1.微控制器电子秒表的核心是微控制器,它控制整个系统的运行。
常用的微控制器有单片机、FPGA、DSP等。
其中,单片机是一种常用的微控制器,如AT89C51、STC89C52等。
这些单片机具有价格低廉、可靠性高、易于编程等优点。
2.按键电子秒表需要用到开始、停止、重置等按键,以便用户可以控制秒表的计时。
这些按键连接到微控制器的IO口上,通过软件程序实现其功能。
3.显示器电子秒表需要一个显示器来显示计时结果。
常用的显示器有LED数码管、LCD 液晶显示屏等。
其中,LED数码管具有亮度高、寿命长、价格低廉等优点,但是只能显示数字,不能显示文字。
LCD液晶显示屏可以显示数字和文字,但是价格较高。
4.定时器电子秒表需要用到定时器来计时时间。
常用的定时器有硬件定时器和软件定时器两种。
硬件定时器通常使用计时器芯片来实现,如CD4060等。
软件定时器则是通过微控制器内部的定时器来实现的。
二、软件设计1.程序流程图在软件设计阶段,首先要画出程序流程图,以便更好地理解程序的执行过程。
程序流程图是一种用图形方式表示程序执行过程的工具,它可以帮助程序设计者更好地理解程序结构,从而更容易编写程序。
2.程序代码根据程序流程图,我们可以编写程序代码。
在程序代码中,我们需要定义各个变量、声明函数、编写各个模块的程序逻辑等。
下面是一个简单的电子秒表程序代码的示例:#include <reg52.h> // 包含单片机头文件typedef unsigned int ui; // 定义无符号整型数变量typedef unsigned char uc; // 定义无符号字符型数变量sbit K1=P3^3; // 开始按钮sbit K2=P3^4; // 停止按钮sbit K3=P3^5; // 重置按钮uc code table[]={ // 显示时间的程序表0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, // 0~7号位的显示数据0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71 // 8~15号位的显示数据};ui num=0; // 计时器变量uc time=0; // 计时器计时结果变量uc count=0; // 软件定时器计数变量bit flag=0; // 软件定时器标志位void delay(ui x) // 延时函数{ui i,j;for(i=x;i>0;i--)for(j=112;j>0;j--);}void display(uc time) // 显示时间函数{P2=0xFE; // 选择第一位数码管P0=table[time/10]; // 显示时间的十位数字delay(5); // 延时消隐P2=0xFD; // 选择第二位数码管P0=table[time%10]; // 显示时间的个位数字delay(5); // 延时消隐}void main() // 主函数{while(1) // 循环执行程序{if(K1==0) // 如果按下开始按钮{K1=1; // 松开开始按钮num=0; // 清零计时器变量numflag=1; // 软件定时器标志位flag置1}if(K2==0) // 如果按下停止按钮{K2=1; // 松开停止按钮num=num/10; // 清零计时器变量num的高位数字display(num); // 显示计时器变量num的值}if(K3==0) // 如果按下重置按钮{K3=1; // 松开重置按钮下面详细介绍电子秒表的设计:总体架构设计。
数字秒表的设计实现团队成员:董婷詹磊胡鹏一、测试要求1. 有源晶振频率:24MHZ2. 测试计时范围:00’00”00 ~ 59’59”99,显示的最长时间为59分59 秒3. 数字秒表的计时精度是10ms4. 显示工作方式:a、用八位数码管显示读数b、用两个按钮开关(一个按钮使秒表复位,另一个按钮控制秒表的启动/暂停)二、设计要求1. 设计出符合设计要求的解决方案2. 利用软件对各单元电路及整体电路进行仿真3. 在开发板上实现设计5. 撰写设计报告三、秒表功能键1、power:秒表电源键2、Reset:秒表复位清零键3、run/stop:秒表启动/停止键四、实验原理1 .实验设计原理(1)秒表的逻辑结构较简单,它主要由十进制计数器、六进制计数器、分频器、数据选择器、和显示译码器等组成。
在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。
(2)秒表有共有8个输出显示,其中6个显示输出数据,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应;另外两个为间隔符,显示‘-’。
8个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。
(3)可定义一个24位二进制的寄存器hour用于存放8个计数器的输出,寄存器从高位到低位每连续4位为一组,分别存放百分之一秒、十分之一秒、间隔符、秒、十秒、间隔符、分、十分。
由频率信号输出端输出频率为100HZ的时钟信号,输入到百分之一秒模块的时钟端clk,百分之一秒模块为100进制的计数器,当计数到“1001”时,百分之一秒模块清零,同时十分之一秒模块加1;十分之一秒模块也为100进制的计数器,当计数到“1001”时,十分之一秒模块清零,同时秒模块加1;以此类推。
直到分模块计数到59进59。
(4)为了消除按键消抖问题,定义寄存器key-inner来存储按键key的输入信号,key-flag作为启动/暂停的转换标志,key-inner[0]出现一个下降沿时,key-flag取反一次,当key-flag为0时计数器启动,1时计数器暂停,当key-flag 为1同时key-inner[1]为9时,计数器清零。
设 计 报 告课程名称 _______ 设计题目_______ 指导老师 _______ 学 生_______ 学 号 _______现代电子技术综合实验 数字式秒表设计与实现 兰 瑞 志 2013040204029 刘 曦目录1 引言 (4)1.1课程设计的目的 (4)1.2课程设计的内容 (4)2 EDA、VHDL简介 (5)2.1 EDA技术 (5)2.2硬件描述语言——VHDL (5)2.2.1 VHDL语言的特点 (6)2.2.2 VHDL语言的设计流程 (8)3 设计过程 (9)3.1设计规划 (9)3.2原理框图 (10)3.3各模块的功能 (10)3.3.1分频器 (10)3.3.2计数器 (11)3.3.3数据锁存器 (11)3.3.4显示译码电路 (11)3.3.5控制电路 (12)3.3.6按键消抖电路 (12)3.3.7顶层文件 (13)4 硬件电路仿真 (13)4.1分频器仿真 (13)4.2模6计数器仿真 (14)4.3模10计数器仿真 (14)4.4控制电路仿真 (14)5 实验总结 (15)5.1实验结论 (15)5.2心得总结 (15)致谢 (16)参考文献 (16)附录 (16)1引言在科技高度发展的今天,集成电路和计算机应用得到了高速发展,尤其是计算机应用的发展。
它在人们日常生活已逐渐崭露头角。
大多数电子产品多是由计算机电路组成,如:手机、mp3等。
而且将来的不久它们的身影将会更频繁地出现在我们身边。
电脑各部分在工作时多是以时间为基准的。
本文就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字秒表。
秒表在很多领域充当了重要的角色。
各种比赛中对秒表的精确度要求很高,尤其是一些科学实验,它们对时间精确度达到了几纳秒级别。
1.1课程设计的目的本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。
在掌握所学的计算机组成与结构课程理论知识时,通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关的设计能力,提高分析、解决计算机技术实际问题的能力。
1.2课程设计的内容秒表的计时范围是00’00”00到59’59”99。
有两个按钮开关start/stop和split/reset,控制秒表的启动、停止、分段和复位。
秒表已经被复位的情况下,按下start/stop 键,秒表开始计时。
在秒表正常运行的情况下,如果按下start/stop 则秒表暂停计时;再次按下该键,秒表继续计时。
在秒表正常运行下,如果按下split/reset,显示停止在按键时的时间,但秒表仍然在计时;再次按下该键,秒表恢复正常显示。
在秒表暂停计时的情况下,按下split/reset,秒表复位归零。
2 EDA、VHDL简介2.1EDA技术EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言VHDL完成的设计文件,自动完成逻辑编译、逻辑映射和编程下载等工作。
目前EDA主要辅助进行三个方面的设计工作:IC设计、电子电路设计和PCB设计。
没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的;反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。
2.2硬件描述语言——VHDLVHDL(Very-high-speed Integrated Circuit Hardware Description Language)诞生于1982年。
1987年底,VHDL 被IEEE (The Institute of Electrical and Electronics Engineers)和美国国防部确认为标准硬件描述语言。
自IEEE 公布了VHDL 的标准版本(IEEE-1076)之后,各EDA 公司相继推出了自己的VHDL 设计环境,并宣布自己的设计工具可以和VHDL 接口。
此后VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言。
1993 年,IEEE 对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL 的内容,公布了新版本的VHDL,即IEEE 标准的1076-1993 版本。
现在,VHDL 和VERILOG作为IEEE 的工业标准硬件描述语言,又得到众多EDA 公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
有专家认为,在新的世纪中,VHDL和VERILOG 语言将承担起几乎全部的数字系统设计任务。
2.2.1VHDL语言的特点VHDL 主要用于描述数字系统的结构、行为、功能和接口。
除了含有许多具有硬件特征的语句外,VHDL 的语言形式,描述风格以及句法十分类似于一般的计算机高级语言。
VHDL 的程序结构特点是将一项工程设计,或称为设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(又称为可视部分,即端口)和内部(又称为不可视部分),即设计实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
应用VHDL 进行工程设计的优点是多方面的,具体如下:1、与其它的硬件描述语言相比,VHDL 具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
就目前流行的EDA 工具和VHDL 综合器而言,将基于抽象的行为描述风格的VHDL程序综合成为具体的FPGA 和CPLD 等目标器件的网表文件已不成问题,只是在综合与优化效率上略有差异。
2、VHDL 最初是作为一种仿真标准格式出现的,因此VHDL 既是一种硬件电路描述和设计语言,也是一种标准的网表格式,还是一种仿真语言。
其丰富的仿真语句和库函数,使得在任何大系统的设计早期(即尚未完成),就能用于查验设计系统的功能可行性,随时可对设计进行仿真模拟。
即在远离门级的高层次上进行模拟,使设计者对整个工程设计的结构和功能的可行性做出决策。
3、VHDL 语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能,符合市场所需求的,大规模系统高效、高速的完成必须由多人甚至多个开发组共同并行工作才能实现的特点。
VHDL 中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有力的支持。
4、对于用VHDL 完成的一个确定的设计,可以利用EDA 工具进行逻辑综合和优化,并自动地把VHDL 描述设计转变成为门级网表。
这种方式突破了门级电路设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。
应用EDA 工具的逻辑优化功能,可以自动地把一个综合后的设计变成一个更高效、更高速的电路系统。
反过来,设计者还可以容易地从综合和优化后的电路获得设计信息,返回去更新修改VHDL 设计描述,使之更为完善。
5、VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。
正因为VHDL 硬件描述与具体的工艺技术和硬件结构无关,VHDL 设计程序的硬件实现目标器件有广阔的选择范围,其中包括各系列的CPLD、FPGA 及各种门阵列实现目标。
6、由于VHDL 具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需要改变端口类属参量或函数,就能轻易地改变设计的规模和结构。
2.2.2VHDL语言的设计流程1.文本编辑用任何文本编辑器都可以进行,也可以用专用的VHDL编辑环境。
通常VHDL文件保存为.vhd文件。
2.功能仿真将文件调入VHDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成后,进行时序仿真)3.逻辑综合将源文件调入逻辑综合软件进行综合,即把语言综合成最简单的布尔表达式。
逻辑综合软件会生成.edf或.edif的EDA工业标准文件。
4.布局布线将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放PLD/FPGA内。
5.时序仿真需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序(也叫后仿真)。
通常以上过程都在PLD/FPGA厂家提供的开发工具内。
6.器件编程3设计过程3.1设计规划本系统设计采用自顶向下的设计方案,系统的整体组装设计由以下六部分组成:·分频器:对晶体振荡器产生的时钟信号进行分频,产生时间基准信号。
·计数器:对时间基准脉冲进行技术,完成计时功能。
·数据锁存器:锁存数据,使显示保持锁定。
·控制器:控制计数器的运行、暂停以及复位;产生锁存器的是能信号。
·扫描显示的控制电路:包括扫描计数器、3-8译码器和7段译码器;控制8个数码管以扫描方式显示计时结果。
·按键消抖电路:消除按键输入信号抖动的影响,输出单脉冲。
3.2原理框图3.3各模块的功能3.3.1分频器需要两种分频器,分频器一是将晶体振荡器输入的48MHz的时钟信号,利用模48000的计数器分频,输出为1kHz的时钟信号。
(因为多位LED显示,一般采取动态扫描方式、分时循环显示,即多个发光管轮流交替点亮。
它是利用人眼的滞留现象,只要在1秒内一个发光管亮24次以上,每次点亮时间维持在2ms以上,则人眼感觉不到闪烁);分频器二是输入为1kHz的信号,分频成100Hz的信号,即为百分之一秒,作为计数器输入。
3.3.2计数器计数器执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。
需要四个十进制计数器和两个六进制计数器,其中毫秒位、十毫秒位、秒位和分位采用十进制计数器,十秒位和十分位采用六进制计数器。
3.3.3数据锁存器能够实现秒表中要求的面板暂停但是继续计时的功能。
3.3.4显示译码电路能够将BCD码转换为LED的七段译码器。
注意:实验板上的数码管为共阳LED数码管,即编码时低有效。
3.3.5控制电路输入为1kHz的时钟信号,启动停止按键start_stop,复位锁存按键reset_split;输出为控制信号:clear清零;working计数;display 锁存并计数。
目的是得到主电路的控制信号。
具体实现如下:参照状态图编写程序:采用三进程模式编写——进程一控制状态转移;进程二引入时钟信号;进程三定义状态输出。
3.3.6按键消抖电路按键按下时,FPGA的输入为高电平;松开按键时,FPGA的输入为低电平,但是在按下和松开按键的瞬间会出现抖动现象。