数字秒表电路报告
电子秒表电路实验报告

电子技术课程设计报告设计题目:电子秒表院(部):物理与电子信息学院专业班级:电子信息工程学生姓名:学号:指导教师:摘要秒表应用于我们生活、工作、运动等需要精确计时的方面。
它由刚开始的机械式秒表发展到今天所常用的数字式秒表。
秒表的计时精度越来越高,功能越来越多,构造也日益复杂。
本次数字电路课程设计的数字式秒表的要求为:显示分辨率为1s/100,外接系统时钟频率为100KHz;计时最长时间为60min,五位显示器,显示时间最长为59m59.99s;系统设置启/停键和复位键。
复位键用来消零,做好计时准备、启/停键是控制秒表起停的功能键。
针对上述设计要求,先前往校图书馆借阅了大量的数字电路设计方面的书籍,以及一本电子元件方面的工具书,以待查阅各种设计中所需要的元件。
其次安装并学习了数字电路设计中所常用的Multisim 仿真软件,在课程设计过程的电路图设计与电路的仿真方面帮助我们发现了设计电路方面的不足与错误之处。
关键字:555定时器十进制计数器六进制计数器多谐振荡器目录1.选题与需求分析 (1)1.1设计任务 (1)1.2 设计任务 (1)1.3设计构思 (1)1.4设计软件 (2)2.电子秒表电路分析 (3)2.1总体分析 (3)2.2电路工作总体框图 (3)3.各部分电路设计 (4)3.1启动与停止电路 (4)3.2时钟脉冲发生和控制信号 (4)3.3 设计十进制加法计数器 (6)3.4 设计六进制加法计数器 (7)3.5 清零电路设计 (8)3.7 总体电路图: (10)4 结束语与心得体会 (12)1.选题与需求分析1.1设计任务电子秒表在生活中可广泛应用于对运动物体的速度、加速度的测量实验,还可用来验证牛顿第二定律、机械能守恒等物理实验,同时也适用于对时间测量精度要求较高的场合.测定短时间间隔的仪表。
有机械秒表和电子秒表两类。
机械秒表与机械手表相仿,但具有制动装置,可精确至百分之一秒;电子秒表用微型电池作能源,电子元件测量显示,可精确至千分之一秒,广泛应用于科学研究、体育运动及国防等方面在当今非常注重工作效率的社会环境中。
基于数字电路的电子秒表课程设计报告

基于数字电路电子秒表课程设计摘要电子秒表是一种用数字电路技术实现时、分、秒计时的装置,无机械装置,具有较长的使用寿命,因此得到了广泛的使用。
它从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
本次实验所做电子式秒表由信号发生系统和计时系统构成,并具有清零,暂停功能。
由于需要比较稳定的信号,所以信号发生系统555定时器与电阻和电容组成的多谐振荡器构成,信号频率为100HZ。
计时系统由计数器、译码器、显示器组成。
计数器由74 LS160构成,由十进制计数器组成了一百进制和六十进制计数器,采用异步进位方式。
译码器由74LS48构成,显示器由数码管构成。
清零,暂停功能由RS触发器构成防抖动开关。
具体过程为:由晶体震荡器产生100HZ脉冲信号先进入计数器,然后传入译码器,将4位信号转化为数码管可显示的7位信号,结果以“分”、“秒”、“10毫秒”依次在数码管显示出来。
该秒表最大计时值为59分59.99秒,“10毫秒”为一百进制计数器组成,“分”和“秒”为六十进制计数器组成。
关键词:计时精度计数器显示器AbstractElectronic stopwatch is the realization of a digital circuit technology,.It can realize the hour, minute, second timer.It does not have mechanical means and has a longer life, so it has been widely used. The principle is a typical digital circuit, which includes a combination logic circuit and a timing circuit. The experiments can be done by electronic stopwatch constituted by the signal system and timing system, and has cleared pause function. Due to the need of a more stable signal, the signal generating system is constituted by the 555 Timer with the resistors and capacitors, and the signal frequency is 100Hz. Timing system contains the counter, decoder, display. Counter 74 LS160 constituted by the decimal counter the decimal and sexagesimal counter, which uses asynchronous binary. The decoder from 74LS48 constitute display digital tube constitute Cleared, the pause function by the RS flip-flop. Its specific process: the 100Hz pulse signal generated by the crystal oscillator and first into the counter, and then the incoming decoder, a 4-bit signal is converted to 7-bit signal of the digital control can be displayed, the result by "minute", "second", "10 milliseconds" turn on the digital display. The stopwatch timing is 59 minutes, 59.99 seconds, 10 milliseconds is the 150 binary counter, "minute" and "second" is the six decimal counter.Keyword:Timing accuracy counter display目录一、设计任务与要求 (2)二、方案设计与论证 (2)三、单元电路设计与参数计算 (4)1.信号发生器单元电路 (4)2.时钟分频计数单元电路 (6)3.显示及译码单元电路 (11)4.控制电路 (13)四、总原理图及元器件清单 (14)五、结论与心得 (17)六、参考文献 (18)一、设计任务与要求用74系列数字器件设计一个电子秒表,要求:1.以0.01秒为最小单位进行显示。
秒表实验报告_2

