数字逻辑实验报告(时钟设计)
数字逻辑-数字时钟报告

计算机与信息工程系《数字逻辑设计课程设计》报告专业:计算机科学与技术班级:B090502学号: B09050218姓名: 汪文威报告完成日期: 2011.06.14指导教师:邹红文评语:成绩:批阅教师签名:批阅时间:可调节电子表摘要可调节电子表的电路部分分为74160设计的时分秒计数器和调节校正时钟两大组成部分。
主要用74160等芯片设计电路图,设计秒脉冲MCLK 和一个手动校正脉冲TMCLK,信号发生器产生稳定的脉冲信号,作为电子表的计时标准。
具有“时分秒”的十进制数字显示,小时为24进制,分和秒为60进制。
当正常计数时,秒脉冲连接到计数器上,手动脉冲无效,校对时间时,手动脉冲连接到计数器上,秒脉冲无效。
该电子表只对分钟和小时进行校正,可以在任意时间调节时间,在任意时间按下复位键,可将电子表复位清零。
在Quartus II仿真软件上仿真实现电子表的功能,并通过下载到实验板上上测试,结果正确。
关键词:Quartus II,脉冲,74160,实验板,LCD液晶,进制Adjustable Electronic TableABSTRACTAdjustable electronic circuit design of the divided into 74160 seconds and adjust clock counter correction two major parts. In 74160, the main design the circuit diagram, chip design MCLK second pulse and a manual correction of pulse TMCLK, signal generator produce stable pulse signal as electronic timing standards,. When the clock "with" decimal figures, for 24 hours into the system, minutes, and seconds to 60 into the system. When normal count, second pulse connected to the counter, manual pulse is invalid, proofreading time, manual pulse connected to the counter, second pulse is invalid. The electronic watch only for minutes and hours for calibration, can at any time at any time, regulating time press reset button can be cleared, electronic watch reset.In Quartus II simulation software simulation on the function of the electronic watch, and through the download to experiment and test results are correct, board.Key words: Quartus II, pulse, 74160, the board, LCD,Hexademical目录前言 (1)第1章组成电路的芯片介绍 (2)1.1 74160芯片............................................. 错误!未定义书签。
北邮数字逻辑课程设计实验报告(电子钟显示)

