数字秒表设计(终结版)
数字式秒表设计
一、内容摘要本设计所实现的数字式秒表是电子设计技术中最基本的设计实验之一。
该数字计数系统的逻辑结构较简单,是由微动开关、抖动消除电路、三状态控制电路、微分及整形清零电路、上电复位电路、0·1秒脉冲发生器、闸门计数控制电路、译码及显示电路组成的电子秒表,其中核心的部分为0·1秒脉冲发生器、计数、译码及显示电路部分,而其它部分是为使电子秒表在0.1~9·9秒范围内测定时间附加上的一些外围控制电路。
本设计报告由内容摘要、设计任务指标、系统方案论证、元件清单、单元电路设计、电路图及电路工作原理、组装调试、设计成果的评价、课程设计心得体会和参考文献十大部分组成,力求将整个系统的设计过程、原理、以及心得体会完整的呈现出来。
二、设计任务及指标1通过本课程设计计算、安装调试、资料整理、撰写报告等环节,初步掌握电子设计方法以及完成数字秒表的电路设计。
2利用基本RS触发器、脉冲发生器及计数、译码、显示等单元电路设计数字秒表。
3由2位数码管显示计数时间,显示分辨率为0.1s,计时误差小于5%。
4在实验装置上或者利用仿真软件完成数字秒表的线路连接和调试,实现上电自动清零、启动计时显示、暂停计时显示以及重新计时等控制功能。
三、系统设计方案论证1数字式秒表,首先需要一个数字显示。
按设计要求,须用数码管来做显示器。
题目要求最大记数值为9.9秒,则需要一个8段数码管作为秒位(有小数点)和一个7段数码管作为分秒位。
要求计数分辨率为0. 1秒,那么我们需要相应频率的信号发生器。
选择信号发生器时,有两种方案:一种是用晶体震荡器,另一种方案是采用集成电路555定时器与电阻和电容组成的多谐振荡器。
秒表核心部分——计数器,使用两个74LS390计数器构成,这种连接方式简单,使用元器件数量少。
计数脉冲是由555定时器构成的多谐振荡器,产生10赫兹脉冲,如果精度要求高,也可采用石英振荡器。
在选择译码器的时候,有多种选择,如74LS46,74LS47,74LS48等4-7线译码器。
数字秒表的设计
P o we r Tr a mf or n q e r Fa u l t F o r e c a s t .Ad v a n c e d M a t e ia r l s R e s e a r c h, 2 01 1 ,
v o 1 2 0 4 —2 1 0, 1 5 5 3 —1 5 5 B .
1 3 j Z h e n g Ru i mi, Wu B a o c h u n , Zh a o J i y i n .P r e d i c t i o n o f P o we r
Tr a n s f o r me r F a u l t Ba s e d o n Au t o Re g r e s s i o n Mo d e 1 .Ad v a nc e d M a t e r i a l s Re s e a r c h, 2 0 1 1 , v o l 3 1 7—3 1 9 , 2 2 3 0 —2 2 3 3
秒表 作为精确计 时的工具 , 广 泛应用于我们 的生活 、 工作 、 运动等 方 面。随着 电子 产业的不断 发展 , 秒表 已经 由刚开始 的机械 式秒表发 展 到今天所常用 的数字式秒 表。秒表 的计 时精 度也越来越 高 , 功能越 来 越多 , 构造也 日益复 杂。本设 计的数 字式秒表 : 秒表 最大计 时值为 5 9 . 9 秒; 3 位数码 管显示 , 分辨 率为 0 . 1 秒; 具有 清零 、 启 动计时 、 暂停及 继续 计数 等控制 功能。 1 . 工 作 原 理 由方波信号 发生器产生稳 定的高频脉 冲信号 , 经 分频 电路输 出标 准的 1 0 H z 脉 冲信号 , 作为 1 0 0 毫秒的计 时脉 冲。1 0 0 毫秒计 数器计满 1 0 后, 向秒计 数器产生进位脉 冲。计 数器的输 出经 显示译码器译码后 送显示器显示。如图 1 所示 。
数字秒表课程设计
数字秒表课程设计设计目的、要求1.1设计目的课程设计是检验我们本学期学习的情况的一项综合测试,它要求我们把所学的知识应用于实际,融会贯通,是对我们能力的一项综合评定,它要求我们充分发掘自身的潜力。
同时课程设计也是教学过程中的一个重要环节,通过设计可以巩固各课程理论知识,了解课程设计的基本方法,培养独立分析和解决实际工程技术问题的能力。
1.2设计意义时间本是一种运动。
假如宇宙静止不动,就没有所谓时间了,时间的定义,是由星体的运行所界定的。
假如我们要在昼夜循环之间确定出某个时刻,则非有一些“测量准则"不可。
正因为人类社会出现了这新的局面,时间才有了定义,才有所划分。
人类开始为时间编上数目,而且计算得愈益精确。
世界历史的长河中,还没有像今天这样在各个领域发生着如此之多的根本变化小到个人日常生活琐事大到国际形势。
而推动这一变化的当数科学技术。
虽然人类从远古时代就已经学会利用新技术来重新描绘其生活画卷了,但是还没有一种科技能像现代电子技术那样影响如深远。
1.3设计要求启动按钮按下时开始计时,数值为LED显示,计时范围为00.99―99.99秒,按下暂停按钮时则计时停止,LED数值保持不变,再按下启动按钮时间继续累加,按下复位按钮数值复位为00.00,器件自定。
第二章器件选择及原理2.1器件的选择在本次设计数字显示电子秒表中我们主要使用了4种芯片和若干电阻、电容以及八段数码管来构成电路。
其中六种芯片包括:74LS00(四2输入与非门)、74LS161(同步十进制加法记数器)、74LS48(译码器)、CB555(定时器)。
下面就这些芯片的主要结构和功能:1、74LS00:四2输入与非门。
集成了四个带有两个输入端的与非门。
可用于构成RS触发器,包括电源在内共有14个引脚。
2、74LS161:同步十进制记数器。
中规模集成的4位同步二进制记数器,每输入10个记数脉冲记数器工作一个循环。
它还具预置数、保持和清零等功能,共有14个引脚。
数字式秒表设计
1 设计目的1、培养理论联系实际的正确设计思想,训练综合运用已经学过的理论和生产实际知识去分析和解决工程实际问题的能力。
2、学习较复杂的电子系统设计的一般方法,提高基于模拟、数字电路等知识解决电子信息方面常见实际问题的能力,由学生自行设计、自行制作和自行调试。
3、进行基本技能训练,如基本仪器仪表的使用,常用元器件的识别、测量、熟练运用的能力,掌握设计资料、手册、标准和规范以及使用仿真软件、实验设备进行调试和数据处理等。
4、培养学生的创新能力。
2 设计要求1.秒表由2位七段LED显示器显示,其中1位显示“s”,二位显示“0.1s”,显示分辩率为0.1 s;2.计时最大值为9.9s;3.计时误差不得超过1s;具有清零、启动计时、暂停计时及继续计时等控制功能;4.主要单元电路和元器件参数计算、选择;5.画出总体电路图;6.安装自己设计的电路,按照自己设计的电路,在通用板上焊接。
焊接完毕后,应对照电路图仔细检查,看是否有错接、漏接、虚焊的现象。
7.调试电路8.电路性能指标测试9.提交格式上符合要求,内容完整的设计报告3总体设计3.1 工作流程图图 1 工作流程图图1中1单元为用集成与非门74LS00构成的基本RS 触发器。
属低电平直接触发的触发器,有直接置位,复位的功能。
图1中2单元为集成与非门74LS00构成的单稳态触发器,它的职能是为计数器提供清零信号。
图1中555定时器构成了多谐振荡器,是一种性能较好的时钟源。
图1中4单元74LS160构成的计数器/分频器图1中5单元译码显示单元3.2 原理图:图1为电子秒表的原理图,按功能可分为5个单元电路进行分析。
其中单元1为基本RS 触发器; 单元2为单稳态触发器; 单元3为时钟发生器; 单元4为计数器和分频器; 单元5为译码显示单元。
基本RS 触发器单稳态触发器译码显示器555定时器计数/分频器图2 原理电路图本电路中使用两个基本RS触发器提供置位、复位、和清零信号,555定时器提供时钟脉冲信号,三块74LS160作为译码/分频单元,有效、简洁地完成了秒表所具备的所有功能(清零、启动计时、暂停计时及继续计时)。
西课程设计数字秒表
西课程设计数字秒表一、课程目标知识目标:1. 学生能理解数字秒表的基本概念,掌握其计时原理。
2. 学生能运用数学知识,解读数字秒表上的时间显示,进行简单的时间计算。
3. 学生了解数字秒表在日常生活和科学实验中的应用。
技能目标:1. 学生能熟练操作数字秒表,进行准确计时。
2. 学生能通过数字秒表进行简单的数据收集和分析,提高实验技能。
3. 学生能运用所学的数字秒表知识,解决实际问题。
情感态度价值观目标:1. 培养学生对科学实验的兴趣,激发探索精神。
2. 培养学生严谨、细致的科学态度,提高合作意识。
3. 增强学生对时间观念的认识,培养珍惜时间的价值观。
课程性质:本课程为科学实验课,结合数学知识,旨在让学生通过实际操作,掌握数字秒表的使用方法,提高实验技能。
学生特点:六年级学生具备一定的数学基础,对新事物充满好奇,有较强的动手能力,但需引导培养严谨的科学态度。
教学要求:结合学生特点,注重实践操作,强调知识的应用,提高学生的实验技能和解决实际问题的能力。
在教学过程中,关注学生的情感态度,培养合作精神。
通过本课程的学习,使学生达到课程目标所设定的具体学习成果。
二、教学内容1. 数字秒表的基本概念与功能- 介绍数字秒表的组成、工作原理及特点- 学习数字秒表的计时功能,包括启动、停止、计次、分段计时等2. 数字秒表的操作与实践- 指导学生掌握数字秒表的操作方法- 安排实际操作练习,让学生熟练使用数字秒表进行计时3. 时间计算与分析- 结合数学知识,学习数字秒表上的时间显示解读- 进行简单的时间计算,如加减乘除、平均速度等4. 数字秒表在实际应用中的使用- 分析数字秒表在日常生活和科学实验中的应用案例- 设计实践活动,让学生运用数字秒表解决实际问题5. 教学内容的安排与进度- 第一课时:数字秒表的基本概念与功能- 第二课时:数字秒表的操作与实践- 第三课时:时间计算与分析- 第四课时:数字秒表在实际应用中的使用本教学内容依据课程目标,注重科学性和系统性,结合课本章节,安排合理的教学进度。
【精品完整版】电子科技大学现代电子综合实验报告数字秒表设计
【精品完整版】电⼦科技⼤学现代电⼦综合实验报告数字秒表设计现代电⼦综合实验报告项⽬名称数字秒表设计学⽣姓名学号指导⽼师⽬录【摘要】 (1)关键词 (1)引⾔ (1)第1章背景知识介绍 (2)1.1 FPGA (2)1.2 EDA (2)1.3 VHDL语⾔ (2)1.4 ModelSim软件 (3)1.5 ISE软件 (3)1.6 时间简介 (3)第2章系统设计 (4)2.1设计要求 (4)2.2 设计分析 (4)2.2.1 输⼊输出分析 (4)2.2.2 系统设计原理 (4)2.2.3 系统内部模块分析 (5)第3章模块电路的实现与仿真 (6)3.1 按键消抖 (6)3.2 分频器 (7)3.3 控制器 (8)3.4 计数器 (10)3.5 锁存器 (11)3.6 显⽰模块 (12)第4章实验设计 (14)4.1 顶层设计 (14)4.2 管脚设置 (15)第5章实验结论 (15)第6章结果分析 (15)参考⽂献: (16)附录: (16)1.分频模块源程序 (16)2.消抖模块源程序 (17)3.控制模块源程序 (18)4.计数器模块源程序 (20)(1)计数器顶层⽂件程序 (20)(2)10进制仿真程序源程序 (22)(3)6进制仿真程序源程序 (23)5.锁存器模块源程序 (24)6.显⽰模块源程序 (25)(1)显⽰模块顶层⽂件源程序 (25)(2)扫描模块源程序 (27)(3)数据选择模块源程序 (27)(4)译码器模块源程序 (28)7.顶层⽂件源程序 (29)8.管脚分配源程序 (32)【摘要】利⽤VHDL硬件设计语⾔基于FPGA实验板设计⼀个数字表秒。
该数字秒表及时范围是00’00”00 ~ 59’59”99,并利⽤两个按钮开关Start/Stop 和Split/Reset来控制秒表的启动、暂停、继续、停⽌、复位。
根据该要求,将该实验设计分为6个模块,分别为:分频模块、按键消抖模块、计数器模块和按键控制模块、锁存模块和显⽰模块。
数字电子秒表设计总结报告1
数字电子秒表设计总结报告一.工作原理本数字电子秒表设计由启动、清零复位电路、多谐振荡电路、分频计数电路、译码显示电路等组成。
如下图所示:启动清零复位电路主要由U6A 、U6B 、U7B 、U7D 组成,其本质是一个RS 触发器和单稳态触发器。
J1控制数字秒表的启动和停止,J2控制数字秒表的清零复位。
开始时把J1合上,J2打开,运行本电路,数字秒表正在计数。
当打开J1,合上J2键,J2与地相接得到低电平加到U6B 的输入端,U6B 输出高电平又加到U6A 的输入端,而U6A 的另一端通过电阻R15与电源相接得到高电平,(此时U6B 与U6A 组成RS 触发器),U6A 输出低电加到U7A 的输入端,U7A 被封锁输出高电平加到U5的时钟端,因U5不具备时钟脉冲条件,U5不能输出脉冲信号,因此U3、U4时钟端无脉冲而停止计数。
当J1合上时,打开J2键,J1与地相接得到低电平加到U6A 的输入端,U6A 输出高电平加到U6B 的输入端,U6B输出低电平加至U7B,使U7B输出高电平,因电容两端电压不能跃变,因此在R7上得到高电平加到U7D输入端,U7D输出低电平(进入暂态)同时加到U3、U4、U5的清零端,使得U3、U4的QD ---QA输出0000,经U1、U2译码输出驱动U9、U10显示“00”。
因为U7B与U7D组成一个单稳态电路,经过较短的时间,U7D的输出由低电平变为高电平,允许U3、U4、U5计数。
同时U6A输出高电平加到U7A的输入端,将U7A打开,让555的3脚输出100KHZ的振荡信号经U7A加到U5的时钟脉冲端,使得U5具备时钟脉冲条件,U5的9、10、7脚接高电平,U5构成十分频器,对时钟脉冲计数。
当U5接收一个脉冲时,U5内部计数加1,如果U5接收到第十个脉冲时,U5的15脚(RCO端)输出由低电平跳变为高电平作为U4的时钟脉冲,从而实现了对振荡信号的十分频,产生周期为0.1S的脉冲加至U4的时钟端。
数字秒表设计报告
吉林建筑工程学院电气与电子信息工程学院微机原理课程设计报告设计题目:数字秒表的设计专业班级:学生姓名:学号:指导教师:设计时间:数字秒表设计报告一、课程设计目的通过该设计,掌握8255并行接口芯片、8253定时计数芯片的使用和数码管的使用,并掌握相应的程序设计和电路设计的技能。
是对8255并行接口芯片章节理论学习的总结和补充,为后续的硬件课程的学习打下基础。
二、课程设计的内容及要求利用8253计数器2和计数器1,实现1Hz信号的产生,然后计数器采用硬件触发选通方式计数,CPU读取计数结果,并转换为读秒计数,并把读秒计数的结果用数码管显示出来(2位)。
三、总体设计方案设计一个利用微机原理与接口技术完成秒表的设计方案, 该方案主要是选择8253A的计数器2与计数器1产生一个1Hz的中断脉冲,其输出端与不可屏蔽中断请求信号端相连接。
利用1.19318MHz脉冲方波输入CLK2,设置CLK2的初值为59659,将CLK2的输出端连接到CLK1,设置CLK1的初值为20,将OUT1连接到8086CPU 的NMI端。
将NMI端有一个低电平信号输入时,8086CPU将产生中断进行秒计数。
8086通过8255A将PA口作为段选信号输出端,将PB口作为片选信号输出端。
图3.1 方案设计框图此方案的核心内容是利用微机原理与接口技术完成秒表的设计方案,该方案主要是选择8253A的计数器2和计数器1进行1s的定时,其输出于OUT1与8086的NMI相连,当定时到1s的时候产生一个中断信号,在中断服务程序进行秒的计数,并送入相应的存储单元;8255的A口接七段数码管的段选信号,B口接七段数码管的位选信号,秒的数值通过对8255的编程可以显示在七段数码管上面。
该方案是利用微机接口技术的典范案例,就可行性而言,也是行之有效的。
四、硬件系统设计8086简介Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。
数字秒表的 课程设计
中北大学课程设计任务书2011/2012 学年第 1 学期学 专院: 业:电子与计算机科学技术学院 电子科学与技术 李伟 学 号: 数字秒表的设计 2011 年 12 月 19 日~2012 年 1 月 5 日 电子科学与技术专业实验室 焦新泉 0906024227学 生 姓 名: 课程设计题目: 起 迄 日 期: 课程设计地点: 指 导 教 师: 系 主 任:下达任务书日期:2011 年 12 月 16 日课 程 设 计 任 务 书1.设计目的:① 掌握电子电路的一般设计方法和设计流程; ② 学习使用 PROTEL 软件绘制电路原理图及印刷板图; ③ 掌握应用 EWB 对所设计的电路进行仿真,通过仿真结果验证设计的正确性。
2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等) :设计一个数字秒表,要求如下: 1. 数字秒表的计时范围是 0s~59 分 59.99 秒,显示的最长时间为 59 分 59 秒。
2. 数字秒表的计时精度是 10ms。
3. 复位开关可以在任何情况下使用 4. 具有启/停开关。
3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图 纸、实物样品等〕 :① 课程设计说明书; ② 电路原理图和印刷板图; ③ 仿真图形和仿真结果。
课 程 设 计 任 务 书4.主要参考文献:① 童诗白.模拟电子技术基础.北京:高等教育出版社,2002 ② 张建华.数字电子技术.北京:机械工业出版社,2004 ③ 陈汝全.电子技术常用器件应用手册.北京:机械工业出版社,2005 ④ 毕满清.电子技术实验与课程设计.北京:机械工业出版社,2005 ⑤ 潘永雄.电子线路 CAD 实用教程.西安:西安电子科技大学出版社,2002 ⑥ 张亚华.电子电路计算机辅助分析和辅助设计.北京:航空工业出版社,20045.设计成果形式及要求:提交内容:课程设计说明书、电路原理图和印刷板图、仿真图形和仿真结果。
数字秒表设计
数字秒表一、设计思路:该秒表由6位七段LED显示器显示,从左到右依次是分的左右位(minl、minr),秒的左右位(secl、secr),毫秒的左右位(sec01l,sec01r),其中显示分辩率为0.01 s,计时范围是0—59分59秒99毫秒。
具有清零、启动计时、停止计时等控制功能。
控制开关为两个:启动(继续)/暂停记时开关和复位开关。
计时信号为时钟信号,精度为0.01s。
因此,输入端有三个分别为时钟输入端clk,启/停输入端en,清零输入端reset,输出端有六个分别为分的十位个位,秒的十位个位,毫秒的十位个位,输出给六个七段LED数码管。
该系统可以分为两个模块计时模块和显示模块。
计时模块执行计时功能,经计数器累加计数,形成六十进制的计数器和一百进制的计数器。
显示模块的作用是将计时值在LED数码管上显示出来。
计时电路产生的值经过BCD七段译码后,驱动LED数码管。
二、各模块原理图计时器模块顶层设计实体原理图三、各模块源程序--计时器模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity miaobiao isport(clk,en,reset:in std_logic; --时钟频率要求100Hz sec01l,sec01r:out integer range 0 to 9; --0.01秒的左右显示位 secl,secr:out integer range 0 to 9; --秒的左右显示位minl,minr:out integer range 0 to 9); -- 分的左右显示位end entity miaobiao;architecture art of miaobiao issignal sec01t:integer range 0 to 99;signal sect: integer range 0 to 59;signal mint: integer range 0 to 59;beginprocess(clk,en,reset) isbeginif(reset='1') thensec01t<=0;sect<=0;mint<=0;elsif(clk'event and clk='1') thenif(en='1') thenif(sect=59 and sec01t=99) thensec01t<=0;sect<=0;mint<=mint+1;elsif(sec01t=99) thensec01t<=0;sect<=sect+1;mint<=mint;elsesec01t<=sec01t+1;sect<=sect;mint<=mint;end if;end if;end if;end process;sec01l<=sec01t/10;sec01r<=sec01t rem 10;secl<=sect/10;secr<=sect rem 10;minl<=mint/10;minr<=mint rem 10;end architecture art;--秒表显示模块library ieee;use ieee.std_logic_1164.all;entity display isport(clk:in std_logic;data:in integer range 0 to 9;displayo:out std_logic_vector(6 downto 0)); end entity display;architecture art of display isbeginprocess(clk,data)beginif(clk'event and clk='1') thencase data iswhen 0=>displayo<="0111111";when 1=>displayo<="0110000";when 2=>displayo<="1101101";when 3=>displayo<="1111001";when 4=>displayo<="0110011";when 5=>displayo<="1011011";when 6=>displayo<="0011111";when 7=>displayo<="1110000";when 8=>displayo<="1111111";when 9=>displayo<="1110011";when others=>displayo<="0000000";end case;end if;end process;end architecture art;--顶层模块library ieee;use ieee.std_logic_1164.all;entity topmiaobiao isport(clk,en,reset:in std_logic;displaysec01l:out std_logic_vector(6 downto 0); displaysec01r:out std_logic_vector(6 downto 0); displaysecl:out std_logic_vector(6 downto 0); displaysecr:out std_logic_vector(6 downto 0); displayminl:out std_logic_vector(6 downto 0); displayminr:out std_logic_vector(6 downto 0)); end entity topmiaobiao;architecture art of topmiaobiao iscomponent miaobiao isport(clk,en,reset:in std_logic;sec01l,sec01r:out integer range 0 to 9;secl,secr:out integer range 0 to 9;minl,minr:out integer range 0 to 9);end component miaobiao;component display isport(clk:in std_logic;data:in integer range 0 to 9;displayo:out std_logic_vector(6 downto 0)); end component display;signal sec01l,sec01r:integer range 0 to 9;signal secl,secr:integer range 0 to 9;signal minl,minr:integer range 0 to 9;beginmiaobcontr:miaobiao port map(clk=>clk,en=>en,reset=>reset, sec01l=>sec01l,sec01r=>sec01r,secl=>secl,secr=>secr,minl=>minl,minr=>minr);a1:display port map(clk,sec01l,displaysec01l);a2:display port map(clk,sec01r,displaysec01r);a3:display port map(clk,secl,displaysecl);a4:display port map(clk,secr,displaysecr);a5:display port map(clk,minl,displayminl);a6:display port map(clk,minr,displayminr);end architecture art;四、时序仿真图计时模块时序仿真图五、心得体会开始做设计时总是会犯一些错误,经过不停的改错不停的编译才能得到正确的程序。
数字秒表设计
数字时钟(秒表)秒表是人们日常生活中常用的测时仪器,它能够简单的完成计时、清零等功能,从一年一度的校际运动会到NBA、世界杯、奥运会,都能看到秒表的身影。
请详细分析秒表的计时策略和实现方法,给出相应的设计方案和仿真结果。
一、系统设计要求设计一块数字秒表,能够精确反映计时时间,并完成复位、计时功能。
秒表计时的最大范围为1小时,精度为0.01秒。
秒表可得到计时时间的分、秒、0.1秒等度量,且各度量单位间可正确进位。
当复位清零有效时,秒表清零并做好计时准备。
任何情况下,只要按下复位开关,秒表都要无条件的进行复位操作,即使在计时过程中也要无条件的清零。
设置秒表启动/停止开关。
按下该开关,秒表即刻开始计时,并得到计时结果;放开开关时,计时停止。
二、系统设计方案根据上述设计要求,可以预先设计若干个不同进制的计数器单元模块,然后将其进行例化组合来得到数字秒表系统。
要满足数字秒表的精度,首先要获得精确的计时基准信号,这里的系统精度要求为0.01秒,因此必须设置周期为0.01秒的时钟脉冲。
1/100秒、秒、分等计时单位之间的进位转换可以通过不同进制的计数器实现,我们分别设计十进制计数器和六进制计数器,每位计数器均能输出相应计时单位计数结果,其中,十进制计数器可以实现以0.01秒、0.1秒、1秒和1分为单位的计数,六进制计数器可以实现以10秒、10分为单位的计数,把各级计数器级联,即可同时显示百分秒、秒和分钟。
停止和启动功能可以通过计时使能信号完成。
信号有效时正常计时,否则没有脉冲输入到计数器,从而停止计时。
因为一旦按下复位清零开关数字秒表就无条件清零,因此其优先级必须高于计时使能信号。
数字秒表的系统框图如下图所示。
Clk0是周期为0.01秒的时钟脉冲,clr0为复位清零信号,en为计时使能信号,dataout[23…0]为输出信号,以不同的时钟周期为单位的计数器对所应的输入信号如下表所示。
三、VHDL编程数字秒表的实现主要依赖于两个计数器模块的设计:十进制计数器和六进制计数器。
数字式秒表设计方案
2. 增加复位 “reset_n”按钮(用实验板up按钮表示) •便于在硬件调试时使用。 •框图中未将reset接入模块,请根据自己的需要接入该信号。
注意:一般来说,时序模块均需加reset信号。
四、几点必要说明
(1)
调用时:应 始终接“0”, 否则,复位 时会被认为 有按键按下。
(2)在设计时,reset一般高电平有效,但实验开发板的复位输入 reset_n低电平有效。因此,可引入reset中间变量:
assign reset=~ reset_n;
(3)书中有一处错误:表6.3中,引脚b的管脚约束为:P3。
(4)由于顶层中已有DCM实例调用,本设计生成DCM模块时应取名为:
stopwatch_dcm。另外,dcm为保留字,不能作模块名、变量名及实例名等。
sys_clk
reset
pulse400Hz
”1” ci 分频器I co
(÷125000)
pulse10Hz
ci 分频器II co (÷40)
分频模块
led0 TQ
附加测试电路
第3页
三、附加测试电路说明
1. 三个测试信号输出led0~ led2(用LED指示灯表示)
•led0-用于判断分频器模块(包括DCM模块)是否正常,led0 闪烁(速度为一秒闪烁5次):表示分频器基本正常。 •led1-用于判断按键处理模块是否正常。每按一下ButtonIn按 键, led1指示灯改变状态一次:表示按键处理模块正常。 •led2-用于判断秒表控制 是否正常。每按三下ButtonIn按键,
pulse10Hz pulse400Hz sys_clk
timer_en
数电课程设计数字电子秒表设计打印 终极版
电子线路课程设计报告设计题目:数字式秒表专业班级:电子信息科学与技术姓名:纪宁指导教师:白旭芳完成日期2012 年 6 月27 日数字式秒表一、 设计任务与要求1.主要单元电路参数计算和元器件选择; 2.画出总体电路图;3.借助仿真软件在计算机上进行仿真试验;4. 仿真成功后,在插线板上连接好设计的电路并进行调试和测试;5. 最终实现秒表的计时、停止、复位功能。
二、方案设计与论证1.1整体电路构思:利用已学的数模电知识进行单元电路的设计,再将各个单元电路进行级联成为整体电路图。
1.2方案1 用专用集成电路设计的秒表电路,应用时钟芯片驱动6位七段发光二极管显示时间。
1.3方案2 由基本数字逻辑单元进行设计,它由振荡器产生一定频率的方波脉冲,之后由分频器对方波脉冲进行分频,以达到设计电路所需的频率脉冲,脉冲作为时钟信号驱动计数器进行计数,最后由译码器译码并在数码管上显示1.4方案的选择:方案二与已学的数模电知识联系比较紧密,有较好的知识基础,能够将所学知识与实践联系起来,而且电路设计能够模块化,实现也比较简单,所需器件实验室也能够满足,因此最终选择方案二实现本次课程设计三、单元电路设计与参数计算(1)由NE555P组成的多谐振荡器(多谐振荡器)(A)、555时钟电路可以构成多谐振荡器,真值表如下:毫秒信号产生电路NE555定时器是一种电路结构简单、使用方便灵活、用途广泛的多功能电路。
利用闭合回路的反馈作用可以产生自激振荡。
TTL电路延迟时间短,难以控制频率。
电路接入RC回路有助于获得较低的振荡频率,由于门电路的作用时间极短,TTL电路自有几十纳秒,所以想获得稍低一些的振荡频率式很困难的,而且频率不易调节。
在电路中接入RC电路可以有助于获得较低的振荡频率,而且通过改变R,C的数值可以很容易实现对频率的调节。
振荡电路是数字秒表的核心部分,电容充放电的速度决定了电路的振荡频率R1.R2 .C决定了多谐振荡器的周期,即决定了形成的方波的频率利用闭合回路中的负反馈作用可以产生自激振荡,利用闭合回路中的延迟负反馈作用也能产生自激振荡,只要负反馈作用足够强。
数字秒表设计总结报告
数字秒表课程设计总结报告一、课题名称数字秒表设计二、内容摘要本实验要求设计一个计数范围在0.0—9.9秒的数字秒表。
电路设计基本包括0.1秒脉冲发生器,信号控制端,整形电路,计数电路,译码电路和显示器这几部分构成。
0.1秒脉冲发生器由555定时器构成的多谐振荡电路实现,由3端口接入计数器的时钟端。
信号控制端由RS触发器实现,能够对整个电路进行清零、计数、停止和复位的作用。
整形电路有单稳态触发器构成,对RS触发端输出的信号进行整形,但不改变其逻辑符号。
本实验的技术器由两个十进制BCD码74LS160级联而成。
在计数器的四个输出端分别接译码器的四个置数端,译码器由74LS48实现。
这个电路设有两个开关K1,K2,通过K1,K2的置0和置1来实现对电路的清零、计数、暂停、复位的控制。
这样,一个简易的数字秒表便设计完成了。
三、课题任务,指标,功能要求课题任务:用中小规模集成电路设计一个数字秒表。
指标:计数范围在0.0—9.9秒之间。
功能要求:有清零、计数、停止和复位的功能。
四、单元框图五、单元电路设计,参数计算,元器件选择1、0.1秒脉冲发生器:参数计算:T=0.7(Ra+2Rb)C555定时器构成多谐振荡器,其芯片功能表如下:TH TR非R非OUT DISX X L L 导通>2/3Vcc >1/3Vcc H L 导通<2/3Vcc >1/3Vcc H 原状态原状态<2/3Vcc <1/3Vcc H H 关断注明:6脚为THR,触发器输入端,低电平有效。
2脚为TRI,阀值输入端,高电平有效。
4脚为RST,总复位端,低电平有效。
7脚为DIS,放电端。
5脚为CON,控制端。
1脚接地,8脚接电源。
3脚为输出端。
TD为内部三极管。
其管脚图如下所示:2、信号控制端,RS触发器,实现对这个电路的清零、计数、停止、复位功能。
RS触发器,其功能表如下:Rd非Sd非Q n+1Q n+1非1 1 Q n Q n非0 1 0 11 0 1 00 0 1* 1*注:RS触发器可由导线与74LS00二输入与非门构成Rd非和Sd非都为1时,基本RS触发器实现信号保持功能,即Q n+1=Q n,Q n+1非=Q n非;当Rd非=0时,基本RS触发器直接置零;当Sd非=0时,基本RS触发器置1.3、计数器用74LS160实现:输入输出CP Rd非LD非EP ET A B C D QA QB QC QD ×L ×××××××L L L L ↗H L ×× A B C D A B C D ×H H L ×××××保持×H H ×L ××××保持↗H H H H ××××计数↗H L ××L L L L L L L L 注:当Rd非=0时,计数器清零;当Rd非=1,LD非=0时,计数器预置数;当前两者都为1,EP或ET为0时,计数器有保持功能;当四者全为1时,计数器进行计数功能。
数字秒表的课程设计最终稿
数字秒表1、课题设计任务及指标通过本次电子设计大赛的选题、方案论证、设计计算、安装调试、资料整理、撰写“设计报告”等环节,初步掌握电子工程设计方法和组织实施的基本技能,深化、扩展并综合运用课堂上所学的电子电路分析设计方法以及集成电路知识完成小系统的电路设计。
利用基本SR触发器、脉冲发生器及计数、译码、显示等单元电路设计数字秒表。
在实验装置上或者利用仿真软件完成数字秒表的线路连接和调试。
2、课题设计的基本要求(1)用单面的PCB板设计制作一个数字电子表。
(2)计时从00秒到99秒,用数码管显示。
(3)有识别、复位、清零、暂停等基本秒表功能。
(4)开关能灵活启动和停止秒表的工作。
(5)电源电路设计合理。
3、系统设计方案论证作为数字式秒表,所以必须有一个数字显示。
按设计要求,须用数码管来做显示器。
题目要求最大记数值为99秒,那则需要两个个数码管。
要求计数分辨率为0. 1秒,那么我们需要相应频率的信号发生器。
选择信号发生器时,有两种方案:一种是用晶体震荡器,另一种方案是采用集成电路555定时器与电阻和电容组成的多谐振荡器。
其核心部分使用三个74LS192计数器采用串联方式构成,这种连接方式简单,使用元器件数量少。
CP脉冲是由555定时器构成的多谐振荡器,产生10赫兹脉冲,如果精度要求高,也可采用石英振荡器。
在选择译码器的时候,有多种选择,74LS46,74LS47,74LS48等4-7线译码器。
当然,为了减小设计的误差,还需要设计在开关端设计消抖电路、整形电路。
为了满足上电复位,还应该设计上点复位电路。
系统框图如下:图1 设计总框架图4、单元电路设计、参数计算和元器件4.1消抖电路通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号会有一定的失真。
由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
因而在闭合及断开的瞬间均伴随有一连串的抖动,所以我们用74LS00芯片上的与非门构成了一个SR锁存器,使得其能输入稳定的电平。
数字秒表设计实验报告
数字秒表设计实验报告数字秒表设计实验报告1. 引言•简要介绍实验的目的和意义2. 设计原理•介绍数字秒表的基本原理和工作流程3. 实验步骤•列出实验的具体步骤和操作流程4. 实验结果分析•分析实验过程中的数据和观测结果•对实验结果进行解释和讨论5. 实验结论•给出实验的总结和结论6. 实验改进•提出对实验的改进建议和优化方案7. 参考资料•引用相关的文献和资料来源8. 附录•将实验过程中的数据、图表等附加在文末作为附录以上为一个大致的框架,具体内容根据实验的实际情况进行填写。
本实验报告使用Markdown格式,通过使用标题和列表等语法,使文章更加清晰易读。
注意,为了遵守规则,本文中不包含实际的字母、图片或网址。
希望这份指导对你有所帮助!数字秒表设计实验报告1. 引言•实验目的:本实验旨在设计一个数字秒表,用于测量时间,并掌握数字电路的设计原理和实践技能。
•实验意义:准确测量时间是科学研究和生产实践中的重要要求,数字秒表作为计时测量的常用工具,具有广泛的应用价值。
2. 设计原理•数字秒表的基本原理是利用稳定的时钟信号源产生时间基准,通过计数器、时钟分频电路和显示模块实现对时间的测量和显示。
3. 实验步骤1.首先确定秒表的最高位数,根据实际需求选择适当的位数。
2.设计计数器电路,使用计数器芯片进行计数,根据最高位数确定计数器的范围。
3.设置时钟分频电路,通过将时钟信号分频得到适合计数器工作的时钟频率。
4.连接计数器和时钟分频电路,确保二者能够正确配合。
5.设计显示模块,将计数器的输出转换为数字形式,用于显示具体的时间数值。
6.连接显示模块和计数器,进行正确的信号传递和信息显示。
7.进行测量和验证,检查秒表的测量准确性并进行调整。
4. 实验结果分析•对实验过程中的数据和观测结果进行分析•通过比较测量结果与标准时间的差异,评估秒表的准确性•分析秒表存在的潜在问题并提出解决方案5. 实验结论•总结实验设计和实验过程•归纳出实验结果和分析的要点•得出对设计的数字秒表的结论,包括准确性、可靠性和实用性等方面的评价6. 实验改进•针对实验中发现的问题,提出改进的建议和优化方案•探讨可能的改进措施,包括电路设计、算法优化、显示方式等方面的改进7. 参考资料•[1] 电子技术实验教程,XXX出版社•[2] 数字电路原理与设计,XXX出版社8. 附录•实验数据表格•电路图和连接图•实验中使用的元器件清单以上为数字秒表设计实验报告的大致框架,实验的具体内容和结果分析部分需要根据实际情况进行填写。
数字电子秒表的设计与实现毕业设计(论文)
摘要近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。
本文阐述了基于单片机的数字电子秒表设计。
本设计主要特点是计时精度达到0.001s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。
另外硬件部分设置了查看按键,可以对秒表上一次计时时间进行保存,供使用者查询。
自首届现代奥运会在希腊雅典举办以来,奥运计时技术一直在不断地向前发展。
一百多年过去了,首届现代奥运会上计时所用的跑表如今换成了一系列高科技计时装置,如高速数码摄像机、电子触摸垫、红外光束、无线应答器等等。
鉴于当今计时技术的快速发展,即便千分之一秒(为眨眼的40倍)的毫微差距,也决定着冠军的归属。
在现在的体育竞技比赛中,随着运动员的水平不断提高,差距也在不断缩小。
有些运动对时间精度的要求也越来越高,有时比赛冠亚军之间的差距只有几毫秒,因此就需要高精度的秒表来记录成绩。
有关计时钟表的发展历史,大致可以分为三个演变阶段。
一、从大型钟向小型钟演变。
二、从小型钟向袋表过渡。
三、从袋表向腕表发展。
从我国水运仪像台的发明到现在各国都在研制的原子钟这几百年的钟表演变过程中,我们可以看到,各个不同时期的科学家和钟表工匠用他们的聪明的智慧和不断的实践融合成了一座时间的隧道,同时也为我们勾勒了一条钟表文化和科技发展的轨迹。
本设计的数字电子秒表系统采用AT89C52单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。
将软、硬件有机地结合起来,使得系统能够实现五位LED显示,显示时间为0~99.999秒,计时精度为0.001秒,能正确地进行计时,同时能记录一次时间,并在下一次计时后对上一次计时时间进行查询。
其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河南机电高等专科学校《可编程逻辑器件原理与应用》课程设计报告数字秒表设计专业班级:医电131学号:**********名:***时间:2015年6月成绩:时间:成绩:数字秒表设计摘要:本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。
在掌握所学的计算机组成与结构课程理论知识时,通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决计算机技术实际问题的能力。
通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。
关键词:FPGA;数字秒表;VHDL目录1.概述 (3)2.设计要求 (3)2.1实验任务及要求 (3)3.总体构思 (3)3.1系统总体框图 (4)4.各单元电路的设计和实现 (4)4.1数字秒表的电路逻辑图 (4)4.2时序波形图如下: (4)4.3顶层程序框图如下: (4)5.功能仿真及其结果 (5)5.1分频模块 (5)5.2计数模块 (5)5.3势能控制模块 (5)5.4显示控制模块 (5)6.编译、下载及调试 (7)6.1各功能模块VHDL程序十分之一秒 (7)7.总结 (20)1.概述超高速硬件描述语言VHDL是数字系统进行抽象的行为与功能描述道具体的内部线路结构描述,利用EDA工具可以在电子设计的各个阶段各个层系进行计算机模拟验证,保证设计过程中的正确性,可大大降低设计成本,缩短设计周期。
本文介绍的数字秒表设计,。
利用基于VHDL的EDA设计工具,采用大规模可编程逻辑器件FPGA,通过设计芯片来实现系统功能。
应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了系统的开发时间,提高了工作效率。
本文介绍一种以FPGA为核心,以VHDL 为开发工具的数字秒表,并给出源程序和仿真结果。
2.设计要求2.1实验任务及要求设计用于体育比赛用的数字秒表,要求:1.及时精度大雨1/1000秒,计数器能显示1/1000秒时间,提供给计时器内部定时的始终频率为12MHz;计数器的最长计时时间为1小时,为此需要一个7位的显示器,显示的最长时间为59分59.999秒。
2、设计有复位和起/停开关。
(1)、复位开关用来使计时器清零,并做好计时准备。
(2)、起/停开关的使用方法与传统的机械式计数器相同,即按一下起/停开关,启动计时器开始计时,再按一下起/停开关计时终止。
(3)、复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时进程理科终止,并对计时器清零。
3、采用层次设计方法设计符合上述功能要求的数字秒表。
4、对电路进行功能仿真,通过波形确认电路设计是否正确。
5、完成电路传布设计后,通过实验箱下载验证设计的正确性。
3.总体构思3.1系统总体框图数字秒表主要有分频器、计数模块、功能控制模块、势能控制模块和显示输出模块组成。
系统框图如图3-1所示。
图表3-1本次的设计仿真选用以EP1C6Q240芯片为核心的FPGA开发板,该开发板提供了较完善的外围周边电路和信号接口,并提供了一块4位7段数码管的扩展板,为本次设计提供了硬件条件。
在设计中,功能控制模块根据控制选择不同的功能状态的时间输出,通过势能控制模块和显示输出模块驱动7段数码管显示相应的时间。
4.各单元电路的设计和实现4.1数字秒表的电路逻辑图图表4-14.2时序波形图如下:图表4-24.3顶层程序框图如下:图表4-35.功能仿真及其结果5.1分频模块开发板提供的系统时钟为50 MHz,通过分频模块3次分频,将系统的时钟信号分为100 Hz和1 000 Hz分别提供给计数模块和势能控制模块作为时钟控制信号。
该模块部分VHDL源程序如下:5.2计数模块计数模块中,时钟信号是100 Hz作为秒表的百分秒输入,百分秒为100进制计数器,其进位输出作为秒的计数时钟,秒为60进制计数器。
控制信号输入端的begin-stop和reset信号控制计数器的开始、停止和至零。
该模块部分VHDL 源程序如下,方针结果如图5-1所示:图表5-15.3势能控制模块本次设计选用的开发板数码管扩展板的数码显示采用的是4个数码管动态扫描输出,一般只要每个扫描频率超过人的眼睛视觉暂留频率24 Hz以上就可以达到点亮单个显示而不闪烁,扫描频率采用1 kHz信号。
通过势能控制,每个的显示频率为250 Hz,满足显示要求。
该模块部分VHDL源程序如下:5.4显示控制模块本次设计选用的开发板在4位数码管输入方面只提供1个数据接口,用来动态显示4位数据,在数据输入信号方面要做到和势能控制信号同频率输出,才能保证数码显示不会出错或显示移位。
该模块部分VHDL源程序如下:同时通过控制信号示系统处在不同的功能状态:系统时间运行状态,系统时间至零状态,时钟正常显示状态。
利用功能转换信号实现3个功能状态之间的转换,并产生相应的控制信号去控制显示输出模块不同状态的正确显示。
其部分源程序如下:各部分模块完成后,用QuartusⅡ对程序编译、仿真、得到的仿真波形如图5-2所示。
图表5-2本系统采用的FPGA芯片为Altera公司的EP1C6Q240,用VHDL和QuartusⅡ软件工具开发,设计输入完成后,进行整体的编译和逻辑仿真,然后进行转换、延时仿真生成配置文件,最后下载至FPGA器件,完成结果功能配置,实现其硬件功能。
6.编译、下载及调试6.1各功能模块VHDL程序十分之一秒library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity MINSECONDb isport(clk,clrm,stop:in std_logic;secm0:out std_logic_vector(3 downto 0); co:out std_logic);end MINSECONDb;architecture SEC of MINSECONDb isbeginprocess(clk,clrm)variable cnt0:std_logic_vector(3 downto 0); beginif clrm='1' thencnt0:="0000";elsif clk'event and clk='1'thenif stop='0'thenif cnt0="1001" thenco<='1';cnt0:="0000";elsif cnt0<"1001" thencnt0:=cnt0+1;co<='0';end if;else cnt0:=cnt0;end if;end if;secm0<=cnt0;end process;end SEC;秒library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity SECOND isport(clk,clr:in std_logic;sec1,sec0:out std_logic_vector(3 downto 0); co:out std_logic);end SECOND;architecture SEC of SECOND isbeginprocess(clk,clr)variable cnt1,cnt0:std_logic_vector(3 downto 0); beginif clr='1' thencnt1:="0000";cnt0:="0000";elsif clk'event and clk='1' thenif cnt1="0101" and cnt0="1000" thenco<='1';cnt0:="1001";elsif cnt0<"1001" thencnt0:=cnt0+1;co<='0';elsecnt0:="0000";if cnt1<"0101" thencnt1:=cnt1+1;elsecnt1:="0000";co<='0';end if;end if;end if;sec1<=cnt1;sec0<=cnt0;end process;end SEC;分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity MINUTE isport(clk,en,clr:in std_logic;min1,min0:out std_logic_vector(3 downto 0); co:out std_logic);end MINUTE;architecture MIN of MINUTE isbeginprocess(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0); beginif clr='1' thencnt1:="0000";cnt0:="0000";elsif clk'event and clk='1' thenif en='1' thenif cnt1="0101" and cnt0="1000" thenco<='1';cnt0:="1001";elsif cnt0<"1001" thencnt0:=cnt0+1;elsecnt0:="0000";if cnt1<"0101" thencnt1:=cnt1+1;co<='0';elsecnt1:="0000";end if;end if;end if;end if;min1<=cnt1;min0<=cnt0;end process;end MIN;闹钟library ieee;use ieee.std_logic_1164.all;entity nz isport(clk:in std_logic;time:in std_logic_vector(23 downto 0);h1,h0,m1,m0,s1,s0:in std_logic_vector(3 downto 0); qlk:out std_logic);end nz;architecture sss_arc of nz isbeginprocess(clk)beginif clk'event and clk='1' thenif (h1=time(23 downto 20) and h0=time(19 downto 16) and m1=time(15 downto 12) andm0=time(11 downto 8) and s1=time(7 downto 4)and s0=time(3 downto 0))thenqlk<='1';elseqlk<='0';end if;end if;end process;end sss_arc;顶层程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity time2 isport(clk,clr,stop,en,led:in std_logic;time:in std_logic_vector(23 downto 0);qlk:out std_logic;hou1,hou0,m1,m0,s1,s0,sm0:out std_logic_vector(3 downto 0));end time2;architecture bav of time2 iscomponent MINSECONDbport(clk,clrm,stop:in std_logic;secm0:out std_logic_vector(3 downto 0);co:out std_logic);end component;component SECONDport(clk,clr:in std_logic;sec1,sec0:out std_logic_vector(3 downto 0);co:out std_logic);end component;component MINUTEport(clk,en,clr:in std_logic;min1,min0:out std_logic_vector(3 downto 0);co:out std_logic);end component;component HOURport(clk,en,clr,led:in std_logic;h1,h0:out std_logic_vector(3 downto 0));end component;component nzport(clk:in std_logic;time:in std_logic_vector(23 downto 0);h1,h0,m1,m0,s1,s0:in std_logic_vector(3 downto 0);qlk:out std_logic);end component;signal c:std_logic;signal c1:std_logic;signal c2:std_logic;signal a1,a0,b1,b0,d1,d0,dm0:std_logic_vector(3 downto 0);beginhou1<=a1;hou0<=a0;m1<=b1;m0<=b0;s1<=d1;s0<=d0;sm0<=dm0;u1:MINSECONDbport map(clk=>clk,clrm=>clr,stop=>stop,secm0=>dm0,co=>c); u2:SECONDport map(clk=>c,clr=>clr,sec1=>d1,sec0=>d0,co=>c1);u3:MINUTEportmap(clk=>c1,clr=>clr,min1=>b1,min0=>b0,en=>en,co=>c2);u4:HOURport map(clk=>c2,clr=>clr,h1=>a1,h0=>a0,en=>en,led=>led);u5:nzportmap(clk=>clk,h1=>a1,h0=>a0,m1=>b1,m0=>b0,s1=>d1,s0=>d0,qlk=>qlk, time=>time);end bav;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity MINSECONDb isport(clk,clrm,stop:in std_logic;secm0:out std_logic_vector(3 downto 0);co:out std_logic);end MINSECONDb;architecture SEC of MINSECONDb isbeginprocess(clk,clrm)variable cnt0:std_logic_vector(3 downto 0);beginif clrm='1' thencnt0:="0000";elsif clk'event and clk='1'thenif stop='0'thenif cnt0="1001" thenco<='1';cnt0:="0000";elsif cnt0<"1001" thencnt0:=cnt0+1;co<='0';end if;else cnt0:=cnt0;end if;end if;secm0<=cnt0;end process;end SEC;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity SECOND isport(clk,clr:in std_logic;sec1,sec0:out std_logic_vector(3 downto 0); co:out std_logic);end SECOND;architecture SEC of SECOND isbeginprocess(clk,clr)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clr='1' thencnt1:="0000";cnt0:="0000";elsif clk'event and clk='1' thenif cnt1="0101" and cnt0="1000" then co<='1';cnt0:="1001";elsif cnt0<"1001" thencnt0:=cnt0+1;co<='0';elsecnt0:="0000";if cnt1<"0101" thencnt1:=cnt1+1;elsecnt1:="0000";co<='0';end if;end if;end if;sec1<=cnt1;sec0<=cnt0;end process;end SEC;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity MINUTE isport(clk,en,clr:in std_logic;min1,min0:out std_logic_vector(3 downto 0); co:out std_logic);end MINUTE;architecture MIN of MINUTE isbeginprocess(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0); beginif clr='1' thencnt1:="0000";cnt0:="0000";elsif clk'event and clk='1' thenif en='1' thenif cnt1="0101" and cnt0="1000" thenco<='1';cnt0:="1001";elsif cnt0<"1001" thencnt0:=cnt0+1;elsecnt0:="0000";if cnt1<"0101" thencnt1:=cnt1+1;co<='0';elsecnt1:="0000";end if;end if;end if;end if;min1<=cnt1;min0<=cnt0;end process;end MIN;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HOUR isport(clk,en,clr,led:in std_logic;h1,h0:out std_logic_vector(3 downto 0)); end HOUR;architecture hour_arc of HOUR isbeginprocess(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0); beginif clr='1' thencnt1:="0000";cnt0:="0000";elsif clk'event and clk='1' thenif en='1' thenif led='1' thenif cnt1="0010" and cnt0="0011" thencnt1:="0000";cnt0:="0000";elsif cnt0<"1001" thencnt0:=cnt0+1;elsif cnt0="1001" thencnt1:=cnt1+1;cnt0:="0000";end if;elseif cnt1="0001" and cnt0="0001" thencnt1:="0000";cnt0:="0000";elsif cnt0<"1001" thencnt0:=cnt0+1;elsif cnt0="1001" thencnt1:=cnt1+1;cnt0:="0000";end if;end if;end if;end if;h1<=cnt1;h0<=cnt0;end process;end hour_arc;library ieee;use ieee.std_logic_1164.all;entity nz isport(clk:in std_logic;time:in std_logic_vector(23 downto 0);h1,h0,m1,m0,s1,s0:in std_logic_vector(3 downto 0); qlk:out std_logic);end nz;architecture sss_arc of nz isbeginprocess(clk)beginif clk'event and clk='1' thenif (h1=time(23 downto 20) and h0=time(19 downto 16) and m1=time(15 downto 12) andm0=time(11 downto 8) and s1=time(7 downto 4)and s0=time(3 downto 0))thenqlk<='1';elseqlk<='0';end if;end if;end process;end sss_arc;7.总结本系统设计用了现在EDA设计手段,基于FPGA采用VHDL语言编程实现数字秒表的设计,运用层次化设计方法,完成个电路模块的链接。