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.多路选择器根据位选信号,输出对应位显示的数据。

EDA数字秒表设计

EDA数字秒表设计

EDA数字秒表设计简介本文将介绍一种简单的电路设计,用于制作数字秒表,适用于DIY爱好者和学生电子实验。

设计原理本设计采用基于集成电路(IC)CD4060的计数器电路和LCD显示屏。

CD4060是一个14位二进制同步计数器,可用于产生高精度的时序脉冲和面板控制信号。

CD4060的时钟输入(CP)和“复位”信号(MR)与外部电路相连。

每当CP接收到一个正脉冲时,CD4060的计数器将向前推进一位,这将导致计数器的输出(Q0-Q14)被更新。

本设计使用的第一个输出为Q4,该输出是CD4060的第四位计数器,它每过0.5秒发出一个脉冲。

因此,在Q4处建立一个电路,可以生成一秒的定时信号。

在LCD显示屏上,可以显示出经过的秒数和分钟数。

CD4060的每个输出都可以与NPN晶体管相连,以控制LCD段的亮度和显示。

设计步骤第一步:制作CD4060计数器电路将CD4060芯片插入面包板中,按照图示连接芯片的引脚。

将一个电解电容用于CD4060的电源滤波,以保持电源电压的稳定性。

CD4060计数器电路图CD4060计数器电路图第二步:电路调试使用万用表检查CD4060计数器电路的各个部分是否按照预期连接。

在电路窗口中添加一个电位器,以调整LCD屏幕的反光度。

第三步:制作LCD显示屏电路将液晶显示屏插入面包板,并将它与CD4060的输出连接。

通过适当调整NPN 晶体管的电压来设置亮度和清晰度。

第四步:完善电路根据需要设计一个适当的外壳,以保护电路和LCD显示屏。

总结通过这个简单的电路设计,我们可以制作出一个自制的数字秒表,用于计算时间间隔。

该设计使用集成电路CD4060和LCD显示屏,具有易于调试和安装的优点。

通过对电路的完善和优化,可以实现更精确的计时功能。

EDA课程设计--数字秒表设计

EDA课程设计--数字秒表设计

电子课程设计—数字秒表的设计数字秒表的设计数字秒表的设计一、设计任务与要求1、数字秒表的计时范围是0秒~59分59.99秒,显示的最长时间为59分59秒。

秒。

2 2、数字秒表的计时精度是、数字秒表的计时精度是10ms 10ms。

3 3、、复位开关可以在任何情况下使用,复位开关可以在任何情况下使用,即便在计时过程中,即便在计时过程中,即便在计时过程中,只要按一下复位只要按一下复位开关,计时器就清零,并做好下次计时的准备。

开关,计时器就清零,并做好下次计时的准备。

4 4、、具有启具有启//停开关,停开关,即按一下启即按一下启即按一下启//停开关,停开关,启动计时器开始计时,启动计时器开始计时,启动计时器开始计时,再按一下再按一下启/停开关则停止计时。

停开关则停止计时。

二、总体框图由频率信号输出端输出频率为100HZ 的时钟信号,输入到微妙模块的时钟端clk ,高/低电平电平频率信号输入输入微妙模块微妙模块秒模块秒模块分模块分模块置数/位选位选显示模块显示模块进位进位微妙模块为100进制的计数器,产生的进位信号co 输入到下一级秒模块的时钟端,以此类推,直到分模块计数到59进60时,产生的进位信号不输出,计数清零。

将微妙、秒、分产生的计数通过置数/位选再通过显示模块实时显示。

设计方案:利用一块芯片完成除时钟源,利用一块芯片完成除时钟源,按键和显示器之外的所有数字电路功按键和显示器之外的所有数字电路功能。

所有数字逻辑功能都在CPLD 器件上用VHDL 语言实现。

这样设计具有体积小,设计周期短,调试方便,故障率地和修改升级容易等特点,本设计采用自顶向下,混合输入方式(原理图输入——顶层文件链接和VHDL 语言输入——各模块程序设计)实现数字秒表的设计,下载和调试。