实验四:电子钟显示一、实验目的(1)掌握较复杂的逻辑设计和调试。
(2)学习用原理图+VHDL语言设计逻辑电路。
(3)学习数字电路模块层次设计。
(4)掌握ispLEVER 软件的使用方法。
(5)掌握ISP 器件的使用。
二、实验所用器件和设备在系统可编程逻辑器件ISP1032 一片示波器一台万用表或逻辑笔一只TEC-5实验系统,或TDS-2B 数字电路实验系统一台三、实验内容数字显示电子钟1、任务要求(1)、时钟的“时”要求用两位显示;上、下午用发光管作为标志;(2)、时钟的“分”、“秒”要求各用两位显示;(3)、整个系统要有校时部分(可以手动,也可以自动),校时时不能产生进位;(4)*、系统要有闹钟部分,声音要响5秒(可以是一声一声的响,也可以连续响)。
VHDL源代码:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;----主体部分-ENTITY clock isport(clk,clr,put,clk1 : in std_logic; -- clr 为清零信号,put 为置数脉冲,clk1 为响铃控制时钟choice : in std_logic; --用来选择时钟状态的脉冲信号lighthour : out std_logic_vector(10 downto 0);lightmin : out std_logic_vector(7 downto 0);lightsec : out std_logic_vector(7 downto 0); --输出显示ring : out std_logic); --响铃信号end clock;--60进制计数器模块ARCHITECTURE func of clock iscomponent counter_60port(clock : in std_logic;clk_1s : in std_logic;putust : in std_logic;clr : in std_logic;load : in std_logic;s1 : out std_logic_vector(3 downto 0);s10 : out std_logic_vector(3 downto 0);co : out std_logic);end component;--24进制计数器模块component counter_24port(clock : in std_logic;clk_1s : in std_logic;putust : in std_logic;clr : in std_logic;load : in std_logic;s1 : out std_logic_vector(3 downto 0);s10 : out std_logic_vector(6 downto 0));end component;signal sec,a:std_logic; --- 2 分频产生1s信号signal l1,l2,l3:std_logic; ---判定对时间三部分修改signal c1,c2:std_logic; ---进位信号signal load:std_logic_vector(1 downto 0);signal temp:integer range 0 to 2499;signal temp1:integer range 0 to 95; --计数信号signal sec_temp:std_logic_vector(7 downto 0);--总进程beginu1 : counter_60 port map (sec,sec,put,clr,l1,sec_temp(3 downto 0),sec_temp(7 downto 4),c1); u2 : counter_60 port map (c1,sec,put,clr,l2,lightmin(3 downto 0),lightmin(7 downto 4),c2);u3 : counter_24 port map (c2,sec,put,clr,l3,lighthour(3 downto 0),lighthour(10 downto 4)); lightsec(7 downto 0)<=sec_temp(7 downto 0);--状态转换process (choice)beginif (choice'event and choice='1') thencase load iswhen "00" => l1<='0'; --非修改状态l2<='0';l3<='0';load<="01";when "01" => l1<='0'; --此状态下对小时进行修改l2<='0';l3<='1';load<="10";when "10" => l1<='0'; --此状态下对分钟进行修改l2<='1';l3<='0';load<="11";when others => l1<='1'; --此状态下对秒进行修改l2<='0';l3<='0';load<="00";end case;end if;end process;--计数进程process(clk)beginif (clk'event and clk='1') then --分频if (temp=2499) thentemp <= 0;sec<=not sec;elsetemp <= temp+1;end if;end if;end process;--响铃进程process(clk1)beginif(clk1'event and clk1='1') thenif (temp1=95) thentemp1<=0;a<=not a;elsetemp1<=temp1+1;end if;end if;end process;ring<=a when (c2='1' and sec_temp<5 and sec='1') else --5s整点响铃'0';end func;library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity counter_60 isport (clock : in std_logic; --计数信号,即低位的进位信号或时钟脉冲信号clk_1s : in std_logic; --周期1s 的时钟信号putust : in std_logic; --调表置数信号clr : in std_logic; --清零load : in std_logic; --判定信号s1 : out std_logic_vector(3 downto 0); --计数器的个位s10 : out std_logic_vector(3 downto 0); --计数器的十位co : out std_logic );end counter_60;if(load=1 ) --防止脉冲产生进位co_ temp<=’0’;architecture func of counter_60 issignal s1_temp: std_logic_vector(3 downto 0);signal s10_temp : std_logic_vector(3 downto 0);signal clk,co_temp : std_logic;beginclk<=clock when load='0' elseputust;process (clk,clr)beginif (clr='1') thens1_temp <= "0000";s10_temp <= "0000";elsif (clk'event and clk='1')then --进位判断if (s1_temp=9) thens1_temp <= "0000";if (s10_temp=5) thens10_temp <= "0000";co_temp<='1';elseco_temp<='0';s10_temp <= s10_temp+1;end if;elseco_temp<='0';s1_temp <= s1_temp+1;end if;end process;s1 <= s1_temp when (clk_1s='1'or load='0') else"1111";s10 <= s10_temp when (clk_1s='1' or load='0') else"1111";co <= co_temp when (load='0') else'0';end func;library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;--24进制计数器entity counter_24 isport(clock : in std_logic; --计数信号clk_1s : in std_logic; --周期1s 的时钟信号putust : in std_logic;clr : in std_logic; --清零信号load : in std_logic; --判定信号s1 : out std_logic_vector(3 downto 0); --计数器的个位s10 : out std_logic_vector(6 downto 0)); --计数器的十位end counter_24;architecture func of counter_24 issignal s1_temp : std_logic_vector(3 downto 0);signal s10_temp : std_logic_vector(1 downto 0);signal clk : std_logic;beginclk<=clock when load='0' elseprocess (clk,clr)beginif (clr='1') thens1_temp <= "0000";s10_temp <= "00";elsif (clk'event and clk='1') thenif (s1_temp=3 and s10_temp=2) then s1_temp <= "0000";s10_temp <= "00";elsif (s1_temp=9) thens1_temp<="0000";s10_temp<=s10_temp+1;elses1_temp <= s1_temp+1;end if;end if;end process;--显示进程process(s10_temp)beginif (clk_1s='1' or load='0') thencase s10_temp iswhen "00" => s10<="1111110";when "01" => s10<="0110000";when "10" => s10<="1101101";when others => null;end case;elses10<="0000000";end if;end process;s1 <= s1_temp when (clk_1s='1' or load='0') else"1111";end func;四、实验小结:注意当时钟处于被修改状态时,即对时、分、秒的值进行修改时,不应产生进位,产生很多莫名其妙的错误,如修改后有进位(分钟为00)时,或者自行到整点响铃后,再次给脉冲会进位的情况。
数字逻辑实验报告(数字时钟设计)

数字逻辑实验报告实验三、综合实验电路一、实验目的:通过一个综合性实验项目的设计与实现,进一步加深理论教学与实验软硬件平台的实践训练,为设计性实验做好充分准备。
二、实验原理:根据要求的简单设计性的电路设计实验,应用基本器件与MSI按照电路设计步骤搭建出初级电路;设计型、综合型的较复杂实验电路三、实验设备与器件:主机与实验箱四、实验内容:(1)实验任务:根据所学习的器件,按照电路开发步骤搭建一个时钟,要求实现的基本功能有计时功能、校对时间功能、整点报时、秒表等功能。
(2)实验任务分析:完成该数字时钟,采用同步时序电路,对于计时的的功能,由于时间的秒分时的进位分别是60、60、24,所以可以应用74LS163计数器分别设计2个模60计数器以及一个模24计数器,那么需要有7个秒输出,7个分输出,6个小时的输出;对于校对时间的功能,由74LS163的特性可知,当该器件处于工作状态时,每来一个CLK脉冲,计数值加1,所以可以手动控制给CLK脉冲,来进行时间的校对;对于整点报时功能,可以采用一个比较电路,当时间的分秒数值全部为零时,那么此时可以接通报时装置,可以在电路中设置报时的的时间;对于秒表功能,有两种方案,可以单独重新设计一个秒表装置,采用模100计数器以及两个模60计数器,可以进行优化,使用原先的两个模60计数器,这样可以简化电路,是电路简洁。
(3)实验设计流程:(4)输入输出表:(5)各个功能模块的实现:A、计时功能模块的实现(电路图及说明)秒表部分及说明说明:该部分是实现功能正常计时中的秒部分的计时工作。
如图所示,图中采用两个74LS163来做一个模60计时器,计数的起止范围是0~59,(第一个74LS163采用模10计数,起止为0~9,第二个74LS163的计数起止范围是0~5),两个器件采用级联方式,用预置位方法实现跳转;该部分有7个秒输出,接到BCD译码显示器。
注解:第一个163器件:LDN端统一接到清零端ABCD端接地ENP端接到VCC高电平ENT接高电平VCC第二个163器件:LDN端统一接到清零端ABCD端接地ENP端接到VCC高电平ENT接高电平第一个163的预置位段分钟部分以及说明:说明:该部分是实现功能正常计时中的分部分的计时工作。
数字逻辑专题实验-实验报告

数字逻辑电路专题实验报告——多功能数字钟设计目录一.实验目的 (3)二.设计项目实现的目标 (3)三.系统设计方案 (3)1. 系统功能模块示意图: (3)2. 功能模块说明: (3)总控电路 (3)四.测试结果及分析 (8)五.项目总结 (10)六.结束语 (10)七.参考书 (11)一.实验目的1.学会综合运用组合逻辑、时序逻辑设计数字系统电路的方法2.学会使用EDA软件(Quartus)设计调试电路的方法3.掌握FPGA(可编程逻辑器件)技术的层次化电路设计二.设计项目实现的目标设计一个数字式电子时钟。
能够显示时、分、秒,其中小时采用24时计时法,能够整点报时,报时时,按照12时计时法报时,闹钟响的次数与时间相同,电子钟与秒表的显示均由LED七段数码管显示。
系统可以手动调节时间。
三.系统设计方案1. 系统功能模块示意图:可将系统电路划分为三个模块:控制电路模块、计时模块及报时模块。
而计时模块又分为计秒模块、计分模块及计小时模块。
2. 功能模块说明:总控电路模块功能:(1)60进制BCD码计数器counter60电路原理图如下所示:clk为时钟信号输入,en和enout分别为计数使能输入和进位使能输出,用于各计时模块间的级联q0~7为计数值的BCD码输出。
说明:设计该计数器应输出两路BCD码,一路表示十位,模为6;另一路表示个位,模为10。
使用的元器件为74161四位二进制计数器及若干逻辑门,两个74161采用同步方式级联。
(2)24进制BCD码计数器counter24电路原理图如下所示:(3)校时模块adjuster电路原理图如下所示:d2_4e2线-4译码器电路:adjuster校时电路:S_CE、M_CE、H_CE分别连接秒分时计数的使能端,CLK输出连接其各计数器时钟信号输入端;EN为时钟的使能输入端,CLK1Hz为控制整个时钟的时钟信号输入,S_ENOUT、M_ENOUT连接各计数器的进位使能,SET为加一修改输入,MODE为模式切换模式输入:(1)MODE无输入,COUNTER的QA和QB为00,译码后SEL为1,74157选择器选择B1、B2、B3、B4,输出CLK、S_CE、M_CE、H_CE分别为CLK1Hz时钟信号、EN、S_ENOUT、M_ENOUT,使电路进入正常计时过程;(2)MODE输入一个脉冲,计数器加1,译码后输出SEL,S_EN,M_EN,H_EN分别为0,1,0,0,74157选择器选择A1、A2、A3、A4,输出CLK、S_CE、M_CE、H_CE 分别为SET、S_CE、M_CE、H_CE,此时输入SET脉冲即完成对秒的加1修改;(3)分钟修改与小时修改,只需分别给MODE两个脉冲和三个脉冲即可切换到所需模式下,道理与(2)中所述相同,故不再赘述。
数字逻辑课程设计报告 电子钟

数字逻辑课程设计报告电子钟数字逻辑课程设计报告-电子钟数字逻辑电路―课程设计报告数字逻辑课程设计报告-----多功能数字钟的同时实现一.设计目的:1.学会应用领域数字系统设计方法展开电路设计。
2.进一步提高maxplusii软件开发应用领域能力。
3.培育学生综合实验能力。
二.实验仪器与器材:1、开发软件maxplusii软件2、微机3、isp实验板se_3型isp数字实验开发系统4、打印机三.实验任务及建议设计一个多功能数字钟:1.能进行正常的时、分、秒计时功能。
1)用m6m5展开24十进制小时的表明;2)用m4m3展开60十进制分的表明;3)用m2m1进行60进制秒的显示。
2.利用按键实现“校时”、“校分”和“秒清单”功能。
1)按下sa键时,计时器快速递减,按24小时循环,并且计满23时返回00。
2)按下sb键时,计时器迅速递增,按60小时循环,并且计满59时回到00,但不向时进位。
3)按下sc,秒清零。
建议按下“sa”或“sb”均不能产生数字LBP(“sa”、“sb”按键就是存有晃动的,必须对“sa”“sb”展开窭晃动处置。
)3.能够利用实验板上的扬声器并作整点报时功能。
1)当计时到达59分50秒时开始报时,在59分50、52、54、56、58秒鸣叫,鸣叫声频为500hz。
2)抵达59分后60秒时为最后一声整点报时。
整点报时的频率为1kz。
4.能够惹出时1)闹时的最小时间间隙为10分钟。
2)惹出时长度为1分钟。
3)惹出时声响就是单频的。
5.用maxplusii软件设计符合以上功能要求的多功能数字钟,并用层次化设计方法设计该电路。
1)通过语言同时实现各模块的功能,然后再图画出高电路的顶层图。
2)消抖电路可以通过设计一个d触发器来实现,sa、sb、sc等为包含抖动的诸如信号,而电路的输出则是一个边沿整齐的输出信号。
3)其他的计时功能、表明功能、多路挑选功能、分频功能、报时功能和惹出时等功能模块都用vhdl语言实现。
数字逻辑实践实验报告(3篇)