实验八秒表一、实验目的: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;。
数电课程设计--数字秒表报告

数字电子课程设计报告题目名称:电子秒表电路姓名:学号:班级:电子班指导老师:2012年6月一、技术要求:要求设计一个数字表,用于短时间测量,适用于计时使用。
(1)计时范围:0~59秒 (2)显示分辨率为1s 。
(3)用按钮开关控制工作状态,即:暂停、清零。
(4)本身带有,工作时指示灯亮。
二、元件清单:三、详细设计:品名 规格型号 技术要求 每组数量 通用板 10×15(cm 2) 10×15(cm 2) 1共阴极数码管 BS201A/0.5英寸 单个 2 集成显示译码器 CD4511 CD4511 2 集成14位计数器 CD4060 CD4060 1 集成双BCD 计数器 CD4518 CD4518 1 集成双D 触发器 74HC74 74HC74 1 集成逻辑与非门 74HC00 74HC001 电阻器 RJ-22M Ω-1/4W 1/4W 1 电阻器 RJ-200k Ω-1/4W 1/4W 1 电阻器 RJ-300Ω-1/4W 1/4W 14 电容器 CC1-30pF (瓷片) 瓷片2 电容器 CC1-0.01μF (瓷片)瓷片1 石英晶体振荡器 32.768kHz 32.768kHz 1 小型按键单开关 8×8mm 8×8mm 1 集成电路插座 16PIN 16PIN 3 集成电路插座 14PIN 14PIN2 集成电路插座 8PIN 8PIN(两个8PIN 作为16PIN)2焊锡(小卷) 小卷导线单芯 单芯(1)秒脉冲的产生图2-1脉冲发生器是数字钟的核心部分,它的精度和稳定度决定了数字钟的质量,通常用晶体振荡器产生标准频率信号经过整形、分频获得1Hz的秒脉冲。
石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整。
如晶振为32768 Hz,通过15次二分频后可获得1Hz的脉冲输出,电路图如图2-1所示。
(2)秒计数器的设计图2-2 图2-2为秒计数译码电路,秒计数器为M=60的计数器,即显示00~59,采用中规模集成电路双十进制计数器至少需要2片,因为10 < M < 100。
数字电子秒表设计总结报告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的时钟端。
数字秒表实验报告

