EDA实验数字计时器设计

合集下载

EDA多功能数字钟设

EDA多功能数字钟设

实验报告实验四多功能数字钟设计一、实验目的1、学习复杂数字电路系统的设计。

2、设计一个多功能数字钟。

二、实验要求1.数字显示当前的小时、分钟;2.可以预置为12小时计时显示和24小时计时显示;3.一个调节键,用于调节目标数位的数字。

对调节的内容敏感,如调节分钟或秒时,保持按下时自动计数,否则以脉冲计数;4.一个功能键,用于切换不同状态:计时、调时、调分、调秒、调小时制式。

三、实验仪器PC机、Quartus II软件、EDA实验箱四、实验原理1.系统需要两个六十进制计数器用于分钟和秒的计时,为方便译码采用60进制计数器(1)秒计时实验程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD_LOGIC_ARITH.ALL;entity second ISport(clk1,rst1:in std_logic;cout1:out std_logic;cq0:out std_logic_vector(3 downto 0);cq1:out std_logic_vector(3 downto 0));END second;ARCHITECTURE behave of second isSIGNAL d: std_logic_vector(3 downto 0);SIGNAL g: std_logic_vector(3 downto 0);BEGINprocess(clk1,rst1,d,g)BEGINif (rst1 ='1') thend <="0000";g <="0000";elsif(clk1'EVENT and clk1='1')thenif(d=9 and g=5)thencout1<='1';elsecout1<='0';end if;if(d=9)thend<="0000";if(g=5)theng<="0000";elseg<=g+1;end if;elsed<=d+1;end if;end if;end process;cq0<=d;cq1<=g;end behave;clk1是时钟信号,rst1是复位信号, cout1作为下一模块分钟设计的时钟信号,cq0,cq1输出信号最后接在动态译管码芯片上。

eda计时器课程设计

eda计时器课程设计

eda计时器课程设计一、课程目标知识目标:1. 学生能够理解EDA计时器的基本原理和功能。

2. 学生掌握计时器的电路设计方法,了解不同类型计时器的优缺点。

3. 学生掌握计时器的编程方法,能够运用所学知识实现计时功能。

技能目标:1. 学生能够运用EDA软件进行计时器电路设计,具备实际操作能力。

2. 学生能够编写简单的计时器程序,实现计时功能。

3. 学生通过课程学习,提高分析问题、解决问题的能力。

情感态度价值观目标:1. 培养学生对电子设计的兴趣,激发创新精神。

2. 学生在团队合作中,学会沟通、协作,培养团队精神。

3. 学生在学习过程中,树立正确的价值观,认识到科技对社会发展的积极作用。

课程性质:本课程为实践性较强的电子设计课程,以项目为导向,结合理论知识与实践操作。

学生特点:学生处于高年级阶段,已具备一定的电子基础知识和编程能力。

教学要求:注重理论与实践相结合,以学生为主体,教师引导,培养学生的动手能力和创新能力。

通过分解课程目标为具体的学习成果,便于教学设计和评估。

二、教学内容1. 计时器原理:回顾时钟信号、晶振、分频器等基础知识,讲解EDA计时器的工作原理。

2. 计时器电路设计:介绍常见计时器电路,如555定时器、RTC实时时钟等,分析其电路特点和适用场景。

- 教材章节:第三章《数字电路设计》- 内容列举:555定时器、RTC实时时钟、分频器等电路设计方法。

3. 计时器编程:讲解计时器的编程方法,包括汇编语言和C语言编程。

- 教材章节:第四章《微控制器编程》- 内容列举:计时器编程思路、中断处理、寄存器配置等。

4. EDA软件应用:运用EDA软件(如Protel、Multisim等)进行计时器电路设计与仿真。

- 教材章节:第五章《电子设计自动化》- 内容列举:EDA软件操作、电路图绘制、仿真分析等。

5. 实践项目:设计并实现一个简单的EDA计时器,要求具备计时、报警等功能。

- 教材章节:第六章《实践项目》- 内容列举:项目要求、电路设计、程序编写、调试与优化等。

EDA实验报告——计数器

EDA实验报告——计数器

EDA实验报告——计数器一、实验目的本实验主要是通过搭建计数器,了解计数器的基本原理和使用方法,掌握数字电路的设计方法及仿真分析方法。

二、实验原理计数器是数字电路的重要组成部分,在数字电路的多个应用中都有着广泛的应用。

计数器可以实现多种数字处理功能,如二进制计数、定量计数、计时、频率分频等。

三、实验材料1. Protues软件2. 74LS90集成电路3. 7段数码管4. 4位拨动开关5. 4个LED灯6. 电路板、杜邦线等。

四、实验内容1. 给定 74LS90 计数器数据手册,分析本实验使用到的 74LS90 芯片的接口及特性。

2. 根据实验需求,用 Protues 软件搭建计数器电路图。

3. 在计数器电路图中连通 74LS90 芯片的译码器输出端口,设置与四个拨动开关相连的输入端口以及 LED 显示器输出端口,实现计数器的计数。

4. 在计数器的输出端口增加 7 段数码管,通过数码管显示计数值。

5. 根据实验需求搭建模电流源电路,对实验电路进行仿真分析,并对仿真结果进行评估。

五、实验步骤2. 从库中拖动 74LS90 芯片、7 段数码管、拨动开关、LED 灯等元件到设计图中。

4. 在 74LS90 芯片工作模式的选择端口接上拨动开关,选择计数器的计数方式。

5. 配置模电流源电路,并设置仿真参数。

6. 进行仿真并记录仿真结果。

七、实验结果本实验搭建的计数器能够正确地进行计数,并且将计数结果通过数码管和 LED 灯显示出来。

在进行仿真分析时,根据仿真数据评估实验电路的合理性。

本实验通过搭建计数器,了解计数器的基本原理和使用方法,掌握数字电路的设计方法及仿真分析方法。

实验中主要学习了数字计数器的结构、性能和工作原理,在搭建计数器电路时主要包括了 74LS90 芯片的接口和设置以及输入输出端口的设置。

通过本实验,我进一步了解了计数器的基本知识和原理,也学习了如何使用 Protues 软件进行电路的搭建和仿真。

eda课程设计之带定时功能的计时器

eda课程设计之带定时功能的计时器

eda课程设计之带定时功能的计时器物理与电气工程学院课程实践报告EDA带控制功能的计数器姓名某某某1111某某某某某某专业电气工程及其自动化班级电气工程及其自动化1班年级2022级指导教师刘某某某某某成绩日期2022.6.26一、总体设计思想1.基本原理数字闹钟电路的基本结构由两个60进制计数和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重新开始计时。

秒计数器的技术时钟CLK为HZ的标准信号。

当数字闹钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号时、分、秒得计时结果通过6个数码管来动态显示。

因此,通过模式选择信号KEY1、KEY2控制数字钟的工作状态,使其分别工作于正常计时,调整分、时和设定闹钟分、时5个状态。

当数字闹钟处于计时状态时,3个计数器允许计数,且秒、分、时计数器的计数时钟信号分别为CLK,秒的进位,分的进位;当数字闹钟处于闹钟定时状态时,可以设定小时和分;当计时到所设定的时刻时,驱动扬声器,持续1分钟。

2.设计框图系统框图主要分为三部分:第一部分为精准秒脉冲产生电路,这里我们采用频率为32.768KHz的标准晶振搭成精准的秒脉冲产生电路,为电子钟提供精准的秒脉冲输入。

第二部分为FPGA核心控制电路,主要由型号为EP3C25E144C8N的芯片经过编程以后,向译码显示电路提供控制信号。

第三部分为译码显示电路,由4片74LS47驱动4个7段数码管,在核心控制电路输出的控制信号的控制下,显示相应的时、分、秒。

具体框图如下图1所示。

图1二、设计步骤和调试过程1、总体设计电路该数字钟可以实现3个功能:计时功能、定点报时功能和重置时间功能,因此有3个子模块:计时、报时(peak)、重置时间(d1,d2)。

其中计时模块有4部分构成:秒计时器(1)、分计时器(m1)、时计时器(h1)。

EDA数字钟毕业设计

EDA数字钟毕业设计

EDA数字钟毕业设计第一篇:EDA数字钟毕业设计[ 标签:数字钟, eda ]1、设计一个能显示1/10秒、秒、分、时的12小时数字钟。

2、时钟源使用频率为0.1Hz的连续脉冲。

3、设置两个按钮,一个供“开始”及“停止”用,一个供系统“复位”用。

4、时钟显示使用数码管显示。

基于VHDL的多功能数字钟的设计EDA课程设计资料类别课程(专业)EDA 适用年级大学文件格式word+DLS 文件大小1725K 上传时间2008-10-10 20:57:00 预览文件无(只能预览文件中的部分内容)下载次数0内容简介:EDA课程设计基于VHDL的多功能数字钟的设计,共11页,6086字,附源程序。

摘要:介绍了利用VHDL硬件描述语言设计的多功能数字钟的思路和技巧。

在MAX+PLUSII开发环境中编译和仿真了所设计的程序,并在可编程逻辑器件上下栽验证。

仿真和验证结果表明,该设计方法切实可行。

EDA-时钟设计-基于Altera数字钟的实现:EDA课程设计基于VHDL的多功能数字钟的设计:EDA数字钟设计报告:资料包括:论文(12页2036字)图纸说明:中文摘要:数字钟学习的目的是掌握各类计数器及它们相连的设计方法;掌握多个数码管显示的原理与方法;掌握FPGA技术的层次化设计方法;掌握用VHDL语言的设计思想以及整个数字系统的设计。

此数字钟设计具有时,分,秒计数显示功能,以24小时为计数循环;能实现清零,调节小时,分钟以及整点报时的功能。

第二篇:eda数字钟程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clock IS PORT(EN :IN STD_LOGIC;数码管使能CLK:IN STD_LOGIC;时钟信号RST:IN STD_LOGIC;复位信号SEC_1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);秒高位SEC_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);秒低位MIN_1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);分高位MIN_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);分低位HOU_1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);时高位HOU_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);时低位BEE:OUT STD_LOGIC);END clock;ARCHITECTURE behovior OF clock IS SIGNAL SEC_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL SEC_LOW:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MIN_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MIN_LOW:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL HOU_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL HOU_LOW:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CY_MIN:STD_LOGIC;分进位SIGNAL CY_HOU:STD_LOGIC;时进位SIGNAL LOGO_1:STD_LOGIC;标志SIGNAL LOGO_2:STD_LOGIC;SIGNAL LOGO_3:STD_LOGIC;BEGIN MIAOLOW:PROCESS(CLK,RST,EN)BEGINIF(RST = '0')THENSEC_LOW <= “1000”;附给秒低位为8ELSIF(CLK'EVENT AND CLK = '1' AND EN = '1')THEN 检测时钟上升沿及数码管使能端IF(SEC_LOW = “1001”)THENSEC_LOW <= “0000”;ELSESEC_LOW <= SEC_LOW + “0001”;加一END IF;END IF;END PROCESS MIAOLOW;LOGO_1 <= SEC_LOW(3)AND SEC_LOW(0);SEC_01<= SEC_LOW;秒个位放8MIAOHIGH:PROCESS(CLK,RST)BEGINIF(RST = '0')THENSEC_HIGH <= “0101”;ELSIF(CLK'EVENT AND CLK = '1')THEN检测时钟上升沿IF(LOGO_1 = '1')THENIF(SEC_HIGH = “0101”)THENSEC_HIGH <= “0000”;CY_MIN <= '1';ELSESEC_HIGH <= SEC_HIGH + “0001”;加一CY_MIN <= '0';END IF;END IF;END IF;END PROCESS MIAOHIGH;SEC_1 <= SEC_HIGH;秒十位放5FENLOW:PROCESS(CY_MIN,RST,EN)BEGINIF(RST = '0')THEN 若复位位为0MIN_LOW <= “1000”;则分个位为8ELSIF(CY_MIN'EVENT AND CY_MIN = '1' AND EN = '1')THEN 检测时钟上升沿及数码管使能端IF(MIN_LOW = “1001”)THENMIN_LOW <= “0000”;ELSEMIN_LO W <= MIN_LOW + “0001”;加一END IF;END IF;END PROCESS FENLOW;LOGO_2 <= MIN_LOW(3)AND MIN_LOW(0);MIN_01 <= MIN_LOW;分个位放8FENHIGH:PROCESS(CY_MIN,RST)BEGINIF(RST = '0')THENMIN_HIGH <= “0101”;ELSIF(CY_MIN'EVENT AND CY_MIN = '1')THEN检测分进位上升沿IF(LOGO_2 = '1')THENIF(MIN_HIGH = “0101”)THEN若分十位为5MIN_HIGH <= “0000”;CY_HOU <= '1';时进位为1ELSEMIN_HIGH <= MIN_HIGH + “0001”;加一CY_HOU <= '0';END IF;END IF;END IF;END PROCESS FENHIGH;MIN_1 <= MIN_HIGH;分十位放5SHILOW:PROCESS(CY_HOU,RST,EN)BEGINIF(RST = '0')THENHOU_LOW <= “1001”;ELSIF(CY_HOU'EVENT AND CY_HOU = '1'AND EN = '1')THEN检测时进位上升沿及数码管使能端IF(HOU_LOW = “1001”)THEN若时低位为9HOU_LOW <= “0000”;ELSIF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN若时十位为2,个位为3HOU_LOW <= “0000”;ELSEHOU_LOW <= HOU_LOW + “0001”;加一END IF;END IF;END PROCESS SHILOW;LOGO_3 <= HOU_LOW(3)AND HOU_LOW(0);HOU_01 <= HOU_LOW;时个位放3SHIHIGH:PROCESS(CY_HOU,RST)BEGINIF(RST = '0')THENHOU_HIGH <= “0001”;ELSIF(CY_HOU'EVENT AND CY_HOU = '1')THEN检测时进位上升沿IF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN 若时十位为2,时个位为3HOU_HIGH <= “0000”;ELSIF(LOGO_3 = '1')THENHOU_HIGH <= HOU_HIGH + “0001”;加一END IF;END IF;END PROCESS SHIHIGH;BEE_CLOCK:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK = '1')THEN检测时钟上升沿IF(SEC_HIGH = “0101” AND SEC_LOW = “1001”AND MIN_HIGH = “0101” AND MIN_LOW = “1001”)THENBEE <= '1';ELSEBEE <= '0';END IF;END IF;END PROCESS BEE_CLOCK;HOU_1 <= HOU_HIGH;时十位放2END behovior;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clock1 IS PORT(EN :IN STD_LOGIC;CLK:IN STD_LOGIC;RST:IN STD_LOGIC;SEC_1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);SEC_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);MIN_1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);MIN_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);HOU_1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);HOU_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BEE:OUT STD_LOGIC);END clock1;ARCHITECTURE behovior OF clock1 IS SIGNAL SEC_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL SEC_LOW:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MIN_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MIN_LOW:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL HOU_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL HOU_LOW:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CY_MIN:STD_LOGIC;SIGNAL CY_HOU:STD_LOGIC;SIGNAL LOGO_1:STD_LOGIC;SIGNAL LOGO_2:STD_LOGIC;SIGNAL LOGO_3:STD_LOGIC;BEGIN MIAOLOW:PROCESS(CLK,RST,EN)BEGINIF(RST = '0')THENSEC_LOW <= “1000”;ELSIF(CLK'EVENT AND CLK = '1' AND EN = '1')THEN IF(SEC_LOW = “1001”)THENSEC_LOW <= “0000”;ELSESEC_LOW <= SEC_LOW + “0001”;END IF;END IF;END PROCESS MIAOLOW;LOGO_1 <= SEC_LOW(3)AND SEC_LOW(0);SEC_01<= SEC_LOW;MIAOHIGH:PROCESS(CLK,RST)BEGINIF(RST = '0')THENSEC_HIGH <= “0101”;ELSIF(CLK'EVENT AND CLK = '1')THENIF(LOGO_1 = '1')THENIF(SEC_HIGH = “0101”)THENSEC_HIGH <= “0000”;CY_MIN <= '1';ELSESEC_HIGH <= SEC_HIGH + “0001”;CY_MIN <= '0';END IF;END IF;END IF;END PROCESS MIAOHIGH;SEC_1 <= SEC_HIGH;FENLOW:PROCESS(CY_MIN,RST,EN) BEGINIF(RST = '0')THENMIN_LOW <= “1000”;ELSIF(CY_MIN'EVENT AND CY_MIN = '1' AND EN = '1')THEN IF(MIN_LOW = “1001”)THENMIN_LOW <= “0000”;ELSEMIN_LOW <= MIN_LOW + “0001”;END IF;END IF;END PROCESS FENLOW;LOGO_2 <= MIN_LOW(3)AND MIN_LOW(0);MIN_01 <= MIN_LOW;FENHIGH:PROCESS(CY_MIN,RST)BEGINIF(RST = '0')THENMIN_HIGH <= “0101”;ELSIF(Cy_MIN'EVENT AND CY_MIN = '1')THENIF(LOGO_2 = '1')THENIF(MIN_HIGH = “0101”)THENMIN_HIGH <= “0000”;CY_HOU <= '1';ELSEMIN_HIGH <= MIN_HIGH + “0001”;CY_HOU <= '0';END IF;END IF;END IF;END PROCESS FENHIGH;MIN_1 <= MIN_HIGH;SHILOW:PROCESS(CY_HOU,RST,EN)BEGINIF(RST = '0')THENHOU_LOW <= “1001”;ELSIF(CY_HOU'EVENT AND CY_HOU = '1' AND EN = '1')THEN IF(HOU_LOW = “1001”)THENHOU_LOW <= “0000”;ELSIF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THENHOU_LOW <= “0000”;ELSEHOU_LOW <= HOU_LOW + “0001”;END IF;END IF;END PROCESS SHILOW;LOGO_3 <= HOU_LOW(3)AND HOU_LOW(0);HOU_01 <= HOU_LOW;SHIHIGH:PROCESS(Cy_HOU,RST)BEGINIF(RST = '0')THENHOU_HIGH <= “0001”;ELSIF(CY_HOU'EVENT AND CY_HOU = '1')THENIF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN HOU_HIGH <= “0000”;ELSIF(LOGO_3 = '1')THENHOU_HIGH <= HOU_HIGH + “0001”;END IF;END IF;END PROCESS SHIHIGH;BEE_CLOCK:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK = '1')THENIF(SEC_HIGH = “0101” AND SEC_LOW = “1001”AND MIN_HIGH = “0101” AND MIN_LOW = “1001”)THENBEE <= '1';ELSEBEE <= '0';END IF;END IF;END PROCESS BEE_CLOCK;HOU_1 <= HOU_HIGH;END behovior;第三篇:EDA数字钟课程设计课程设计报告设计题目:用VHDL语言实现数字钟的设计班级:电子1002班学号:20102625 姓名:于晓指导教师:李世平、李宁设计时间:2012年12月摘要数字钟是一种用数字电路技术实现时、分、秒计时的钟表。