第1篇一、实验目的1. 掌握数字逻辑电路的基本原理和设计方法。
2. 熟悉数字电路实验设备的使用。
3. 提高数字电路的仿真和调试能力。
4. 培养学生分析问题和解决问题的能力。
二、实验内容1. 组合逻辑电路设计(1)2选1多路选择器设计:根据教材5.1节的流程,利用Quartus II完成2选1多路选择器的文本编辑输入(MUX21.v)和仿真测试等步骤,给出仿真波形。
在实验系统上硬件测试,验证此设计的功能。
(2)三人表决电路设计:根据教材5.1节的流程,利用Quartus II完成三人表决电路的文本编辑输入(图5-36)和仿真测试等步骤,给出仿真波形。
在实验系统上硬件测试,验证此设计的功能。
2. 时序逻辑电路设计(1)数字显示电子钟设计:根据任务要求,设计一个数字显示电子钟,时钟的时、分、秒要求各用两位显示,上、下午用发光管作为标志。
整个系统要有校时部分和闹钟部分,声音要响5秒。
(2)脉冲波形的变换与产生:设计单稳态触发器,555定时器及其应用电路,实现脉冲波形的变换与产生。
3. 数字逻辑电路仿真与调试(1)使用Logisim软件进行无符号数的乘法器设计,实现两个无符号的4位二进制数的乘法运算。
(2)使用Logisim软件进行无符号数的除法器设计,实现两个无符号的4位二进制数的除法运算。
三、实验过程1. 组合逻辑电路设计(1)2选1多路选择器设计:首先,分析2选1多路选择器的逻辑功能,确定输入输出关系。
然后,利用Quartus II软件编写Verilog HDL代码,完成2选1多路选择器的文本编辑输入。
接着,进行仿真测试,观察仿真波形,验证设计功能。
最后,在实验系统上硬件测试,验证设计功能。
(2)三人表决电路设计:首先,分析三人表决电路的逻辑功能,确定输入输出关系。
然后,利用Quartus II软件编写Verilog HDL代码,完成三人表决电路的文本编辑输入。
接着,进行仿真测试,观察仿真波形,验证设计功能。
数字逻辑课程设计报告

数字逻辑课程设计报告数字逻辑课程设计多功能数字钟班级:学号:课程设计人:指导老师:课题:完成时间:一、设计目的:学会应用数字系统设计方法进行电路设计,熟练地运用汇编语言。
二、设计任务及要求:1.记时、记分、记秒2.校时、校分、秒清03.整点报时4.时间正常显示5.闹时功能三、设计思路:将整个闹钟分为以下几个模块,每个模块中都有详细的各部分的设计思路,源代码及仿真图像,生成的器件。
1.计时模块计小时:24进制计数器计分、计秒:60进制计数器计时间过程:计秒:1HZ计数脉冲,0~59循环计数,计数至59时产生进位信号。
计分:以秒计数器进位信号作为分计数脉冲,0~59循环计数,59时产生进位。
计时:以分计数器进位信号作为时计数脉冲,0~23循环计数,23时清0。
二十四进制计数器代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt24 isport (clk:in std_logic;qh,ql:out std_logic_vector(3 downto 0));end cnt24;architecture behave of cnt24 issignal q1,q0:std_logic_vector(3 downto 0);beginprocess(clk)beginif(clk'event and clk='1')thenif(q1="0010" and q0="0011")thenq1<="0000";q0<="0000";elsif(q0="1001")thenq0<="0000";q1<=q1+'1';elseq0<=q0+'1';end if;end if;qh<=q1;ql<=q0;end behave;仿真结果:图一、cnt24仿真图像六十进制计数器代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60 isport (clk:in std_logic;clr:in std_logic;ql,qh:out std_logic_vector(3 downto 0);c:out std_logic);end cnt60;architecture cnt of cnt60 issignal q1,q0:std_logic_vector(3 downto 0);beginprocess(clk,clr)beginif(clr='1')thenq1<="0000";q0<="0000";c<='0';elseif(clk'event and clk='1')thenif(q1="0101" and q0="1001")then-----到59 q1<="0000";q0<="0000";c<='1';elsif(q1<"0101" and q0="1001")thenq0<="0000";q1<=q1+'1';c<='0';elsif(q0<"1001") thenq0<=q0+'1';end if;end if;end if;qh<=q1;ql<=q0;end cnt;仿真结果:图二、cnt60仿真图像clk qh[3..0]ql[3..0] cnt24instclkclrql[3..0]qh[3..0]c cnt60inst1图三、生成的计数器符号2.校时模块:思路:按下校时键,时位迅速递增,满23清0按下校分键,分位迅速递增,满59清0注意:此时应屏蔽分进位。
数字时钟(数字逻辑)课程设计报告

