EDA课程设计--带有整点报时的数字钟设计与制作
EDA课程设计数字钟(综合课程设计)一_001

EDA课程设计数字钟(综合课程设计)一、设计要求(数字钟的功能)1、具有时、分显示功能(用数码管显示)。
以二十四小时循环计时。
2、具有清零,调节小时,分钟的功能。
3、具有整点(正小时)报时同时用多颗LED灯花样显示秒的功能。
4、运用多层次化设计方式,底层元件用VHDL编写,顶(最高)层元件用原理图法连线。
5、写出课程设计报告,包括设计源程序代码、顶层原理图及必要的文字说明。
二、目的1、掌握多位计数器相连的设计方法。
2、掌握十进制,六进制,二十四进制计数器的设计方法。
3、掌握扬声器的驱动及报时的设计。
4、LED灯的花样显示。
5、掌握CPLD技术的层次化设计方法。
三、硬件要求1、主芯片Altera EPF10K10LC84-4。
2、8个LED灯。
3、扬声器。
4、4位数码显示管。
5、8个按键开关(清零,调小时,调分钟)。
四、实验原理在同一CPLD芯片上集成了如下电路模块:1、时钟计数:秒……60进制BCD码计数。
分……60进制BCD码计数。
时……24进制BCD码计数。
同时整个计数器有清零、调时、调分功能。
在接近整数时能提供报时信号。
2、扬声器在整点时有报时驱动信号产生(响声持续多长时间?)。
3、LED灯按个人口味在整点时有花样显示信号产生。
五、实验内容及步骤1、根据电路特点,运用层次设计概念设计。
将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口。
加深层次化设计概念。
2、了解软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合。
六、顶层原理图参考下图所示(模块化设计)。
EDA课程设计报告电子钟

EDA课程设计报告电子钟EDA课程设计报告——数字钟设计班级:学号:姓名:一、设计任务设计一台能显示时、分、秒的数字钟。
具体要求如下:(1)由实验箱上的时钟信号经分频产生秒脉冲;(2)计时计数器用24进制计时电路;(3)可手动校时, 能分别进行时、分的校正;(4)整点报时;选做: 可设置闹时功能, 当计时计到预定时间时, 扬声器发出闹铃信号, 闹铃时间为4s, 并可提前终止闹铃。
二、试验目的(1)掌握时十进制、六进制和二十四进制计数器的设计方法。
(2)掌握多位计数器相连的设计方法。
(3)掌握多位共阴极扫描显示数码管的驱动及编码。
三、总体设计方案本数字系统实现数字钟的基本的计时功能, 输入8Hz的时钟, 经过分频产生1Hz的时钟信号, 采用24/12小时制计时, 能显示时、分、秒。
本系统还具有校正功能, 能够进行时分的校时, 当计时器运行到59分59秒开始报时, 另外还能够设定闹钟, 当按下闹铃开关时, 可在规定时间闹铃, 当开关复位时, 闹铃停止。
本数字钟实际上是一个对频率(1Hz)进行计数的计数电路。
由于计数的起始时间不可能与标准时间一致, 故需要在电路上加一个校时电路, 同时分频后的1Hz时间信号必须做到准确稳定。
一般使用石英晶体振荡器电路构成数字钟。
数字钟的基本组成本数字钟的实现可分为以下几个模块:(1) 秒计数模块: 秒计数, 在频率为1Hz的时钟下以60次为循环计数, 并产生进位信号影响分计数;(2) 分计数模块: 分计数, 在秒进位信号为高电平时, 计数一次, 同样以60次为一个循环计数, 同时产生分进位信号影响时计数;(3) 时计数模块: 时计数, 在分进位信号为高电平时, 计数一次, 以24/12次为一个循环计数;(4) 频率产生模块: 产生8Hz的计数频率, 经过分频得到1Hz 频率;(5) 时间显示模块: 数码管经过动态显示, 同时进行一定频率的扫描显示时, 分, 秒。
(6) 时间设置模块: 设置调试使能端, 能够调时, 分, 秒。
eda课程设计数字钟

