文档详情

基于VHDL语言的的电子钟设计.doc

发布:2018-07-04约6.52千字共14页下载文档
文本预览下载声明
通信电路EDA课程项目基于VHDL语言的的电子钟设计负责人:xxxxxxxxxxx成 员:xxxxxxxxxxxxx、xxxxxxxxxxxx完成日期:xxxxxxxx目 录1、设计要求与目的2、设计原理3、设计流程4、编程构想及项目程序代码5、项目仿真与分析6、项目说明Part 1设计要求:设计一个电子钟,在输入时钟脉冲的作用下,采用24小时制计时,可以显示时、分、秒,用户也可以自行设置时间设计目的:掌握多位计数器相连的设计方法。掌握十六进制,二十四进制,六十进制计数器的设计方法。掌握程序的层次化设计方法。培养团队合作,分析问题,解决问题的能力。Part 2设计原理:电子时钟是一个将“时”“分”“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时;显示满刻度为23时59分59秒,另外具备校时功能。因此,一个基本的数字钟电路主要由“时”“分”“秒”计数器校时电路组成。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累加60秒发送一个“分脉冲”信号,该信号将被送到“分计数器” 。“分计数器”也采用60进制计数器,每累加60分发送一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计数器,可实现对一天24小时的累计。译码显示电路“时”“分”“秒”计数器的输出状态六段显示译码器译码。通过六位LED七段显示器显示出来。校时电路器是用来对“时”“分”“秒”显示数字进行校时调整的,可以根据当前需要的时间来设置电子时钟的时间,使它从这个时间开始计时。也可以对电子钟复位,重新开始计时。 2、各模块及其功能 电子钟计数采用层次化设计,将设计任务分成若干个模块。规定每一模 块的功能和各模块之间的接口。 1)SECOND模块:用来对秒进行计时,当记到计数器的低四位为1001时,若高三位不是101时,则秒计数器加7,目的是使计数值变为BCD码。若高三位是101时,则有一进位。当计数器的低四位不为1001时,计数器加1。SECOND模块给MINUTE的时钟由SETMINUTE和它本身记到60的进位两部分组成。 2)MINUTE模块:用来对分进行计时,当记到计数器的低四位为1001时,若高三位不是101时,则分计数器加7,目的是使计数值变为BCD码。若高三位是101时,则有一进位。当计数器的低四位不为1001时,计数器加1。MINUTE模块的时钟由SETMIN和SECOND记到60的进位两部分组成。 3)HOUR模块:用来对时进行计数,当记到计数器的低四位为1001时,若高三位小于010时,则时计数器加7,目的是使计数值变为BCD码。当计数器的高三位小于010,低四位小于1001时,计数器加1;若当计数器记到0100100时,则有一进位。HOUR模块的时钟由SETHOUR和MINUTE记到60的进位两部分组成。 4 )顶层CLOCK_TOP模块:用来对元件进行例化,以及对端口进行映射。同时整个计数器有清零,调时,调分功能 Part 3设计流程:设计基本框图:时计数器标准秒信号脉冲秒计数器分计数器时计数器标准秒信号脉冲秒计数器分计数器分脉冲信号号时脉冲信号秒输出分输出时输出六段显示译码器译码LED七段显示器显示“时”“分”“秒”输入: CLK—时钟脉冲(可以任意设置)、RESET—复位信号、SETMIN—分加1信号、SETHOUR—时加1信号。输出: SECOND_DAOUT—秒输出、MINUTE_DAOUT—分输出、HOUR_DAOUT—时输出Part 4:编程构想及项目程序代码:根据对电子钟工作方式与特点的分析,我们采用分模块的方式编写程序代码,由主程序和三个分别为:时,分,秒的子程序构成。下面是我们给出的各个子程序及主程序的代码:second模块library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity second is ????port(clk,reset,setmin:in std_logic; ??????????enmin:out std_logic; ??????????daout:out std_logic_vector(6 downto 0) ???????? ); end entity second; architecture edawork of second is ??????signal count:std_logic_vector(6 downto 0); ??????signal enmin_1,enmin_2:std_logic; begin ??????daout=count; ??????enm
显示全部
相似文档