数字秒表实验报告---EDA

数字秒表实验报告---EDA

数字秒表实验报告—EDA项目背景本次实验旨在使用EDA工具设计一个数字秒表电路,通过FPGA开发板进行验证,具体要求如下:1.实现毫秒计时,并可以在数码管上显示当前计时数值。

2.支持开始/暂停、清零等操作。

设计思路本次实验的数字秒表电路由以下模块构成:1.时钟发生器模块:用于产生时钟信号,以驱动计数器进行计数。

2.计数器模块:通过时钟信号进行计数,并将计数结果传递给显示模块。

3.显示模块:将计数结果转换为数码管显示的数码信号,并控制数码管进行显示。

其中,时钟发生器模块和计数器模块都是基础电路模块,在这里不再赘述,下面将着重介绍显示模块的设计。

显示模块设计显示模块主要由控制模块和数码管模块构成。

控制模块根据计数结果和当前时间,控制数码管模块显示相应的数码。

在这里,我们采用的是共阳极的数码管。

具体来说,我们将控制模块分为两个子模块:时分秒计数器和数码显存控制器。

时分秒计数器时分秒计数器通过接收计数器模块的计数结果,将其转换为时分秒,并存储在计数器寄存器中。

计数器寄存器是一个64位的寄存器,由三个16位的子寄存器组成,用于存储时分秒。