d: in std_logic_vector(7 downto 0);
fout: out std_logic);
end dvf;
architecture behav of dvf is
signal full: std_logic;
பைடு நூலகம்
begin
p_reg:process(clk)
variable cnt8: std_logic_vector(7 downto 0);
将标准秒信号送入“秒计数器”,“秒计数器”采 用60进制计数器,每累计60秒发出一个“分脉冲” 信号,该信号将作为“分计数器”的时钟脉冲。 “分计数器”也采用60进制计数器,每累计60分钟, 发出一个“时脉冲”信号,该信号将被送到“时计 数器”。“时计数器”采用24进制计时器,可实现 对一天24小时的累计。每累计24小时,发出一个 “星期脉冲”信号,该信号将被送到“星期计数 器”,“星期计数器” 采用7进制计时器,可实现 对一周7天的累计。工作原理图如图3.1所示。
数字钟的工作原理图
分频器电路
分频器电路将32768HZ的高频方波信号经 32768次分频后得到1Hz的方波信号供秒计数器 进行计数。分频器实际上也就是计数器。本次设 计是运用了CD4060分频器进行分频,分频电路 可提供512HZ和1024HZ的频率,在经CD4027 分频器进行一分频,为此电路输送一秒脉冲。
begin
if clk'event and clk='1' then --检测时钟上升沿
if cnt8= "11111111" then
eda整点报时时钟设计

