数电课设大作业数字钟

合集下载

数电课程设计数字钟

数电课程设计数字钟

洛阳理工学院课程设计课程名称数字电子技术课题名称多功能数字钟专业电器工程及其自动化班级学号姓名指导教师年月日洛阳理工学院学院课程设计任务书课程名称数字电子技术题目多功能数字钟专业班级学生姓名指导老师审批任务书下达日期年月日设计完成日期年月日目录一、设计总体思路、基本原理 (7)二、设计框图 (8)三、单元电路设计 (9)1、分秒计数器电路 (9)2、24小时计数器电路 (10)3、整点报时电路 (11)4、校时电路设计 (13)5、秒脉冲产生器 (13)四、EWB软件和重要芯片的介绍 (15)五、仿真结果 (17)六、电路的安装与调试 (21)七、总结与体会 (23)八、附录 (25)九、参考文献 (25)十、整机原理图 (26)十一、评分表 (27)多功能数字钟课程设计一、设计总体思路和基本原理数字电子钟是一种用数字显示秒、分、时、日的计时装置,与传统的机械钟相比,它具有走时准确,显示直观、无机械传动装置、具有更长的使用寿命,等优点,因而得到了广泛的应用、小到人们日常生活中的电子手表,大到车站、码头、机场等公共场所的大型数显电子钟。

数字电子钟由以下几部分组成:秒脉冲发生器;校时电路;六十进制秒、分计数器,二十四进制(或十二进制)计时计数器;秒、分、时的译码显示部分。

从课程设计要求来看,数字钟主要分为数码显示器、60进制和24进制计数器、频率振荡器、校时电路和整点报时电路这几个部分。

数字钟要完成显示需要6个数码管,八段的数码管需要译码器才能显示,然后要实现时、分、秒的计时需要60进制计数器和24进制计数器,在仿真软件中发生信号可以用函数发生器仿真,频率可以随意调整。

频率振荡器可以由晶体振荡器分频来提供,也可以由555定时来产生脉冲并分频为1HZ。

方案可以采用74LS160同步十进制加法计数器或采用74LS161十六进制计数器或74LS192十进制异步清零计数器,也可进行组合来组成10进制和6进制的计数器。

数字电路课程设计电子数字钟+闹铃

数字电路课程设计电子数字钟+闹铃

数字电路课程设计电子数字钟+闹铃数字电路课程设计院系:专业:电子信息工程姓名:学号:完成日期:2021 数字钟的设计一、系统功能概述、系统实现的功能:1、具有“时”、“分”、“秒”的十进制数字显示。

2、具有手动校时、校分、校秒的功能。

3、有定时和闹钟功能,能够在设定的时间发出闹铃声。

4、能进行整点报时。

从59分50秒起,每隔2秒发一次低音“嘟”的信号,连续5次,最后一次为高音“嘀”的信号。

、各项设计指标:1、显示部分采用的6个LED显示器,从高位至低位分别显示时、分、秒。

2、有一个设置调闹钟定时时间、正常时间的按钮,选择调的对象。

3、有三个按钮分别调时、分、秒的时间。

4、有一个按钮用作开启/关闭闹铃。

5、另外需要两个时钟信号来给系统提供脉冲信号,使时钟和闹钟正常工作,分别为1Hz、1kHz的脉冲。

二、系统组成以及系统各部分的设计 1、系统结构描述 //要求:系统结构描述,各个模块的功能描述;系统的顶层文件:1、顶层文件图:2、各模块的解释:、7个输入量clk_1khz、clk_1hz、key_slt、key_alarm、sec_set、min_set、hour_set:其中clk_1khz为闹铃模块提供时钟,处理后能产生“嘟”、“嘀”和变化的闹铃声音;clk_1hz为计时模块提供时钟信号,每秒计数一次;key_slt选择设置对象:定时或正常时间;key_alarm能够开启和关闭闹铃;sec_set、min_set、hour_set用于设置时间或定时,与key_slt 相关联。

各按键输出为脉冲信号。