EDA课程设计题目:基于VHDL的数字秒表设计学生姓名学号学院电子信息学院专业 10通信工程指导教师二零一二年十二月基于VHDL的数字秒表设计摘要当前电子系统的设计正朝着速度快,容量大,体积小,质量轻,省电的方向发展。
推动该潮流迅速发展的决定性因素就是使用了现代化的EDA设计工具。
此次课程设计先确定了系统的逻辑功能,选择电路结构,然后确定并设计电路所需的数据处理以及控制模块,在Quartus II上以超高速硬件描述语言VHDL为系统逻辑描述方法完成了数字秒表所需的分频模块,十进制计数控制模块,六进制计数控制模块与顶层设计和引脚分配,对其进行编译仿真,并下载到实验板上实际验证,通过本设计锻炼了计算机应用能力、VHDL语言的编程能力和Quartus II 的使用能力,此次设计圆满完成了用VHDL语言设计1/1000秒数字秒表并仿真和实际下载到ALTERA公司的ACEX1K系列的EP1K30TC144-3中实现。
关键词:EDA、Quartus II、VHDL、模块、仿真、ACEX1KAbstractThe electronic system design is moving speed, large capacity, small volume, light weight, energy saving direction. The trend of rapid development of determinant is the use of modern EDA design tools. This course is designed to determine the logic function of the system, establish the algorithm process, selection of circuit structure and circuit design, and then determine the desired data processing and control module, in the Quartus II to very high speed hardware description language VHDL as the system logical description method for completing the digital stopwatch desired frequency module, decimal counting control module, base six counting control module with top design and pin assignment, the compiled simulation, and downloaded to the experiments on actual test and verify, through the design of exercise ability of computer application and VHDL programming language and Quartus II using capability, the design was completed by VHDL language design 1\/1000 seconds stopwatch and simulation and the actual download to ALTERA company's ACEX1K series EP1K30TC144-3 implementation.Key Words:EDA、Quartus II、VHDL、Module、Simulation、ACEX1K目录摘要----------------------------------------------------------------2 Abstract------------------------------------------------------------2一、设计要求--------------------------------------------------------4二、设计思想与方案论证----------------------------------------------42.1 设计思想----------------------------------------------------42.2 方案论证----------------------------------------------------4三、系统设计--------------------------------------------------------53.1 顶层电路设计------------------------------------------------53.2时钟分频电路模块---------------------------------------------63.3十进制计数控制模块-------------------------------------------73.4六进制计数控制模块-------------------------------------------7四、系统仿真--------------------------------------------------------84.1 模块仿真----------------------------------------------------84.1.1 时钟分频电路模块仿真 ----------------------------------84.1.2 十进制计数控制模块仿真---------------------------------94.1.3 六进制计数控制模块仿真---------------------------------94.2 总体仿真---------------------------------------------------10五、下载实现--------------------------------------------------------105.1 引脚分配---------------------------------------------------115.2 下载验证---------------------------------------------------11六、问题与不足-----------------------------------------------------13七、心得体会-------------------------------------------------------13参考文献-----------------------------------------------------------14附录---------------------------------------------------------------14附录1 :本设计各模块代码-------------------------------------------14一、设计要求设计用于体育比赛用的数字秒表,要求1、计时精度大于1/1000秒,计时器能显示1/1000秒的时间,提供给计时器内部定时的时钟频率为12MHz;计时器的最长计时时间为1小时,为此需要一个7位的显示器,显示的最长时间为59分59.999秒2、设计有复位和起/停开关(1) 复位开关用来使计时器清零,并做好计时准备。
秒表计时电路设计verilog