数字时钟班级:学号:姓名:指导老师:提交日期:2011年1月8日一.系统简介:使用VHDL语言编写程序完成数字时钟的功能设计,利用软件进行编译和仿真,最后利用实验箱实现系统。
二.功能简介:完成时钟的计时、调整,整点报时等基础功能,完成闹钟的设置、开启和关闭功能,整点报时的开启和关闭功能,完成日期设定和显示功能。
三.总体结构逻辑框图:四.状态图:五.各模块电路图及程序:整体电路连接图:1.总控制模块:时钟脉冲分频元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc4_1clkdmux isport(clk:in std_logic;clk1,clk4,clk512:out std_logic);end dc4_1clkdmux;architecture clkdmux of dc4_1clkdmux is signal c1:std_logic_vector(9 downto 0); beginprocess (clk)beginif clk'event and clk='1'thenc1<=c1+1;end if;clk1<=c1(9);clk4<=c1(7);clk512<=c1(0);end process;end clkdmux;模式控制元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc4_2mode isport(clk4,bt_m:in std_logic;mode:out std_logic_vector(1 downto 0);cr1,cr2:out std_logic);end dc4_2mode;architecture mode of dc4_2mode issignal modx:std_logic_vector(1 downto 0); signal c1,c2:std_logic;beginprocess (clk4,bt_m)beginif clk4'event and clk4='1' thenif bt_m='1' thenmodx<=modx+1;c2<='1';else c2<='0';end if;end if;if modx="00" then c1<='1';else c1<='0';end if;mode<=modx;cr1<=c1;cr2<=c2;end process;end mode;调节项目控制元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc4_2mode isport(clk4,bt_m:in std_logic;mode:out std_logic_vector(1 downto 0); cr1,cr2:out std_logic);end dc4_2mode;architecture mode of dc4_2mode issignal modx:std_logic_vector(1 downto 0); signal c1,c2:std_logic;beginprocess (clk4,bt_m)beginif clk4'event and clk4='1' thenif bt_m='1' thenmodx<=modx+1;c2<='1';else c2<='0';end if;end if;if modx="00" then c1<='1';else c1<='0';end if;mode<=modx;cr1<=c1;cr2<=c2;end process;end mode;数码管显示元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc4_4sel isport(clk:in std_logic;sel:out std_logic_vector(2 downto 0));end dc4_4sel;architecture sel of dc4_4sel issignal selx:std_logic_vector(2 downto 0); beginprocess (clk)beginif clk'event and clk='1'thenselx<=selx+1;end if;end process;sel<=selx;end sel;模块波形图:2.时钟模块:时钟秒调节元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_1second isport(clk1,clk4,rest,bt_a:in std_logic;mode,set:in std_logic_vector(1 downto 0);sco,mcen:out std_logic;clks0,clks1:out std_logic_vector(3 downto 0)); end dc3_1second;architecture second of dc3_1second issignal s0,s1:std_logic_vector(3 downto 0);signal co,rco,cr:std_logic;beginprocess (clk1,clk4,rest,bt_a,mode,set)beginif clk4'event and clk4='1'thenif mode="01" thenif rest='1' thencr<='1';elsif set="00" and bt_a='1'thencr<='1';else cr<='0';end if;end if;end if;if cr='1'thens0<="0000";s1<="0000";elsif clk1'event and clk1='1' thenif s0="1001" and s1="0101" thenelsif s0="1001" thens0<="0000";s1<=s1+1;co<='0';else s0<=s0+1;co<='0';end if;end if;if mode="01" and set="01" and bt_a='1' then rco<=clk4;mcen<='0';else rco<=co;mcen<='1';end if;end process;clks0<=s0;clks1<=s1;sco<=rco;end second;时钟分调节元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_1minite isport(sco,mcen,clk4,rest,bt_a:in std_logic;mode,set:in std_logic_vector(1 downto 0);mco,hcen:out std_logic;clkm0,clkm1:out std_logic_vector(3 downto 0)); end dc3_1minite;architecture minite of dc3_1minite issignal m0,m1:std_logic_vector(3 downto 0);signal rco,co,cr:std_logic;beginprocess (sco,mcen,clk4,rest,bt_a,mode,set)beginif mode="01" and rest='1' thencr<=rest;else cr<='0';end if;if cr='1' thenm0<="0000";m1<="0000";elsif sco'event and sco='1' thenif m0="1001" and m1="0101"thenm0<="0000";m1<="0000";if mcen='1' then co<='1';else co<='0';end if;elsif m0="1001" thenelsem0<=m0+1;co<='0';end if;end if;if mode="01" and set="10" and bt_a='1' then rco<=clk4;hcen<='0';else rco<=co;hcen<='1';end if;end process;clkm0<=m0;clkm1<=m1;mco<=rco;end minite;时钟小时调节元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_1hour isport(mco,hcen,clk4,rest,bt_a:in std_logic;mode,set:in std_logic_vector(1 downto 0);hco,dcen:out std_logic;clkh0,clkh1:out std_logic_vector(3 downto 0)); end dc3_1hour;architecture hour of dc3_1hour issignal h0,h1:std_logic_vector(3 downto 0);signal rco,co,cr:std_logic;beginprocess (mco,hcen,clk4,rest,bt_a,mode,set)beginif mode="01" and rest='1' thencr<=rest;else cr<='0';end if;if cr='1' thenh0<="0000";h1<="0000";elsif mco'event and mco='1' thenif h0="1001" and h1="0101"thenh0<="0000";h1<="0000";if hcen='1' then co<='1';else co<='0';end if;elsif h0="1001" thenh0<="0000";h1<=h1+1;co<='0';elseh0<=h0+1;co<='0';end if;end if;if mode="11" and set="00" and bt_a='1' then rco<=clk4;dcen<='0';else rco<=co;dcen<='1';end if;end process;clkh0<=h0;clkh1<=h1;hco<=rco;end hour;时钟模块波形图:3.闹钟模块:闹钟分调节元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_2alminite isport(clk4,bt_a:in std_logic;mode,set:in std_logic_vector(1 downto 0);alm0,alm1:out std_logic_vector(3 downto 0)); end dc3_2alminite;architecture alarm of dc3_2alminite issignal m0,m1:std_logic_vector(3 downto 0);signal co:std_logic;beginprocess (clk4,bt_a,mode,set)beginif clk4'event and clk4='1'thenif mode="10"and set="00" and bt_a='1'then if m0="1001"and m1="0101"thenm0<="0000";m1<="0000";elsif m0="1001" thenm0<="0000";m1<=m1+1;elsem0<=m0+1;end if;end if;end if;end process;alm0<=m0;alm1<=m1;end alarm;闹钟小时调节元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_2alhour isport(clk4,bt_a:in std_logic;mode,set:in std_logic_vector(1 downto 0);alh0,alh1:out std_logic_vector(3 downto 0)); end dc3_2alhour;architecture alhour of dc3_2alhour issignal h0,h1:std_logic_vector(3 downto 0); beginprocess (clk4,bt_a,mode,set)beginif clk4'event and clk4='1'thenif mode="10"and set="01" and bt_a='1'thenif h0="0010"and h1="0100"thenh0<="0000";h1<="0000";elsif h0="1001" thenh0<="0000";h1<=h1+1;elseh0<=h0+1;end if;end if;end if;end process;alh0<=h0;alh1<=h1;end alhour;闹钟与时钟比较控制模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_2alcontrol isport(clk,clk1,clk512:in std_logic;alc:in std_logic_vector(1 downto 0);clks0,clks1,clkm0,clkm1,clkh0,clkh1,alm0,alm1,alh0,alh1:instd_logic_vector(3 downto 0);alarm:out std_logic);end dc3_2alcontrol;architecture alcontrol of dc3_2alcontrol issignal al,al0,al1:std_logic;beginprocess(clk,clk1,clk512,clks0,clks1,clkm0,clkm1,clkh0,clkh1,alm0,alm1,alh0,a lh1,alc)beginif clkm0="1001" and clkm1="0101" and clks1="0101"thenif clks0="0001"then al<=clk512;elsif clks0="0011"then al<=clk512;elsif clks0="0101"then al<=clk512;elsif clks0="0111"then al<=clk512;elsif clks0="1001"then al<=clk;else al<='0';end if;else al<='0';end if;if clkm0=alm0 and clkm1=alm1 and clkh0=alh0 and clkh1=alh1 then if clks1="0000" and clk1='1'thenal0<=clk;else al0<='0';end if;else al0<='0';end if;if alc="00" thenal1<=(al or al0);elsif alc="01" thenal1<=al;elsif alc="10" thenal1<=al0;elsif alc="11" thenal1<='0';end if;end process;alarm<=al1;end alcontrol;闹钟与时钟比较控制模块波形图:4.日期模块日期日调整元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_3day isport(hco,dcen,clk4,bt_a,sm1,sm2:in std_logic;mode,set:in std_logic_vector(1 downto 0);dco:out std_logic;day0,day1:out std_logic_vector(3 downto 0)); end dc3_3day;architecture day of dc3_3day issignal d0,d1:std_logic_vector(3 downto 0);signal rco,co:std_logic;beginprocess (hco,dcen,clk4,bt_a,mode,set)beginif hco'event and hco='1' thenif sm1='1' thenif d0="1000" and d1="0010"thend0<="0000";d1<="0000";if dcen='1' then co<='1';else co<='0';end if;elsif d0="1001" thend0<="0000";d1<=d1+1;co<='0';elsed0<=d0+1;co<='0';end if;elsif sm2='1' thenif d0="0000" and d1="0011"thend0<="0000";d1<="0000";if dcen='1' then co<='1';else co<='0';end if;elsif d0="1001" thend0<="0000";d1<=d1+1;co<='0';elsed0<=d0+1;co<='0';end if;elseif d0="0001" and d1="0011"thend0<="0000";d1<="0000";if dcen='1' then co<='1';else co<='0';end if;elsif d0="1001" thend0<="0000";d1<=d1+1;co<='0';elsed0<=d0+1;co<='0';end if;end if;end if;if mode="11" and set="01" and bt_a='1' then rco<=clk4;else rco<=co;end if;end process;day0<=d0;day1<=d1;dco<=rco;end day;日期月调整元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_3month isport(dco:in std_logic;sm1,sm2:out std_logic;mon0,mon1:out std_logic_vector(3 downto 0)); end dc3_3month;architecture month of dc3_3month issignal m0,m1:std_logic_vector(3 downto 0);signal month:std_logic_vector(7 downto 0);beginprocess (dco)beginif dco'event and dco='1' thenif m0="0010" and m1="0001" thenm0<="0000";m1<="0000";elsif m0="1001" thenm0<="0000";m1<=m1+1;else m0<=m0+1;end if;end if;month<=m1&m0;if month="00000010" thensm1<='1';sm2<='0';elsif month="00000100" or month="00000110" or month="00001001" or month="00010001" thensm1<='0';sm2<='1';else sm1<='0';sm2<='0';end if;end process;mon0<=m0;mon1<=m1;end month;四(与附加四信号)选一选择器:library ieee;use ieee.std_logic_1164.all;entity dc2_2mux18 isport(m0,m1,h0,h1:in std_logic_vector(3 downto 0);sel:in std_logic_vector(2 downto 0);y:out std_logic_vector(3 downto 0));end dc2_2mux18;architecture mux18 of dc2_2mux18 isbeginprocess (m0,m1,h0,h1,sel)begincase sel iswhen "000"=>y<=m0;when "001"=>y<=m1;when "010"=>y<="1111";when "011"=>y<=h0;when "100"=>y<=h1;when others=>y<="1111";end case;end process;end mux18;日期模块波形图:5.显示驱动模块数码管动态显示选择元件:library ieee;use ieee.std_logic_1164.all;entity dc1_1choice isport(clk1:in std_logic;set:in std_logic_vector(1 downto 0);sel:in std_logic_vector(2 downto 0);g:out std_logic_vector(7 downto 0));end dc1_1choice;architecture drive of dc1_1choice isbeginprocess (set,sel)beginif set="00" and sel="000" and clk1='1'theng<="00000000";elsif set="00" and sel="001" and clk1='1'then g<="00000000";elsif set="01" and sel="011" and clk1='1'theng<="00000000";elsif set="01" and sel="100" and clk1='1'theng<="00000000";elsif set="10" and sel="110" and clk1='1'theng<="00000000";elsif set="10" and sel="111" and clk1='1'theng<="00000000";elsecase sel iswhen"000"=>g<="00000001";when"001"=>g<="00000010";when"010"=>g<="00000100";when"011"=>g<="00001000";when"100"=>g<="00010000";when"101"=>g<="00100000";when"110"=>g<="01000000";when others=>g<="10000000";end case;end if;end process;end drive;三选一多路数据选择器:library ieee;use ieee.std_logic_1164.all;entity dc1_2mux13 isport(clock,date,alarm:in std_logic_vector(3 downto 0); mode:in std_logic_vector(1 downto 0);y:out std_logic_vector(3 downto 0));end dc1_2mux13;architecture mux13 of dc1_2mux13 isbeginprocess (clock,date,alarm,mode)begincase mode iswhen "00"=>y<=clock;when "01"=>y<=clock;when "10"=>y<=alarm;when "11"=>y<=date;when others=>y<=clock;end case;end process;end mux13;七段译码器:library ieee;use ieee.std_logic_1164.all;entity dc1_3display isport(x:in std_logic_vector(3 downto 0);segout:out std_logic_vector(6 downto 0));end dc1_3display;architecture disay of dc1_3display isbeginprocess (x)begincase x iswhen "0000"=>segout<="1111110";when "0001"=>segout<="0110000";when "0010"=>segout<="1101101";when "0011"=>segout<="1111001";when "0100"=>segout<="0110011";when "0101"=>segout<="1011011";when "0110"=>segout<="1011111";when "0111"=>segout<="1110000";when "1000"=>segout<="1111111";when "1001"=>segout<="1111011";when "1010"=>segout<="1001001";when "1011"=>segout<="1000001";when "1100"=>segout<="0001001";when others=>segout<="0000001";end case;end process;end disay;六.心得体会这是一次数字逻辑的整体练兵,本次课程设计,是对VHDL数字逻辑电子设计技术的进一步掌握,也是对MAX+PLLUS设计工具应用的进一步了解。
数字逻辑设计报告