三、功能模块1.1. 微秒模块微秒模块采用VHDL 语言输入方式,以时钟clk clk,清零信号,清零信号clr 以及暂停信号STOP 为进程敏感变量,程序如下:为进程敏感变量,程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity MINSECONDb isport(clk,clrm,stop:in std_logic;----时钟时钟//清零信号清零信号secm1,secm0:out std_logic_vector(3 downto 0);----秒高位秒高位//低位co:out std_logic);------- co:out std_logic);-------输出输出输出//进位信号进位信号 end MINSECONDb;architecture SEC of MINSECONDb is signal clk1,DOUT2:std_logic;beginprocess(clk,clrm)variable cnt1,cnt0:std_logic_vector(3 downto 0);---计数计数 VARIABLE COUNT2 :INTEGER RANGE 0 TO 10 beginIF CLK'EVENT AND CLK='1'THENIF COUNT2>=0 AND COUNT2<10 THEN COUNT2:=COUNT2+1; ELSE COUNT2:=0;DOUT2<= NOT DOUT2; END IF; END IF;if clrm='1' then----if clrm='1' then----当当clr 为1时,高低位均为0cnt1:="0000"; cnt0:="0000";elsif clk'event and clk='1' then if stop='1' then cnt0:=cnt0; cnt1:=cnt1; end if;if cnt1="1001" and cnt0="1000" ;then----then----当记数为当记数为9898(实际是经过(实际是经过59个记时脉冲)个记时脉冲) co<='1';----co<='1';----进位进位进位cnt0:="1001";----cnt0:="1001";----低位为低位为9elsif cnt0<"1001" then----elsif cnt0<"1001" then----小于小于9时 cnt0:=cnt0+1;----cnt0:=cnt0+1;----计数计数计数 --elsif cnt0="1001" then --clk1<=not clk1;elsecnt0:="0000";if cnt1<"1001" then----if cnt1<"1001" then----高位小于高位小于9时 cnt1:=cnt1+1; elsecnt1:="0000"; co<='0'; end if; end if; end if;secm1<=cnt1; secm0<=cnt0;end process; end SEC;程序生成器件如图:clk clrm stopsecm1[3..0]secm0[3..0]coMINSECONDbinst3微妙模块生成的器件可以实现带有100进制进位和清零功能,暂停等功能,MINSECONDb 输入为100HZ 脉冲和低电平的清零信号CLR 与暂停信号STOP STOP,输出,输出微妙个位、十位及进位信号CO CO。

EDA课程设计报告数字电子钟

EDA课程设计报告数字电子钟

数字钟一、【课题要求】1.设计一个能显示1/10秒、秒、分、时的12小时数字钟。

2.熟练掌握各种计数器的使用。

3.能用计数器构成十进制、六十进制、十二进制等所需进制的计数器。

4.能用低位的进位输出构成高位的计数脉冲。

<注意>1、时钟源使用频率为0.1HZ的连续脉冲。

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

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

4、“时显示”部分注意12点后显示1点。

5、注意各部分的关系,由低位到高位逐级设计、调试。

二、【分析与设计】数字钟是计数器的综合应用,数字钟由十分之一秒、秒钟、分钟、时钟组成,十分之一秒由十进制计数器74160组成,秒钟由六十进制计数器构成,分钟由六十进制计数器,时钟由十二进制计数器构成。

该数字钟程序的底层文件主要有六进制计数器模块、六十进制计数器模块和十二进制模块,对各模块进行封装,供顶层文件调用,各模块有VHDL文本设计及原理图设计。

输入端clk是连续脉冲,clrn是高电平系统复位,en是高电平使能端,输出端是十分之一秒位、秒钟个位、秒钟十位、分钟个位、分钟十位、时钟个位、时钟十位,最后由7个数码管显示各位的值。

该数字钟程序的底层文件主要有六进制计数器模块、六十进制计数器模块和十二进制模块,对各模块进行封装,供顶层文件调用,各模块有VHDL 文本设计及原理图设计。

程序框图:十分之一秒 秒钟 分钟 小时三、【程序代码及原理图】 1、六进制计数器VHDL 代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cout6 ISPORT(clk,en,clrn,load:IN STD_LOGIC;date:IN STD_LOGIC_VECTOR(2 DOWNTO 0); cnt:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); co:OUT STD_LOGIC ); END cout6;ARCHITECTURE behave OF cout6 ISSIGNAL q:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINco<='1' WHEN((q="101")AND(en='1'))ELSE'0'; PROCESS(en,clk) BEGINIF clrn='0' THEN q<="000";ELSIF(clk'event and clk='1') THENIF load='0' THEN q<=date;ELSIF en='1' THEN q<=q+1;IF(q="101")THEN q<="000";END IF;END IF;END IF;END PROCESS;cnt<=q;END behave;波形仿真:2、六十进制计数器原理图:波形仿真:3、十二进制计数器VHDL代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cout12 ISPORT(clk,clrn,ldn,en:IN STD_LOGIC;ha:IN STD_LOGIC_VECTOR(3 DOWNTO 0); hb:IN STD_LOGIC;qa:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); qb:out STD_LOGIC);END cout12;ARCHITECTURE behav OF cout12 ISSIGNAL q:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL b:STD_LOGIC;SIGNAL a:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(en,clk)BEGINIF clrn='0' THENq<="0000";ELSIF(clk'event and clk='1') THEN IF ldn='0' THENb<=hb;a<=ha;ELSIF en='1' THENq<=q+1;IF(q="1011")THENq<="0000"; END IF;END IF;END IF;CASE q ISWHEN"0000"=>b<='1';a<="0010"; WHEN"0001"=>b<='0';a<="0001"; WHEN"0010"=>b<='0';a<="0010"; WHEN"0011"=>b<='0';a<="0011"; WHEN"0100"=>b<='0';a<="0100"; WHEN"0101"=>b<='0';a<="0101"; WHEN"0110"=>b<='0';a<="0110"; WHEN"0111"=>b<='0';a<="0111"; WHEN"1000"=>b<='0';a<="1000"; WHEN"1001"=>b<='0';a<="1001"; WHEN"1010"=>b<='1';a<="0000"; WHEN"1011"=>b<='1';a<="0001"; WHEN OTHERS =>NULL;END CASE;END PROCESS;qa<=a;qb<=b;END ARCHITECTURE behav;波形仿真:4、数字钟原理图:波形仿真:四、【结果与测试】根据六进制的波形图判断出六进制的设计正确,实现了0~5的计数,并且在5处产生进位,将六进制进行封装与十进制74160根据原理图设计成六十进制计数器,然后将它进行封装,根据六十进的波仿真图可以看出实现了0~59的计数,并且在59处产生进位,然后将它进行封装。