电子科技大学通信学院秒表计时电路实验报告班级通信一班学生学号教师秒表计时电路秒表计时电路一、设计思路概述1.设计要求秒表计时功能,显示分、秒、0.01秒具有启动、暂停、停止和清空功能增加有趣的流水灯输入信号:4bit按键,50MHz时钟输出信号:6位数码管2.设计分析本设计要求秒表计时功能,显示分、秒、0.01秒,而这可以由分频电路实现,将电路的输入时钟进行分频,得到1/60Hz,1Hz,和100Hz信号,就可以达到本设计要求的显示要求了。
本设计要求具有启动、暂停、停止和清空功能,而这个可以由状态机实现,通过合理的配置状态转换,就可以达到要求。
流水灯的实现说来简单,其实也可以做的复杂,漂亮的流水灯其观赏性还是很好地,这里我们只讨论简单流水灯的实现,即单个灯从左到右逐步发光。
这实际是一个移位寄存器,我们可以通过不同的时钟来驱动它,实现不同的流水速度。
这里,我们实现了一个1Hz,和一个10Hz的流水灯电路。
二、总体设计框图及详细说明三、各部分代码设计1、500000进制计数器(分频器)设计:always @(negedge clk or negedge rst10ms)beginif (~rst10ms) beginclk10ms<=0;clk10msreg<=0;endelse if (clk10msreg == 249999) beginclk10ms<=~clk10ms ;clk10msreg<=clk10msreg+1;endelse if (clk10msreg==499999) beginclk10ms<=~clk10ms;clk10msreg<=0;endelse begin clk10msreg<=clk10msreg+1;endend2、状态机设计always @(negedge clk or negedge clear) beginif (~clear) beginstate <= idlestate; rst <= 0; rst10ms <= 0;endelse begincase (state)idlestate: beginif(~start)beginstate<= prestate; rst<=0;rst10ms<=0;endelsestate<=idlestate; endprestate: beginstate<=runstate;rst<=1;rst10ms<=1;endholdstate: beginif(~stop)beginstate<=idlestate; rst<=1;rst10ms<=0;endelse if(~start)beginstate<= runstate; rst<=1;rst10ms<=1;endelsestate<=holdstate; endrunstate: beginif(~stop)beginstate<=idlestate; rst<=1;rst10ms<=0;endelse if(~hold)beginstate<= holdstate; rst<=1;rst10ms<=0;endelsestate<=runstate;enddefault: state <= state;endcaseendend3.10进制计数器(分频器)设计module count10(rst, clk, clkout, counter);input rst;input clk;output reg clkout;output reg [3:0]counter;always @(negedge clk or negedge rst) beginif (~rst) begin clkout<=0;counter<=0;endelse if (counter == 4) begin clkout<=~clkout;counter<=counter+1; endelse if (counter == 9) begin clkout<=0;counter<=0; endelse begin counter<=counter+1;endendendmodule4、6进制计数器(分频器)设计module count6(rst, clk, clkout, counter);input rst;input clk;output reg clkout;output reg [3:0]counter;always @(negedge clk or negedge rst) beginif (~rst) beginclkout <= 0;counter <= 0;endelse if (counter == 2) beginclkout <= ~clkout;counter <= counter + 4'b1;endelse if (counter == 5) beginclkout <= ~clkout;counter <= 0;endelse begincounter <= counter + 4'b1;endendendmodule5、流水灯设计always @(negedge clk1s or negedge rst)beginif (~rst)ledg <= 8'b0;else if (ledg == 8'b0)ledg<=8'b10000000;elseledg<=(ledg>>1);endalways @(negedge clk100ms or negedge rst) beginif (~rst)ledr <= 18'b0;else if (ledr == 18'b0)ledr<=18'b100000000000000000;elseledr<=(ledr>>1);end6、显示译码电路设计always @(negedge clk or negedge rst) begin if (~rst) begindisplayreg <= 3'b000;segcode[0] <= 7'b1111111;segcode[1] <= 7'b1111111;segcode[2] <= 7'b1000000;segcode[3] <= 7'b1000000;segcode[4] <= 7'b1000000;segcode[5] <= 7'b1000000;segcode[6] <= 7'b1000000;segcode[7] <= 7'b1000000;endelse begincase (timeout[displayreg])0: segcode[displayreg] <= 7'b1000000;1: segcode[displayreg] <= 7'b1111001;2: segcode[displayreg] <= 7'b0100100;3: segcode[displayreg] <= 7'b0110000;4: segcode[displayreg] <= 7'b0011001;5: segcode[displayreg] <= 7'b0010010;6: segcode[displayreg] <= 7'b0000010;7: segcode[displayreg] <= 7'b1011000;8: segcode[displayreg] <= 7'b0000000;9: segcode[displayreg] <= 7'b0010000;default: segcode[displayreg] <= 7'b1111111;endcasedisplayreg <= displayreg + 3'b1;endend四、总体电路设计module today(key, ledr, ledg, hex, clk);input [3:0] key;input clk;output reg [17:0] ledr;output reg [7:0] ledg;output [55:0] hex;wire clear;wire start;wire stop;wire hold;assign clear = key[0];assign start = key[1];assign stop = key[2];assign hold = key[3];reg [19:0] clk10msreg;reg clk10ms;wire clk100ms;wire clk1s;wire clk10s;wire clk1min;wire clk10min;wire clk1h;reg [1:0] state;parameter idlestate = 2'b00, prestate = 2'b01, holdstate = 2'b10, runstate = 2'b11;reg rst;reg rst10ms;reg [2:0] displayreg;wire [3:0] timeout [7:0];reg [6:0] segcode[7:0];assign hex = {segcode[7], segcode[6], segcode[5], segcode[4], segcode[3], segcode[2], segcode[1], segcode[0]};always @(negedge clk or negedge clear) beginif (~clear) beginstate <= idlestate; rst <= 0; rst10ms <= 0;endelse begincase (state)idlestate: beginif(~start)beginstate<= prestate;rst<=0;rst10ms<=0;endelsestate<=idlestate;endprestate: beginstate<=runstate;rst<=1;rst10ms<=1;endholdstate: beginif(~stop)beginstate<=idlestate;rst<=1;rst10ms<=0;endelse if(~start)beginstate<= runstate;rst<=1;rst10ms<=1;endelsestate<=holdstate;endrunstate: beginif(~stop)beginstate<=idlestate;rst<=1;rst10ms<=0;endelse if(~hold)beginstate<= holdstate;rst<=1;rst10ms<=0;endelsestate<=runstate;enddefault: state <= state;endcaseendendalways @(negedge clk or negedge rst10ms)beginif (~rst10ms) beginclk10ms<=0;clk10msreg<=0;endelse if (clk10msreg == 249999) beginclk10ms<=~clk10ms ;clk10msreg<=clk10msreg+1;endelse if (clk10msreg==499999) beginclk10ms<=~clk10ms; clk10msreg<=0;endelse begin clk10msreg<=clk10msreg+1;endendcount6 min10counter(rst, clk10min, clk1h, timeout[7]); count10 min1counter (rst, clk1min,clk10min, timeout[6]); count6 sec10counter(rst, clk10s,clk1min, timeout[5]); count10 sec1counter (rst, clk1s, clk10s, timeout[4]); count10 ms100counter(rst, clk100ms, clk1s, timeout[3]); count10 ms10counter (rst, clk10ms, clk100ms, timeout[2]); assign timeout[1] = 4'b1111;assign timeout[0] = 4'b1111;always @(negedge clk or negedge rst) beginif (~rst) begindisplayreg <= 3'b000;segcode[0] <= 7'b1111111;segcode[1] <= 7'b1111111;segcode[2] <= 7'b1000000;segcode[3] <= 7'b1000000;segcode[4] <= 7'b1000000;segcode[5] <= 7'b1000000;segcode[6] <= 7'b1000000;segcode[7] <= 7'b1000000;endelse begincase (timeout[displayreg])0: segcode[displayreg] <= 7'b1000000;1: segcode[displayreg] <= 7'b1111001;2: segcode[displayreg] <= 7'b0100100;3: segcode[displayreg] <= 7'b0110000;4: segcode[displayreg] <= 7'b0011001;5: segcode[displayreg] <= 7'b0010010;6: segcode[displayreg] <= 7'b0000010;7: segcode[displayreg] <= 7'b1011000;8: segcode[displayreg] <= 7'b0000000;9: segcode[displayreg] <= 7'b0010000;default: segcode[displayreg] <= 7'b1111111;endcasedisplayreg <= displayreg + 3'b1;endendalways @(negedge clk1s or negedge rst)beginif (~rst)ledg <= 8'b0;else if (ledg == 8'b0)ledg<=8'b10000000;elseledg<=(ledg>>1);endalways @(negedge clk100ms or negedge rst) beginif (~rst)ledr <= 18'b0;else if (ledr == 18'b0)ledr<=18'b100000000000000000;elseledr<=(ledr>>1);endendmodulemodule count6(rst, clk, clkout, counter);input rst;input clk;output reg clkout;output reg [3:0]counter;always @(negedge clk or negedge rst) begin if (~rst) beginclkout <= 0;counter <= 0;endelse if (counter == 2) beginclkout <= ~clkout;counter <= counter + 4'b1;endelse if (counter == 5) beginclkout <= ~clkout;counter <= 0;endelse begincounter <= counter + 4'b1;endendendmodulemodule count10(rst, clk, clkout, counter);input rst;input clk;output reg clkout;output reg [3:0]counter;always @(negedge clk or negedge rst) beginif (~rst) begin clkout<=0;counter<=0;endelse if (counter == 4) begin clkout<=~clkout;counter<=counter+1; endelse if (counter == 9) begin clkout<=0;counter<=0; endelse begin counter<=counter+1;endendendmodule五、总结及心得体会通过这次试验,我们基本掌握了状态机的实现方法,进一步熟悉和掌握了Verilog HDL的基本使用方法。
数字电路课程设计报告数字秒表

数字电路课程设计报告——数字秒表一、设计任务与技术指标:设计数字秒表,以实现暂停、清零、存储等功能。
设计精度为0.01秒。
二、设计使用器件:74LS00 多片74163 4片4511 4片NE555 1片二极管1枚LED 共阴极七段译码器 4 个导线、电阻若干三、数字秒表的构成:利用555 设计一个多谐振荡器,其产生的毫秒脉冲触发74LS163计数,计时部分的计数器由0.01s 位、0.1s 位、s 个位、和s 十位共四个计数器组成,最后通过CD4511 译码在数码管上显示输出。
由“启动和停止电路”控制启动和停止秒表。
由“接地”控制四个计数器的清零。
图1 电子秒表的组成框图四、实现功能及功能特点:(1)、在接通电源后秒表显示00:00,当接通计时开关时秒表开始计时。
(2)、清零可在计时条件下也可在暂停条件下进行。
(3)、解决了在使用163清零端和保持端时由于163默认的清零端优先级高于保持端造成的0.01秒位上无法保持到0.09的技术问题。
(4)、增加了数据溢出功能,由于是4位秒表,最多计到一分钟,当秒表到达一分钟时,秒表自动暂停显示在60:00秒处,此时二极管发亮,起警示灯作用。
清零后则可继续计时。
(5)、由于条件有限,我们自己用导线制作了电源、清零、暂停等开关以减少导线的拔插造成的面板的不美观。
下图为完整课程设计的实物图:五、课程设计原理:本课程设计由模6000计数器和其控制电路组成,模6000计数器功能由同步加法计数器74163和与非门74LS00组成。
74163的功能及用法:74163同步加法计数器具有以下功能:(1)、同步清零功能。
当清零端输入低电平,还必须有时钟脉冲CP的上升沿作用才能使各触发器清零,此过程为同步清零。
(2)、同步并行置数功能。
(3)、同步二进制加计数功能。
(4)、保持功能。
综上所述,74163是具有同步清零、同步置数功能的4位二进制同步计数器。
74163的应用:(1)、构成任意模的计数器将74163与少量门电路结合可构成任意模计数器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称: 数字电子技术课程设计
题目: 电子秒表电路
学生姓名:
专业:
班级:
学号:
指导教师:
日期: 年月日
电子秒表电路
一、设计任务与要求
要求设计一个数字秒表,用于短时间测量,适用于田径比赛等竞技场合计时使用。
(1)计时范围:0~10分钟
(2)显示分辨率为1s/10。
(3)用一只按钮开关控制三种工作状态,即:清零计时停止
二、方案设计与论证
实验要求设计一个用于短时间测量的电子秒表,根据学过的相关知识可以知道与题目的要求,电路应该分为分为3个部分,分别就是计数脉冲产生电路、计数电路、与状态控制电路。
电路的框图描述如下图:
由上面的电路模块图,我们讨论得到下面两个方案
方案一、
用一个555定时器做出多谐振荡电路为计数电路提供计数脉冲,通过调节外围电阻R1、R2与电容C的值使振荡电路产生10Hz的计数脉冲(即周期为0、1秒的信号)。
用74LS160计数器做成3级计数电路,分别就是十进制的0、1秒计数电路、60进制的秒计数电路与十进制的分计数电路。
用74LS160做成3进制计数电路并配合74139二线四线译码器做成状态控制电路,使计数电路在清零、计数、停止3个状态之间转换。
方案二、
用石英晶体构成石英晶振脉冲发生器。
计数电路就是74LS160串接构成的600进制计数器最多可以计数到600秒(10分钟)这样控制起来比较方便、控制电路同方案一。
最终方案:
方案一。
由于对方案二的石英晶振电路原来不就是很熟悉,并且方案二的计数显示不符合人的一般思维方式,因此选用方案一作为最终方案。
三、单元电路设计与参数计算
根据上面的讨论,方案包含3大单元:计数电路、状态控制电路、计数脉冲产生电路。
下面分别对个单元进行设计与参数的计算。
(1) 计数脉冲产生电路
由于555定时器在数字电子与模拟电子中都要重要的应用,并且使用起来比较简单,只需接少量的电阻电容等外围元件,就可以构成施密特触发电路、单稳态电路与多谐振荡电路,所以本方案最终选用了555定时器来做计数脉冲产生电路。
555定时器的功能表:
通过对上面功能表的分析,可以用以下的典型多谐振荡电路。
电容C充电时间
t1=(R1+R2)Cln(Vcc-Vt-)/(Vcc-Vt+)=(R1+R2)Cln2 <1>
放电时间t2
t2=R2Cln(0-Vt+)/(0-Vt-)=R2Cln2 <2>
电路的振荡周期
T=t1+t2=(R1+2R2)Cln2 <3>
由于设计要求秒表的分辨率为0、1秒,所以这里要设置振荡周期T=0、1S
由<3>式并假定C=3uF,则:
R1+2R2=T/Cln2=0、1/(3×10-6×ln2)≈48090Ω
最终取R1=8090Ω,R2=20KΩ,C=3uF
(2)74LS160与139二线四线译码器构成的状态控制电路
74LS160功能表
74HC139的真值表
由上面的功能表为依据可以设计下面的控制电路:
由于电子秒表有清零、计数、停止三个状态。
本方案利用74LS160构成一个三进制计算电路,由于74160采用异步置零方式,所以用计数器的第四个状态,即0011通过一个与非门译出一个地电位作为控制器的清零信号,使控制器循环于0000、0001与0010之间,对应于秒表的3个控制状态。
而控制计数电路的计数脉冲就是通过一个常开开关接VCC构成,每按一下开关,计数器便接收到一个下降沿,从而跳到另一个状态。
(3)74160构成的计数电路
由于74LS160就是十进制计数器,采用异步置零方式。
按设计要求,0、1秒计数与分钟计数部分都就是十进制,所以0、1秒计数部分与分钟计数部分只需用控制电路的清零信号来清零即可,每当0、1秒计时电路与分钟计数电路到达10,或者接收到控制电路的清零信号就清零。
而秒计数部分需要本身的60进制清零信号与控制电路的清零信号来置零,所以U3与U4用或非门来接收这两个清零信号,只要秒计数到达60或者控制电路发送了清零信号,秒计时电路都会清零。
秒计数电路的60进制清零信号就是当十位为6时发出的。
同时对于所有的74LS160计数器的ET端(图中为ENT端),由控制电路的74139译码器输出来控制,ET为0时保持,ET为1时计数,计数电路在计数状态与保持状态之间变换。
计数电路
下面就是各部分的大图
0、1秒计数电路分计数电路
秒计数电路
四、总电路工作原理及元器件清单
1.电子秒表总体电路
2、电路完整工作过程描述(总体工作原理)
整个电路通电后,由于控制电路的计数器初始状态就是从0000然后就是0001再到0010,经过二线四线译码器,译码后译码器的输出端Y 3Y 2Y 1Y 0对应的状态分别就是HHHL 、HHLH 、HLHH(H 代表高电位,L 代表地电位)。
因为所有的计数器ET 端都接到了74HC139的Y 1端,Y 3接到0、1秒计数电路与分钟计数电路的清零端,同时Y 3也通过反相器接到秒钟计数电路清零端的或非门。
电路通电后控制电路的计数器还没开始工作,输出状态为0000,译码器Y 0
低电位,Y 3、Y 2、Y 1都就是高电位,所有计数电路的所有计数器ET 端都为1,同时计数电路的所有计数器清零端都就是高电位,秒表电路进入计时状态。
0、1秒计数电路逢10向秒钟计数电路进1,而秒钟计数电路逢60向分钟计数电路进1。
当按一下开关J1时,控制电路接收到一个下降沿脉冲,控制电路输出状态
变为0001,译码器的输出端Y
3Y
2
Y
1
Y
电位为HHLH,计数电路所有计数器的ET端
都为0,同时所有计数器清零端为1,计数电路处于保持状态。
再按一下J1开关,控制电路接收到一个下降沿脉冲,控制电路输出状态变
为0010,译码器的输出端Y
3Y
2
Y
1
Y
电位为HLHH,计数电路所有计数器清零端都为
0,完成清零动作。
再按开关,则控制电路在0000、0001与0010之间循环,计数电路则在清零、计数与保持之间循环。
2.元件清单
五、仿真调试与分析
整个实验设计与仿真都就是用Multism11、0 来做的。
对一个比较大的电路经行设计与调试电路都就是要分模块经行。
首先,把计数电路调试好,0、1秒计数电路、秒计数电路与分钟计数电路分别就是10进制、60进制与10进制计数电路。
开始调试的时候发现秒计数电路到了49就清零了,后来发现开始设计的时候就是用了十位的5来译出清零信号,所以当十位进到5,即到49时就会清零,最后改为了用十位的6来译出清零信号。
比较难的一部分就是秒计数部分。
因为秒
计数部分由两个74LS160构成,置零要考虑本身的60进制置零与控制电路的清零信号通过多次的仿真与认真的考虑,最终确定了在秒计数电路的清零端接一个二输入或非门,输入端分别连到控制电路送来的清零信号与本身通过与门译出60进制清零端。
还要注意74160就是异步置零方式,60进制清零时应该用十位的6,即6对应的二进制0110通过与门译出高电位作为置零信号,而不就是用59来译码。
控制电路部分的调试。
首先要做一个3进制的计数器分别控制电子秒表的3个状态。
开始的时候本来想直接用逻辑门对这3个状态译出相应的控制信号控制计数电路,后来想到用译码器更简单,所以就改用译码器了。
因为控制电路计数器只有3个状态,就只需将它的低二位送到译码器的A、B输入段就可以。
再用译码
器的输出端Y
2、Y
1、
Y
分别控制计数电路即可。
脉冲产生电路调试。
开始的时候按照《数字电子技术基本教程》的例题计算出产生10HZ脉冲的电路,但就是用multisim11、0把电路画出来之后发现不能驱动计数电路,也就就是计数电路不能计数。
后来在网上查阅先关资料,才知道就是multisim11、0的限制,不能用555定时器产生低频方波脉冲。
所以实验仿真时用的参数的1Kz的参数,报告中给出了10Hz脉冲产生的计算公式与R1、R2与C 的参数出理论值。
六、结论与心得
对于复杂的电路设计,要先将电路划分模块,然后思考各个模块要实现的功能,再根据所学的知识设计各模块,设计好各个模块之后就要把各模块连接起来,这时候就要注意模块之间的联系了,使各个模块能很好的配合工作。
要做好数电的设计必须要能熟练运用组合逻辑电路与时序逻辑电路的知识,尤其就是计数器的应用很重要!计数与电路的状态转换都可以通过计数器来实现。
还有就就是电路设计一定要用软件来仿真,观察结果就是否与预期结果符合,以便对电路进行改正后优化。