、CNT60_A_SEC模块:这个模块式将clk_1hz这个时钟信号进行60进制计数,并产生一个分钟的触发信号。

该模块能将当前计数值实时按BCD码的格式输出。

将该输出接到两位LED数码后能时时显示秒的状态。

通过alarm_clk可以选择设置对象为时间还是定时值。

在设置时间模式上,key上的一个输入脉冲可以将clk的输入信号加一。

数电课设-数字钟

数电课设-数字钟

数字钟一.基本功能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;。

数电课程设计数字钟

数电课程设计数字钟

数电课程设计数字钟一、课程目标知识目标:1. 理解数字钟的基本原理和组成,掌握数字电路基础知识;2. 学会运用组合逻辑电路设计数字钟的时、分、秒显示部分;3. 掌握数字钟的计时功能,了解其工作过程和调试方法;4. 了解数字钟在实际应用中的优势,如精确度、稳定性等。

技能目标:1. 能够运用所学知识,设计并搭建一个简单的数字钟电路;2. 培养动手实践能力,学会使用相关仪器、工具进行电路搭建和调试;3. 提高问题解决能力,能够分析并解决数字钟运行过程中出现的问题;4. 学会团队协作,与他人共同完成课程设计任务。

情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发创新意识;2. 培养学生的耐心、细心和责任心,养成良好的学习习惯;3. 引导学生关注科技发展,认识数字技术在实际生活中的应用;4. 培养学生的环保意识,注意电子垃圾的处理和回收。

课程性质:本课程为实践性较强的课程,注重培养学生的动手能力和实际操作技能。

学生特点:学生已具备一定的数字电路基础知识,具有较强的求知欲和动手欲望。

教学要求:结合课程性质和学生特点,采用理论教学与实践操作相结合的方式,注重启发式教学,引导学生主动参与课程设计过程,提高学生的实践能力和创新能力。

通过课程目标的分解,确保学生能够达到预定的学习成果,为后续的教学设计和评估提供依据。

二、教学内容1. 数字钟原理及组成- 了解数字钟的基本工作原理- 掌握数字钟的各个组成部分,如振荡器、分频器、计数器、显示电路等2. 组合逻辑电路设计- 学习组合逻辑电路的设计方法- 应用组合逻辑电路设计数字钟的时、分、秒显示部分3. 数字电路基础知识- 复习数字电路基础知识,如逻辑门、触发器、计数器等- 了解不同类型数字电路的特点和应用4. 数字钟电路搭建与调试- 学习数字钟电路的搭建方法- 掌握数字钟电路的调试技巧,分析并解决常见问题5. 教学内容安排与进度- 第一周:数字钟原理及组成,数字电路基础知识复习- 第二周:组合逻辑电路设计,数字钟显示部分设计- 第三周:数字钟电路搭建,初步调试- 第四周:数字钟电路调试,优化与改进6. 教材章节及内容列举- 教材第三章:数字电路基础- 教材第四章:组合逻辑电路- 教材第五章:时序逻辑电路- 教材第六章:数字钟设计与实践教学内容科学、系统,注重理论与实践相结合,以学生动手实践为主,充分调动学生的积极性,培养实际操作能力。

数电课程设计报告(数字时钟)

数电课程设计报告(数字时钟)

课题三、数字电子钟设计一:设计要求:(1)、准确计时,以数字形式显示时、分、秒的时间。

(2)、小时计时采用24进制的计时方式,分、秒采用60进制的计时方式。

(3)、具有快速校准时、分、秒的功能。

二:总体参考方案该系统的工作原理是:振荡器产生的稳定高频脉冲信号,作为数字钟的时间基准,再经分频器输出标准秒脉冲。

秒计数器计满60后向分计数器进位,分计数计满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。

计数器输出经译码器送显示器。

计时出现误差时可以用校时电路进行较时、校分、校秒。

三:单元电路设计1. 秒脉冲发生器用555定时器构成秒脉冲发生器如图3.1所示图3.1 555定时器构成的秒脉冲发生器1.1555定时器555的工作原理它含有两个电压比较器,一个基本RS触发器,一个放电开关T,比较器的参考电压由三只5KΩ的电阻器构成分压,它们分别使高电平比较器C1同相比较端和低电平比较器C2的反相输入端的参考电平为2VCC/3和VCC/3。