数字逻辑设计报告设计报告题目:多功能电子钟的设计摘要:设计的电子钟可以实现一天的计时,显示时分秒(以24小时为一个计时周期),并且具有调时功能。
在完成的基础上,加了整点报时功能和闹叫功能。
设计中主要包括脉冲的发生,计时,对数码管的驱动显示,调时开关的设计和用数值比较器设计成的定时闹叫。
其中主要涉及到60进制,24进制的设计,555触发器和数值比较器的应用。
关键词:计数校时闹叫整点报时目录:1.设计任务和要求 (3)1.1设计任务 (3)1.2设计要求 (3)2.系统设计 (3)2.1系统要求 (3)2.2方案设计 (3)2.3系统工作原理 (4)3.单元电路设计 (5)3.1秒脉冲发生器 (5)3.1.1电路结构工作原理 (5)3.1.2电路仿真 (5)3.1.3元器件选择与参数确定 (5)3.2六十进制加法计数器 (5)3.2.1电路结构工作原理 (5)3.2.2电路仿真 (5)3.2.3元器件选择与参数确定 (5)3.3二十四进制加法计数器 (5)3.3.1电路结构工作原理 (5)3.3.2电路仿真 (5)3.3.3元器件选择与参数确定 (5)3.4译码驱动与显示电路 (6)3.4.1电路结构工作原理 (6)3.4.2电路仿真 (6)3.4.3元器件选择与参数确定 (6)3.5时间校准 (6)3.5.1电路结构工作原理 (6)3.5.2电路仿真 (6)3.5.3元器件选择与参数确定 (6)3.6闹钟与整点报时电路 (6)3.6.1电路结构工作原理 (6)3.6.2电路仿真 (6)3.6.3元器件选择与参数确定 (6)4.系统仿真 (7)5.电路安装、调试与测试 (7)5.1电路安装 (7)5.2电路调试 (7)5.3系统功能及性能测试 (7)5.3.1测试方法设计 (7)5.3.2测试结构及分析 (8)6.结论 (8)7.参考文献 (8)8.总结、体会和建议 (9)附录 (9)设计任务和要求:1.用六位数码管显示时,分,秒,在分和秒之间显示“:”,并以1Hz的速度闪烁,以24小时为一个记时周期。
最新数字钟实验报告

