数字逻辑实验报告(数字时钟设计)
数字逻辑-数字时钟报告
计算机与信息工程系《数字逻辑设计课程设计》报告专业:计算机科学与技术班级: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的预置位段分钟部分以及说明:说明:该部分是实现功能正常计时中的分部分的计时工作。
数字时钟实验报告
数字时钟实验报告一、实验目的本次数字时钟实验的主要目的是设计并实现一个能够准确显示时、分、秒的数字时钟系统,通过该实验,深入理解数字电路的原理和应用,掌握计数器、译码器、显示器等数字电路元件的工作原理和使用方法,提高电路设计和调试的能力。
二、实验原理1、时钟脉冲产生电路时钟脉冲是数字时钟的核心,用于驱动计数器的计数操作。
本实验中,采用石英晶体振荡器产生稳定的高频脉冲信号,经过分频器分频后得到所需的秒脉冲信号。
2、计数器电路计数器用于对时钟脉冲进行计数,分别实现秒、分、时的计数功能。
秒计数器为 60 进制,分计数器和时计数器为 24 进制。
计数器可以由集成计数器芯片(如 74LS160、74LS192 等)构成。
3、译码器电路译码器将计数器的输出编码转换为能够驱动显示器的信号。
常用的译码器芯片有 74LS47(用于驱动共阳数码管)和 74LS48(用于驱动共阴数码管)。
显示器用于显示数字时钟的时、分、秒信息。
可以使用数码管(LED 或 LCD)作为显示元件。
三、实验器材1、集成电路芯片74LS160 十进制计数器芯片若干74LS47 BCD 七段译码器芯片若干74LS00 与非门芯片若干74LS10 三输入与非门芯片若干2、数码管共阳数码管若干3、电阻、电容、晶振等无源元件若干4、面包板、导线、电源等四、实验步骤1、设计电路原理图根据实验原理,使用电路设计软件(如 Protel、Multisim 等)设计数字时钟的电路原理图。
在设计过程中,要合理布局芯片和元件,确保电路连接正确、简洁。
按照设计好的电路原理图,在面包板上搭建实验电路。
在搭建电路时,要注意芯片的引脚排列和连接方式,避免短路和断路。
3、调试电路接通电源,观察数码管是否有显示。
如果数码管没有显示,检查电源连接是否正确,芯片是否插好。
调整时钟脉冲的频率,观察秒计数器的计数是否准确。
如果秒计数器的计数不准确,检查分频器的连接是否正确,晶振的频率是否稳定。
数字逻辑课程设计实验报告多功能数字钟
数字逻辑课程设计实验报告——多功能数字钟学院:计算机科学技术与通信工程学院班级:0501姓名:白璐学号:30506030182007年1月24 日多功能数字钟课程设计实验报告一.实验目的:1.学会应用数字系统设计方法进行电路设计;2.进一步提高MAX+plus II 10.0 BASELINE软件的开发应用能力;3.培养学生书写综合实验报告的能力。
二.实验要求:1.根据实验任务,选择最佳设计方案,综合运用MAX+plus II 10.0 BASELINE软件的各种设计方法设计出层次分明、结构清楚、电路优化、VHDL语言描述简洁的完整设计文件。
通过仿真直至下载来验证设计的正确性。
三.实验任务及要求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”均不会产生数字跳变(“SA”、“SB”按键是有抖动的,必须地“SA”、“SB”进行消抖处理, 消抖电路用D触发器构成。
原理:一个触发器CP(64HZ)内,屏蔽所有的抖动脉冲)。
(4)计时(24进制计数器),计分(60进制计数器)、计秒(60进制计数器)模块可由10进制计数器连接构成,也可用VHDL语言完成(可以参考教材P341,例8.2.1 多功能电子钟的设计)。
10进制计数器需自己设计(用VHDL语言,与所做实验74160计数器相同),不能调用系统库。
(5)其他如分频电路、提供报时控制信号、闹时电路等模块用VHDL语言实现。
3.能利用实验板上的扬声器作整点报时(1)当计时到达59’50”、51”、52”、53”、54”、55”、56”、57”、58”、59”鸣叫,鸣叫声频可定为500HZ;(2)到达00分00秒时为最后一声整点报时。
数字逻辑课程设计报告 电子钟
数字逻辑课程设计报告电子钟数字逻辑课程设计报告-电子钟数字逻辑电路―课程设计报告数字逻辑课程设计报告-----多功能数字钟的同时实现一.设计目的: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语言实现。
数字时钟设计实验报告
电子课程设计题目:数字时钟数字时钟设计实验报告一、设计要求:设计一个24小时制的数字时钟。
要求:计时、显示精度到秒;有校时功能。
采用中小规模集成电路设计。
发挥:增加闹钟功能。
二、设计方案:由秒时钟信号发生器、计时电路和校时电路构成电路。
秒时钟信号发生器可由振荡器和分频器构成。
计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。
校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。
三、电路框图:时计数分计数秒计数图一数字时钟电路框图四、电路原理图:(一)秒脉冲信号发生器秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。
由振荡器与分频器组合产生秒脉冲信号。
振荡器: 通常用555定时器与RC构成的多谐振荡器,经过调整输出1000Hz脉冲。
分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz标准秒脉冲。
其电路图如下:图二秒脉冲信号发生器(二)秒、分、时计时器电路设计秒、分计数器为60进制计数器,小时计数器为24进制计数器。
60进制——秒计数器秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。
当计数到59时清零并重新开始计数。
秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。
个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。
利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。
其电路图如下:图三 60进制--秒计数电路60进制——分计数电路分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。
数字逻辑课程设计报告
数字逻辑课程设计报告数字逻辑课程设计多功能数字钟班级:学号:课程设计人:指导老师:课题:完成时间:一、设计目的:学会应用数字系统设计方法进行电路设计,熟练地运用汇编语言。
二、设计任务及要求: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班学号:学生姓名:队员姓名:指导教师:《数字逻辑》综合实验任务书一、目的与要求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 )进行计数的计数电路。
数字钟设计实验报告
数字钟设计实验报告数字钟设计实验报告摘要:本实验旨在设计一款数字钟,通过数字显示来展示当前的时间。
通过对电路的搭建和编程的学习,我们成功地实现了数字钟的设计,并对其进行了测试和分析。
本实验不仅提高了我们的电路设计和编程能力,还加深了我们对数字时钟原理的理解。
引言:数字钟是一种常见的时间显示设备,广泛应用于生活中的各个领域。
它不仅具备准确显示时间的功能,还可以提供多种功能,如闹钟、定时器等。
本实验旨在通过设计一款数字钟,提高我们的电路设计和编程能力,并深入理解数字时钟的原理。
材料与方法:1. Arduino开发板2. 数码管3. 连接线4. 电阻5. 电容6. 蜂鸣器7. 按钮8. 电源实验步骤:1. 搭建电路:根据电路图连接Arduino开发板、数码管、蜂鸣器、按钮等元件,并接通电源。
2. 编写程序:使用Arduino开发环境,编写程序实现数字时钟的功能,包括时间的获取、显示和功能的切换。
3. 上传程序:将编写好的程序上传到Arduino开发板中,使其能够执行我们设计的功能。
4. 测试与分析:通过按下按钮,观察数码管的显示和蜂鸣器的声音,验证数字钟的功能是否正常。
实验结果:经过实验,我们成功地设计出了一款数字钟,并实现了以下功能:1. 显示当前的时间:数码管能够准确地显示当前的时间,包括小时和分钟。
2. 闹钟功能:通过设置闹钟时间和闹铃声音,实现了闹钟功能,当时间到达设定的闹钟时间时,蜂鸣器会发出声音提醒。
3. 定时器功能:可以设置定时器时间,当时间到达设定的时间时,蜂鸣器会发出声音提醒。
4. 亮度调节:通过调节电阻,可以实现数码管的亮度调节。
讨论与分析:在设计过程中,我们遇到了一些问题,如电路连接错误、程序逻辑错误等。
通过仔细检查和调试,我们逐步解决了这些问题,并最终成功地完成了数字钟的设计。
通过这个实验,我们不仅提高了对数字时钟原理的理解,还加深了对电路设计和编程的掌握。
结论:通过本实验,我们成功地设计了一款功能齐全的数字钟,并实现了时间显示、闹钟和定时器等功能。
《数字逻辑》数字时钟课程设计报告
《数字逻辑》课程设计报告题目数字时钟学院(部)信息工程学院专业计算机科学与技术班级计算机一班学生姓名学号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. 时钟芯片2. 数码管3. 电阻、电容和晶体振荡器4. 电路板和导线5. 电源和示波器四、实验步骤1. 按照电路图连接电路板上的元件,确保连接正确无误。
2. 将时钟芯片插入电路板中,并连接晶体振荡器。
3. 将数码管插入电路板,并连接相应的引脚。
4. 连接电源和示波器,确保电路正常工作。
5. 调节示波器,观察时钟芯片的输出信号。
6. 调试电路,确保数码管能够正确显示时间。
五、实验结果和分析经过调试和测试,我们成功设计出一个简单的数字时钟。
通过示波器观察到时钟芯片的输出信号,可以看到信号的频率和波形变化,进而控制数码管的显示。
数码管能够准确地显示时间,实现了我们的设计目标。
六、实验心得通过本次实验,我对数字时钟的原理和工作方式有了更深入的了解。
通过亲自动手搭建电路,我不仅加深了对电子电路的理解,还提高了对电路调试和故障排除的能力。
此外,我还学会了如何使用示波器观察信号波形,这对我今后的学习和工作都具有重要意义。
结论:本次实验成功设计出一个简单的数字时钟,通过实践加深了对数字时钟的理解和对电子电路的掌握。
通过亲自动手操作,我不仅学到了知识,还培养了动手能力和解决问题的能力。
数字逻辑电路实验报告
数字逻辑电路设计--多功能数字钟学院:计算机科学与通信工程专业:姓名:学号:指导老师:多功能数字钟一、设计任务及要求(1)拥有正常的时、分、秒计时功能。
(2)能利用实验板上的按键实现校时、校分及清零功能。
(3)能利用实验板上的扬声器做整点报时。
(4)闹钟功能(5)在MAXPLUS II 中采用层次化设计方法进行设计。
(6)在完成全部电路设计后在实验板上下载,验证设计课题的正确性。
二、多功能数字钟的总体设计和顶层原理图作为根据总体设计框图,可以将整个系统分为六个模块来实现,分别是计时模块、校时模块、整点报时模块、分频模块、动态显示模块及闹钟模块。
(1)计时模块该模块使用74LS160构成的一个二十四进制和两个六十进制计数器级联,构成数字钟的基本框架。
二十四进制计数器用于计时,六十进制计数器用于计分和秒。
只要给秒计数器一个1HZ的时钟脉冲,则可以进行正常计时。
分计数器以秒计数器的进位作为计数脉冲。
用两个74160连成24进制的计数器,原图及生成的器件如下:生成的二十四进制计数器注:利用使能端,时钟信号,清零以及预置数功能连成24进制。
用两个74160连成的60进制计数器,原图及生成的器件如下:(2)校时模块校时模块设计要求实现校时,校分以及清零功能。
生成的六十进制计数器*按下校时键,小时计数器迅速递增以调至所需要的小时位。
*按下校分键,分计数器迅速递增以调至所需要的分位。
*按下清零键,将秒计数器清零。
注意事项:①在校分时,分计数器的计数不应对小时位产生影响,因而需要屏蔽此时分计数器的进位信号以防止小时计数器计数。
②利用D触发器进行按键抖动的消除,因为D触发器是边沿触发,在除去时钟边沿到来前一瞬间之外的绝大部分时间都不接受输入,可以消除抖动。
③计时采用1HZ的脉冲驱动计数器计数,而校时则需要较高频率的信号驱动以达到快速校时的目的。
因此这两种脉冲信号就需要两路选择器进行选择,条件即为是否按键。
注:D触发器用于按键的消抖,接更高的频率用于校时和校分,二路选择器用于区分是正常计时还是校时。
数字时钟设计实验报告
数字时钟设计实验报告一、实验目的本次数字时钟设计实验的主要目的是通过运用数字电路的知识和技能,设计并实现一个能够准确显示时、分、秒的数字时钟。
通过这个实验,加深对数字电路中计数器、译码器、显示器等基本组件的理解和运用,提高电路设计和调试的能力。
二、实验原理数字时钟的基本原理是通过对时钟信号进行计数和分频,将时间信息转换为数字信号,并通过译码器和显示器进行显示。
1、时钟信号产生通常使用石英晶体振荡器产生稳定的高频时钟信号,然后通过分频电路将其分频为适合计数的低频信号,如 1Hz 信号用于秒的计数。
2、计数器使用二进制计数器对时钟信号进行计数,分别实现秒、分、时的计数。
秒计数器满60 向分计数器进位,分计数器满60 向时计数器进位。
3、译码器将计数器输出的二进制编码转换为能够驱动显示器的信号,如七段数码管译码器。
4、显示器使用七段数码管或液晶显示器来显示时、分、秒的数字信息。
三、实验器材1、数字电路实验箱2、集成电路芯片:计数器芯片(如 74LS160)、译码器芯片(如74LS47)、与非门芯片(如 74LS00)等3、七段数码管4、电阻、电容、导线等四、实验步骤1、设计电路原理图根据实验原理,使用数字电路设计软件(如 Protel)或手绘的方式设计出数字时钟的电路原理图。
在设计过程中,要合理安排芯片的布局和连线,确保电路的正确性和稳定性。
2、芯片选择与引脚连接根据电路原理图,选择合适的集成电路芯片,并按照芯片的引脚功能进行正确的连接。
在连接过程中,要注意引脚的极性和连接的可靠性,避免虚焊和短路。
3、电路搭建与调试将连接好的芯片和元器件安装在数字电路实验箱上,按照电路原理图进行布线。
接通电源后,使用示波器和逻辑分析仪等工具对电路的各个节点进行测试和调试,观察时钟信号、计数器输出、译码器输出等是否正常。
4、故障排除如果电路出现故障,如数码管不显示、显示错误、计数不准确等,要根据故障现象进行分析和排查。
- 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拨动时,会出现时间的跳变。
其次,设计的实验电路比较繁琐,没有进行最简化。
五、实验建议:
希望实验课时增多,大家充分了解实验,。
也希望实验室的开放时间也更多一些,大家有更多的机会去改进自己的电路。