EDA数字时钟设计

EDA数字时钟设计

EDA设计实验报告题目:数字钟任务:设计一个具有“时”、“分”、“秒”的十进制数字显示的计时器。

要求:(1)准确计时,显示小时、分、秒,小时能以24小时或12小时计时;(2)带有时间校正功能。

摘要:数字电子钟由振荡器、分频器、计数器、译码显示、校时电路组成。

其中振荡器和分频器组成标准秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统。

秒信号送入计数器进行计数,把累加的结果以时、分、秒的数字显示出来。

时显示由二十四进制计数器、译码器、显示器构成,分、秒显示分别由六十进制计数器、译码器、显示器构成。

当计时出现误差时,可以用校时电路来校时、较分。

一、方案论证与比较1、时钟振荡电路。

晶体振荡器电路给数字钟提供一个频率稳定准确的1kHz的方波信号,可保证数字钟的走时准确、稳定。

2、秒脉冲产生电路。

分频器电路将1kHz的方波信号经1000次分频后得到1Hz的方波信号供秒计数器进行计数。

分频器实际上也就是计数器。

3、计数电路。

电子钟计时分为小时、分钟和秒,其中小时为二十四进制,分钟和秒均为六十进制,输出可以用数码管显示,所以要求二十四进制为~计数,六十进制为~计数,并且均为8421码编码形式。

4、校时较分电路。

在刚接通电源或者时钟走时出现误差时,则需要进行时间的校准。

通常可以在整点时刻和利用电台或电视台的信号进行校准,也可以在其他时刻利用别的时间标准进行校准。

5、译码驱动电路。

译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。

6、显示数码管。

