数字秒表设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北华航天工业学院
《EDA技术综合设计》
课程设计报告
设计题目:数字秒表设计
系别:电子工程系
专业:通行工程
班级:
姓名:
学号:
指导老师:
完成时间:2012年11月30日
摘要:应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了数字系统的开发时间。我们尝试利用VHDL为开发工具设计数字秒表。
秒表的逻辑结构较简单,它主要由十进制计数器、六进制计数器、分频器、报警器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号、一个清零信号和一个报警信号,以便秒表能随意停止及启动。
秒表有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。开关设置秒表报警器,每1分钟,蜂鸣器鸣响1声。当计时达60分钟后,蜂鸣器鸣响10声。
关键词:VHDL、分频器、计数器、译码显示器
目录
数字秒表设计
一、题目任务与要求
1、任务:用FPGA设计一个数字秒表。
2、技术要点与要求:
(1)秒表有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便与同显示译码器的连接。
(2)开关设置秒表报警器,每1分钟,蜂鸣器鸣响1声。当计时达60分钟后,蜂鸣器鸣响10声。
二、设计思想
其设计思路为:通过分频器将晶振所提供的信号分频成0.01S脉冲作为计时信号,经计数器累加计数,形成六十进制的计数器和一百进制的计数器。经译码器译码后,分别输出给六个7段LED数码管显示。
设计采用六位LED数码管显示分、秒,0.1s,0.01s计时方式。使用按键开关可实现开始/结束计时操作及复位清零操作。
1.设计要求(秒表的功能描述)
(1)要求设置复位开关。当按下复位开关时,秒表清零并做好计时准备。在任何情况下只要按下复位开关,秒表都要无条件地进行复位操作,即使是在计时过程中也要无条件地进行清零操作。
(2)要求设置启/停开关。当按下启/停开关后,将启动秒表并开始计时,当再按一下启/停开关时,将终止秒表的计时操作。
(3)要求计时精确度大于0.01秒。要求设计的计时器能够显示分(2位)、秒(2位)、0.1秒(1位),0.01秒的时间。
(4)要求秒表的最长计时时间为秒表计时长度为59.分59.99秒,超过计时长度,有溢出则报警,计时长度可手动设置。
2.秒表的面板包括:
(1)显示屏:由6个7段数码管组成,用于显示当前时间。
(2)QT(启/停键):用于开始/结束计时操作。
(3)CLR(复位键):用于秒表计时系统的复位操作。
(4)蜂鸣器:溢出报警,则发出蜂鸣声。
三、系统设计
整个系统设计是采用自顶向下分析,自底向上设计。将数字秒表系统的整体分解为各个模块电路。下面详细介绍了数字秒表系统的各个模块的设计,并对各个模块的每一个部分进行了分析,在后半部分还对系统模型进行了程序调试。各模块之间的每一个坏节都是深思熟虑而成,各自完成相应的功能并组成一个统一的整体。
1.系统的总体设计
(1)顶层电路设计
数字秒表的顶层电路图及时序分析采用硬件描述语言设计一个复杂电路系统,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法。在顶层设计中,要对内部各功能块的连接关系和对外的接口关系进行描述,而功能块实际的逻辑功能和具体的实现形式则由下一层模块来描述。
图3.1 顶层电路图
根据数字秒表的系统原理框图,设计系统的顶层电路图如图4.1所示。根据图所示的数字秒表系统顶层电路图, 按照自顶向下的设计思路, 编写各个模块的源程序, 最后再对各个模块进行组合, 编写顶层描述的源程序。
图3.2 数字秒表系统原理框图
2. 数字秒表的设计原理
本设计可分为五个主要模块:
(1)键输入模块电路(含消抖电路)。
(2)时钟分频电路模块。
(3)调整控制电路(主控电路模块)。
(4)计时电路模块。
(5)显示控制电路模块(包括溢出报警控制)。
各个输入/输出端口的作用如下:
(1)CLK为外部时钟信号,CLR为复位信号。
(2)Q为启/停开关,用于开始/结束计时操作。
(3)alarm用于控制蜂鸣器发声。当SOUND=“1”时,扬声器发出蜂鸣声,表示计时
超出计时长度(溢出报警)。
3.键输入模块电路(含消抖电路)
秒表面板上有2个按键:CLR 键,Q 键。因为设计采用的是机械式的按键,由于存在机械触动的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会马上断开。因而在闭合及断开按键的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为5-10ms 。如图3.3所示
如图3.3 按键的抖动
按键的闭合稳定时间的长短由操作人员的按键动作决定,一般为零点几秒至数秒。按键抖动会引起被误读多次。为确保FPGA 对键的闭合仅作一次处理,必须去除按键抖动。
通常在按键较少时可用硬件方法消除抖动,一般采用RS 触发器作为常用的消抖电路,如果按键较多时,常用软件消除抖动。在EDA 的设计应用中,软件消抖的方法即可使用RS 触发器进行消抖,也可通过检测按键按下的时间进行消抖。
VHDL 源程序设计:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY FDOU IS
PORT(CLK,DIN:IN STD_LOGIC;
DOUT:OUT STD_LOGIC);
END ENTITY FDOU;
ARCHITECTURE ARC OF FDOU IS
SIGNAL CP:STD_LOGIC;
SIGNAL JSQ:INTEGER RANGE 0 TO 3;
BEGIN
PROCESS(CLK)
键按下
前沿抖动
闭合抖动 后沿抖动