数电实验——多功能数字钟
数字电子技术课程设计--多功能数字钟
目录第一章设计任务 (4)1.1 设计题目及要求 (4)1.1.1 题目 (4)1.1.2 设计要求 (4)第二章方案设计 (5)2.1 总体方案说明 (5)2.2 模块结构以及总体方框图 (5)第三章单元电路设计与原理说明 (6)3.1 按键消抖电路的设计 (6)3.1.1 RS触发器消抖 (6)3.2 分频器的设计 (7)3.2.2 1000分频器 (7)3.3基础电子钟及其显示设计 (8)3.3.1 时钟计数器 (8)3.3.2 功能选择及校准 (9)3.4整点报时器的设计 (10)3.5数码管显示切换电路的设计 (11)3.6 闹钟及其显示的设计 (12)第四章整机电路图及说明 .............................................................. 错误!未定义书签。
4.1整体电路图及说明................................................................................ 错误!未定义书签。
第五章电路仿真 (15)5.1基本时钟电路及其时间设置功能仿真 ................................................ 错误!未定义书签。
5.1.1基本计时功能的仿真............................................................. 错误!未定义书签。
5.1.2时间设置功能的仿真............................................................. 错误!未定义书签。
5.2整点报时功能的仿真............................................................................ 错误!未定义书签。
数电课设-数字钟
数字钟一.基本功能1、设计一个数字钟,能够显示当前时间,分别用6个数码管显示小时、分钟、秒钟的时间,秒针的计数频率为1Hz,可由系统脉冲分频得到。
2、在整点进行提示,可通过LED闪烁实现,闪烁频率及花型可自己设计。
3、能够调整小时和分钟的时间,调整的形式为通过按键进行累加。
4、具有闹钟功能,闹钟时间可以任意设定(设定的形式同样为通过按键累加),并且在设定的时间能够进行提示,提示同样可以由LED闪烁实现。
二.扩展功能1、设计模式选择计数器,通过计数器来控制各个功能之间转换。
2、调整当前时间以及闹钟时间,在按键累加的功能不变的基础上,增加一个功能,即当按住累加键超过3秒,时间能够以4Hz的频率累加。
3、用LCD液晶屏来显示当前时间及功能模式。
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity clock isport(clk: in std_logic; --27M晶振key3,key2,key0: in std_logic:='1'; --时、分、模式按钮,下降沿触发ledg: o ut std_logic_vector(2 downto 0):="000"; --整点提示ledr: out std_logic_vector(2 downto 0):="000"; --闹铃hex7,hex6,hex5,hex4,hex3,hex2,hex0,hex1: out std_logic_vector(6 downto 0) --数码管显示);end;architecture a of clock issignal x: integer range 1 to 13500000:=1; --记27M的上升沿个数signal clka: std_logic; --1HZsignal temp1,temp2,temp3,temp4,temp5,temp6: std_logic_vector(3 downto 0):="0000"; --时分秒走时signal xianshi1,xianshi2,xianshi3,xianshi4,xianshi5,xianshi6:std_logic_vector(3 downto 0):="0000"; --数码管显示signal temp0: std_logic_vector(1 downto 0):="00"; --模式显示signal tfen1,tfen2,tshi1,tshi2,nfen1,nfen2,nshi1,nshi2: std_logic_vector(3 downto 0); --调时和闹铃时的分、时的个位和十位signal naoling1,naoling2,naoling3,naoling4: std_logic_vector(3 downto 0); --闹铃调时时的显示begin--分频,产生1HZ的时钟process(clk)beginif clk'event and clk='1' thenx<=x+1;if x=13500000 thenclka<=not clka; --27M每13500000个上升沿clka取反x<=1;end if;end if;end process;--模式选择器,用按键控制,有0、1、2 三种模式process(key0)beginif key0'event and key0='0' thenif temp0="10" then --模式2时,再按键则进入模式0temp0<="00";elsetemp0<=temp0+1;end if;end if;end process;--模式用数码管显示process(temp0)begincase temp0 iswhen "00" => hex0<="1000000";--显示0when "01" => hex0<="1111001";--显示1when "10" => hex0<="0100100";--显示2when others => hex0<="0000000";--显示全亮end case;end process;--模式1时,调时,调节时钟的分process(key2,temp0)beginif temp0="01" thenif key2'event and key2='0' thenif tfen1="1001" then --个位到9,十位加1if tfen2="0101" then --加到59,则归零tfen1<="0000";tfen2<="0000";elsetfen2<=tfen2+1;tfen1<="0000";end if;elsetfen1<=tfen1+1;end if;end if;end if;end process;--模式1时,调时,调节时钟的时process(key3,temp0)beginif temp0="01" thenif key3'event and key3='0' thenif tshi1="1001" then ----个位到9,十位加1tshi1<="0000";tshi2<=tshi2+1;elsif tshi1="0011" and tshi2="0010" then --到23,则归零tshi1<="0000";tshi2<="0000";elsetshi1<=tshi1+1;end if;end if;end if;end process;--模式2时,设定闹铃,设定时钟的分process(key2,temp0)beginif temp0="10" thenif key2'event and key2='0' thenif nfen1="1001" then ----个位到9,十位加1if nfen2="0101" then --加到59,则归零nfen1<="0000";nfen2<="0000";elsenfen2<=nfen2+1;nfen1<="0000";end if;elsenfen1<=nfen1+1;end if;end if;end if;end process;--模式2时,设定闹铃,设定时钟的时process(key3,temp0)beginif temp0="10" thenif key3'event and key3='0' thenif nshi1="1001" then ----个位到9,十位加1nshi1<="0000";nshi2<=nshi2+1;elsif nshi1="0011" and nshi2="0010" then --到23,则归零nshi1<="0000";nshi2<="0000";elsenshi1<=nshi1+1;end if;end if;end if;end process;--三种模式间的显示及传递process(clka,temp0)beginif temp0="01" then --模式1时,传递调时的时,分temp3<=tfen1;temp4<=tfen2;temp5<=tshi1;temp6<=tshi2;xianshi3<=temp3; --模式1时,显示时,分xianshi4<=temp4;xianshi5<=temp5;xianshi6<=temp6;elsif temp0="10" then --模式2时,传递闹铃的时,分naoling1<=nfen1;naoling2<=nfen2;naoling3<=nshi1;naoling4<=nshi2;xianshi3<=naoling1; --模式2时,显示闹铃的时,分xianshi4<=naoling2;xianshi5<=naoling3;xianshi6<=naoling4;elsifclka'event and clka='1' then --正常走时,即temp0=00if temp1="1001" then --秒的个位到9,十位加1if temp2="0101" then --秒到59,则归零,分的个位加1temp1<="0000";temp2<="0000";temp3<=temp3+1;if temp3="1001" then --分的个位到9,十位加1if temp4="0101" then --分到59,则归零,时的个位加1temp3<="0000";temp4<="0000";temp5<=temp5+1;if temp5="1001" then --时的个位到9,十位加1temp5<="0000";temp6<=temp6+1;elsif temp5="0011" and temp6="0010" then --时到23,则归零temp5<="0000";temp6<="0000";end if;elsetemp3<="0000";temp4<=temp4+1;end if;elsetemp3<=temp3+1;end if;elsetemp1<="0000";temp2<=temp2+1;end if;elsetemp1<=temp1+1;end if;----到设置的闹铃时则ledr(0--2)三个灯亮,一分钟后熄灭if temp3=naoling1 and temp4=naoling2 and temp5=naoling3 and temp6=naoling4 thenledr<="111";elseledr<="000";end if;----到整点时时则ledg(0--2)三个灯亮,一分钟后熄灭if temp3="0000" and temp4="0000" thenledg<="111";elseledg<="000";end if;--将走时传递给显示译码xianshi1<=temp1;xianshi2<=temp2;xianshi3<=temp3;xianshi4<=temp4;xianshi5<=temp5;xianshi6<=temp6;end if;end process;----数码管显示译码process(xianshi1,xianshi2,xianshi3,xianshi4,xianshi5,xianshi6) begincase xianshi1 iswhen "0000" => hex2<="1000000";when "0001" => hex2<="1111001";when "0010" => hex2<="0100100";when "0011" => hex2<="0110000";when "0100" => hex2<="0011001";when "0101" => hex2<="0010010";when "0110" => hex2<="0000010";when "0111" => hex2<="1111000";when "1000" => hex2<="0000000";when "1001" => hex2<="0010000";when others => hex2<="1000000";end case;case xianshi2 iswhen "0000" => hex3<="1000000";when "0001" => hex3<="1111001";when "0010" => hex3<="0100100";when "0011" => hex3<="0110000";when "0100" => hex3<="0011001";when "0101" => hex3<="0010010";when others => hex3<="1000000";end case;case xianshi3 iswhen "0000" => hex4<="1000000";when "0001" => hex4<="1111001";when "0010" => hex4<="0100100";when "0011" => hex4<="0110000";when "0100" => hex4<="0011001";when "0101" => hex4<="0010010";when "0110" => hex4<="0000010";when "0111" => hex4<="1111000";when "1000" => hex4<="0000000";when "1001" => hex4<="0010000";when others => hex4<="1000000";end case;case xianshi4 iswhen "0000" => hex5<="1000000";when "0001" => hex5<="1111001";when "0010" => hex5<="0100100";when "0011" => hex5<="0110000";when "0100" => hex5<="0011001";when "0101" => hex5<="0010010";when others => hex5<="1000000";end case;case xianshi5 iswhen "0000" => hex6<="1000000";when "0001" => hex6<="1111001";when "0010" => hex6<="0100100";when "0011" => hex6<="0110000";when "0100" => hex6<="0011001";when "0101" => hex6<="0010010";when "0110" => hex6<="0000010";when "0111" => hex6<="1111000";when "1000" => hex6<="0000000";when "1001" => hex6<="0010000";when others => hex6<="1000000";end case;case xianshi6 iswhen "0000" => hex7<="1000000";when "0001" => hex7<="1111001";when "0010" => hex7<="0100100";when others => hex7<="1000000";end case;hex1<="1111111"; ---关闭hex1数码管end process;end;。
多功能数字钟数电课程设计实验报告
(数电课程设计)实验报告(理工类)2021 至2021 学年度第二学期课程名称多功能数字钟电路设计系别班级电气系11级电子信息工程一班指导教师周旭胜学号姓名耿王鑫1一、谷和伟12贺焕13、黄兴荣14解军1五、井波16李丰17、李小飞18梁富慧19目录一、设计要求及任务 ...................................................................................... 错误!未定义书签。
二、系统设计方案 ........................................................................................ 错误!未定义书签。
三、器件选择 ................................................................................................ 错误!未定义书签。
1、74LS160............................................................................................... 错误!未定义书签。
2、74LS107............................................................................................... 错误!未定义书签。
3、74LS90................................................................................................. 错误!未定义书签。
显示屏....................................................................................................... 错误!未定义书签。
多功能数字钟电路设计实验报告
多功能数字钟电路设计实验报告实验目的:设计一个多功能数字钟电路,能够显示当前时间,并具备闹钟、秒表和计时等功能。
实验原理:1. 数码管显示:使用4位共阴极数码管进行显示,采用BCD码方式输入。
2. 按键输入:使用按键进行时间的调节和选择功能。
3. 时钟频率:使用晶体振荡器提供系统时钟,通过分频电路控制时钟频率。
实验器材:1. 4位共阴极数码管2. 按键开关3. 74LS90分频器4. 时钟晶体振荡器5. 耐压电容、电阻等元件6. 电路连接线实验步骤:1. 连接电路:根据电路原理图,将数码管、按键开关、74LS90分频器、晶体振荡器等连接起来,注意接线正确。
2. 编写程序:根据实验要求,编写相应的程序,实现时钟、闹钟、秒表和计时等功能。
3. 调试电路:将电路通电并运行程序,观察数码管的显示情况和按键功能是否正常。
4. 测试功能:分别测试多功能数字钟的时钟、闹钟、秒表和计时等功能,确保功能正常。
5. 完善实验报告:根据实验结果和观察情况,完善实验报告,并附上电路原理图、程序代码等。
实验结果:经过调试和测试,多功能数字钟电路能够正常显示时间,并具备时钟、闹钟、秒表和计时功能。
使用按键进行时间调节和功能选择,数码管根据不同功能进行相应的显示。
实验总结:通过本次实验,我掌握了多功能数字钟电路的设计原理和实现方法,并且了解了数码管显示、按键输入、时钟频率控制等相关知识。
实验过程中,我发现电路连接正确性对功能实现起到关键作用,同时合理编写程序也是确保功能正常的重要环节。
通过实验,我对数字电路的设计和实现有了一定的了解,并且培养了动手实践和解决问题的能力。
多功能数字闹钟电路设计实验报告
多功能数字闹钟电路设计实验报告
实验目的:设计一个多功能数字闹钟电路,能够显示时间、设定并响起闹铃。
实验原理:本实验采用数字集成电路实现数字显示和闹铃功能。
数字显示部分采用BCD到七段数码管解码器74LS47和共阴
七段数码管进行实现,闹铃部分采用555定时器集成电路作为发生器,通过驱动蜂鸣器发出声音。
实验仪器:多功能数字闹钟电路实验箱、数字集成电路
74LS47、七段数码管、555定时器集成电路、蜂鸣器、电源、
示波器等。
实验步骤:
1. 按照电路图连接电路。
将74LS47连接到七段数码管,将
555定时器连接到蜂鸣器和电路中相应的电源和地线。
2. 上电并调节电路供电电压。
3. 设定时间。
通过拨动开关和按钮进行时间的设定。
4. 切换闹钟状态。
通过开关切换闹钟的开启和关闭状态。
5. 监测闹钟时间。
借助示波器调整闹钟时间的精度。
6. 监测闹钟声音。
确认蜂鸣器发出的声音符合要求。
实验结果:实验中,我们成功设计并调试出了一个多功能数字闹钟电路。
通过拨动开关和按钮可以设定时间,并且可以通过切换开关来设置闹钟的开启和关闭状态。
实验中监测到的闹钟时间和声音都符合预期要求。
结论:通过本次实验,我们成功设计了一个多功能数字闹钟电路,实现了时间显示和闹铃功能。
实验结果显示该电路的性能良好,具有实用价值。
在实验中我们也学到了关于数字集成电路和定时器集成电路的使用和调试方法。
(数电)多功能数字钟—设计报告
1、设计内容及要求:①基本功能:以数字形式显示时、分、秒的时间,小时计数器的计时要求为24进制,并要求手动快校时、校分。
②扩展功能:整点报时。
2、系统设计原理:系统要求:数字电子钟由555集成芯片构成的振荡电路、计数器、译码器、显示器和校时电路组成。
555集成芯片构成的振荡电路产生的信号作为秒脉冲,秒脉冲送入计数器,计数结果通过“时”、“分”、“秒”译码器显示时间。
在功能方面,对于本次综合设计,还要求有校时与整点报时功能。
方案设计:图1. 数字钟电路框图电子钟的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和报时功能。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。
主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
系统工作原理:秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,用555振荡器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。
校时电路时用来对“时”、“分”显示数字进行校对调整。
3.单元电路的设计:3.1、基于555电路的秒脉冲发生器的设计3.1.1用555芯片设计一个多谐振荡器,输出方波用作计数器。
脉冲频率公式:f=1/(R1+2R2)C㏑2选择R1=1K,R2=5K,RV1=2K,C=100nF,形成电路图如图所示:图2. 555振荡器电路图仿真波形如图所示图3. 555脉冲仿真波形图555振荡器输出f=1000HZ,通过分频得出1HZ的脉冲,此脉冲当做秒时针脉冲。
数电实验——多功能数字钟
大连理工大学本科实验报告题目:多功能数字钟课程名称:《数字电路课程设计》学院(系):电子信息与电气工程学部专业:自动化班级:电自0801学生姓名:学号:200881142完成日期:2011年7月20日成绩:2011 年7 月20 日题目:多功能数字钟1 设计要求(1)一个具有“时”,“分”,“秒”的十进制数字显示(小时从00~23)计时器。
(2)具有手动校时,校分的功能。
(3)定时与闹钟功能,能在设定的时间发出闹铃声(4)能整点报时。
要求从59分54秒起报时,每隔2秒发出低音,,连续3次,在整点要求是高音。
2 设计分析及系统方案设计系统总体结果系统设计要求说明:(1)该秒表用模24、模60计数器实现24小时计时(2)在调节闹钟时不影响数字钟的正常走表;(3)在调节闹钟时要通过数码管显示出;3系统以及模块硬件电路设计根据上述给出的系统总体结构框图,给出系统硬件电路设计,并作必要的说明和理论计算。
由于“数字电路课程设计”课程采用实验箱完成,没有学时涉及有关FPGA芯片的使用,因此有关FPGA芯片的部分可以用“FPGA最小系统”模块框代替。
其余接口部分(按键,LED以及数码管,各种接口等需要设计电路以及参数)。
下载时选择的开发系统模式以及管脚定义表1 GW48-CK开发系统工作模式:模式0接口名称类型(输入/输出)结构图上的信号名引脚号说明en 输入PIO7 16 手动校时(1-调时,0-走表)th 输入PIO6 11 调时按键(en=1,或en1=1调时)en1 输入PIO5 10 闹钟设定(1-调时,0-不走)tm 输入PIO4 9 调分按键(en=1或en1=1,才可调分)alarmstop 输入PIO3 8 闹铃控制端clk 输入CLOCK1 42 系统走表时钟(f=1Hz)clk1 输入CLOCK0 2 闹钟与整点报时时钟(f=256Hz)clk2 输入CLOCK5 83 整点报时时钟时钟(f=1024Hz)qhh 输出PIO47-PIO44 79、78、73、72 输出小时的高位qlh 输出PIO43-PIO40 71、70、67、66 输出小时的低位qhm 输出PIO39-PIO36 65、64、62、61 输出分钟的高位qlm 输出PIO35-PIO32 60、59、58、54 输出分钟的低位qhs 输出PIO31-PIO28 53、52、51、50 输出秒的高位qls 输出PIO27-PIO24 49、48、47、39 输出秒的低位speaker 输出SPEAKER 3 输出蜂鸣器的时钟4 系统的VHDL设计系统的各个部分如何用VHDL设计出来的应该有说明,包括论述以及真值表或者状态图等。
电工电子综合实验多功能数字时钟
电工电子综合实验多功能数字时钟设计报告目录1、引言 (3)2、实验设计内容及要求 (4)3、设计电路的用途及原理简介 (5)4、单元电路设计原理 (5)5、电路的调试说明 (8)6、所遇到的问题及解决 (9)7、实验总结和体会 (9)8、附录(集成芯片引脚图和功能表) (10)一、引言(一)摘要:随着人类科技文明的发展,人们对于时钟的要求在不断地提高。
时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。
在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向。
本实验要求设计一个数字计时器,可以完成0分00秒~9分59秒的计时功能,并在控制电路的作用下有开机清零、快速校分、整点报时功能。
(二)关键字:电子时钟开机清零较分整点报时(A) Abstract:With the development of technological society, people demand the clock continues to improve. The clock has not only seen as a tool used to display the time, in many practical applications, it needs to be able to achieve more other features. High-precision, multifunction, small size, low power consumption, the development trend of the modern clock. In this trend, the clock's digital, multi-functional clock production research has become a modern leading design direction.In this study, to design a digital timer, you can complete the 0 minutes 00 seconds to 9 minutes and 59 seconds chronograph function and role in the control circuit is cleared under the boot, rapid school hours, the whole point timekeeping function.(B) Keywords:Electronic Clock boot cleared the whole point timekeeping compared with sub -二、实验设计内容及要求1、设计内容简介:要求设计一个数字计时器,可以完成0分00秒~9分59秒的计时功能,并在控制电路的作用下有开机清零、快速校分、整点报时功能。
多功能数字钟实验
实验名称:多功能数字钟的设计实验名称4-2线优先级编码器加减十进制计数器用FPGA器件和EDA技术实现多功能数字钟的设计实验任务及要求一、4-2线译码器(一)、设计要求:1、用Verilog HDL编写一个4线2线优先编码器。
2、用实验板上的发光二极管或译码显示电路显示结果。
(二)、设计分析:1、优先编码器:允许同时输入两个以上的有效编码信号。
当同时输入几个有效编码信号时,优先编码器能按预先设定的优先级别,只对其中优先权最高的一个进行编码。
2、4线-2线优先编码器:根据轻重缓急,规定好这些控制对象允许操作的先后次序,即优先级别。
识别这类请求信号的优先级别并进行编码的逻辑部件称为优先编码器。
4线-2线优先编码器的功能表如下:(三)、源代码://****** 4-2线译码器******module Yimaqi_42(In,out_coding);input[3:0]In;output[1:0]out_coding;wire[3:0]In;reg[1:0]out_coding;always@(In)begincasez(In)4'b1???:out_coding=2'b11;4'b01??:out_coding=2'b10;4'b001?:out_coding=2'b01;4'b000?:out_coding=2'b00;//default:out_coding=2'b00;endcaseendEndmodule(四)、仿真波形二、十进制加减可逆计数器(一)、设计要求:1、用Verilog HDL编写一个十进制加减可逆计数器。
2、用实验板上的发光二极管或译码显示电路显示结果。
(二)、源代码://****** 十进制加减计数器******module counter (Q,CP,control);input CP,control;output [3:0] Q;reg [3:0] Q;always @(posedge CP)begincase(control)1'b1: if( Q > 4'd8) Q = 4'd0;else Q = Q + 1'd1;1'b0: if( Q < 4'd1) Q = 4'd9;else Q = Q - 1'd1;endcaseendendmodule(三)、仿真波形三、多功能数字钟的设计基本功能∙以数字形式显示时、分、秒的时间;∙小时计数器为同步24进制;∙要求可以手动校时、校分。
多功能数字钟—数电课程设计报告
1.设计任务与要求1.1产生1HZ的脉冲;1.2能显示时,分,秒,24小时进制;1.3可手动校正:能分别进行分、时的校正。
只要将开关置于手动位置。
可分别对分、时进行连续脉冲输入调整;1.4整点报时。
2.系统原理框图由振荡器输出稳定的高频脉冲信号作为时间基准,秒计数器满60向分计数器进位,分计数器满60向小时计数器进位,小时计数器按“24翻1”规律计数,计数器经译码器送到显示器;计数出现误差可用校时电路进行校时、校分、校秒,可发挥部分:使数字钟具有可整点报时与定时闹钟的功能。
数字钟的结构框图如图1所示图1数字钟的结构框图3.设计方案与论证3.1时间脉冲产生电路方案一:由集成电路定时器555与RC组成的多谐振荡器作为时间标准信号源。
555与RC振荡电路如图2所示图1 555与RC组成的多谐振荡器图方案二:振荡器是数字钟的核心。
振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,通常选用石英晶体构成振荡器电路。
石英晶体振荡器的作用是产生时间标准信号。
因此,一般采用石英晶体振荡器经过分频得到这一时间脉冲信号。
石英晶体振荡电路如图3所示图 2 石英晶体振荡器图方案三:由集成逻辑门与RC组成的时钟源振荡器门电路组成的振荡电路如图4所示图 3 门电路组成的多谐振荡器图用555组成的脉冲产生电路: R1=47kΩ,R2=47kΩ,C=10μF,则555所产生的脉冲的为:f=1/[(R1+2*R2)CLn2=1Hz,而设计要求为1Hz,在精度要求不是很高的时候可以使用。
石英晶体振荡电路:采用的32768晶体振荡电路,其频率为32768Hz,然后再经过15分频电路可得到标准的1Hz的脉冲输出.R的阻值,对于TTL门电路通常在0.7~2KΩ之间;对于CMOS门则常在10~100MΩ之间。
由门电路组成的多谐振荡器的振荡周期不仅与时间常数RC有关,而且还取决于门电路的阈值电压VTH ,由于VTH容易受到温度、电源电压及干扰的影响,因此频率稳定性较差,只能用于对频率稳定性要求不高的场合。
eda多功能数字钟实验报告
eda多功能数字钟实验报告EDA多功能数字钟实验报告一、引言数字钟是现代生活中常见的一种时间显示工具,其准确性和便携性使其成为人们生活中不可或缺的一部分。
本实验旨在设计并制作一款多功能数字钟,通过EDA(电子设计自动化)软件进行模拟和仿真,验证其功能和性能。
二、设计原理1. 时钟电路:采用CMOS(互补金属氧化物半导体)技术设计时钟电路,包括时钟发生器、计数器和显示器。
时钟发生器产生稳定的方波信号,计数器根据方波信号进行计数,显示器将计数结果以数字形式显示出来。
2. 功能模块:多功能数字钟除了显示时间外,还应具备日期显示、闹钟设置、温度检测等功能。
为实现这些功能,需要添加相应的模块,如时钟芯片、温度传感器、闹钟电路等。
三、电路设计1. 时钟电路设计:根据设计原理,使用EDA软件进行电路设计,选择合适的元器件和连接方式。
通过仿真验证电路的工作稳定性和准确性。
2. 功能模块设计:根据需求,添加相应的功能模块。
时钟芯片用于精确计时和日期显示,温度传感器用于检测环境温度并显示,闹钟电路用于设置闹钟时间并触发报警。
四、电路实现1. 元器件选取:根据电路设计需求,选择合适的元器件。
时钟芯片应具备高精度和稳定性,温度传感器应具备高灵敏度和准确度,闹钟电路应具备可调节和触发功能。
2. 电路布局:将选取的元器件按照电路设计进行布局,注意元器件之间的连接和布线,避免干扰和短路。
3. 电路连接:根据电路设计进行元器件之间的连接,注意连接的正确性和稳定性。
五、仿真与测试1. 仿真验证:使用EDA软件进行电路仿真,检查电路的稳定性和准确性。
通过仿真结果对电路进行调整和优化,确保其正常工作。
2. 功能测试:对多功能数字钟进行功能测试,包括时间显示、日期显示、温度检测和闹钟设置等。
通过测试结果对电路进行调整和改进,确保其功能的完善和可靠性。
六、实验结果与分析经过仿真和测试,多功能数字钟实现了准确的时间显示、日期显示、温度检测和闹钟设置等功能。
多功能数字钟实验报告
多功能数字钟实验报告基地班级:设计人:设计时间:指导老师:目录多功能数字钟实验报告 .......................................................................... - 1 -一、实验任务及要求................................................................... - 3 -1.基本功能............................................................................ - 3 -2.拓展功能............................................................................ - 3 -二、实验条件............................................................................. - 3 -1.软件 .................................................................................. - 3 -2.开发板............................................................................... - 3 -三、电路的设计过程................................................................... - 4 -1.工作原理与组成框图......................................................... - 4 -2.单元电路设计................................................................... - 4 - 模块(1)计时与调时电路 ................................................. - 7 -模块(2)12-24小时转换电路:....................................... - 11 -模块(3)显示电路:....................................................... - 12 -模块(4)报时电路:....................................................... - 14 -模块(5)闹钟电路:....................................................... - 17 - 3.总体仿真波形.................................................................. - 24 -四、调试过程............................................................................ - 28 -1. 调试步骤............................................................................ - 30 -2. 调试中遇到的问题及解决办法.............................................. - 30 -3. 最后观察到的实验结果........................................................ - 31 -五、实验的收获、体会与改进建议.............................................. - 32 -一、实验任务及要求用FPGA器件和EDA技术实现多功能数字钟的设计1.基本功能以数字形式显示时、分、秒的时间;小时计数器为同步24进制;要求手动校时、校分和自动校时、校分。
数电多功能电子时钟课程设计综述
电子技术课程设计题目名称多功能电子时钟设一、设计题目:多功能数字钟电路设计二、设计任务和要求:1. 以十进制数字形式显示时、分、秒的时间。
2.小时计数器的计时要求为“24翻1”,分钟和秒的时间要求为60进位。
3. 能实现手动快速校时、校分;4. 具有整点报时功能,报时声响为四低一高,最后一响为整点。
5. 具有定制控制(定小时)的闹钟功能。
6. 画出完整的电路原理图三、题目分析或内容摘要数字钟是一个简单的时序组合逻辑电路,数字钟的电路系统主要包括时间显示,脉冲产生,报时,闹钟四部分。
脉冲产生部分包括振荡器、分频器;时间显示部分包括计数器、译码器、显示器;报时和闹钟部分主要由门电路构成,用来驱动蜂鸣器。
与传统的机械钟相比,数字钟具有走时准确,显示直观、无机械传动装置等优点,因而得到了广泛的应用。
小到人们日常生活中的电子手表,大到车站、码头、机场等公共场所的大型数显电子钟。
四、整体构思或方案选择:数字钟电路系统由主体电路和扩展电路两大部分组成。
其中主体电路完成数字钟的基本功能,扩展电路完成数字钟的扩展功能:报时和定时功能。
该数字钟系统的工作原理是:振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。
秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。
计数器的输出分别经译码器送显示器显示。
计时出现误差时,可以用校时电路校时、校分。
各扩展电路必须在主体电路正常运行的情况下才能进行功能扩展。
另外,计时过程要具有报时功能,当时间到达整点前10秒开始,蜂鸣器1秒响1秒停地响5次。
报时声响为前四次低最后一高,最后一响为整点。
最后设定闹铃功能,即可在整点设置闹铃。
五具体实现:1.总体方框图定时器图1.总体方框图2.工作原理(1)振荡器是数字钟的核心。
振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度。
一般来说振荡器的频率越高,计时精度越高。
电子电工综合实验_多功能数字钟
目录Ⅰ - 设计要求Ⅱ - 各元件引脚布局图及逻辑功能Ⅲ - 各单元设计方法、过程、逻辑图Ⅳ - 整计时器电路图Ⅴ - 心得体会Ⅵ - 附录电工电子综合实验II——数字计时器的设计I、设计要求一、实验目的:1、掌握常见集成电路工作原理和使用方法。
2、学会单元电路设计与组合方法。
二、实验要求:实现00分00秒~59分59秒数字计时器。
三、实验内容:1、设计实现信号源电路(f1=1Hz,f2=2Hz,f3=500Hz,f4=1KHz)。
2、设计实现00分00秒~59分59秒数字计时器(计数、译码、显示)。
3、设计实现快速校分电路(K1,2Hz,校分时秒停止,含防抖动功能)。
4、设计实现可在任意时刻复位(K2)。
5、设计实现整点报时电路(59分53秒、59分55秒、59分57秒【三低~f3】,59分59秒【一高~f4】)。
6、整体完成00分00秒~59分59秒数字计时器电路。
四、实验器材:1、集成电路:NE555 一片(多谐振荡)CD4040 一片(分频)CD4518 两片(8421BCD码十进制计数器)CD4511 四片(译码)74LS00 三片(与非)74LS20 一片(4输入与非)74LS21 三片(4输入与门)74LS74 一片(D触发)2、电阻:1KΩ一只3KΩ一只330Ω四只3、电容:0.047uF 一只4、共阴极双字屏两块。
五、数字计时器逻辑框图:II、各元件引脚布局图及逻辑功能一、NE555 一片(多谐振荡):1、引脚布局图:图1 NE555引脚布局图2、内部结构图:图2 NE555内部结构图3、逻辑功能说明:NE555是在电子科技行业广为应用的一种集成电路,用途十分广泛。
在本电路中,构成时钟发生器,是整个电路的核心。
其引脚布局图如图1所示。
其中引脚1为接地端,引脚2和引脚6为输入端,引脚3为输出端,引脚4为复位清零端,引脚5为调整端(通常空置或通过一个电容接地),引脚7位放电端,引脚8为电源。
多功能数字钟设计实验报告
多功能数字钟设计实验报告多功能数字钟设计实验报告一、引言数字钟是一种常见的时间显示设备,其简洁明了的显示方式受到了广泛的欢迎。
然而,随着科技的不断发展,人们对于数字钟的功能要求也越来越高。
本实验旨在设计一款多功能数字钟,以满足人们对于时间显示设备的更多需求。
二、设计原理1. 时间显示:数字钟应能准确地显示当前的时间,包括小时、分钟和秒钟。
为了实现精确的时间显示,我们采用了基于晶体振荡器的时钟电路,并结合数码管显示技术,使得时间能够以数字形式直观地呈现。
2. 日期显示:除了时间显示外,数字钟还应具备日期显示的功能。
我们通过添加一个实时时钟模块,可以获取当前的日期信息,并通过数码管显示出来。
3. 闹钟功能:为了提醒用户重要的时间节点,我们在数字钟中加入了闹钟功能。
用户可以设置闹钟的时间,并在到达设定时间时,数字钟会发出声音或震动来提醒用户。
4. 温湿度显示:为了更好地满足用户的需求,我们还在数字钟中添加了温湿度显示功能。
通过接入温湿度传感器,数字钟可以实时监测当前的温度和湿度,并将其显示在数码管上。
5. 其他功能:除了以上功能外,我们还可以根据用户需求进行扩展,如倒计时功能、闪烁效果等。
三、实验步骤1. 硬件设计:根据设计原理,我们需要选择合适的元器件进行电路的搭建,包括晶体振荡器、数码管、实时时钟模块、温湿度传感器等。
2. 电路连接:根据电路原理图,将各个元器件按照正确的连接方式进行连接,确保电路的正常工作。
3. 程序编写:通过编写合适的程序代码,实现数字钟的各项功能。
包括时间显示、日期显示、闹钟功能、温湿度显示等。
4. 调试测试:在完成硬件连接和程序编写后,我们需要对数字钟进行调试测试,确保各项功能的正常运行。
可以通过模拟不同的时间、设置不同的闹钟时间等来测试数字钟的稳定性和准确性。
5. 优化改进:根据实际测试结果,我们可以对数字钟进行优化改进,提高其性能和稳定性。
例如,优化显示效果、增加功能扩展等。
多功能数字时钟实验报告
重庆交通大学开放性实验报告(A类)项目名称:多功能数字钟电路设计专业班级:电子2班学生姓名:***小组成员:何聪、范瑞目录多功能数字时钟设计 (3)摘要 (3)1.系统原理框图 (4)2.单元电路设计与仿真 (5)2.1时间脉冲产生电路 (5)2.2时间计数器电路 (6)2.3 十二与二十四小时的切换 (8)2.4校时电路 (8)2.5报时电路 (9)2.6电路总图 (9)3.PCB板的制作 (10)3.1 原理图的绘制 (10)3.2 PCB的制作 (11)3.3 PCB图 (12)4.心得与体会 (12)附录原件清单 (13)附件1 仿真电路图........................................... 错误!未定义书签。
附件2 电路原理图........................................... 错误!未定义书签。
附件3 PCB图................................................ 错误!未定义书签。
多功能数字时钟设计摘要数字电子钟实际上是一个对标准频率(1Hz)进行计数的计数电路。
由振荡电路形成秒脉冲信号,秒脉冲信号输入计数器进行计数,并把累计结果以“时”、“分”、“秒”的数字显示出来。
秒计数器电路计满60 后触发分计数器电路,分计数器电路计满60 后触发时计数器电路,当计满24 小时后又开始下一轮的循环计数。
一般由振荡电路、计数器、数码显示器等几部分组成。
振荡电路:主要用来产生时间标准信号,由NE555 组成的多谐振电路产生,但是因为时钟的精度主要取决于时间标准信号的频率及稳定度,所以一般采用石英晶体振荡器。
分频器:因为振荡器产生的标准信号频率很高,要是要得到“秒”信号,需一定级数的分频器进行分频。
计数器:有了“秒”信号,则可以根据60 秒为 1 分,24 小时为1 天的进制,分别设定“时”、“分”、“秒”的计数器,分别为60 进制,60 进制,24 进制计数器,并输出一分,一小时的进位信号。
多功能数字钟——校时闹钟
电子电路综合实验报告——多功能数字钟设计目录设计理念 (3)设计要求 (3)设计目的 (4)设计要求 (4)总体设计概要 (4)振荡器电路 (5)输出波形仿真图如图所示 (6)分频器电路 (6)时间计时单元的设计 (7)译码与显示电路的设计 (8)校时电路的设计 (9)方案一: (10)方案二: (11)定时控制电路的设计 (11).电子系统中常见实际问题的分析 (12)面包板和芯片的测试 (13)时间计数电路的连接与测试 (13)校正电路 (13)主要芯片介绍 (13)主体电路的装调 (14)时钟结果仿真 (16)面包板的使用及注意事项 (16)实验用到的器件 (16)设计理念20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,,因此在许多电子设备中被广泛使用。
电子钟是人们日常生活中常用的计时工具,而数字式电子钟又有其体积小、重量轻、走时准确、结构简单、耗电量少等优点而在生活中被广泛应用,因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。
本次设计以数字电子为主,分别对1S时钟信号源、秒计时显示、分计时显示、小时计时显示、整点报时及校时电路进行设计,然后将它们组合,来完成时、分、秒的显示并且有整点报时和走时校准的功能。
并通过本次设计加深对数字电子技术的理解以及更熟练使用计数器、触发器和各种逻辑门电路的能力。
电路主要使用集成计数器、译码集成电路、LED数码管及各种门电路和基本的触发器等,电路使用5号电池共电,很适合在日常生活中使用。
多功能数字钟(EDA设计)实验报告
多功能数字钟一、实验原理分析通过晶振产生的50MHz的脉冲,用分频器进行分频产生1Hz的脉冲信号,即作为时钟的1s的信号进行计数。
秒钟每计数60秒后产生进位使分钟显示加1,分钟满60循环至0。
为实现手动校准时间功能,可以对分和秒计数器进行加减。
为实现校准时间时候的闪烁,对数码管使用消隐,把数码管的接地端口接一个脉冲信号。
在实验过程中,要注意很多细节,比如进行按键消抖,手动调整时间时不会进位。
二、逻辑分析三、功能模块分析功能模块包括分频模块,时间计数及校准模块,数码管译码显示模块、判决模块和消抖模块1.分频模块该电路由多个70LS90经过分频将由晶振产生的50MHz分频为1Hz方波,供后续时钟电路使用。
这一模块是整个电路的基础。
2.时间计数及校准模块该模块连接至分频模块的信号输出端,以分频模块产生的1Hz 方波作为基础。
1Hz方波与秒同步,以秒为基础,分别实现电子钟中,分与时的运转,即1分钟=60秒,1小时=60分钟的循环运转。
为了修正电子钟在运行过程中产生的一些误差或其他认为错误,另设置校准功能,可以对电子钟的计时进行调整。
其中,此模块的逻辑部分需Verilog语言实现并进行封装。
此模块用到3个十进制计数器、2个六进制计数器和1个三进制计数器。
3.数码管译码显示模块本电子钟采用数码管来显示,可以简单、直观地表现出确切的时间,实现其他配套功能。
且数码管易于操作。
此模块中有四个数码管,每两个数码管分别显示小时与分钟。
由上一模块,即时间计数及校准模块中的时间计数器产生的数值,将其对应的七段码直接传送至相应的数码管译码显示。
4.判决模块该电路判决信号连接至开关,当开关选中数码管某位后,经过判决器令改为停止计数,并开始1秒闪烁,按动按键可实现手动调整。
5.消抖模块通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
数电课程设计多功能数字钟
数电课程设计多功能数字钟一、课程目标知识目标:1. 让学生理解数字电路基础知识,掌握组合逻辑电路和时序逻辑电路的设计原理;2. 使学生掌握数字钟的组成、工作原理及功能,能运用所学知识设计多功能数字钟;3. 帮助学生掌握数字电路的测试方法,学会分析并解决数字电路故障。
技能目标:1. 培养学生运用所学知识,结合实际需求,设计具有一定功能的数字电路的能力;2. 培养学生动手操作、调试和优化数字电路的技能;3. 培养学生运用EDA工具(如Multisim、Protel等)进行电路设计、仿真和测试的能力。
情感态度价值观目标:1. 培养学生对数字电路和电子技术的兴趣,激发学生探索科学技术的热情;2. 培养学生严谨、务实的学习态度,养成团队合作、互相学习的良好习惯;3. 培养学生关注社会发展,认识到电子技术在日常生活和国家建设中的重要作用。
课程性质分析:本课程为电子技术专业课程,旨在让学生掌握数字电路的基本原理和设计方法,通过设计多功能数字钟,提高学生的实践能力和创新能力。
学生特点分析:学生已具备一定的电子技术基础,具有较强的学习兴趣和动手能力,但部分学生对数字电路的原理和应用尚不熟悉。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力;2. 突出重点,分步骤讲解,确保学生掌握数字电路设计的基本方法;3. 注重培养学生的创新思维和团队合作精神,提高学生的综合素质。
二、教学内容1. 数字电路基础知识回顾:组合逻辑电路、时序逻辑电路的原理与设计方法,数字电路常用器件的特性和应用。
2. 数字钟原理及功能:讲解数字钟的组成、工作原理,介绍秒、分、时显示功能及闹钟、定时器等拓展功能。
3. 多功能数字钟设计:引导学生运用所学知识,结合实际需求,设计具有基本时间显示和至少一项拓展功能的数字钟。
a. 电路图设计:使用EDA工具绘制电路图;b. 电路仿真:运用EDA工具对设计电路进行功能仿真;c. 硬件制作:根据电路图焊接元器件,制作数字钟;d. 调试优化:对制作完成的数字钟进行调试,确保其正常运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连理工大学本科实验报告题目:多功能数字钟课程名称:《数字电路课程设计》学院(系):电子信息与电气工程学部专业:自动化班级:电自0801学生姓名:学号:200881142完成日期:2011年7月20日成绩:2011 年7 月20 日题目:多功能数字钟1 设计要求(1)一个具有“时”,“分”,“秒”的十进制数字显示(小时从00~23)计时器。
(2)具有手动校时,校分的功能。
(3)定时与闹钟功能,能在设定的时间发出闹铃声(4)能整点报时。
要求从59分54秒起报时,每隔2秒发出低音,,连续3次,在整点要求是高音。
2 设计分析及系统方案设计系统总体结果系统设计要求说明:(1)该秒表用模24、模60计数器实现24小时计时(2)在调节闹钟时不影响数字钟的正常走表;(3)在调节闹钟时要通过数码管显示出;3系统以及模块硬件电路设计根据上述给出的系统总体结构框图,给出系统硬件电路设计,并作必要的说明和理论计算。
由于“数字电路课程设计”课程采用实验箱完成,没有学时涉及有关FPGA芯片的使用,因此有关FPGA芯片的部分可以用“FPGA最小系统”模块框代替。
其余接口部分(按键,LED以及数码管,各种接口等需要设计电路以及参数)。
下载时选择的开发系统模式以及管脚定义4 系统的VHDL设计系统的各个部分如何用VHDL设计出来的应该有说明,包括论述以及真值表或者状态图等。
要求:系统(或顶层文件)结构描述,各个模块(或子程序)的功能描述;1)用原理图实现的,需包含以下内容:(1)系统原理图(2)主要模块或符号说明;主要模块:模60计数器,模24计数器,2)用VHDL语言实现的(1) 秒计数器(模60计数器)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity m_601 isport(clk: in std_logic;clk_1: out std_logic; --clk_1表进位qh,ql:out std_logic_vector(3 downto 0) –qh,ql表示十位与个位);end;architecture a of m_601 issignal qqh,qql: std_logic_vector(3 downto 0);signal tmp: std_logic;beginprocess(clk)beginif clk'event and clk='1' thenif qql=9 thenqql<="0000";if qqh=5 thenqqh<="0000";tmp<='1';elseqqh<=qqh+1;end if;elseqql<=qql+1;tmp<='0';end if;end if;end process;qh<=qqh;ql<=qql;clk_1<=tmp;end;秒计数器仿真图(2)分计数器(模60计数器)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity m_60 isport(clk,en,t: in std_logic; --在en=1控制的情况下,手动t校时clk_1: out std_logic; --clk_1表进位qh,ql:out std_logic_vector(3 downto 0) –qh,ql表十位与个位);end;architecture a of m_60 issignal qqh,qql: std_logic_vector(3 downto 0);signal tmp,tmp_1: std_logic;beginprocess(tmp_1)beginif tmp_1'event and tmp_1='1' thenif qql=9 thenqql<="0000";if qqh=5 thenqqh<="0000";tmp<='1';elseqqh<=qqh+1;end if;elseqql<=qql+1;tmp<='0';end if;end if;end process;qh<=qqh;ql<=qql;clk_1<=tmp;process(en,clk,t)beginif en='0' thentmp_1<=clk;elsetmp_1<=t;end if;end process;end;分计数器仿真图(3)小时计数器(模24计数器)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity m_24 isport(clk,en,t: in std_logic; --在en=1控制的情况下,手动t校时qh,ql:out std_logic_vector(3 downto 0)—qh,ql表十位与个位);end;architecture a of m_24 issignal tmp: std_logic;signal qqh,qql: std_logic_vector(3 downto 0);beginprocess(en,tmp,t)beginif en='0' thentmp<=clk;elsetmp<=t;end if;end process;process(tmp)beginif tmp'event and tmp='1' thenif qql=9 or(qql=4 and qqh=2) thenqql<="0000";if qqh=2 thenqqh<="0000";elseqqh<=qqh+1;end if;elseqql<=qql+1;end if;end if;end process;qh<=qqh;ql<=qql;end;小时计数器(模24计数器)仿真图(4)闹钟分钟计数器(模60计数器)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity m_60b isport(clk,en: in std_logic; --在en=1是,手动给clk,闹钟加1;qh,ql:out std_logic_vector(3 downto 0));end;architecture a of m_60b issignal qqh,qql: std_logic_vector(3 downto 0);beginprocess(en,clk)beginif clk'event and clk='1' thenif en='1' thenif qql=9 thenqql<="0000";if qqh=5 thenqqh<="0000";elseqqh<=qqh+1;end if;elseqql<=qql+1;end if;end if;end if;end process;qh<=qqh;ql<=qql;end;闹钟分钟计数器(模60计数器)仿真图(5)闹钟小时计数器(模24计数器)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity m_24b isport(clk,en: in std_logic;qh,ql:out std_logic_vector(3 downto 0));end;architecture a of m_24b issignal qqh,qql: std_logic_vector(3 downto 0); beginprocess(clk,en)beginif clk'event and clk='1' thenif en='1' thenif qql=9 or(qql=4 and qqh=2) thenqql<="0000";if qqh=2 thenqqh<="0000";elseqqh<=qqh+1;end if;elseqql<=qql+1;end if;end if;end if;end process;qh<=qqh;ql<=qql;end;闹钟小时计数器(模24计数器)仿真图(6)整个系统程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-------分钟模60计数器-------entity m_60 isport(clk,en,t: in std_logic;clk_1: out std_logic;qh,ql:out std_logic_vector(3 downto 0));end;architecture a of m_60 issignal qqh,qql: std_logic_vector(3 downto 0);signal tmp,tmp_1: std_logic;beginprocess(tmp_1)beginif tmp_1'event and tmp_1='1' thenif qql=9 thenqql<="0000";if qqh=5 thenqqh<="0000";tmp<='1';elseqqh<=qqh+1;end if;elseqql<=qql+1;tmp<='0';end if;end if;end process;qh<=qqh;ql<=qql;clk_1<=tmp;process(en,clk,t)beginif en='0' thentmp_1<=clk;elsetmp_1<=t;end if;end process;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;----------校分模60计数器---------entity m_60b isport(clk,en: in std_logic;qh,ql:out std_logic_vector(3 downto 0));end;architecture a of m_60b issignal qqh,qql: std_logic_vector(3 downto 0); beginprocess(en,clk)beginif clk'event and clk='1' thenif en='1' thenif qql=9 thenqql<="0000";if qqh=5 thenqqh<="0000";elseqqh<=qqh+1;end if;elseqql<=qql+1;end if;end if;end if;end process;qh<=qqh;ql<=qql;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-------秒表模60计数器-----entity m_601 isport(clk: in std_logic;clk_1: out std_logic;qh,ql:out std_logic_vector(3 downto 0));end;architecture a of m_601 issignal qqh,qql: std_logic_vector(3 downto 0); signal tmp: std_logic;beginprocess(clk)beginif clk'event and clk='1' thenif qql=9 thenqql<="0000";if qqh=5 thenqqh<="0000";tmp<='1';elseqqh<=qqh+1;end if;elseqql<=qql+1;tmp<='0';end if;end if;end process;qh<=qqh;ql<=qql;clk_1<=tmp;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;------校时模24计数器------entity m_24b isport(clk,en: in std_logic;qh,ql:out std_logic_vector(3 downto 0));end;architecture a of m_24b issignal qqh,qql: std_logic_vector(3 downto 0); beginprocess(clk,en)beginif clk'event and clk='1' thenif en='1' thenif qql=9 or(qql=4 and qqh=2) thenqql<="0000";if qqh=2 thenqqh<="0000";elseqqh<=qqh+1;end if;elseqql<=qql+1;end if;end if;end if;end process;qh<=qqh;ql<=qql;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;------小时模24计数器------entity m_24 isport(clk,en,t: in std_logic;qh,ql:out std_logic_vector(3 downto 0));end;architecture a of m_24 issignal tmp: std_logic;signal qqh,qql: std_logic_vector(3 downto 0);beginprocess(en,tmp,t)beginif en='0' thentmp<=clk;elsetmp<=t;end if;end process;process(tmp)beginif tmp'event and tmp='1' thenif qql=9 or(qql=4 and qqh=2) thenqql<="0000";if qqh=2 thenqqh<="0000";elseqqh<=qqh+1;end if;elseqql<=qql+1;end if;end if;end process;qh<=qqh;ql<=qql;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity top4 isport(clk,clk1,clk2,en,en1,th,tm,alarmstop:in std_logic;--clk:系统走表时钟(f=1Hz);clk1:闹钟与整点报时时钟(f=256Hz);clk2: 整点报时时钟(f=1024Hz);en.en1:分别是校时、校分与调闹铃的使能端;th,tm:是手动调节小时与分钟的时钟--------qls,qhs,qlm,qhm,qlh,qhh: out std_logic_vector(3 downto 0);--分别表示秒低高位,分高低位,时高低位--speaker:out std_logic );speaker:是喇叭end;architecture a of top4 iscomponent m_60port(clk,en,t: in std_logic;clk_1: out std_logic;qh,ql:out std_logic_vector(3 downto 0));end component;component m_601port(clk: in std_logic;clk_1: out std_logic;qh,ql:out std_logic_vector(3 downto 0));end component;component m_60bport(clk,en: in std_logic;qh,ql:out std_logic_vector(3 downto 0));end component;component m_24port(clk,en,t: in std_logic;qh,ql:out std_logic_vector(3 downto 0));end component;component m_24bport(clk,en: in std_logic;qh,ql:out std_logic_vector(3 downto 0));end component;signal fulls,fullm:std_logic; ---秒、分进位---signal:qhhtmp,qlhtmp,qhmtmp,qlmtmp,qhhaltmp,qlhaltmp,qhmaltmp, qlmaltmp,qlstmp,qhstmp:std_logic_vector(3 downto 0);--秒,分,时中间信号--signal speaker1,speaker2:std_logic; --闹钟与整点报时的中间信号beginu1:m_601 port map(clk,fulls,qhstmp,qlstmp);u2:m_60 port map(fulls,en,tm,fullm,qhmtmp,qlmtmp);u3:m_24 port map(fullm,en,th,qhhtmp,qlhtmp);u4:m_24b port map(th,en1,qhhaltmp,qlhaltmp);u5:m_60b port map(tm,en1,qhmaltmp,qlmaltmp);process(en1,qhhaltmp,qlhaltmp,qhmaltmp,qlmaltmp,qhhtmp,qlhtmp,qhmtmp,qlmtmp)beginif en1='1' then----在闹钟调节时,把闹钟显示的界面显示出来并且不影响时钟的正常走表----qhh<=qhhaltmp;qlh<=qlhaltmp;qhm<=qhmaltmp;qlm<=qlmaltmp;qhs<="0000";qls<="0000";else ---在en=0时显示正常走表---qhs<=qhstmp;qls<=qlstmp;qhh<=qhhtmp;qlh<=qlhtmp;qhm<=qhmtmp;qlm<=qlmtmp;end if;end process;----------闹钟---------process(alarmstop,qhhaltmp,qlhaltmp,qhmaltmp,qlmaltmp,qhhtmp,qlhtmpqhmtmp,qlmtmp),----当到预设时间时别且alarmstop=0是每隔2秒响一次----beginif qhhaltmp=qhhtmp and qlhaltmp=qlhtmp and qhmaltmp=qhmtmp andqlmaltmp=qlmtmpand (qlstmp=1 or qlstmp=3 or qlstmp=5 or qlstmp=7 or qlstmp=9)thenif alarmstop='0' thenspeaker2<=clk1;elsespeaker2<='0';end if;elsespeaker2<='0';end if;end process;------整点报时,每隔2秒响一次并且在整点时是高音-----process(en,qhmtmp,qlmtmp,qhstmp,qlstmp,clk1,clk2,clk)beginif en='0' and en1='0' thenif (qhmtmp=5 and qlmtmp=9) thenif clk='1' thenif (qhstmp=5 and qlstmp=4) or (qhstmp=5 and qlstmp=6)or (qhstmp=5 and qlstmp=8) thenspeaker1<=clk1;----响三下并且是低音----else speaker1<='0';end if;else speaker1<='0';end if;elsif (qhmtmp=0 and qlmtmp=0) thenif (qhstmp=0 and qlstmp=0) then------在整点时是高音----speaker1<=clk2;else speaker1<='0';end if;else speaker1<='0';end if;end if;end process;-------将闹钟或整点报时的信号都赋给蜂鸣器speaker--- speaker<=speaker1 or speaker2;end;整个系统仿真图:图1分针与时针的进位,整点报时图2 调节并显示闹钟时间图3 闹钟功能的实现图4 闹钟的暂停图5 手动校时,校分5 结论以及结果说明软件平台:MAX+PLUS2硬件平台:FPDA芯片:FLEX10K EPF10K10LC84-4工作模式:方式0实验结果说明:(1)在en=’0’且en1=’0’时,数字钟正常走表。