数码管通常有发光二极管(LED)数码管和液晶显示(LCD)数码管,本设计应用LED数码管。

二、各模块电路仿真分析1、石英晶体振荡器产生32768Hz方波信号。

仿真电路如图1所示,非门采用CMOS非门74HC04,C2电容可以加入一个微调电容,根据示波器上显示的波形来微调电容值。

仿真波形如图2所X 1R26-32.768kHz74HC04D_6V 74HC04D_6VR310M30pF A B Ext Trig ++__+_图1 石英晶体震荡器仿真电路100pF-VARKey = A 25%2、秒脉冲产生电路仿真74LS161N 在级联使用时一定主意两个使能端EP 、ET 的设置,只有两个均为高电平时才能计数,当第三级控制时是第一级和第二级一同控制第三级,如图3所示,其中第二级的EP 一同由第一级的RCO 控制图4中从上倒下的方波分别为2分频、4分频、8分频、16分频、32分频、64分频、128分频、256分频、512分频,最下面的是32768Hz信号脉冲。

EDA设计(II)实验报告数字电子钟

EDA设计(II)实验报告数字电子钟

EDA设计(II)实验报告-数字电子钟实验报告:数字电子钟一、实验目的本实验旨在通过使用EDA设计软件,设计并实现一个具有时、分、秒功能的数字电子钟。

通过学习使用EDA工具,掌握数字电路设计的基本步骤和技巧,培养实践能力和创新思维。

二、实验原理数字电子钟是一种以数字形式显示时间的装置,它利用了时、分、秒的计时原理。

核心部分包括一个时钟发生器,用于产生标准时间信号,以及一个计数器,用于对时间进行计数并显示。

此外,还需要一些控制逻辑来控制时、分、秒的进位和显示。

三、实验步骤1.设计准备:在开始设计之前,首先明确设计要求和功能。

考虑到实验的复杂性和可实现性,我们采用最简单的电路结构,即基于计数器和译码器的数字电子钟。

2.绘制电路图:使用EDA设计软件(如Quartus II)绘制电路图。

首先创建新项目,然后添加必要的元件(如74LS192计数器、74LS248译码器等),并根据设计要求连接元件。

3.编写程序:使用硬件描述语言(如VHDL或Verilog)编写计数器和译码器的程序。

确保程序能够实现所需的功能,并进行仿真测试。

4.编译和下载:将程序编译成可下载的配置文件,然后下载到FPGA开发板上。

5.硬件测试:连接开发板到PC,启动程序,观察数字电子钟的显示情况。

检查时间是否准确,各部分功能是否正常。

6.性能评估:对数字电子钟的性能进行评估,包括计时精度、稳定性等指标。

根据评估结果对设计进行优化。

四、实验结果与分析1.设计结果:经过上述步骤,我们成功地设计并实现了一个基于FPGA的数字电子钟。

通过EDA软件和硬件描述语言,我们实现了计数器和译码器的功能,并完成了程序的编写和下载。

2.性能分析:经过测试,我们的数字电子钟具有较高的计时精度和稳定性。

时间显示准确,各部分功能正常。

这表明我们的设计是成功的。

3.优化方向:虽然我们的数字电子钟已经具有较好的性能,但仍有一些方面可以优化。

例如,可以考虑添加更多的功能,如闹钟、温度显示等;也可以进一步优化电路结构,降低成本和提高性能。

eda课程设计资料 实验一 数字式秒表

eda课程设计资料 实验一 数字式秒表

实验一 数字式秒表设计一、设计任务与技术指标试设计并制作一个用七段数码管显示的秒表,并具有如下指标:1. 设计一个用七段数码管显示的秒表,它有“分”、“秒”、“百分之一秒” 十进制显示,如图1所示:图1 秒表表盘示意图2. 开机显示00.00.00,最大显示23.59.99; 3. 能够准确地计时并正确显示时间,计时精度 0.01秒;4. 用户可以随时开始计时,也可随时结束计时。

二、设计原理该系统由时钟信号发生器、分频电路、计时电路、译码显示电路等模块组成。

其总体框图如图2所示:图2 系统总体框图1.时钟信号发生器使用GW48系统主板上的“CL0CK0”时钟频率来实现(信号频率范围:0.5Hz ~50MHz ,建议选用1.5MHz 信号源)。