EDA技术应用课程设计报告题目名称:多功能数字钟专业班级:姓名:学号:小组成员:指导教师:设计时间: 15-12-01~15-12-25 一、设计目的1.使得更加了解EDA的应用2.熟悉VHDL的编程。
3.对于编程语句的编辑与纠错有较大的提升4.提升对于设计方面的能力二、设计要求1.数字钟具有“时”、“分”、“秒”显示功能,其中时功能为24小时制。
2.数字钟具有校时和校分功能。
3.数字钟具有整点报时功能。
三、设计方案通过分别作出秒模块、分钟模块、小时模块、整点报时模块,导入动态扫描模块,再由其输出到数码管输出。
四、模块设计1.秒程序模块①有3输入3输出②reset为异步清零当没有信号时清零秒模块的计数③setmin为校分当有信号时想分模块进一位④daout_a与daout_b为输出的信号分别为秒的高位与低位⑤enmin 负责向下一个模块进位⑥clk为时钟信号2.分钟程序模块②3输入3输出②reset为异步清零当没有信号时清零分模块的计数③sethour为校分当有信号时向时模块进一位④daout_ma 分daout_mb 为输出的信号分别为分的高位与低位⑦enhour 负责向下一个模块进位⑧clk为时钟信号3.小时程序模块有2输入2输出②reset为异步清零当没有信号时清零时模块的计数③clk为时钟信号⑤daout_ha daout_hb 为输出的信号分别为时的高位与低位4.动态扫描模块①有八个输入端,两个输出端②reset为异步清零当没有信号时清零时模块的计数③daout为高位5.七段译码管模块①有1输入8输出②S为用来接收秒分时模块输出的信号③A~H 为转化后的信号用来接数码管6.整点报时模块①有5输入2输出②Clkspk为时钟信号③Miao_h Miao_lfen_hfen_h为从秒模块时模块接收的信号④Speak 接蜂鸣器,⑤Lamp 接LED作为报时时的闪烁灯五、模块程序1.秒模块设计(60计时制)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity shijian isport(reset,clk,setmin:in std_logic;daout_a:out std_logic_vector(7 downto 4);————输出高位daout_adaout_b:out std_logic_vector(3 downto 0); ————输出低位daou_benmin:out std_logic);————enmin是向分位进位信号end shijian;architecture behav of shijian issignal count:std_logic_vector(3 downto 0);signal counter:std_logic_vector(3 downto 0);signal carry_out1:std_logic;————59秒时的进位信号signal carry_out2:std_logic;beginp1:process(reset,clk)beginif reset='0'then——59秒时的进位信号count<="0000";counter<="0000";——若reset为0时,则高、低位异步清零elsif(clk'event and clk='1')then——否则clk为上升沿时if(counter<5)thenif(count=9)thencount<="0000"counter<=counter+1;elsecount<=count+1;end if;carry_out1<='0';——若高位counter<5,低位count=9,则低位清零,高位进一,否则低位进一,59秒时的进位信号carry_out1为0。
eda整点报时程序课程设计

eda整点报时程序课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握整点报时程序的设计原理;2. 学生能够运用所学知识,设计并实现一个简单的整点报时程序;3. 学生了解时钟信号的产生与处理方法,理解程序中的时间计算方法。
技能目标:1. 学生能够运用EDA软件进行电路设计和程序编写,具备实际操作能力;2. 学生通过课程实践,提高问题分析、程序调试和优化能力;3. 学生能够运用所学技能,解决实际生活中的时间显示问题。
情感态度价值观目标:1. 学生培养对电子设计自动化技术的兴趣,激发创新意识;2. 学生在课程实践中,培养团队合作精神和沟通能力,增强自信心;3. 学生认识到科技对生活的改变,增强社会责任感和使命感。
课程性质:本课程为电子信息类课程,旨在让学生掌握EDA技术的基本原理和应用,培养实际操作能力。
学生特点:学生具备一定的电子技术基础知识,对编程和设计有一定了解,但可能缺乏实际操作经验。
教学要求:结合学生特点,课程注重实践操作,让学生在动手过程中掌握知识,提高技能,培养正确的情感态度价值观。
通过分解课程目标为具体学习成果,为教学设计和评估提供依据。
二、教学内容1. EDA技术概述:介绍EDA技术的定义、发展历程和应用领域,使学生了解EDA技术的重要性。
教材章节:第一章 电子设计自动化概述内容列举:EDA技术定义、发展历程、应用领域2. 整点报时程序设计原理:讲解时钟信号产生、处理方法,以及程序中的时间计算方法。
教材章节:第三章 时序逻辑电路设计内容列举:时钟信号产生、处理方法;时间计算方法;整点报时程序设计原理3. EDA软件操作:教授EDA软件的使用方法,包括电路设计、程序编写和仿真调试。
教材章节:第二章 EDA软件及其操作内容列举:EDA软件安装与界面;电路设计;程序编写与仿真调试4. 实践操作:指导学生进行整点报时程序的电路设计和程序编写,进行实际操作。
EDA技术课程设计数码管显示数字钟设计

课程设计任务书设计题目1:数码管显示数字钟设计院(系)分管领导:教研室主任:指导教师:2017年6月23日目录第1章引言 0第2章电路原理 0第3章程序设计 (1)顶层模块设计 (2)时钟分频模块设计 (2)按键驱动模块设计 (2)时钟计数模块设计 (3)整点报时模块 (4)LED灯花腔显示模块 (5)数码管显示模块设计 (6)第4章调试、测试分析及结果 (7)调试 (7)测试分析 (8)结果 (9)第5章小结 (10)参考文献 (11)附录电路图及程序 (12)第1章引言EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从运算机辅助设计(CAD)、运算机辅助制造(CAM)、运算机辅助测试(CAT)和运算机辅助工程(CAE)的概念进展而来的。
EDA技术确实是以运算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL或Verilog HDL完成设计文件,然后由运算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直相当于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的显现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
Verilog HDL是一种描述语言,以来描述硬件的结构和行为的语言,用它能够表示逻辑电路图、,还能够表示数字逻辑系统所完成的逻辑功能。
这次课程设计咱们运用QuartusⅡ那个软件,利用Verilog HDL语言进行编程。
数字钟是一种用数字电路技术实现时、分、秒计时的钟表。
与机械钟相较具有更高的准确性和直观性,具有更长的利用寿命,已取得普遍的利用。
数字钟的设计方式有许多种,例如可用中小规模集成电路组成电子钟,也能够利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还能够利用单片机来实现电子钟等等。
这些方式都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。
EDA整点报时课程设计

EDA整点报时课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握整点报时的原理。
2. 学生能运用所学知识,设计并实现一个简单的整点报时电路。
3. 学生了解时钟信号的基本特性,理解晶振在时钟电路中的作用。
技能目标:1. 学生通过本课程的学习,具备使用EDA软件进行电路设计和仿真的能力。
2. 学生能够运用电子元件搭建整点报时电路,并解决实际操作过程中遇到的问题。
3. 学生能够进行简单的电路调试和优化,提高电路的稳定性和准确性。
情感态度价值观目标:1. 培养学生对电子工程领域的兴趣,激发他们探索未知、勇于创新的科学精神。
2. 学生通过团队协作完成课程任务,培养合作意识,提高沟通能力。
3. 学生在课程实践中,体验到学以致用的成就感,增强自信心。
课程性质:本课程为实践性较强的课程,结合理论教学和实际操作,旨在培养学生运用EDA技术解决实际问题的能力。
学生特点:学生具备一定的电子基础知识,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:教师需注重理论与实践相结合,引导学生主动参与,关注学生的个体差异,提供有针对性的指导。
通过课程学习,使学生在知识、技能和情感态度价值观方面均有所提升。
二、教学内容本课程以《电子技术》教材中关于EDA技术和时钟电路的相关章节为基础,结合以下教学内容:1. EDA技术简介:介绍EDA技术的发展、基本概念及其在电子设计中的应用。
2. 时钟信号原理:讲解时钟信号的基本特性、晶振的工作原理及其在时钟电路中的作用。
3. 整点报时电路设计:分析整点报时电路的原理,介绍常见电路元件的选用和连接方法。
4. EDA软件操作:教授EDA软件的基本操作,包括原理图绘制、电路仿真和PCB布线等。
5. 电路搭建与调试:指导学生使用电子元件搭建整点报时电路,并进行调试和优化。
教学内容安排和进度如下:1. 第1课时:介绍EDA技术及其在电子设计中的应用。
2. 第2课时:学习时钟信号原理,了解晶振的作用。
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处产生进位,然后将它进行封装。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子学课程设计报告带有整点报时的数字钟设计与制作目录一、课程设计的性质、目的和任务 (3)二、课程设计基本要求 (3)三、设计课题要求 (3)四、课程设计所需要仪器 (4)五、设计步骤 (4)1、整体设计框图 (4)2、各个模块的设计与仿真 (4)2.1分频模块 (4)2.2计数器模块 (6)2.3控制模块 (10)2.4数码管分配 (13)2.5显示模块 (14)2.6报时模块 (16)六、调试中遇到的问题及解决的方法 (18)七、心得体会 (18)一、课程设计的性质、目的和任务创新精神和实践能力二者之中,实践能力是基础和根本。
这是由于创新基于实践、源于实践,实践出真知,实践检验真理。
实践活动是创新的源泉,也是人才成长的必由之路。
通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。
二、课程设计基本要求掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。
三、设计课题要求(1)构造一个24小时制的数字钟。
要求能显示时、分、秒。
(2)要求时、分、秒能各自独立的进行调整。
(3)能利用喇叭作整点报时。
从59分50秒时开始报时,每隔一秒报时一秒,到达00分00秒时,整点报时。
整点报时声的频率应与其它的报时声频有明显区别。
#设计提示(仅供参考):(1)对频率输入的考虑数字钟内所需的时钟频率有:基准时钟应为周期一秒的标准信号。
报时频率可选用1KHz和2KHz左右(两种频率相差八度音,即频率相差一倍)。
另外,为防止按键反跳、抖动,微动开关输入应采用寄存器输入形式,其时钟应为几十赫兹。
(2)计时部分计数器设计的考虑分、秒计数器均为模60计数器。
小时计数为模24计数器,同理可建一个24进制计数器的模块。
(3)校时设计的考虑数字钟校准有3个控制键:时校准、分校准和秒校准。
微动开关不工作,计数器正常工作。
按下微动开关后,计数器以8Hz频率连续计数(若只按一下,则计数器增加一位),可调用元件库中的逻辑门建一个控制按键的模块,即建立开关去抖动电路(见书70页)。
(4)报时设计的考虑可以将高频时钟分频得到约2KHz和1KHz的音频,作为数字钟的报时频率。
当电子钟显示XX:59:50时,数字钟开始报时“DO",持续一秒,而且每隔一秒报一下,直至显示XX:00:00时报“DI",持续一秒后停止。
最后输出至喇叭。
应调用元件库中的逻辑门建一个控制报时的模块。
(5)建一个七段译码的模块因在系统可编程器件实验箱上的数码管没有经过译码,故要用AHDL语言写一个七段译码的模块,且应考虑数码管为共阳极。
数码管上的点(D2、D4、D6)应置Vcc。
四、课程设计所需要仪器1、计算机一台2、quartusⅡ软件3、FPGA开发板五、设计步骤1、模块介绍(1)分频模块:产生1Hz、1KHz、2KHz频率(2)计数器模块:生成60进制、24进制计数器(3)控制模块:按键控制、按键消抖(4)显示模块:7段数码管显示器,分别显示小时、分钟、秒(5)报时模块:进行整点报时2、各个模块的设计与仿真2.1分频模块CLK晶振频率50MHZ,分成2KHZ,1KHZ,1HZ的信号。
基准1HZ信号作为时钟计时的秒计数时钟信号;分频的1KHZ,2KHZ信号用于报时电路的不同声讯。
程序代码:library ieee;use ieee.std_logic_1164.all;entity fre isport(clk ,sel: in std_logic;clk1hz,clk1khz,clk2khz:out std_logic);end fre;architecture beh of fre issignal data1khz,data2khz,data1hz : std_logic := '0';beginclk1hz <= data1hz;clk1khz <= data1khz;clk2khz <= data2khz;clk1khz_pro : process(clk) --产生1khz信号 variable cnt : integer range 0 to 24999;beginif clk'event and clk='1' thenif cnt = 24999 thencnt := 0 ; data1khz <= not data1khz;elsecnt := cnt + 1;end if;end if;end process clk1khz_pro;clk2khz_pro : process(clk) --产生2khz信号 variable cnt : integer range 0 to 12499;beginif clk'event and clk='1' thenif cnt = 12499 thencnt := 0 ; data2khz <= not data2khz;elsecnt := cnt + 1;end if;end if;end process clk2khz_pro;clk1hz_pro : process(data1khz) --产生1hz 信号 variable cnt : integer range 0 to 499;beginif data1khz'event and data1khz='1' thenif sel='0' then cnt:=0;else if cnt = 499 thencnt := 0 ;data1hz <= not data1hz ;elsecnt := cnt + 1;end if;end if;end if;end process clk1hz_pro;end beh;输入模块电路图:f reinst clk sel clk1hzclk1khzclk2khz2.2计数器模块由秒计数器,分计数器,时计数器组成了最基本的数字钟计时电路,两个六十进制计数器与二十四进制计数器组合构成。
程序代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use IEEE.STD_LOGIC_ARITH.ALL;entity shuzizhong isport(clk_change : in std_logic;s_en,m_en,h_en:in std_logic;sel:in std_logic;secout,minout,hourout :out std_logic;sl,sh,ml,mh,hl,hh:out std_logic_vector(3 downto 0);a:out std_logic_vector(15downto 0));end shuzizhong;architecture behav of shuzizhong issignallow_rega,high_rega,low_regb,high_regb,low_regc,high_regc :std_log ic_vector(3 downto 0):="0000";signal sout,mout,hout :std_logic :='0';begin--秒的60进制进制 counter_sec_l : process(clk_change,s_en)beginsl<=low_rega;sh<=high_rega;ml<=low_regb;mh<=high_regb;hl<=low_reg c;hh<=high_regc;if clk_change'event and clk_change='1' thenif s_en='1' thenif low_rega="1001" thenlow_rega <= "0000";elselow_rega <= low_rega+'1';end if;end if;end if;end process counter_sec_l;counter_sec_h : process(clk_change,s_en,low_rega)beginif clk_change'event and clk_change='1' thenif s_en='1' thenif low_rega="1001" thenif high_rega ="0101"thenhigh_rega <= "0000";elsehigh_rega <= high_rega+'1'; end if;end if;end if;end if;end process counter_sec_h;sout <= '1' when low_rega="1001" and high_rega="0101" else '0';----分钟的60进制设置counter_min_l : process(clk_change,m_en)beginif clk_change'event and clk_change='1' thenif m_en='1' thenif sout='1'or sel='0' thenif low_regb="1001" thenlow_regb <= "0000";elselow_regb <= low_regb+'1';end if;end if;end if;end if;end process counter_min_l;counter_min_h : process(clk_change,m_en,low_regb)beginif clk_change'event and clk_change='1' thenif sout='1'or sel='0' thenif m_en='1' thenif low_regb="1001" thenif high_regb ="0101"thenhigh_regb <= "0000";elsehigh_regb <= high_regb+'1'; end if;end if;end if;end if;end if;end process counter_min_h;mout <= '1' when low_regb="1001" and high_regb="0101"and sout='1' else '0';--小时的24进制设置counter_hour_l : process(clk_change,h_en)beginif clk_change'event and clk_change='1' thenif h_en='1' thenif mout='1'or sel='0' thenif low_regc="1001"or hout='1' thenlow_regc <= "0000";elselow_regc <= low_regc+'1';end if;end if;end if;end if;end process counter_hour_l;counter_hour_h : process(clk_change,h_en,hout)beginif clk_change'event and clk_change='1' then if mout='1'or sel='0' thenif h_en='1' thenif hout='1' thenhigh_regc<="0000";else if low_regc="1001" thenhigh_regc <= high_regc+'1'; end if;end if;end if;end if;end if;end process counter_hour_h;hout <= '1' when low_regc="0011" and high_regc="0010" else '0'; secout<=sout;minout<=mout;hourout<=hout;a<=high_regb&low_regb&high_rega&low_rega ;end behav;输入模块电路图:shuzizhonginst clk_changes_enm_enh_ensel secout minout hourout sl[3..0]sh[3..0]ml[3..0]mh[3..0]hl[3..0]hh[3..0]a[15..0]2.3控制模块分五个状态0状态正常计时,按下按键进入下一状态开始调时模式1,按下按键进入调秒模式2,按下按键进入调分模式3,按下按键进入调小时模式4.按下按键恢复正常计时模式。