C1和C2的输出端控制RS触发器状态和放电管开关状态。

当输入信号为低电平时,触发器复位,555的输出端3脚输出低电平,同时放电,开关管导通;当输入信号自2脚输入并低于VCC/3时,触发器置位,555的3脚输出高电平,同时放电,开关管截止。

Vco是控制电压端(5脚),当5脚外接一个输入电压,即改变了比较器的参考电平,从而实现对输出的另一种控制,在不接外加电压时,通常接一个0.01微法的电容器到地,起滤波作用,以消除外来的干扰,以确保参考电平的稳定。

T为放电管,当T导通时,将给接于脚7的电容器提供低阻放电电路.图3.1.1 555定时器的电路结构及其引脚图3.1.2 555电路的引脚功能2. 秒、分、时计数器秒、分计数器分和秒计数器都是模数M=60的计数器,其计数规律为00---01---…58---59---00…选74LS161作十位及个位计数器,再将它们级联组成模数M=60的计数器.图2.1 秒、分计时器图2.2 74LS161引脚图管脚图介绍:时钟CP和四个数据输入端P0~P3清零/MR使能CEP,CET置数PE数据输出端Q0~Q3以及进位输出TC. (TC=Q0·Q1·Q2·Q3·CET*SR PE CET CEP工作模式L X X X RESET (Clear)清零H L X X LOAD (Pn Qn)置数H H H H COUNT (Increment)计数H H L X NO CHANGE (Hold)保持(不变)H H X L NO CHANGE (Hold)保持(不变)图2.3 74LS161选择开关方式真值表时计数器时计数器是一个“24翻1”的特殊进制计数器,即当数字钟运行到24时59分59秒,秒的个位计数器再输入一个秒脉冲时,数字钟应自动显示为01时00分00秒,实现日常生活中的计时规律。

数电课设--数字钟的设计

数电课设--数字钟的设计

数电课设--数字钟的设计摘要:该设计主要是设计一种基于数字电路实现的数字钟,用于显示当前时间,同时设计一个简单的时间调整系统来实现对数字钟的时间调整。

本设计实现了数字钟的时间显示、时间调整等功能,具有简单、实用等优点。

关键词:数字钟、计数器、时间调整系统一、引言数字钟是一种时钟显示设备,它可以在显示面板上显示当前时间,数字钟的普及改变了人们观念上的关于时间知识的变革。

本课设就是要通过设计一个数字钟,来综合应用我们所学的数字电路知识,通过数字电路的设计实现时间的显示及调整。

二、数字钟的设计原理数字钟的设计离不开计数器和定时器,计数器的作用是进行计数操作,进而对时间进行处理,定时器的作用是用来控制计数器的计数和复位,使其能够按照固定的时间序列不断进行计数。

数字钟的显示部分采用数码显示管显示当前时间,数码显示管显示的时间单位有小时、分钟和秒。

三、数字钟的设计方案数字钟的设计方案可以分为两部分,一部分是计数器及定时器的设计,另一部分是时间调整系统的设计。

下面分别进行介绍。

(一)计数器及定时器的设计计数器采用7474型D触发器进行设计,二进制计数器采用模8计数模式,带有异步复位功能。

其中,D触发器的Vcc接+5V电源,GND接地,CLK接定时器的输出,D接Q的输出,Q接下一级触发器D端。

计数器采用8253/8254型定时器,应该根据标准时钟的频率和预置值计算计数器的频率和复位时间。

时间调整功能通常是通过8255接口芯片实现。

(二)时间调整系统的设计时间调整系统通过单片机实现,主要实现以下功能:上下键切换修改时间单位、按键快速调整修改时间数字、按键高频稳定范围设置、判断闹钟是否开启、日历选择等。

四、数字钟的实现数字钟的实现可以参考实验教材进行,实现前需要明确以下几点:1. 根据实际需求确定数字钟的参数:例如显示的时间格式,以及是否需要设置闹钟等。

2. 设计好数字钟的原理图,并选择适合的元件进行接线。

3. 进行电路调试和测试,对电路进行稳定性测试等。

数字电路课程设计--数字时钟

数字电路课程设计--数字时钟

《数字时钟》技术报告概要数字钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。

它的计时周期为24小时,显示满刻度为23时59分59秒。

一个基本的数字钟电路主要由秒信号发生器、“时、分、秒、”计数器、译码器及显示器组成。

由于采用纯数字硬件设计制作,与传统的机械表相比,它具有走时准,显示直观,无机械传动装置等特点。

本设计中的数字时钟采用数字电路实现对“时”、“分”、“秒”的显示和调整。

通过采用各种集成数字芯片搭建电路来实现相应的功能。

具体用到了555震荡器,74LS90及与非,异或等门集成芯片等。

该电路具有计时和校时的功能。

在对整个模块进行分析和画出总体电路图后,对各模块进行仿真并记录仿真所观察到的结果。

实验证明该设计电路基本上能够符合设计要求!一、系统结构。

(1)功能。

此数字钟能显示“时、分、秒”的功能,它的计时周期是24小时,最大能显示23时59分59秒,并能对时间进行调整和校对,相对于机械式的手表其更为准确。

(2)系统框图。

系统方框图1(3)系统组成。

1.秒发生器:由555芯片和RC组成的多谐振荡器,其555上3的输出频率由接入的电阻与电容决定。

2.校时模块:由74LS03中的4个与非门和相应的开关和电阻构成。

3.计数器:由74LS90中的与非门、JK触发器、或门构成相应芯片串接得到二十四、六十进制的计数器,再由74LS90与74LS08相连接而得到秒、分、时的进分别进位。

4.译码器:选用BCD锁存译码器4511,接受74LS90来的信号,转换为7段的二进制数。

5.显示模块:由7段数码管来起到显示作用,通过接受CD4511的信号。

本次选用的是共阴型的CD4511。

二、各部分电路原理。

1.秒发生器:555电路内部(图2-1)由运放和RS触发器共同组成,其工作原理由8处接VCC,C1处当Uco=2/3Vcc>u11时运放输出为1,同理C2也一样。

最终如图3接口就输出矩形波,而形成的秒脉冲。

电工大作业-数字电子钟的设计

电工大作业-数字电子钟的设计

一、设计要求设计一个电子时钟,并使它具有自动运行的功能。

要求:1、用数码管显示:小时、分、秒。

24小时制或12小时制均可。

2、应用所学知识,产生1s的时钟信号,然后经过进位计数器,最后经过数码管示。

3、对使用何种电子元件及数量无要求。

二、设计思路电子时钟主要为秒信号发生器,计数部分和显示部分组成,用石英晶体震荡构成秒信号发生器,将信号输入计数部分,然后显示。

1、时钟信号:用555计时器和74LS161计数器实现1Hz的方波信号2、进位计数:用74LS90实现60,60,24进制,即实现时钟的计时3、显示设置:用数码管接74LS90实现时间的显示三、电子元件1、七段显示器6个2、计数器(74LS161)4个3、计数器(74LS90)6个4、与非门(74LS00)2个5、反相器(74LS04)2个5、石英晶体1个6、电阻、电容、导线等四、流程设计1、信号发生部分石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整、它是电子时钟的核心,用它产生标准频率信号,在由分频器分成秒时间脉冲。

下图为用反向器与石英晶体构成的振荡电路:(反向器与石英晶体构成的振荡电路)石英晶体振荡器选用32768Hz的石英晶体,发生的信号不符合要求,但通过分频,课产生1Hz的秒信号。

因为32768÷16÷16÷16÷8=1,所以用3个16分频和1个8分频就可以使信号达到要求。

用4个16进制计数器74LS161组成分频电路,与晶振部分共同组成信号发生部分。

如下图:(1Hz信号发生器)2、计数部分和显示部分整个计数器电路由秒计数器、分计数器、时计数器串接而成。

计数器之间采用并行接法,将进位输出信号接到置数端实现清零功能。

秒计数器和分计数器各自由一个十进制计数器和一个六进制计数器组成,形成两个六十进制计数器。

时计数器为两个十进制计数器接成的二十四计数器。

(本部分全部用74LS90计数器实现)秒计数器的设计:秒位60进制计数及显示电路四输入的数码管(显示作用)60秒后给分位的时钟信号信号发生器产生的1Hz信号分计数器的设计:分位60进制计数及显示电路四输入的数码管(显示作用)60分后给小时位的时钟信号从秒计数器来的时钟信号小时位采用24小时计时制设计过程:采用芯片为74LS90的2-10进制计数器,数量为两片。

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

大连理工大学本科实验报告题目:数字钟课程名称:数字电路课程设计学院(系):电信专业:电气班级:1201学生姓名:学号:完成日期:2014.11.23成绩:2014 年11 月23 日课程设计得分表一、数字钟课程设计要求:1、设计一个具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)计时器。