2.分频电路的设计设输入频率为1.5MHz 的脉冲信号,要求得到100Hz 的脉冲信号,那么分频系数的计算公式如下:分频系数=分频后的频率分频前的频率3.计时电路在数字电路中,计时电路一般是用计数器来实现的,例如时间的“秒”与“分”就是一个60进制的问题。

60进制计数器外部端口图如图3所示:occlky[5…0]图3 计数器外部端口图时钟信号 发 生 器 分频 电路 计时 电路 数码管显示驱动电路计数器其中,oc是计数器进位输出端。

y[5…0]为本位输出端。

三、设计平台及可选器件GW48-CK EDA实验板开发系统、EP1K30、共阴极七段数码管、发光二极管、按键开关、电阻、电容等。

选用平台的模式:No.7四、设计要求1.编制VHDL程序,并在QuartusII环境下编译通过;2.对源程序进行逻辑仿真,仿真结果正确;3.将编译后的程序下载至目标器件,进行硬件测试,硬件测试结果正确;4.各块采用文本编辑的方式生成元件图形,在直接利用元件图形编辑秒表。

五、设计报告要求1.简单叙述设计过程(包括原理、方案);2.画出完整的顶层文件原理图;3.给出完整的程序设计文档;4.说明调试方法与调试过程;。

数字秒表EDA

数字秒表EDA

EDA实验指导书曾令智电信1003班学号10401701205电气与信息工程学院EDA实验室实验三数字秒表的设计一.实验目的1.巩固和加深对QUARUSII CPLD开发系统的理解和使用;2.掌握VHDL编程设计方法;3. 掌握硬件实验装置使用方法;4.掌握综合性电路的设计、仿真、下载、调试方法。

二.实验仪器设备1.PC机1台2.QUARUSII CPLD软件开发系统,1套3. CPLD/FPGA实验系统及下载装置,1套三.实验内容设计一个计时范围为0秒~90秒的数字秒表,用数码管显示当前秒表的计时值,并设置一个计时清零开关、一个计时起、停控制开关。

设计思路:1.秒表的计时基准信号:以周期为1秒的计时脉冲CLK1作为一个比较精准的计时基准信号输入到秒个位计数器的时钟端;(计时脉冲CLK1接实验箱的脉冲输出模块,并将上面的拨码开关切换成0000)注:控制计数器逢10进1,每到90自动回0。

2. 数码管译码显示和动态扫描电路:将计数器输出的值用数码管显示需要BCD-七段数码管译码显示程序;而将秒表的各位动态显示在数码管上,需要扫描电路注:其中扫描电路输入端口:CLK2(1KHZ)为扫描时钟输入;四.实验预习要求1.预习VDHL语言关于时序电路的描述方法;2.理解本实验的基本结构;3.预先设计好该VHDL程序:五.实验操作步骤(1)开机,进入MAX+PLUSII CPLD开发系统;(2)在F盘建立自己的目录(注意要以英文命名);(3)在主菜单中选NEW,从输入文件类型选择VHDL文本编辑输入方式,(4)输入VHDL源程序并保存,后缀名为.VHD。

(5)检查修改语法错误。