当计数器模块的计数结果为0时,时分秒计数器会重置计数器寄存器。

数码显存控制器数码显存控制器由一个6位的数据存储器和一个6位的显示寄存器组成。

当计数器模块进行计数时,显示寄存器中存储的数码信号会根据时分秒计数器的值进行更新。

同时,数码显存控制器也会控制共阳极数码管进行相应的显示操作。

原理图设计根据以上的设计思路,我们可以得到数字秒表电路的原理图如下:原理图原理图EDA设计流程设计环境本次实验使用的是Xilinx ISE Design Suite 14.7,这是一个使用VHDL进行设计的EDA工具。

设计流程1.新建工程并设置工程名、目录、设备等基本信息。

2.添加源文件,包括时钟发生器模块、计数器模块、显示模块,以及顶层模块。

将所有模块综合为一个顶层设计。

3.检查时序约束,以保证电路能够正确运行。

EDA数字钟实验报告

EDA数字钟实验报告

EDA数字钟实验报告EDA实验EDA实验数字钟一.实验任务用FPGA器件和EDA技术的设计已知条件:XXX软件XXX实验开发装臵基本功能:1.以数字形式显示时,分,秒的时间;2.小时计数器为24进制;3.分,秒计数器为60进制;多功能数字电子钟设计:输入变量:时钟CPS,直接清零RD;输出变量:小时H[7..4]、H[3..0]为8421BCD码输出,其时钟为CLK;分计时M[7..4]、M[3..0]为8421BCD 码输出,其时钟为CPM;秒计时S[7..4]、S[3..0]为8421BCD码输出,其时钟为CLK;RD为清零信号等。