2、整点报时。

两种方法任选其一:⑴发出仿中央人民广播电台的整点报时信号,即从59分50秒起,每隔2秒钟发出一次低音“嘟”的信号,连续5次,最后一次要求高音“嘀”的信号,此信号结束即达到整点。

“嘟”是500Hz左右的频率输出,“嘀”是1000Hz左右的频率输出⑵通过LED闪烁实现,闪烁频率及花型可自己设计并在这里说明。

3、手动校时、校分、校秒。

4、定时与闹钟功能,能在设定的时间发出闹铃声。

5、设计一个秒表,显示1%秒到60秒、手动停止。

6、设计一个倒计时,显示小时、分钟、秒。

7、其他创新。

第1题25分,其他每题5分二、课程设计考试(40分,每题分):考试题目:1、实体名□2、计数器□3、异步清零□4、进位输出□5、仿真图□6、数码管输出□7、分频□8、元件例化□9、引脚分配□10、下载□题目:数字钟(1.大连理工大学电信学院,辽宁大连,116023;2. 大连理工大学电工电子实验中心,辽宁大连,116023;)1.设计要求一、电子表部分:(1)由晶振电路产生1HZ的校准秒信号。

?(2)设计一个具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)计时器具有手动校时、校分,校秒和清零的功能。