(6)编译.10进制数library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zeng10 isport(clk:in std_logic;clr:in std_logic;ena:in std_logic;cq:out std_logic_vector(3 downto 0);co:out std_logic);end entity zeng10;architecture art of zeng10 issignal cq1:std_logic_vector(3 downto 0); beginprocess(clk,clr,ena) isbeginif clr='1' then cq1<="0000";elsif clk'event and clk='1' thenif ena='1' thenif cq1="1001" then cq1<="0000";else cq1<=cq1+'1';end if;end if;end if;end process;process(clk,cq1) isbeginif clk'event and clk='1' thenif cq1<"1001" then co<='0';else co<='1';end if;end if;end process;cq<=cq1;end architecture art;9进制数library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zeng9 isport(clk:in std_logic;clr:in std_logic;cq:out std_logic_vector(3 downto 0);co:out std_logic);end entity zeng9;architecture art1 of zeng9 issignal cq1:std_logic_vector(3 downto 0); beginprocess(clk,clr,ena) isbeginif clr='1' then cq1<="0000";elsif clk'event and clk='1' thenif ena='1' thenif cq1="1000" then cq1<="0000";else cq1<=cq1+'1';end if;end if;end if;end process;process(clk,cq1) isbeginif clk'event and clk='1' thenif cq1<"1000" then co<='0';else co<='1';end if;end if;end process;cq<=cq1;end architecture art1;0到90秒library ieee;use ieee.std_logic_1164.all;entity zeng3 isport(clk:in std_logic;clr:in std_logic;ena:in std_logic;dout:out std_logic_vector(7 downto 0)); end entity zeng3;architecture art2 of zeng3 iscomponent zeng10 isport(clk:in std_logic;clr:in std_logic;ena:in std_logic;cq:out std_logic_vector(3 downto 0);end component zeng10;component zeng9 isport(clk:in std_logic;clr:in std_logic;ena:in std_logic;cq:out std_logic_vector(3 downto 0);co:out std_logic);end component zeng9;signal s0,s1:std_logic;beginu0:zeng10 port map( clk,clr,ena,dout(3 downto 0),s0); u1:zeng9 port map (s0,clr,ena,dout(7 downto 4),s1); end architecture art2;显示程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zeng isport (clk:in std_logic;sel:out std_logic_vector(2 downto 0));end entity zeng;architecture art3 of zeng issignal cnt:std_logic_vector(2 downto 0);beginprocess(clk) isbeginif clk'event and clk='1' thenif cnt="111" thencnt<="000";else cnt<=cnt+'1';end if;end if;end process;sel<=cnt;end architecture art3;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zeng4 isport(sel:in std_logic_vector(2 downto 0);zeng:in std_logic_vector(7 downto 0);com: out std_logic_vector(7 downto 0);seg: out std_logic_vector(7 downto 0)); end entity zeng4;architecture art4 of zeng4 issignal data: std_logic_vector(3 downto 0); beginp1: process(sel) isbegincase sel iswhen "000"=>com<="11111110";when "001"=>com<="11111101";when "010"=>com<="11111011";when "011"=>com<="11110111";when "100"=>com<="11101111";when "101"=>com<="11011111";when "110"=>com<="10111111";when "111"=>com<="01111111";when others=>com<="11111111";end case;end process p1;p2: process(sel)begincase sel iswhen "000"=>data<=zeng(3 downto 0); when "001"=>data<=zeng(7 downto 4); when others=>data<="0000";end case;case data iswhen "0000"=>seg<="00111111";when "0001"=>seg<="00000110";when "0010"=>seg<="01011011";when "0011"=>seg<="01001111";when "0100"=>seg<="01100110";when "0101"=>seg<="01101101";when "0110"=>seg<="01111101";when "0111"=>seg<="00000111";when "1000"=>seg<="01111111";when "1001"=>seg<="01101111";when others=>seg<="00000000";end case;end process p2;end architecture art4;。

EDA课程设计数字电子钟

EDA课程设计数字电子钟

一、设计任务及要求1、设计内容选用合适的可编程逻辑器件及外围电子元器件,设计一个数字电子钟,利用EDA 软件(QUARTUS Ⅱ)进行编译及仿真,设计输入采用Verilog HDL硬件描述语言输入法,并下载到EDA实验箱系统,连接外围电路,完成实际测试。

2、设计要求(1)具有时、分、秒计数显示功能,该电子钟正常显示小时、分钟、秒,各用2位数码管(共6位数码管),显示范围为0—23时59分59秒。

(2)具有复位清零的功能,且能够对计时系统的小时、分钟进行调整。

(3)定时响铃功能,设计计时到01分10秒后蜂鸣器开始响,持续时间10秒。

二、设计思想对于数字钟来说首先是时分秒的计数功能,然后能显示,附带功能是清零、调整时分,拟定如下方案:计时校正模块中,用1Hz时钟送入秒脉冲信号,“秒计数器”采用60进制,每累计60秒,发出一个“分脉冲”信号,该信号将被送到“分计数器”。

“分计数器”采用60进制计数器,每累计60分,发出一个“分脉冲”信号,该信号被送到“时计数器”。

“时计数器”采用24进制,可实现24小时的累计计数,时钟使用三个输入按键K1、K2、K3,分别控制数字钟的校时、校分、清零,每次分别按下K1、K2按键,对应的时、分计数就加1,按下K3,时间清零。

显示模块中,分别用六个八位数码管显示时钟的时十位、时个位、分十位、分个位、秒十位、秒个位,设置一个时钟脉冲用于扫描数码管显示。

最后的定时响铃功能,本报告设计为计时到01分10秒开始驱动蜂鸣器响,持续十秒。

三、程序清单Verilog HDL源程序:module clock(clk1,clk2,dx,wei,k1,k2,rst,led);input clk1,clk2,k1,k2,rst;output [2:0] wei;output [7:0] dx;output led;reg led;reg [2:0] wei;reg [7:0] dx;reg [7:0] as,ts,am,tm,ah,th,xs;reg [7:0] q;always @(posedge clk1 or posedge rst)beginif(rst){as,ts,xs,am,tm,xs,ah,th}<=8'b00000000; else if(k1)beginif(ah==8'b00001001)beginah=8'b00000000;th=th+8'b00000001;endelse if(ah==8'b00000011&&th==8'b00000010) beginth=8'b00000000;ah=8'b00000000;endelse ah=ah+8'b00000001;endelse if(k2)beginif(am==8'b00001001)beginam=8'b00000000;if(tm==8'b00000101)tm=8'b00000000;else tm=tm+8'b00000001;endelse am=am+8'b00000001;endelse if(as==8'b00001001)beginas=8'b00000000;if (ts==8'b00000101) begints=8'b00000000;if(am==8'b00001001)beginam=8'b00000000;if(tm==8'b00000101)begintm=8'b00000000;if(ah==8'b00001001)beginah=8'b00000000;th=th+8'b00000001;endelseif(ah==8'b00000011&&th==8'b00000010)beginth=8'b00000000;ah=8'b00000000;endelse ah=ah+8'b00000001;endelse tm=tm+8'b00000001;endelse am=am+8'b00000001;end else ts=ts+8'b00000001; endelse as=as+8'b00000001;endalways @(posedge clk2)beginif(wei==3'b111)wei<=3'b000;else wei<=wei+3'b001;endalways @(q or wei or k1)beginif(wei==3'b000)q<=as;else if(wei==3'b001)q<=ts;else if(wei==3'b010)q<=8'b11111111;else if(wei==3'b011)q<=am;else if(wei==3'b100)q<=tm;else if(wei==3'b101)q<=8'b11111111;else if(wei==3'b110)q<=ah;else if(wei==3'b111)q<=th;case(q)0:dx<=8'b11111100;1:dx<=8'b01100000;2:dx<=8'b11011010;3:dx<=8'b11110010;4:dx<=8'b01100110;5:dx<=8'b10110110;6:dx<=8'b10111110;7:dx<=8'b11100000;8:dx<=8'b11111110;9:dx<=8'b11110110;default dx<=8'b00000010;endcaseendalways @(posedge clk1)beginled=1;if(ts==8'b00000001&&am==8'b00000001&&tm==8'b00000000&&ah= =8'b00000000&&th==8'b00000000)led=~led;elseif(as==8'b00000000&&ts==8'b00000010&&am==8'b00000001&&tm= =8'b00000000&&ah==8'b00000000&&th==8'b00000000) led=0;endendmodule四、调试及总结1.仿真波形图2.总结通过此次课程设计,让我对EDA这门技术有了更深的体会,并更好的学会了使用QuartusⅡ软件进行硬件设计。

EDA实验数字计时器设计

EDA实验数字计时器设计

数字计时器设计一、实验目的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计数器。

eda实验-数字钟

eda实验-数字钟

[键入公司名称]电工电子综合实验报告数字计时器设计姓名:学号:学院:自动化学院指导老师:李元浩[在此处键入文档的摘要。

摘要通常是对文档内容的简短总结。

在此处键入文档的摘要。

摘要通常是对文档内容的简短总结。

]一、实验内容本实验设计一个多功能数字计时器,可以完成0分00秒至9分59秒的计时功能,并在控制电路的作用下具有开机清零、不掉电清零、快速校分、整点报时功能。

本设计采用中小集成电路来实现,通过芯片各种不同数字逻辑功能的组合完成上述多功能数字计时器的设计。

二、实验要求1.设计一个脉冲发生电路,为计时器提供秒脉冲、为报时电路提供蜂鸣器的脉冲信号;2.设计计时电路,完成0分00秒至9分59秒的计时功能;设计报时电路,使数字计时器从9分53秒开始报时,每隔两秒发一声,共发三生低音,一声高音。

即9分53秒、9分55秒、9分57秒发低音(频率1KHz),9分59秒发高音(频率2KHz);3.设计校分电路,在任何时候拨动校分开关,可进行快速校分,即快速调整分位的显示数字;4.设计清零电路,具有开机自动清零功能,并且在任何时候,按动清零开关,可以进行计时器清零;5.系统级联调试,将上述系统进行级联,完成计时器的所有功能。

三、实验原理数字计时器是由计时电路、译码显示电路、脉冲发生电路、报时电路、校分电路和清零电路六部分组成的,电路的总体原理框图如图所示:图1数字计时电路原理图下面分别来对数字计时器的六大功能模块设计原理进行介绍:1、计时电路计时电路是由一片CD4518 BCD码计数器和一片74LS161计数器来实现的。

CD4518与74LS161的引脚图和功能表分别如图所示:CD4518 74LS161具体实现方法:CD4518为双 BCD同步十进制计数器,可完成两为十进制计数功能,分别给秒个位和分位计数。

74LS161为四位二进制同步计数器,将其转换为六进制计数器对秒十位进行计数。

秒脉冲信号传递给CD4518 BCD的1CP端,秒个位正常计数。

eda实验报告计数器

eda实验报告计数器

eda实验报告计数器EDA实验报告-计数器引言:计数器是数字电路中常用的基本模块之一,它在各个领域都有着广泛的应用。

本实验旨在通过EDA(电子设计自动化)软件进行计数器的设计与仿真,探索计数器的原理和功能。

一、计数器的基本原理计数器是一种能够按照规定的顺序改变其输出状态的电子电路。

它通过内部的触发器和逻辑门实现数字信号的计数功能。

常见的计数器有二进制计数器、十进制计数器等。

二、实验设计与仿真1. 实验目标本次实验的目标是设计一个4位二进制计数器,并通过EDA软件进行仿真验证。

计数器的功能是在每个时钟脉冲到来时,输出的二进制数加1。

2. 设计思路计数器的设计需要考虑以下几个方面:- 选择适当的触发器:本实验选择了D触发器作为计数器的基本单元,因为D触发器具有简单、易于控制的特点。

- 确定计数器的位数:本实验设计了一个4位计数器,即可以表示0~15的二进制数。

- 连接逻辑门:通过逻辑门将各个触发器连接起来,实现计数器的功能。

3. 电路设计根据设计思路,我们使用EDA软件进行电路设计。

首先,将4个D触发器连接起来,形成4位计数器。

然后,根据计数器的功能要求,将时钟信号连接到每个触发器的时钟输入端。

最后,将各个触发器的输出通过逻辑门进行连接,得到计数器的输出。

4. 仿真验证完成电路设计后,我们使用EDA软件进行仿真验证。

通过输入不同的时钟信号,观察计数器的输出是否符合预期。

在仿真过程中,我们可以调整时钟信号的频率,观察计数器的计数速度。

三、实验结果与分析通过EDA软件的仿真,我们得到了计数器的输出结果。

在时钟信号的作用下,计数器按照预期进行了计数,并输出了相应的二进制数。

通过观察输出结果,我们可以得出以下几点结论:- 计数器的输出与时钟信号的频率有关,频率越高,计数速度越快。

- 计数器的输出按照二进制的顺序进行计数,当达到最大值时,会从0重新开始计数。

四、实验总结本次实验通过EDA软件进行了计数器的设计与仿真。

  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 软件的使用有一个基本的了解,在各个模块的设计、仿真、调试、分析中,让我对数字电路相关的理论知识有一个更形象深入的掌握。

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

相关文档
最新文档