二.仿真与波形1.60进制原理图如下;其仿真波形如下:2.24进制原理图如下:其仿真波形如下:3.数字钟的整个电路图如下:逻辑电路说明:由电路分析得知,多功能数字电子钟最基本的计时电路在CLK(秒)时钟作用下,电路输出变量为H[7..0],M[7..0]及S[7..0],按8421BCD码正常走时,电路为异步时序逻辑电路4.数字电子钟的仿真波形如下:仿真波形分析及结论:由仿真波形分析得知在CLK(秒)时钟作用下,电路正常走时。

分析过程完全符合多功能数字电子钟最基本的计时功能,逻辑电路设计正确。

三.感想:这次的课程设计的内容是《EDA多功能数字钟》,这次课程设计验我花了两个上午的时间。

虽然我是顺利的完成了任务,但是在实验中我还是发现了自己存在的一些问题。

在课程设计中我经常做完上一步就忘记了下一步该怎么做,总是一边看老师的课件一边做,这样一来浪费了不少时间,这是由于我对软件的操作不熟练的缘故,因此我觉得我应该在今后的日子里多练习一下这个MA_+PLUS软件,做到在以后的学习及工作中能利用这个软件快速的正确的完成任务。

在实验中我还经常出现掉步骤的现象,比如经常忘记“指向当前文件”,从而导致得到的结果是错误的甚至根本就得不到结果,这全都是因为粗心大意造成的。