?(3)整点报时功能,通过LED闪烁实现,此实验LED灯亮一秒。

二、秒表部分:(1)有晶振产生100HZ的校准0.01秒信号。

(2)设计一个有“时”、“分”、“秒”、“0.1秒”、“0.01秒”(23小时59分59秒99)显示功能(3)具有开始计时暂停计时功能和清零功能三、具有电子表和秒表状态切换。

四、划出框图和逻辑电路图,写出设计。

2. 设计分析及系统方案设计1设计主要分为数字钟和秒表计时两个部分并选择用二选一数据选择器来实现两种功能切换。

2由于时钟用的是cyclone2开发板上提供的50MHz晶振的频率,所以数字时钟和秒表计时都用到分频器分频分别得到1Hz和100Hz的时钟频率。

3数字时钟部分包括分频部分即分频器;计时部分,包含模六计数器、模十计数器;选位调节部分,分别对时钟分钟和小时部分进行调节,用二选一数据选择器实现;数字显示部分,用到6个4-16译码器,和6个数码显示管;整点报时部分,其中报时用LED灯闪烁代替;含有清零端开关。

4 秒表计时包含分频器;计时器包含模六计数器,模十计数器,模三计数器;数字显示器包含有8个4-16译码器,8个数码显示管;计时启停开关,清零开关。

3.系统以及模块硬件电路设计输入:晶振50MHz,选位开关(0为可调节,1为正常计时),数字钟清零开关(0为清零),开关切换计时状态(1为数字计时,0为秒表计时),秒表启停开关(1启动,0停止),秒表复位开关(0复位),选择输出开关(1输出数字计时数字,0输出秒表计时数字)。

输出:LED灯,数字显示部分。

