秒表计时报告
- 格式:docx
- 大小:174.04 KB
- 文档页数:15
秒表计时器毕业设计报告秒表计时器毕业设计报告一、引言在快节奏的现代社会中,时间对于人们来说显得尤为重要。
无论是工作、学习还是生活,我们都需要一个准确、方便的计时工具来帮助我们管理时间。
因此,我选择了设计并开发一个秒表计时器作为我的毕业设计项目。
本报告将详细介绍我的设计思路、实现过程以及遇到的挑战和解决方案。
二、设计目标1. 实现基本的计时功能:包括开始、停止、暂停和重置功能。
2. 提供多种计时模式:可以选择倒计时模式或计时器模式。
3. 显示准确的计时结果:保证计时的准确性和精确度。
4. 用户友好的界面设计:界面简洁清晰,易于操作。
5. 适用于不同平台和设备:可以在电脑、手机等多种设备上使用。
三、设计思路1. 界面设计:我采用了简洁明了的界面设计,将计时器显示在屏幕中央,并在周围添加开始、停止、暂停和重置按钮,方便用户操作。
2. 计时功能实现:使用编程语言编写代码,通过调用系统时间函数来实现计时功能。
开始计时时记录当前时间,停止计时时再次获取当前时间,两个时间的差值即为计时结果。
3. 计时模式选择:根据用户的需求,提供倒计时模式和计时器模式的选择,用户可以根据实际情况进行设置。
4. 计时结果显示:将计时结果以小时、分钟、秒的形式显示在屏幕上,保证计时的准确性和精确度。
5. 跨平台适配:根据不同设备的屏幕尺寸和分辨率进行适配,确保在不同平台上都能正常显示和使用。
四、实现过程1. 界面设计:使用HTML和CSS进行界面设计,采用响应式布局,确保在不同设备上都能良好显示。
2. 编程语言选择:我选择使用JavaScript作为主要编程语言,因为它具有广泛的应用性和良好的跨平台性。
3. 计时功能实现:通过JavaScript编写代码,使用Date对象获取系统时间,并进行计算和显示。
4. 计时模式选择:使用JavaScript编写代码,通过监听用户的选择,切换不同的计时模式。
5. 计时结果显示:使用JavaScript编写代码,将计时结果以合适的格式显示在屏幕上。
数字秒表一、实验目的1、理解计时器的原理与Verilog/VHDL的编程方法;2、掌握多模块设计及层次设计的方法。
二、实验原理秒计时器是由计数器和译码器、显示器组成,其核心是计数器与译码器。
60秒计时器可由二个计数器分别完成:个位为十进制计数器,十位为6进制计数。
个位计数器的计数信号由实验开发板上主频20MHZ分频产生的1Hz 时钟信号提供■十位计数器的计数信号由个位的进位信号提供。
然后由译码器对计数结果进行译码,送LED数码管进行显示。
Clr为清零,se t为开始。
三、源程序十进制计数器:module CNT10(clr,elk,ena t q,cout); input clr,elk,ena;output[3:0: q;output cout;reg[3:0' q;reg cout;always ©(posedge elk or posedge clr) beginif(clr)begin q=4r bOOOO:cout=0:endelse if(ena)if(q==4f bl001)begin q=4F bOOOO;cout=l;endelsebegin q=q+l;cout=0;endendendmodule六进制计数器:module CNT6(clr,elk,ena,q,cout);input clr,elk,ena; output[3:0. q; output cout;reg[3:0; q;reg cout;always ©(posedge elk or posedge clr) begin if(clr)begin q=4r bOOOO;cout=0;end else if(ena) if(q=4'b0101)begin q=4F bOOOO;cout=l:end elsebegin q=q+l:cout=0;endendendmodule分频器:module FPQ(clkO,clkl):input clkO;output clkl;reg 126:0] QI;reg clkl;always®(posedge clkO) if(Ql<9999999)Ql<二Ql+1;elsebegin Ql<=0; clkl<="clkl;endendmodule四、 实验任务1、 采用层次设计的方法,设计一个包括顶层及底层模块的60秒计时器,底 层模块用VeHlog/VHDL 设计(或者选用原理图输入法中宏功能元件),顶层用 原理图设计◊2、 秒计时盧应当具有系统复位功能;五、 实验步骤1、 新建工程,注意工程名与顶层文件一致,顶层文件是最终形成的图形文件。
实验八秒表一、实验目的:1、了解数字秒表的工作原理。
2、进一步熟悉用VHDL语言编写驱动七段数码管的代码。
3、掌握VHDL编写中的一些小技巧。
二、实验要求:实现数字秒表功能,要求有分,秒,1%秒显示,该秒表能够随时控制启/停,清零重新计时功能。
三、实验原理秒表的工作原理与多功能数字电子钟大致相同,唯一不同的是,由于秒表的分辨率为0.01秒。
所以整个秒表的工作时钟是在100HZ的时钟信号下完成的。
假设该秒表的应用场合小于1小时,秒表的显示格式为mm~~ss~~xx(mm表示分钟:0~59;ss表示秒:0~~59;xx表示百分之一秒:0~~99)。
四、实验步骤1、用VHDL语言编写出秒表电路程序,通过QuartusII 进行编辑、编译、综合、适配、仿真测试。
给出其所有信号的时序仿真波形。
2、按实验要求锁定管脚,重新综合。
3、在EDA6000软件中建立实验模式。
4、下载设计文件,硬件验证秒表工作性能。
五、实验结果1、调试的过程记录在仿真图正确后开始用EDA6000进行检验,所有的管脚都连接好后,通入100Hz的脉冲,秒表开始工作2、实验结果经过调试得到了正常工作的秒表,每一个环节的跳转过程都是正常的最终的波形图:3、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity stopwatch isport(clk,rst,en:in std_logic;minh,minl,sech,secl,msh,msl:out std_logic_vector(3 downto 0)); end entity;architecture behav of stopwatch issignal minhi,minli,sechi,secli,mshi,msli:std_logic_vector(3 downto 0); signal clk1,clk2:std_logic;beginprocess(clk,en,rst)beginif rst='1' then mshi<="0000";msli<="0000";elsif clk'event and clk='1' thenif en='1' thenif (mshi="1001" and msli="1001") thenmshi<="0000";msli<="0000";clk1<='1';elsif msli="1001" thenmsli<="0000"; mshi<=mshi+1;else msli<=msli+1;clk1<='0';end if;end if;end if;end process;process(clk1,en,rst)beginif rst='1' then sechi<="0000";secli<="0000";elsif clk1'event and clk1='1' thenif en='1' thenif (sechi="0101" and secli="1001") thensechi<="0000";secli<="0000";clk2<='1';elsif secli="1001" thensecli<="0000"; sechi<=sechi+1;else secli<=secli+1;clk2<='0';end if;end if;end if;end process;process(clk2,en,rst)beginif rst='1' then minhi<="0000";minli<="0000";elsif clk2'event and clk2='1' thenif en='1' thenif (minhi="0101" and minli="1001") thenminhi<="0000";minli<="0000";elsif minli="1001" thenminli<="0000"; minhi<=minhi+1;else minli<=minli+1;end if;end if;end if;end process;msh<=mshi;msl<=msli;sech<=sechi;secl<=secli;minh<=minhi;minl<=minli; end behav;。
可编程逻辑器件应用项目报告书项目名称:计时秒表指导老师:姓名:学号:(以后写报告要包含以下一些内容:)一、设计要求--------------------------------------------------------------------------------二、设计目的--------------------------------------------------------------------------------三、设计方案--------------------------------------------------------------------------------四、设计程序---------------------------------------------------------------------------------五、管脚分配---------------------------------------------------------------------------------六、硬件下载实现现象描述------------------------------------------七、体会、对设计工作的总结与展-------------------------------------------一、设计要求:计时秒表是我们经常见的,在体育运动上也应用非常广的一种工具。
譬如我们在进行50米、100米短跑运动中,需要一个计时非常经准的秒表来测速。
在这里,我们需设计一个计时秒表,具有以下功能:①有启/停开关,用于开始/结束计时操作;②用六个七段数码管显示计时数;③秒表计时长度为59.59.59,超过计时长度,有溢出则报警;④设置复位开关,在任何情况下,只要按下复位开关,秒表都要无条件地进行复位清0操作。
三、设计方案:(1)时钟源使用频率为1Hz的连续脉冲。
《用秒表测量时间》实验报告单一、实验目的1、学会正确使用秒表测量时间。
2、探究不同活动中时间的长短变化。
二、实验原理利用秒表测量时间的实验原理是基于秒表的精确计时功能,通过对不同活动时间的测量,来研究各种物理现象和活动的时间特性。
三、实验器材秒表、活动道具(如小球、跳绳等)。
四、实验步骤1、检查秒表:(1)观察秒表的外观,确保无损坏。
(2)按下启动 / 停止按钮,检查秒表是否能正常启动和停止。
(3)按下复位按钮,将秒表归零。
2、测量单摆摆动一次的时间:(1)制作一个简单的单摆,将摆线长度调整到合适的长度。
(2)启动秒表,当单摆摆动一次后,立即停止秒表,记录时间。
(3)重复测量三次,取平均值。
3、测量小球从高处落下的时间:(1)将小球放在一定高度处。
(2)启动秒表,同时释放小球,当小球落地时,停止秒表,记录时间。
(3)重复测量三次,取平均值。
4、测量跳绳 100 次所需的时间:(1)准备好跳绳。
(2)启动秒表,开始跳绳,当跳绳次数达到 100 次时,停止秒表,记录时间。
(3)重复测量三次,取平均值。
五、实验数据记录六、实验现象分析1、单摆摆动一次的时间相对较短且较为稳定,其时间长短主要取决于摆长和重力加速度。
2、小球从高处落下的时间较短,受到高度和重力加速度的影响。
3、跳绳 100 次所需的时间较长,且会因个人跳绳速度的不同而有所差异。
七、实验结论1、秒表可以准确地测量各种活动的时间。
2、不同活动的时间长短不同,受到多种因素的影响。
八、误差分析1、人为操作误差:启动和停止秒表的时机可能存在误差。
2、测量次数较少:可能导致平均值不够准确。
3、环境因素:如空气阻力等可能对小球落下的时间产生微小影响。
九、注意事项1、操作秒表时要准确、迅速,避免误操作。
2、在测量小球落下时间时,要确保小球释放的同时启动秒表。
3、跳绳时要保持稳定的节奏,以便准确测量时间。
4、实验结束后,将秒表妥善保管,避免损坏。
电子秒表实验报告电子秒表实验报告引言:电子秒表是一种常见的计时工具,广泛应用于实验室、体育比赛和日常生活中。
本实验旨在通过对电子秒表的使用和测量,深入了解其工作原理和准确性。
实验目的:1. 理解电子秒表的工作原理;2. 掌握正确使用电子秒表的方法;3. 比较电子秒表与传统秒表的准确性。
实验材料和方法:1. 实验材料:电子秒表、传统秒表、计时器、待测物体;2. 实验方法:a. 将电子秒表和传统秒表校准至同一起点;b. 使用电子秒表和传统秒表分别计时待测物体的时间;c. 重复多次实验,记录数据并计算平均值;d. 比较电子秒表和传统秒表的准确性。
实验结果与讨论:通过多次实验,我们得到了以下数据:实验次数 | 电子秒表计时(s) | 传统秒表计时(s)---------------------------------------1 | 10.23 | 10.202 | 10.21 | 10.183 | 10.25 | 10.224 | 10.24 | 10.195 | 10.22 | 10.21通过计算平均值,我们可以得到电子秒表的平均计时为10.23秒,传统秒表的平均计时为10.20秒。
可以看出,两者的计时结果非常接近,差距在0.03秒以内。
这个结果表明,电子秒表在准确性方面与传统秒表相当。
其准确性主要依赖于内部的计时装置,通常采用晶体振荡器,其频率非常稳定。
而传统秒表则依赖于人工操作,容易受到人为因素的影响,如反应时间和手动操作的误差。
此外,电子秒表还具有其他优点。
首先,它可以提供更精确的计时结果,小数点后几位的精度可以满足实验的要求。
其次,电子秒表通常具有计时、计数、暂停和复位等功能,更加灵活方便。
最后,电子秒表还可以记录多次计时结果,并进行平均值计算,提高数据的可靠性。
然而,电子秒表也存在一些局限性。
首先,它依赖于电池供电,一旦电池耗尽,计时功能将无法使用。
其次,对于某些特殊实验,如高温、高压环境下的计时,电子秒表可能无法正常工作。
单片机秒表实验报告
实验目的:
使用单片机设计并实现一个秒表,能够精确计时。
实验原理:
单片机秒表的设计采用外部中断的方式进行计时。
当按下计时开始按钮时,单片机开始计时,并将计时结果显示在数码管上。
当按下计时停止按钮时,单片机停止计时,并将计时结果保存下来。
实验材料:
1. 单片机开发板
2. 4位数码管
3. 开始按钮
4. 停止按钮
5. 连接线
实验步骤:
1. 将4位数码管连接到单片机的相应引脚上。
2. 将开始按钮连接到单片机的外部中断引脚上。
3. 将停止按钮连接到单片机的外部中断引脚上。
4. 编写程序,设置外部中断的中断服务函数。
5. 在中断服务函数中实现计时功能,将计时结果显示在数码管上。
6. 在主函数中初始化单片机,开始计时。
7. 测试实验是否正常工作。
实验结果:
经过测试,单片机秒表实验正常工作。
当按下开始按钮时,数码管开始计时,实时显示计时结果。
当按下停止按钮时,数码管停止计时,并将计时结果保存下来。
实验总结:
通过本实验,我掌握了使用单片机设计秒表的方法和步骤,加深了对单片机的理解和应用。
同时,我还学会了使用外部中断进行计时,并将计时结果显示在数码管上。
这对于我今后的学习和实践有着重要的指导意义。
数字秒表设计实验报告(一)数字秒表设计实验报告Introduction•实验目的:设计并实现一个数字秒表•实验时间:2021年10月10日至2021年10月15日•实验对象:本科计算机专业学生•实验设备:计算机、编程软件Experiment Procedure1.寻找合适的编程语言和开发工具2.设计秒表的用户界面3.编写代码实现秒表的计时功能4.测试并调试代码5.完善用户界面,添加重置和暂停功能6.进行性能测试,并分析结果Experimental Findings•选用Python编程语言和PyQt图形库进行开发•按照用户界面设计,实现了秒表的计时功能•通过测试,发现秒表计时准确性较高,误差范围小于0.1秒•添加了重置和暂停功能,提高了秒表的实用性•性能测试表明,在处理大数据量时,秒表的响应速度仍然较快Conclusion通过本次实验,我们成功设计并实现了一个功能完善的数字秒表。
通过合理的编程语言选择和用户界面设计,实验结果表明,我们的秒表具有准确的计时功能、良好的用户体验和较高的性能。
这对于计算机专业学生来说,具有较高的实用价值。
Future Work尽管我们已经取得了较好的实验结果,但仍有一些改进的空间。
在未来的工作中,我们计划:•进一步提高秒表的计时准确性,减小误差范围•探索更多的用户界面设计方案,增加更多便利的功能•优化性能,提高秒表在处理大数据量时的响应速度•结合云服务,实现秒表数据的备份和同步功能Acknowledgements感谢实验组的所有成员共同努力,以及指导老师的支持和指导,使得本次实验取得了圆满成功。
Reference无抱歉,关于数字秒表设计实验报告的文章已经终止。
秒表分析报告1. 引言秒表是一种常用的工具,用来测量时间的流逝。
在体育比赛、科学实验以及日常生活中,我们经常使用秒表来计时。
秒表的准确性对于确保比赛公平性和实验结果的可靠性非常重要。
因此,本文将对秒表进行分析,探讨其准确性和误差来源,以及如何提高准确性。
2. 秒表的工作原理秒表由一个计时手指和一套数字或模拟显示器组成。
当启动秒表时,计时手指开始运动,并且显示器开始计时。
当需要停止计时时,手指停止运动,计时器停止并显示所经过的时间。
秒表通常具有额外的功能,如分割计时和计次功能。
3. 秒表的准确性秒表的准确性是指其所显示的时间与真实时间之间的偏差。
秒表的准确性受到多个因素的影响,包括秒表本身的设计和制造质量,以及使用者的操作技巧。
3.1 秒表的设计和制造质量秒表的设计和制造质量对其准确性起着决定性的作用。
高质量的秒表通常采用精密的计时机制和高精度的计时芯片,以确保时间的准确性。
而低质量的秒表可能存在一些缺陷,如计时机制不稳定或计时芯片精度低,导致时间的误差增大。
3.2 使用者的操作技巧秒表的准确性还受到使用者的操作技巧的影响。
使用者需要准确地启动和停止秒表,并确保手指在计时过程中的稳定性。
不正确的操作可能导致时间的误差增加。
因此,使用者需要进行适当的培训和练习,以提高操作技巧。
4. 秒表误差的来源秒表的误差可以分为系统误差和随机误差两种来源。
4.1 系统误差系统误差是由于秒表本身的设计和制造质量问题而导致的误差。
这种误差是固定的,会在每次计时时产生相同的偏差。
系统误差可以通过校正来消除或减小,例如通过校准秒表或使用更准确的秒表。
4.2 随机误差随机误差是由于使用者的操作技巧或外部环境因素导致的误差。
这种误差是不可预测的,会在不同的计时中产生不同的偏差。
随机误差可以通过多次计时并取平均值来减小,以减少其对结果的影响。
5. 提高秒表准确性的方法为了提高秒表的准确性,可以采取以下几种方法:•选择高质量的秒表:选择具有精密计时机制和高精度计时芯片的秒表,以确保时间的准确性。
数字式秒表 摘 要如今,信息正是一个高度发展的产业,而数字技术是信息的基础,数字技术是目前发展最快的技术领域之一,数字技术在数字集成电路集成度越来越高的情况下,开发数字系统的使用方法和用来实现这些方法的工具已经发生了变化,但大规模集成电路中的基本模块结构仍然需要基本单元电源电路的有关概念,因此用基本逻辑电路来组成大规模或中规模地方法仍然需要我们掌握。
二进制数及二进制代码是数字系统中信息的主要表示形式,与,或,非三种基本逻辑运算是逻辑代数的基础,相应的逻辑门成为数字电路中最基本的元件。
数字电路的输入,输出信号为离散数字信号,电路中电子元器件工作在开关状态。
除此之外,由与,或,非门构成的组合逻辑功能器件编码器,译码器,数字分配器,数字选择器,加法器,比较器以及触发器是常用的器件。
与模拟技术相比,数字技术具有很多优点,这也是数字技术取代模拟技术被广泛使用的原因。
本设计所实现的数字式秒表是电子设计技术中最基本的设计实验之一。
该数字计数系统的逻辑结构较简单,是由脉冲信号发生器,分频器,计数器,译码器,数码管组成。
本设计报告由内容摘要、设计任务要求、元件清单、电路图、设计成果的评价及课程设计心得体会组成,力求将整个系统的设计过程、原理、以及心得体会完整的呈现出来。
关键词:计数器 译码器 数码管 JK 触发器 D 触发器 谐振电路装 订 线目 录一 设计任务要求…………………………………………………… 二 元件清单……………………………………………………………×2.1 计数器74LS192……………………………………………………… 2.2 译码器74LS47……………………………………………………… 2.3 D 触发器74LS74……………………………………………………… 2.4 JK 触发器74LS112……………………………………………………2.5 与非门74LS00………………………………………………………… 2.6 电阻、电容、二极管………………………………………………… 三 电路图………………………………………………………………… 四 设计成果评价…………………………………………………………… 五 课程设计心得体会………………………………………………………附录………………………………………………………………………装 订 线一 设计任务要求1.1 设计任务用TTL 或CMOS 集成电路设计数字式秒表逻辑控制电路并实验验证。
一、摘要在科技高度发展的今天,集成电路和计算机应用得到了高速发展。
尤其是计算机应用的发展。
它在人们日常生活已逐渐崭露头角。
大多数电子产品多是由计算机电路组成。
而且将来的不久他们的身影将会更频繁的出现在我们身边。
各种家用电器多会实现微电脑技术。
电脑各部分在工作时多是一时间为基准的。
本文就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字秒表。
秒表在很多领域充当一个重要的角色。
在各种比赛中对秒表的精确度要求很高,尤其是一些科学实验。
关键词:EDA 、秒表设计、VHDL语言二、内容秒表主要由:分频器、扫描显示译码器、十进制计数器、六进制计数器电路组成。
在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。
该数字秒表能对 0秒~59分59.99秒范围进行计时,显示最长时间是59分59秒。
本秒表计时器用于体育竞赛及各种要求有较精确时的各领域。
它还包括1/100s计时器所有的控制,其体积小,携带方便设计了复位开关和启停开关。
复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。
当计时达到59分钟59秒后,蜂鸣器响10声三、设计方法及设计过程1、设计规划本系统设计采用自顶向下的设计方案,系统的整体组装设计原理图如图所示,它主要由控制模块、时基分频模块,计时模块和显示模块四部分组成。
各模块分别完成计时过程的控制功能、计时功能与显示功能。
2、数字秒表系统原理框图七段数码管四、各模块源程序及仿真波形1、分频模块(1)源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport(clkin:in std_logic;clkout:out std_logic);end fenpin;architecture an of fenpin issignal data:integer range 0 to 10;--比例的最大值signal Q:std_logic;beginprocess(clkin)beginif rising_edge(clkin) thenif (data=9) then Q<= not Q;data<=0;--扩大倍数减一就是if后面的data的值,可根据需要赋值。
else data<=data+1;end if;end if;clkout<=Q;end process;end architecture;(2)仿真波形此仿真是按照比例为10进行仿真的2、计时模块(1)十进制计数器a、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity shi isport(clk,rst,en:in std_logic;dout:out std_logic_vector(0 to 3); cout:out std_logic);end entity shi;architecture an of shi isbeginprocess(clk,rst,en)variable q:std_logic_vector(0 to 3);beginif rst='0' then q:=(others=>'0');elsif clk'event and clk='1' thenif en='1' thenif q<9 then q:=q+1;else q:=(others=>'0');end if;end if;end if;if q="0000" then cout<='1';else cout<='0';end if;dout<=q;end process;end an;b、仿真波形说明:rst为复位端,当rst为0时,复位端有效,清零en为使能端,当en为0时,计数器暂停,当en为1时,计数器继续计数,总之,只有当使能端和复位端同时为1时,才能正常计数。
如图所示(2)、六进制计数器a、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity liu isport(clk6,rst6,en6:in std_logic;dout6:out std_logic_vector(0 to 3); cout6:out std_logic);end entity liu;architecture an of liu isbeginprocess(clk6,rst6,en6)variable q:std_logic_vector(0 to 3);beginif rst6='0' then q:=(others=>'0');elsif clk6'event and clk6='1' thenif en6='1' thenif q<5 then q:=q+1;else q:=(others=>'0');end if;end if;end if;if q="0000" then cout6<='1';else cout6<='0';end if;dout6<=q;end process;end an;b、仿真波形说明:rst为复位端,当rst为0时,复位端有效,清零en为使能端,当en为0时,计数器暂停,当en为1时,计数器继续计数,总之,只有当使能端和复位端同时为1时,才能正常计数。
如图所示3、显示模块(1)共阴极数码管a、源程序library ieee;use ieee.std_logic_1164.all;entity xian isport(num:in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0));end xian;architecture an of xian isbeginprocess(num)begincase num iswhen"0000"=>led<="0111111";-----------3FH when"0001"=>led<="0000110";-----------06H when"0010"=>led<="1011011";-----------5BH when"0011"=>led<="1001111";-----------4FH when"0100"=>led<="1100110";-----------66H when"0101"=>led<="1101101";-----------6DH when"0110"=>led<="1111101";-----------7DH when"0111"=>led<="0100111";-----------27H when"1000"=>led<="1111111";-----------7FH when"1001"=>led<="1101111";-----------6FH when others=>led<="0000000";-----------00H end case;end process;end an;b、仿真波形4、检测模块(1)检测模块是否达到60分钟a、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity li isport(clk4:in std_logic;e:out std_logic);end li;architecture an of li issignal k: std_logic:='0';beginprocess(clk4)variable a:integer;beginif clk4'event and clk4 = '1' then k <='1';end if;e<=k;end process;end architecture an ;b、仿真波形说明:一旦时间达到60分钟,即最高位有进位(如图clk4),是e一直为1。
5、蜂鸣器模块a、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity feng isport (clk4,enn:in std_logic;ou:out std_logic_vector(4 downto 0);rst:inout std_logic );end feng;architecture j of feng issignal q:std_logic_vector(4 downto 0); beginprocess(clk4,enn)beginif rst = '1' thenif clk4'event and clk4 = '1' then if enn = '0' thenq <= "00000";elseq <= q + 1;end if;end if;end if;ou <= q;end process;process(q)begincase q iswhen "10101" => rst <='0';when others => rst <='1';end case;end process;end j;b、仿真波形说明:这个程序一旦开始执行,只要q达到20就立马停止,用0到20的最低位表示蜂鸣器,所以由0到20的过程也就是蜂鸣器响了10次,如图所示五、总程序及仿真波形1、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishu isport(CLK1,RST1,EN1:in std_logic;c0,c1,c2,c3,c4,c5:buffer std_logic_vector(0 to 3);c6:buffer std_logic_vector(0 to 4);clk3,beep,en2:buffer std_logic;u,v,w,x,y,z:out std_logic_vector(0 to 6));end jishu;architecture an of jishu iscomponent fenpin --分频函数调用port(clkin:in std_logic;clkout:out std_logic);end component;component shi --十进制计数器函数调用port(clk,rst,en:in std_logic;dout:out std_logic_vector(0 to 3);cout:out std_logic);end component;component liu --六进制计数器函数调用port(clk6,rst6,en6:in std_logic;dout6:out std_logic_vector(0 to 3);cout6:out std_logic);end component;component xian --数码管显示函数调用port(num:in std_logic_vector(3 downto 0); led:out std_logic_vector(6 downto 0));end component;component li --说明达到60分钟port(clk4:in std_logic;e:out std_logic);end component;component feng --蜂鸣器调用port (clk4,enn:in std_logic;ou:out std_logic_vector(4 downto 0);rst:inout std_logic);end component;signal net1,net2,net3,net4,net5,net6:std_logic;signal s:std_logic_vector(0 to 1);signal ji:std_logic_vector(3 downto 0);begin --例化语句u1: fenpin port map (clkin=>CLK1,clkout=>clk3);u2: shi port map (clk=>clk3,rst=>RST1,en=>EN1,dout=>c0,cout=>net1);u3: shi port map (clk=>net1,rst=>RST1,en=>EN1,dout=>c1,cout=>net2);u4: shi port map (clk=>net2,rst=>RST1,en=>EN1,dout=>c2,cout=>net3);u5:liuportmap(clk6=>net3,rst6=>RST1,en6=>EN1,dout6=>c3,cout6=>net4); u6: shi port map (clk=>net4,rst=>RST1,en=>EN1,dout=>c4,cout=>net5);u7:liuport map (clk6=>net5,rst6=>RST1,en6=>EN1,dout6=>c5,cout6=>net6); u8: xian port map (num=>c0,led=>u);u9: xian port map (c1,v);u10: xian port map (c2,w);u11: xian port map (c2,x);u12: xian port map (c2,y);u13: xian port map (c2,z);u14: li port map (clk4=>net2,e=>en2);u15: feng port map (clk4=>net2,enn=>en2,ou=>c6);beep<= c6(4);end architecture an;2、仿真波形说明:由于把频率为10MHz的脉冲分频为100Hz的脉冲,需要的扩大倍数非常大,所以我把clk1扩大10倍,变为clk3,如下图所示。