最新数字钟实验报告实验目的:本实验旨在设计并构建一个数字时钟,通过编程和电子组件的使用,实现时间的精确显示和设置。
实验过程中,我们将学习如何使用微控制器、数码管显示以及编写相应的软件代码来控制时钟的运行。
实验材料:1. 微控制器(如Arduino UNO)2. 数码管显示模块3. 电阻、电容4. 跳线5. 电源适配器6. 编程软件(如Arduino IDE)实验步骤:1. 准备实验材料,并确保所有组件完好无损。
2. 连接微控制器与数码管显示模块,通过跳线将数码管的各个引脚与微控制器对应引脚相连。
3. 在Arduino IDE中编写数字钟的程序代码,包括时间设置、显示更新和闹钟功能。
4. 将编写好的代码上传至微控制器中。
5. 连接电源,测试数字钟是否能够正常运行,包括时间的显示、设置和闹钟功能。
6. 调整代码中的参数,确保时间显示的准确性和稳定性。
7. 记录实验数据和观察结果,对出现的问题进行分析和调试。
实验结果:通过实验,我们成功构建了一个数字钟,它能够显示小时、分钟和秒。
用户可以通过特定的按钮组合来设置时间,并且设定闹钟。
在测试过程中,时钟的显示准确无误,设置功能也运作正常。
闹钟在设定的时间准时响起,满足了实验的基本要求。
实验结论:本次实验验证了通过微控制器和数码管可以成功实现数字钟的设计和功能。
实验过程中遇到的问题主要涉及代码的优化和硬件的稳定性,通过调整代码和重新检查硬件连接,问题得到了解决。
最终,我们得到了一个功能完善、运行稳定的数字钟原型。
数字逻辑课设报告数字电子钟

课程设计(综合实验)报告题目:第四个实验数字电子钟院系:计算机科学系班级:计算计科学与技术1班学号:学生姓名:队员姓名:指导教师:《数字逻辑》综合实验任务书一、目的与要求1 目的1.1综合实验是教学中必不可少的重要环节,通过综合实验巩固、深化和扩展学生的理论知识与初步的专业技能,提高综合运用知识的能力,逐步增强实际工程训练。
1.2注重培养学生正确的设计思想,掌握综合实验的主要内容、步骤和方法。
1.3培养学生获取信息和综合处理信息的能力、文字和语言表达能力以及协作工作能力。
1.4提高学生运用所学的理论知识和技能解决实际问题的能及其基本工程素质。
2.要求2.1 能够根据设计任务和指标要求,综合运用电子技术课程中所学到的理论知识与实践技能独立完成一个设计课题。
2.2根据课题需要选择参考书籍,查阅手册、图表等有关文献资料。
要求通过独立思考、深入钻研综合实验中所遇到的问题,培养自己分析、解决问题的能力。
2.3进一步熟悉常用电子器件的类型和特性,掌握合理选用的原则。
2.4学会电子电路的安装与调试技能,掌握常用仪器设备的正确使用方法。
利用“观察、判断、实验、再判断”的基本方法,解决实验中出现的问题。
2.5学会撰写综合实验总结报告。
2.6通过综合实验,逐步形成严肃认真、一丝不苟、实事求是的工作作风和科学态度,培养学生树立一定的生产观点、经济观点和全局观点。
要求学生在设计过程中,坚持勤俭节约的原则,从现有条件出发,力争少损坏元件。
2.7在综合实验过程中,要做到爱护公物、遵守纪律、团结协作、注意安全。
二、主要内容数字电子钟设计一台能显示时﹑分、秒的数字电子钟,要求如下:1)秒﹑分为00—59六十进制计数器,时为00—23二十四进制计数器;2)可手动校正:可分别对秒﹑分﹑时进行手动脉冲输入调整或连续脉冲输入校正,(校正时不能输出进位)。
元器件选择74LS162:4块与非门74LS00:2块共阳数码管LED 74LS161:2块 GAL16V8:2块晶体振荡器:1MHZ GAL20V8:1块 TDS-4实验箱导线若干所需要器件的图片如下1同步十进制计数器74LS162 3输入正与非门74LS002异步十六进制计数器74LS161 4 GAL20V8一、 设计(实验)正文数字钟实际上是一个对标准频率(1HZ )进行计数的计数电路。
数字逻辑数字钟设计课设报告

J I A N G S U U N I V E R S I T Y数字逻辑课程设计学生姓名:专业班级:学号:指导老师:VHDL的特点VHDL是一种用普通文本形式设计数字系统的硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,可以在任何文字处理软件环境中编辑。
除了含有许多具有硬件特征的语句外,其形式、描述风格及语法十分类似于计算机高级语言。
VHDL程序将一项工程设计项目(或称设计实体)分成描述外部端口信号的可视部分和描述端口信号之间逻辑关系的内部不可视部分,这种将设计项目分成内、外两个部分的概念是硬件描述语言(HDL)的基本特征。
当一个设计项目定义了外部界面(端口),在其内部设计完成后,其他的设计就可以利用外部端口直接调用这个项目。
VHDL的主要特点如下:(1)作为HDL的第一个国际标准,VHDL具有很强的可移植性。
(2)具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将设计中的错误消除在电路系统装配之前,在设计早期就能检查设计系统功能的可行性,有很强的预测能力。
(3)VHDL有良好的可读性,接近高级语言,容易理解。
(4)系统设计与硬件结构无关,方便了工艺的转换,也不会因工艺变化而使描述过时。
(5)支持模块化设计,可将大规模设计项目分解成若干个小项目,还可以把已有的设计项目作为一个模块调用。
(6)对于用VHDL完成的一个确定设计,可以利用EDA工具进行逻辑综合和优化,并能自动地把VHDL描述转变成门电路级网表文件。
(7)设计灵活,修改方便,同时也便于设计结果的交流、保存和重用,产品开发速度快,成本低。
VHDL是一种快速的电路设计工具,其功能涵盖了电路描述、电路合成、电路仿真等设计工作。
VHDL具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门电路级三个不同层次的设计,能够完成从上层到下层(从抽象到具体)逐层描述的结构化设计思想。
用VHDL设计电路主要的工作过程是:(1)编辑。
《数字逻辑》数字时钟课程设计报告

《数字逻辑》课程设计报告题目数字时钟学院(部)信息工程学院专业计算机科学与技术班级计算机一班学生姓名学号201324026 月29 日至7 月 3 日共1 周指导教师(签字)题目一.摘要:钟表的数字化给人们的生产生活带来了极大的方便,并且极大的扩展了钟表原先的报时功能。
诸如定时自动报有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常警、学校的按时自动打铃、时间程序自动控制、定时广播、定时启闭路灯,甚至各种定时电气的自启用等。
所现实的意义。
本次数电课设我组设计的数字时钟是由石英晶体振荡器、分频器、计数器、译码器、显示器、校时电路、报时电路和计时电路组成,石英晶体振荡器产生的信号经过分频器作为秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器在七段显示器上显示时间。
二.关键词:校时计时报时分频石英晶体振荡器三.技术要求:1、有“时”、“分”、“秒”(23小时59分59秒)显示且有校时功能;2、有计时功能,时钟不会在计时的时候停下。
计时范围是0~99秒;3、有闹铃功能,闹铃响的时间由使用者自己设置,闹铃时间至少一分钟;4、要在七段显示器(共阴极6片)显示时间;5、电子钟要准确正常地工作。
四、方案论证与选择:钟表的是长期使用的器件,误差容易积累由此增大。
所以要求分频器产生的秒脉冲要极其准确。
而石英晶体产生的信号是非常稳定的,所以我们使用石英晶体产生的信号经过分频电路作为秒脉冲。
秒脉冲信号经过6级计数器,分别得到“秒”、“分”、“时”的个位、十位的计时。
由实际的要求,“秒”、“分”计数器为60进制的计数器,小时为24进制。
由于74LS160十进制加法计数器易于理解使用,我们在设计各个计数器时都是由采用74LS160芯片级联构成。
在计时部分,最小单位是0.01s,我们采用555多谐振荡器产生100HZ的信号作为秒脉冲进入一个4级计数器,计时范围是0~99秒。
石英晶体我们选择的是振荡频率为2ⁿ(我们找到的最小振荡频率为n=15),与四个74LS161组成的计数器来分频,使振荡频率变为1HZ,这样秒脉冲就产生了。
数字电路设计数字钟实验设计报告