在今后的日子里我会努力的去改掉这个毛病,从而高质量的完成老师交给我的各项任务!。

EDA数字秒表的设计

EDA数字秒表的设计

EDA数字秒表的设计第一篇:EDA数字秒表的设计设计报告——数字秒表的设计EDA 一设计目的1.根据设计要求,完成对数字秒表的设计。

2.进一步加强对QuartusⅡ的应用和对Verilog HDL语言的使用。

二设计内容和要求1.计时精度应大于1/100S,计时器能显示1/100S的时间,提供给计时器内部定时的时钟频率应大于100Hz,这里选用KHz。

2.计时器的最大计时时间为1小时,为此需要6位的显示器,显示的最长时间为59分59.99秒。

3.设置有复位和起/停开关,复位开关用来使计数器清零,做好计时准备。

起停开关的使用方法与传统的机械式计数器相同,即按一下,启动计时器开始计时,再按一下计时终止。

三系统设计方案自顶向下的设计自顶向下的设计方法是数字系统设计中最常用的设计方法.也是基于芯片的系统设计的主要方法。

自顶向下的设计方法利用功能分割手段将设计由上到下进行层次话和模块化,及分层次、分模块进行设计和仿真。

功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路。

如此分割,逐步的将系统细化,将功能逐步的具体化,模块化。