4 系统的VHDL 设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity keshe isport(clk:in std_logic;qo1,qo2,qo3,qo4,qo5,qo6,qo7,qo8:out std_logic_vector(6 downto 0);rst1:in std_logic;--开关1rst2:in std_logic;--开关2 输入分频得1Hz 分频得100Hz晶振 计时器部分(时、分、秒) 计时器部分选位调节 启停 复位清零 开关 1 0 选择输出开关 输出数字显示输入 1LED 整点计时rst3:in std_logic;--开关3rst4:in std_logic;--开关4switch1:in std_logic;switch2:in std_logic;key1:in std_logic;--分钟调节key2:in std_logic;--小时调节key3:in std_logic;runstop:in std_logic;--秒表启停开关led:out std_logic_vector(7 downto 0));end;architecture a of keshe issignal qh,ql,qhs,qls,qhf,qlf,qhh,qlh:std_logic_vector(3 downto 0):="0000";signal run:std_logic:='0';signal cnt,ct:integersignal qqh1,qqh2,qql1,qql2,qqhf1,qqhf2,qqhs1,qqhs2,qqls1,qqls2,qqhh1,qqhh2,qqlh1,qqlh2,qqlf1,qqlf2:std_logic_vector(3 downto 0);signal clk1s,csf,csh,css,clk1s2,csf2,csh2,css2,csh2in,csf2in,css2in: std_logic;component segmentport(qi:in std_logic_vector(3 downto 0);qo:out std_logic_vector(6 downto 0));end component;beginu1: segment port map (qh,qo1);u2: segment port map (ql,qo2);u3: segment port map (qhf,qo5);u4: segment port map (qlf,qo6);u5: segment port map (qhh,qo7);u6: segment port map (qlh,qo8);u7: segment port map (qhs,qo3);u8: segment port map (qls,qo4);process(rst1,qqh1,qqh2,qql1,qql2,qqhf1,qqhf2,qqhs1,qqhs2,qqls1,qqls2,qqhh1,qqhh2,qqlh1,qqlh2, qqlf1,qqlf2)--电子表秒表切换beginif rst1='1' thenqh<=qqh1; qhs<=qqhs1; qhf<=qqhf1; qhh<=qqhh1;ql<=qql1; qls<=qqls1;qlf<=qqlf1;qlh<=qqlh1;elseqh<=qqh2;qhs<=qqhs2; qhf<=qqhf2; qhh<=qqhh2;ql<=qql2;qlf<=qqlf2;qlh<=qqlh2;end if;end process;process(runstop,rst2)--秒表计停开关beginif rst2='0' thenrun<='0';elsif runstop'event and runstop='1' then run<=not run;end if;end process;process(clk ,clk1s,rst2,run)beginif rising_edge(clk)thenif cnt=499999 thencnt<=0;clk1s<='1';else cnt<=cnt+1;clk1s<='0';end if;end if; if rst2='0' thenqql1<="0000";qqh1<="0000";elsif run='1' thenif clk1s'event and clk1s='1' thenif (qql1="1001" and qqh1="1001" )thenqql1<="0000";qqh1<="0000";css<='1' ;else if qql1="1001" thenqqh1<=qqh1+1;qql1<="0000";css<='0' ;elseqql1<=qql1+1;css<='0' ;end if;end if;end if;end if;end process;process(css,rst2)beginqqls1<="0000";qqhs1<="0000";elsif run='1' thenifcss'event and css='1' thenif (qqls1="1001" and qqhs1="0101" )thenqqls1<="0000";qqhs1<="0000";csf<='1' ;else if qqls1="1001" thenqqhs1<=qqhs1+1;qqls1<="0000";csf<='0' ;elseqqls1<=qqls1+1;csf<='0' ;end if;end if;end if;end if;end process;process(csf,rst2)beginif rst1='0' thenqqlf1<="0000";qqhf1<="0000";elsif run='1' thenifcsf'event and csf='1' thenif (qqlf1="0011" and qqhf1="0010" )thenqqlf1<="0000";qqhf1<="0000";csh<='1' ;else if qqlf1="1001" thenqqhf1<=qqhf1+1;qqlf1<="0000";csh<='0' ;elseqqlf1<=qqlf1+1;csh<='0' ;end if;end if;end if;end if;end process;process(csh,rst2)beginif rst2='0' thenqqlh1<="0000";qqhh1<="0000";elsif run='1' thenifcsh'event and csh='1' thenif (qqlh1="1001" and qqhh1="0101" )thenqqlh1<="0000";qqhh1<="0000";else if qqlh1="1001" thenqqhh1<=qqhh1+1;qqlh1<="0000";elseqqlh1<=qqlh1+1;end if;end if;end if;end if;end process;process(clk ,clk1s2,rst3)beginif rising_edge(clk)thenif ct=499999 thenct<=0;clk1s2<='1';else ct<=ct+1;clk1s2<='0';end if;end if;if rst3='0' thenqql2<="0000";qqh2<="0000";elsif clk1s2'event and clk1s2='1' thenif (qql2="1001" and qqh2="1001" )thenqql2<="0000";qqh2<="0000";css2<='1' ;else if qql2="1001" thenqqh2<=qqh2+1;qql2<="0000";css2<='0' ;elseqql2<=qql2+1;css2<='0' ;end if;end if;end if;end process;process(css2,rst4,key3)beginif rst4='1' thencss2in<=css2;elsecss2in<=key3;end if;end process;process(css2in,rst3)beginif rst3='0' thenqqls2<="0000";qqhs2<="0000";elsif css2in'event and css2in='1' thenif (qqls2="1001" and qqhs2="0101" )thenqqls2<="0000";qqhs2<="0000";csf2<='1' ;else if qqls2="1001" thenqqhs2<=qqhs2+1;qqls2<="0000";csf2<='0' ;elseqqls2<=qqls2+1;csf2<='0' ;end if;end if;end if;end process;process(csf2,switch1,key1)beginif switch1='1' thencsf2in<=csf2;elsecsf2in<=key1;end if;end process;process(csf2in,rst3)beginif rst3='0' thenqqlf2<="0000";qqhf2<="0000";elsifcsf2in'event and csf2in='1' thenif (qqlf2="0011" and qqhf2="0010" )thenqqlf2<="0000";qqhf2<="0000";csh2<='1' ;else if qqlf2="1001" thenqqhf2<=qqhf2+1;qqlf2<="0000";csh2<='0' ;elseqqlf2<=qqlf2+1;csh2<='0' ;end if;end if;end if;if(qqlf2="0000" and qqhf2="0000"and qqls2="0000" and qqhs2="0000" ) then ledelse led<="00000000";end if;end process;process(csh2,switch2,key2)beginif switch2='1' thencsh2in<=csh2;elsecsh2in<=key2;end if;end process;process(csh2in,rst3)beginif rst3='0' thenqqlh2<="0000";qqhh2<="0000";elsifcsh2in'event and csh2in='1' thenif (qqlh2="0011" and qqhh2="0010" )thenqqlh2<="0000";qqhh2<="0000";else if qqlh2="1001" thenqqhh2<=qqhh2+1;qqlh2<="0000";elseqqlh2<=qqlh2+1;end if;end if;end if;end process;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity segment isport(qi:in std_logic_vector(3 downto 0);qo:out std_logic_vector(6 downto 0));end;architecture b of segment isbeginprocess(qi)begincase qi iswhen "0000"=> qo<="1000000";when "0001"=> qo<="1111001";when "0010"=> qo<="0100100";when "0011"=> qo<="0110000";when "0100"=> qo<="0011001";when "0101"=> qo<="0010010";when "0110"=> qo<="0000010";when "0111"=> qo<="1111000";when "1000"=> qo<="0000000";when "1001"=> qo<="0010000";when others => qo<="1111111";end case;end process;end;1分频部分新时钟状态图如下:2秒表电子表输出切换部分开关判断为1时输出为数字计时输出,为0时输出为秒表计时输出。

相关文档
最新文档