数字钟实验设计报告数字钟设计一设计任务1. 基本功能:以数字形式显示时、分、秒的时间,小时的计时要求为“24翻1”,分和秒的计时要求为60进位;2.扩展功能:校时、正点报时及闹时功能;二电路工作原理及分析数字电子钟主要由以下几个部分组成:秒信号发生器,时、分、秒计数器,显示器,校时校分电路,报时电路。
数字钟的基本逻辑功能框图图1 数字钟的基本逻辑功能框图振荡器的设计振荡器是数字钟的核心。
振荡器的稳定度及频率的精确度决定了数字钟的准确程度。
通常选用石英晶体构成振荡器电路。
一般来说,振荡的频率越高,计时精度越高。
如果精度要求不高则可以采用由集成逻辑门与R、C组成的时钟源振荡器或集成电路计时器555与R、C组成的多谐振荡器,电路参数如图2所示.接通电源后,电容C1被充电,当Vc上升到2Vcc/3时,使vo为低电平,同时放电三极管T导通,此时电容C1通过R2和T放电,Vc下降。
当Vc下降到Vcc/3时,vo翻转为高电平。
电容C1放电所需时间为tpL=R2ln2≈当放电结束时,T截止,Vcc将通过R1、R2向电容器 C1充电,一;Vc由Vcc/3上升到2Vcc/3所需的时间为tpH=(R1+R2)C1ln2≈(R1+R2)C当Vc 上升到2Vcc/3 时,电路又翻转为低电平。
如此周而复始,于是,是在电路的输出端就得到一个周期性的矩形波。
其振荡频率为f=1/(tpL+tpH) ≈[(R1+2R2)C]振荡周期:T=T1+T2=(R1+2R2)C1In2 得R1+2R2=T/C1In2=故选定R1=,R2=图2 555振荡器(图中R1,R2值不为实际值)图3 555振荡器产生的波形时、分、秒计数器电路时、分、秒计数器电路由秒个位和秒十位,分个位和分十位及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器,而时个位和时十位为24进制计数器。
校时电路通过开关,触发器,逻辑门组成的校时电路来校时。
数字逻辑数字时钟课程设计报告

4.2 EWB24 小时计时数字钟基本功能仿真结果 ....................................... 14 4.3EWB 电子钟整体仿真结果 ..................................................... 15 结束语 ........................................................................... 16
选用 EWB 软件,以计算机作为载体。通过使用 EWB 软件,设计实现一个 24 小
第二章
设计总体方案
8
4 计算机学院数字系统课程设计
2.1 总体方案框图
图 2.1 总体方案框图
2.2 设计原理
由 555 定时器构成的振荡器产生稳定的 1Hz 的脉冲信号,作为标准秒脉冲。秒计数
器计 60 后向分计数器进位,分计数器计满 60 后向小时进位,小时计数器设置成 24 进 制计数器,满 24 后清零,重新开始计时。计数器的输出直接送到 LED 显示器。计时出 现误差时可以用校时电路进行校时,校分,校时电路是由一开关接到一个高电位上,当 全按一下开关就传来一个高位脉冲,计数器加一。
2.1 总体方案框图 .............................................................. 4 2.2 设计原理 .................................................................. 4 2.3 元器件的选择及功能分析 ..................................................... 5 2.3.1 选择器件 ............................................................ 5 2.3.2 555 定时器的应用 ..................................................... 5 2.3.3 74290 的应用 ......................................................... 7 2.3.4 与门 ................................................................. 8 第三章 功能模块 ................................................................... 9 3.1 单元电路的设计 ............................................................ 9 3.1.1 秒脉冲发生器......................................................... 9 3.1.2 时间技术单元 ........................................................ 10 3.2 总体设计电路图 ............................................................ 12 第四章 EWB24 小时计时数字钟仿真结果 .............................................. 13
数字时钟设计实验报告

数字时钟设计实验报告一、实验目的本次数字时钟设计实验的主要目的是通过运用数字电路的知识和技能,设计并实现一个能够准确显示时、分、秒的数字时钟。
通过这个实验,加深对数字电路中计数器、译码器、显示器等基本组件的理解和运用,提高电路设计和调试的能力。
二、实验原理数字时钟的基本原理是通过对时钟信号进行计数和分频,将时间信息转换为数字信号,并通过译码器和显示器进行显示。
1、时钟信号产生通常使用石英晶体振荡器产生稳定的高频时钟信号,然后通过分频电路将其分频为适合计数的低频信号,如 1Hz 信号用于秒的计数。
2、计数器使用二进制计数器对时钟信号进行计数,分别实现秒、分、时的计数。
秒计数器满60 向分计数器进位,分计数器满60 向时计数器进位。
3、译码器将计数器输出的二进制编码转换为能够驱动显示器的信号,如七段数码管译码器。
4、显示器使用七段数码管或液晶显示器来显示时、分、秒的数字信息。
三、实验器材1、数字电路实验箱2、集成电路芯片:计数器芯片(如 74LS160)、译码器芯片(如74LS47)、与非门芯片(如 74LS00)等3、七段数码管4、电阻、电容、导线等四、实验步骤1、设计电路原理图根据实验原理,使用数字电路设计软件(如 Protel)或手绘的方式设计出数字时钟的电路原理图。
在设计过程中,要合理安排芯片的布局和连线,确保电路的正确性和稳定性。
2、芯片选择与引脚连接根据电路原理图,选择合适的集成电路芯片,并按照芯片的引脚功能进行正确的连接。
在连接过程中,要注意引脚的极性和连接的可靠性,避免虚焊和短路。
3、电路搭建与调试将连接好的芯片和元器件安装在数字电路实验箱上,按照电路原理图进行布线。
接通电源后,使用示波器和逻辑分析仪等工具对电路的各个节点进行测试和调试,观察时钟信号、计数器输出、译码器输出等是否正常。
4、故障排除如果电路出现故障,如数码管不显示、显示错误、计数不准确等,要根据故障现象进行分析和排查。
数字逻辑电路课程设计__数字钟