高层次设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细描述在下一设计层次说明,最底层的设计才涉及具体寄存器和逻辑门电路等实现方式的描述。

四模块设计1.分频模块将输入1KHZ的系统时钟经过十分频分为100HZ的单位时钟。

编程原理跟计数器原理相似。

2.定时模块采用2个60进制、1个100进制的BCD码全加器作为定时器,分为分,秒,百分秒,输入时钟信号为分频器输出信号100HZ时钟,外界两个拨码开关作为清零按钮和暂停按钮。

3.位选发生器:根据显示的数据位和人眼暂留效应,设计显示分为分、秒、百分秒位,每位需要2个数码管进行显示,因此变化频率至少为300HZ,为了方便则采用1KHZ,循环码则从000循环到101。

4.多路选择器根据位选信号,输出对应位显示的数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字计时器设计一、实验目的1、掌握常见集成电路的工作原理和使用方法。

2、学会单元电路的设计调试方法。

3、掌握QuartusII软件的基本使用方法及会用其设计调试数字计时器。

二、实验设计要求1、能进行正常的时、分、秒计时功能;2、分别由六个数码管显示时分秒的计时;3、系统有保持、清零、校时、校分功能;4、使时钟具有整点报时功能(当时钟计到59'53"时开始计时,分别在59'53",59'55",59'57"报时频率500Hz,在59'59"报时频率1000Hz);5、闹表设定功能。

三、整体电路的工作原理原理框图:脉冲产生电路将硬件上的48MHz脉冲依次分频使其产生1Hz脉冲,输入计时器电路,计时器电路时分秒对应的模24、模60、模60计数器采用同步触发方式实现00:00:00~ 23:59:59计时。

校时校分电路通过校时、校分开关的切换来改变计时器电路时分秒对应的模24、模60、模60计数器CLK 端输入脉冲及使能端的设置实现。

保持电路通过使计时器三个计数器使能端置0的方法来实现。

清零电路通过使计时器三个计数器清零端置0的方法来实现。

整点报时电路通过脉冲产生电路的分频及若干门电路组合实现。

闹表:先设计一48选24的译码选择电路对计时器电路与闹钟定时电路的输出进行选择,界面显示切换通过设置一开关对译码选择电路的控制实现。

定时定分电路设计原理与上校时校分电路一致。

闹铃的设置是先通过一比较电路判断此时计时器电路的时分与闹钟定时电路是否一致来判断是否响铃,铃声是通过数据选择器及若干门电路来对响铃频率的设定。

最后设置一闹铃开关来实现闹表的开关。

四、各子模块设计原理及仿真波形1、脉冲发生电路(分频电路) 原理图见附表1用到了四分频、六分频、八分频和一千分频电路,下面以六分频和一千分频为列说明: A 、六分频电路:它是应用了三个JK 触发器构成的T 触发器,[1][2][1][0]t q q q =+ [2][2][1][0][1]t q q q q =+[2][1][0]q q q 依次循环输出:000 001 010 101 110 111;从而输出[2]q 就是将clk 六分频,且脉宽仍为50% 仿真波形:B 、一千分频电路是由三个十分频电路组合而成,十分频电路:clk其是在十六分频器基础上更改而成:[1][3][0]t q q =,[2][1][0]t q q =, [3][2][1][0][3][0]t q q q q q =+[3][2][1][0]q q q q 依次循环输出0000 0001 0010 0011 0100 0101 0110 0111 1000 1001;从而输出[2]q 就是将clk 十分频,且脉宽为40%2、计时器电路(原理图见附表一) A 、模60计数器利用两块74160BCD 码计数器,左边显示秒(分)个位,右边显示秒(分)十位,右边芯片通过同步送数端0[1][4][3][1]t q q h h (此时校时校分作用端7key 始终为高电平), 实现0 1 2 3 4 5输出的模6计数器。

仿真波形:B 、模24计数器利用两块74160BCD 码计数器,左边显示时个位,右边显示时十位,利用同步送数端[1][1][2][2]t q q h (此时校时校分作用端8key 始终为高电平)实现计数到23时全部同步送0仿真波形:C 、00:00:00~23:59:59计时器两模60,一模24计数器衔接电路:[1]en 作用于分计数器使能端以实现59''分钟进一位,[2]en 作用于时计数器使能端以实现59'59''时钟进一位。

计时器仿真输出波形:3、译码显示电路(原理图见附表1)计数器为0 1 2 3 4 5 计数的模6计数器(设计思路与模60计数器的十位一致):24选4MUX采用4个8选1的74151数据选择器实现,CLK2选用1000Hz脉冲,在每一极短时刻(1/1000秒)依据计数器同时选定要编译的4位码及相应的数码管,让其中一个数码管显示,由于1/1000秒以超出人眼辨别范围,故某一时刻感觉相应的六个数码管均亮。

4、清零、保持、校时校分电路(原理图见附表1)A、清零电路只须将计时器各清零端解入一开关信号qing(低电平有效)B、保持电路只须将计时器各使能端接入一保持信号keep,电路keep0为开关输入信号(高电平有效)。

C、校时校分电路:jiao为校分开关信号,jiao1为校时开关信号,D触发器是防止开关造成的颤动,比如jiao 信号为1电平时,计时器时分秒时钟脉冲输入端均为2Hz,同时使秒钟使能端输入为0(即秒输出不变),分钟使能输入端为1(即分钟开始快速校分),可参考附表1计时器电路模块及衔接电路模块。

5、报时电路(原理图见附表1)sl sl sl sl;秒十位所对应的计数器的输出:设秒个位所对应的计数器的输出:[4][3][2][1]ml m ml ml;分十位所对sh sh sh sh;分个位所对应的计数器的输出:[4][3][2][1][4][3][2][1]mh mh mh mh;其中4为高位,1为低位。

应的计数器的输出:[4][3][2][1]在59'53",59'55",59'57",59'59"时计数器秒十位,分个位,分十位输出相同,为:[4][3][2][1]0101sh sh sh sh =,[4][3][2][1]1001ml m ml ml =,[4][3][2][1]0101mh mh mh mh =。

秒个位输出:59'53":[4][3][2][1]sl sl sl sl =0011 59'55":[4][3][2][1]sl sl sl sl =0101 59'57":[4][3][2][1]sl sl sl sl =0111 59'59":[4][3][2][1]sl sl sl sl =1001则此时的触发信号111259'53"59'55"59'57"59'59"baoshi f f f f =+++ 111259'51"(2"4"6"8")f f f f =+++ 其中1500f Hz =,21000f Hz =原理图中6key 为闹铃开关,是为了在闹铃想时屏蔽整点报时。

6、补充功能:闹表(原理图见附表2) A 、闹表定时电路(见附表2相应模块)由一个模六十计数器(定分)及一个模24计数器(定时)构成。

B 、选择译码电路(见附表2相应模块) 由3个16选8自定义数据选择器实现,依次选择时分秒的显示译码(其中当界面切换到定时界面时,秒钟输出均为1电平,从而对于共阳极的数码管秒钟不亮),每一个16选8自定义数据选择器原理图:VCCbINPUTVCC c1INPUTVCCeINPUTVCC gINPUTVCCh1INPUTo5OUTPUT界面切换开关5key 来实现输出的译码显示。

C 、定分、定时电路v0、v1依次接分钟和时钟的使能端,用来进行定分和定时,即7key 定分开关、8key 定时开关、此处5key 是为了当界面切换到实际计时界面时,将闹钟定的时间保持住,同时使7key 、8key 无效。

D 、比较电路(原理图见附表2相应模块)是采用16个异或门来判别实际时分是否与闹钟时分一致,若一致则f17输出为1。

E 、闹铃电路(原理图见附表2相应模块)通过改变输入蜂鸣器的脉冲频率使其发出不同声音,组合到一起形成闹铃,主要是: 让其响铃1分钟;秒个位为1时输出250hz ;秒个位为3、4、5时输出为250hz 、500hz 、1000hz ; 秒个位为7、8、9时输出为500hz 、1000hz 、2000hz ; 秒个位为0、2、6时输出为0。

(即输出声音逐渐变高) 250hz 、2000hz 脉冲产生补充分频电路:采用2个74151实现16选用1数据选择器来选择频率信号:输入秒个位[4][3][2][1]sl sl sl sl 来决定此时的铃声输入脉冲。

最终蜂鸣器输入:当f17为1,且闹铃开关6key 有效时,才响铃。

五、实验过程中遇到的问题及解决问题的方法1、在计时器模块设计中,将秒钟和分钟组合时仿真发现输出依次为58'59''、59'00''、 09'01''、09'02''……,下面分析: 我设计的模60计数器:由于十位的使能端是由个位进位端作用的,在59'00''时分个位进位输出为1,故当下一个时钟脉冲到来时,分的十位仍会计数,从而下一秒输出为09'01'',其中一种解决方法是将分十位使能端由分个位进位端及秒进位信号共同作用,使必须在9'59''x 时分十位才进位。

2、在计时器模块设计中,将秒钟、分钟及时钟组合时仿真发现输出依次为00:59:00、01:59:01、02:59:02……显然在59分时,时钟使能端始终为1,故应当再增加秒进位信号对时钟式能端影响。

3、校时校分结束时拨动开关由于振动的影响而使计时输出变化较大,可通过在开关信号后接一D 触发器来消除颤动。

4、校时校分及闹钟定时定分时23时无法保持住、59分无法保持住(即若校到23时会自动变为03时,若校到59分时则自动变为09分) 以上述的模六十计数器为例:当定分到59分时,由于0[1][4][3][1]t q q h h ,会使分十位计数器的同步送数端有效,从而无法定时保持在59分,可通过0[1][4][3][1]7t q q h h key 让定分开关7key 也作用同步送数端实现。

5、响铃与整点报时在闹钟设为59分时会冲突,故可通过:实现冲突时对整点报时电路的屏蔽。

六、实验感想我完全通过硬件的搭载来实现电路的功能,通过实验我首先对QuartusII 软件的使用有一个基本的了解,在各个模块的设计、仿真、调试、分析中,让我对数字电路相关的理论知识有一个更形象深入的掌握。

希望以后在类似的实验课程中能够更加主动地思考,积极提问,深入探究,提高自己的研究能力。

相关文档
最新文档