《数字逻辑》课程设计实验报告书题目:数字钟姓名:专业:班级:学号:指导教师:目录一、设计任务要求 (3)二、设计思想及说明 (4)三、设计和实现过程 (4)四、经验、体会总结 (12)五、参考文献 (13)一、设计任务与要求设计任务:设计一个具有整点报时功能的数字钟要求:1、设计一个有“时”、“分”、“秒”(11小时59分59秒)显示且有校时功能的数字钟。
2、有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间。
3、计时过程具有整点报时功能,当时间到达整点前10秒进行报时。
4、用中小规模集成电路组成数字钟,并在实验箱上进行组装、调试。
5、画出框图和逻辑电路图。
功能:1、计时功能:要求准确计时,以数字形式显示时、分、秒的时间。
小时的计时要求为“12翻1”。
2、校时功能:当数字钟接通电源或者计时出现误差时,需要校正时间(简称校时)。
校时是数字钟应具备的基本功能,一般电子手表都具有时、分、秒等校时功能。
为使电路简单,这里只进行分和小时的校时。
对校时电路的要求是:在小时校正时不影响分和秒的正常计数;在分校正时不影响秒和小时的正常计数。
校时方式有“快校时”和“慢校时”两种。
“快校时”是通过开关控制,使计数器对1Hz的校时脉冲计数。
“慢校时”是用手动产生单脉冲作校时脉冲。
3、仿广播电台整点报时:每当数字钟计时快要到整点时发出声响;通常按照4低音1高音的顺序发出间断声响;以最后一声高音结束的时刻为整点时刻。
二、设计思想及说明数字钟原理框图下图所示,电路一般包括以下几个部分:切换电路、时分秒计数器、校时电路、整点报时电路及星期显示电路。
其基本原理是:秒计数器按“60进制”向分计数器进位,分计数器按“60进制”向时计数器进位,小时计数器按“24进制”规律计数,计数器经译码器送到显示器。
计数出现误差可用校时电路进行校时,校分,并具有可整点报时功能。
电路组成框图:三、设计和实现过程1.各元件功能74LS160:可预置BCD异步清除器,具有清零与置数功能的十进制递增计数器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字逻辑实验报告
姓名:学号:班级:电话:
实验三、综合实验电路
一、实验目的:
通过一个综合性实验项目的设计与实现,进一步加深理论教学与实验软硬件平台的实践训练,为设计性实验做好充分准备。
二、实验原理:
根据要求的简单设计性的电路设计实验,应用基本器件与MSI按照电路设计步骤搭建出初级电路;设计型、综合型的较复杂实验电路
三、实验设备与器件:
主机与实验箱
四、实验内容:
(1)实验任务:根据所学习的器件,按照电路开发步骤搭建一个时钟,要求实现的基本功能有计时功能、校对时间功能、整点报时、秒表等功能。
(2)实验任务分析:完成该数字时钟,采用同步时序电路,对于计时
的的功能,由于时间的秒分时的进位分别是60、60、24,所以可以应用74LS163计数器分别设计2个模60计数器以及一个模24计数器,那么需要有7个秒输出,7个分输出,6个小时的输出;对于校对时间的功能,由74LS163的特性可知,当该器件处于工作状态时,每来一个CLK脉冲,计数值加1,所以可以手动控制给CLK脉冲,来进行时间的校对;对于整点报时功能,可以采用一个比较电路,当时间的分秒数值全部为零时,那么此时可以接通报时装置,可以在电路中设置报时的的时间;对于秒表功能,有两种方案,可以单独重新设计一个秒表装置,采用模100计数器以及两个模60计数器,可以进行优化,使用原先的两个模60计数器,这样可以简化电路,是电路简洁。
(3)实验设计流程:
(4)输入输出表:
(5)各个功能模块的实现:
A、计时功能模块的实现(电路图及说明)秒表部分及说明
说明:该部分是实现功能正常计时中的秒部分的计时工作。
如图所示,图中采用两个74LS163来做一个模60计时器,计数的起止范围是0~59,(第一个74LS163采用模10计数,起止为0~9,第二个74LS163的计数起止范围是0~5),两个器件采用级联方式,用预置位方法实现跳转;该部分有7个秒输出,接到BCD译码显示器。
注解:第一个163器件:
LDN端统一接到清零端ABCD端接地
ENP端接到VCC高电平ENT接高电平VCC
第二个163器件:
LDN端统一接到清零端ABCD端接地
ENP端接到VCC高电平ENT接高电平第一个163的预置位段
分钟部分以及说明:
说明:该部分是实现功能正常计时中的分部分的计时工作。
如图所示,图中采用两个74LS163来做一个模60计时器,计数的起止范围是0~59,(第一个74LS163采用模10计数,起止为0~9,第二个74LS163的计数起止范围是0~5),两个器件采用级联方式,用预置位方法实现跳转;该部分有7个分输出,接到
BCD译码显示器。
注解:该时钟的六个74LS163是级联的,当秒要进位时,此时分钟的163器件的ENT使能端为有效,计数加1.
第一个74LS163接线说明:
LDN端统一接到清零端ABCD端接地
ENP端接到VCC高电平ENT接到秒向分钟进位判断端
第二个163器件:
LDN端统一接到清零端ABCD端接地
ENP端接到VCC高电平ENT接分钟的第一个163的进位判断预置位
端
小时部分以及说明:
说明:该部分是实现功能正常计时中的分部分的计时工作。
如图所示,图中采用两个74LS163来做一个模60计时器,计数的起止范围是0~59,(第一个74LS163采用模10计数,起止为0~9,第二个74LS163的计数起止范围是0~2),两个器件采用级联方式,用预置位方法实现跳转;该部分有6个分输出,接到BCD译码显示器。
注释:
LDN端统一接到清零端ABCD端接地
ENP端接到VCC高电平ENT接到分钟向小时进位的预置位判断端
第二个163器件:
LDN端统一接到清零端ABCD端接地
ENP端接到VCC高电平ENT接小时一个163的进位判断预置位端B、校对时间部分说明:
电路图及相关说明:
说明:图中的VCMP、VCHP、MP、HP这四个输入操作端即是进行时间校对的操作端口。
当进行校对时间的时候,先把将CRL置于低电平,使表停止工作,(及把分与时的CLK断开),然后VCMP以及VCHP输入高电平,使74LS163正常工作,最后手动给以mp以及hp脉冲,让分的部分以及小时的部分每次加1.
C、整点报时部分:
电路图及相关说明:
说明:
(由于不能完全截屏,所以只把最后实现的一部分的图给显示)
当整点报时时,要求响铃时间为不少于5秒,那么为简洁起见,可以使其响铃8秒。
判断依据:当整点时,此时所有的分钟以及秒的为全部为零,由于正常计时的时候,接频率为1hz的脉冲,所以当秒的os4,os5,os6,os7以及om1,om2,om3,om4om5,om6,om7全部为零时,此时响铃即可。
而且此时响铃的时间会从000~111,共8秒。
注解:一个8或门一个8或非门来判断上述条件的成立与否
一个2与门来控制响铃的输出(只有条件成立时,响铃端输出高脉冲)
响铃脉冲接1024hz
D、秒表部分秒表部分以及说明:
电路图及说明:
说明:该图示显示了秒表的一部分,利用原先的计时的功能部分,此时加一个模100的计数器,而其他的几位保持不变。
说明:该图是手动选择计时的表显示是正常计时还是选择秒表;器件:与门、非门搭建的一个选择电路;
整个电路的实现图:
(6)实验电路的波形图分析:
实验波形图分析:
上图的下面的输出部分是秒部分的输出,波形图中间部分是分钟部分的输出。
对应每一个CLK脉冲,os1与CLK相同,os2的频率为os1的二分之一……显然,当秒的os7os6……os1同时高电平时,分钟的最低位加1,即出现一次高电平。
(由于波形图较大,所以没有将小时的部分显示)
(7)实验的完成情况与讨论:
本次实验,实验要求为设计一个电子时钟,考虑到时钟的实用性,应该完成基本的计时,校对时间,秒表,闹钟等功能。
我在这次试验中完成了基本计时,校对时间,秒表,整点报时这四个功能,对于闹钟功能,实验中没有正常完成。
验收情况:2011年5月28号进行验收,所完成功能通过验收。
讨论测试情况:在试验中只是按照基本的功能要求完成实验,测试出现的问题——当控制端CRL拨动时,会出现时间的跳变。
其次,设计的实验电路比较繁琐,没有进行最简化。
五、实验建议:
希望实验课时增多,大家充分了解实验,。
也希望实验室的开放时间也更多一些,大家有更多的机会去改进自己的电路。
六、参考文献
数字电路与可编程实验教程武峻鹏等哈尔滨工程大学出版社 2007年
数字逻辑鲍家元毛文林高等教育出版社 2001年。