北邮数电综合实验--数字钟

合集下载

数电综合实验报告——数字电子钟

数电综合实验报告——数字电子钟

数电综合实验报告通信与信息工程学院电子信息工程1202刘维1207050208实验名称:数字电子钟设计指标:数字电子钟以一昼夜24小时为一个计数周期;设计具有“时”、“分”、“秒”数字显示;设计具有较时功能,分别进行时、分、秒的校正。

实验目的:了解数字电子钟的工作原理;了解数字电子钟的设计及其电路的连接;会使用555多谐振荡器、CD4518芯片、74LS00芯片、74LS47芯片。

实验仪器:实验所需元器件:555定时器一个、CD4518芯片五个、译码器74LS47六个、数码管六个、74LS00二个、电阻680Ω六个、电容0.1µf一个、电容0.01µf一个、电阻2.4K二个CD4518功能表:实验原里电路图:实验分析过程及结果:(1)555定时器组成的多谐振荡器电路:且f=2kHz q= C=0.1µf所以(2)分频器电路:分析:由555定时器组成的多谐振荡器的输出为2kHz的方波,现在设计数字电子钟所需1Hz的脉冲,则需要使用2个CD4518芯片进行分频,电路图如下:六十进制计数器电路连接图:二十四进制计数器:译码驱动电路:实验心得体会:通过本次综合设计实验,我体会颇深。

站在个人的角度,我从两方面叙述和总结一下这次的实验。

我在本次实验中所做的工作:分析电路的要求,根据实验设计要求选取实验材料;与组员协作、讨论,共同完成实验电路的设计;连接电路,与组员平均分配参与各个部分电路的研究;检查电路的能否工作,是否达到设计的要求,排错,最终完成电路。

个人体会:这是一次综合性很强的实验,在实验中,学会了如何和组员共同协作完成任务,实践时间不成,和组员的协作是否默契在这次实验中体现出及其重要的一面,协作的好与坏直接影响到本次实验进程的快慢与结果的是否成功;这又是一次需要动手的实验,学会了如何理论联系实践,实验中的认芯片,根据芯片图与实际芯片连接电路很能体现实践联系理论的重要性,很能锻炼动手能力;这又是一次急需细心的实验,不仅要快,而且要准,不能有丝毫的马虎,实验中出现的漏连了本该接地的管脚的问题很能说明这个问题。

北邮数字电路综合实验报告

北邮数字电路综合实验报告

数字电路综合实验报告简易智能密码锁一、实验课题及任务要求设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。

基本要求:1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。

通过密码设置确定键(BTN 键)进行锁定。

2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。

输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。

3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。

闭锁状态下不能清除密码。

4、用点阵显示开锁和闭锁状态。

提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。

2、密码锁的密码位数(4~6 位)可调。

3、自拟其它功能。

二、系统设计2.1系统总体框图2.2逻辑流程图2.3MDS图2.4分块说明程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。

以下进行详细介绍。

1.键盘模块本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。

键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

数字钟实验报告--多功能计时电路的设计

数字钟实验报告--多功能计时电路的设计

电类综合实验报告题目:多功能计时电路的设计--数字钟姓名:马冯生学号:114116001203学院:材料学院专业:材料加工工程指导:电子技术中心完成时间:2015年3月24日目录一、引言二、实验目的三、实验设计要求四、实验原理及框图五、单元电路设计及其电路六、实验中遇到的问题及解决方法七、心得体会八、元器件清单一.引言随着数字技术在仪表和通信系统中的广泛应用,数字钟已经应用到生活的方方面面,而数字钟的功能也随着人们要求的提高在不断的增加,同时在数字技术的快速发展下,功能也越来越强大。

数字钟能够比传统的时钟更加精确的进行计时,并且能够实现多种显示。

在调节方面,能够内嵌许多诸如报时、万年历、彩铃等计时以外的功能。

本设计在介绍数字钟工作原理的基础上,运用数字集成技术,来设计实现一个多功能数字钟。

二.实验目的1、通过实验掌握十进制加法计数、译码、显示电路的工作过程。

2、通过实验深入掌握电路的分频原理和数字信号的测量方法。

3、熟悉集成电路构成的计数、译码、显示器件的外部功能及其使用方法。

三.实验设计要求1、秒信号发生电路:为计时器提供信号。

2、及时电路:完成0分00秒-9分59秒的计时功能。

3、清零电路:具有开机自动清零功能;在任何时候,按动清零开关,可进行计时器手动清零。

4、译码显示电路:显示计时电路产生的数字信息。

5、系统级联调试:将以上电路进行级联完成等计时器的所有功能。

四.实验原理及框图图1 三位计时器示意图数字钟示意图如图1所示,计时电路完成计时功能,并将计时结果传送至显示电路,进而实现显示功能。

原理框图如图2所示,主要由计时电路、秒信号发生电路、清零电路和译码电路组成。

计时电路在秒信号的作用下,产生0:00~9:59的循环计时,清零电路控制计时电路的清零端,实现时钟的清零,最终将计时电路的输出送至译码显示电路,实现时钟的显示。

图2 数字钟的原理框图五.单元电路设计及其电路1、秒信号发生电路图3 秒信号发生电路秒信号发生电路为计时电路提供驱动信号,电路原理如图3所示。

数电课设-数字钟

数电课设-数字钟

数字钟一.基本功能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)学习用原理图+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)时,或者自行到整点响铃后,再次给脉冲会进位的情况。

数电综合设计实验数字钟

数电综合设计实验数字钟

用2片74LS90组成24进制计数器
QD QC QB QA
S9(1) 74LS90 R0(1)
S9(2) CPB CPA R0(2)
计数范围为 00~23
QD QC QB QA
S9(1) 74LS90 R0(1)
S9(2) CPB CPA R0(2)
CP
R0(1)、R0(2)同 时为1,输出 清0
三、设计与仿真阶段 (1)电路方框图; (2)详细的电路原理图; (3)元器件的引脚图及功能; (4)电路工作原理的说明; (5)元器件清单(必须是实验室已有的元器件);
关于“理论设计”的三种情况: 一、自己参考有关资料独立进行设计;
二、消化理解参考资料上有关课题的电路原理及详 细电路图,并在此基础上有一些自己的改进或增加 部分功能电路;
三、完全复制资料上或其他同学的电路,不作任何 消化理解,对电路工作原理“一问三不知”;
不允许出现第三种情况!!!
四、安装与调试阶段 验收时要有调试记录和测试结果。 关于“调试方法”:做到: (1)接线正确,可靠; 常见错误:接线错误、面板接触不良 (2)供电电源大小、极性正确; 常见错误:电源大小不对、极性不正确或根本没有供
用2片74LS90组成24进制计数器
十位
个位
QD QC QB QA S9(1) 74LS90 R0(1) S9(2) CPB CPAR0(2)
QD QC QB QA S9(1) 74LS90 R0(1) S9(2) CPB CPA R0(2)
CP
CP
100进制计数器,计数范围: 00~99。
利用100进制计数器可构成小于100的任意进制计数器。
六、设计举例:多功能数字钟的设计 任务与要求: 1. 设计一个具有“时”、“分”、“秒”显示的数 字钟; 2. 具有校时功能; 3. 具有整点报时功能; 4. 具有定时闹钟功能; 5. 秒信号产生电路采用石英晶体构成的振荡器

北邮数电综合实验报告

北邮数电综合实验报告

点阵赛车游戏学院:信息与通信工程学院专业:通信工程班级:姓名:学号:班内序号:一、设计课题的任务要求用8×8点阵进行5秒倒计时显示,当5秒倒计时结束后,点阵显示赛道和赛车的初始位置,赛车游戏开始,并开始计时,用两个数码管显示时间。

用红色表示赛道,黄色表示赛车的初始位置,箭头表示赛车行进的方向。

用BTN1~BTN3三个按键分别控制赛车的左移、前进、右移,最终使赛车在不碰撞赛道的情况下走完全程,游戏结束,点阵显示“V”图案,数码管显示走完全程所耗费的时间。

当游戏时间超过59秒,或者赛车在行进过程中碰撞赛道,游戏失败,点阵显示“X”图案。

通过按键BTN0进行复位,控制点阵返回到初始状态。

二、系统设计1、设计思路这个过程乍一看蛮复杂的,但是当我经过仔细分析后发现,我的代码可以按照这个游戏的运行过程来写。

这个游戏分为4个状态,即倒计时,运行,成功和失败。

倒计时部分根据不同数字在点阵上的位置很容易设计出来,运行部分便是初始化赛道,赛车的位置,然后用按键来控制赛车运动,在这个过程中要不断判断赛车是否撞墙和到达终点,如果到达终点便进入第三个状态,成功,即显示“V”;若果撞墙便进入第四个状态,失败,即显示“X”。

在游戏运行的同时数码管还要计时。

2、总体框图(1)系统结构图(2)ASM 图译码显示器分频器控制器 计时器赛道及赛车CPRESET BTN1BTN2 BTN3启动NY是否碰到边界是否到达终点显示“V ”显示“×”计时移动是否复位是否复位YNNYNYN(4)功能模块图显示存储器控制器 方向控制模块计时器数码管分频器点阵显示倒计时移动显示“V ”显示“X ”3、模块设计(1)分频模块分频器:因为原有低频时钟为50MHZ,如果直接用这个时钟信号同时实现计时和显示部分,故需两个分频器,分别将时钟频率分为1Hz和1kHz,1Hz用来控制倒计时和游戏运行过程中的计时,1kHz用来控制点阵和数码管的显示。

北邮数电实验下实验报告(3篇)

北邮数电实验下实验报告(3篇)

第1篇一、实验目的1. 熟悉数字电子技术实验的基本流程和注意事项。

2. 掌握数字电路的基本测试方法和实验技巧。

3. 理解数字电路的基本原理,加深对数字电子技术的认识。

4. 提高动手能力和团队协作能力。

二、实验内容及要求1. 实验一:TTL与非门参数测试(1)测试TTL与非门的外形和管脚排列。

(2)测试TTL与非门的逻辑功能。

(3)测试TTL与非门的主要参数,如低电平输出电源电流IccL和高电平输出电源电流IccH。

2. 实验二:组合逻辑电路设计(1)设计一个4位二进制加法器。

(2)设计一个奇偶校验电路。

(3)设计一个编码器。

3. 实验三:时序逻辑电路设计(1)设计一个异步复位D触发器。

(2)设计一个同步复位D触发器。

(3)设计一个计数器。

4. 实验四:数字电子钟设计(1)设计一个秒表。

(2)设计一个定时器。

(3)设计一个闹钟。

三、实验电路1. 实验一:TTL与非门参数测试电路- 使用74LS20 TTL与非门芯片。

- 使用万用表测试低电平输出电源电流IccL和高电平输出电源电流IccH。

2. 实验二:组合逻辑电路设计电路- 使用74LS00 TTL与非门芯片。

- 使用电阻、电位器等元件设计加法器、奇偶校验电路和编码器。

3. 实验三:时序逻辑电路设计电路- 使用74LS74 TTL触发器芯片。

- 使用电阻、电容等元件设计异步复位D触发器、同步复位D触发器和计数器。

4. 实验四:数字电子钟设计电路- 使用555定时器芯片。

- 使用电阻、电容、二极管等元件设计秒表、定时器和闹钟。

四、实验结果记录1. 实验一:TTL与非门参数测试结果- 低电平输出电源电流IccL:0.5mA- 高电平输出电源电流IccH:1.2mA2. 实验二:组合逻辑电路设计结果- 4位二进制加法器:功能正常,能够实现4位二进制加法运算。

- 奇偶校验电路:功能正常,能够实现奇偶校验。

- 编码器:功能正常,能够实现8-3编码。

3. 实验三:时序逻辑电路设计结果- 异步复位D触发器:功能正常,能够实现异步复位。

数电课程实验报告——数字钟的设计

数电课程实验报告——数字钟的设计

数电课程实验报告——数字钟的设计
本次实验以数字钟的设计为主,目的是说明实现一个独立的数字钟的时钟电路的实验、设计。

首先,在实验之前,首先对大致原理和框图必须做到熟练。

电路的结构可以由电
路示意图获得,由此确定可采用的元件型号,以确定具体的电路框图。

随后,根据设计需求,确定每一部分的具体参数,精心测试,并在最终的方案中执行。

其次,进行实验,实验过程中,在测试电路的过程中,步骤要清晰,仔细进行夹线,
以实现一部完整的设计构思。

其中,要将LED灯和各个元件进行夹线,以输出一个完整
的数字钟图像,经过验证后,灯光和接线方式都是正确的。

最后,证实了数字钟电路操作的功效,与预期相符并可实现完美的数字时钟。

该实验
能够帮助我们更加深入了解电路设计,提升此类电路的设计能力,以及在实际应用中的能力。

总的来说,本次数字钟的实验表明,要想设计出一个成功的数字钟,除了要仔细设计
静态和动态电路以外,还要注意正确夹线,保证LED灯的正确连接,以及各个电路的回路
的正确连接。

此外,仔细观察、调试实验数据,并及时发现和纠正可能存在的差错,也至
关重要。

只有将这些要点全部结合起来,才能够做出一个准确、有效的数字时钟。

数电实验报告北邮(3篇)

数电实验报告北邮(3篇)

第1篇一、实验名称数字电路基础实验二、实验目的1. 熟悉数字电路的基本原理和组成。

2. 掌握常用数字电路元件(如逻辑门、触发器、计数器等)的功能和使用方法。

3. 培养动手能力和实验技能。

三、实验原理数字电路是由逻辑门、触发器、计数器等基本元件组成的。

逻辑门是数字电路的基本单元,用于实现基本的逻辑运算。

触发器是数字电路中的记忆单元,用于存储信息。

计数器是数字电路中的时序单元,用于实现计数功能。

四、实验仪器与设备1. 数字电路实验箱2. 万用表3. 导线4. 74LS00集成电路5. 74LS20集成电路五、实验内容1. 组合逻辑电路分析(1)搭建一个4输入与非门电路,输入端分别为A、B、C、D,输出端为Y。

(2)搭建一个2输入与非门电路,输入端分别为A、B,输出端为Y。

(3)搭建一个4输入与非门电路,输入端分别为A、B、C、D,输出端为Y。

要求输出Y为A、B、C、D的异或运算结果。

2. 触发器应用(1)搭建一个D触发器电路,输入端为D,输出端为Q。

(2)搭建一个JK触发器电路,输入端为J、K,输出端为Q。

(3)搭建一个计数器电路,使用D触发器实现一个4位二进制计数器。

3. 计数器应用(1)搭建一个十进制计数器电路,使用74LS90集成电路实现。

(2)搭建一个任意进制计数器电路,使用74LS90集成电路实现。

(3)搭建一个分频器电路,使用计数器实现。

六、实验步骤1. 根据实验原理和电路图,在实验箱上搭建实验电路。

2. 使用万用表测试电路的各个节点电压,确保电路连接正确。

3. 根据实验要求,输入不同的信号,观察输出结果。

4. 记录实验数据,分析实验结果。

七、实验结果与分析1. 组合逻辑电路分析(1)4输入与非门电路:当A、B、C、D都为0时,Y为1;否则,Y为0。

(2)2输入与非门电路:当A、B都为0时,Y为1;否则,Y为0。

(3)4输入与非门电路:当A、B、C、D中有奇数个1时,Y为1;否则,Y为0。

北邮电子-数电综合实验报告

北邮电子-数电综合实验报告

数字电路综合实验设计简易出租车计价器的设计与实现学院:电子工程学院班级: 2011211203学号: 2011210876姓名:孙月鹏班内序号: 04摘要本文介绍了利用Quartus II综合性PLD/FPGA开发软件,在MAXII数字逻辑实验开发板上实现简易出租车计价器功能的设计与实现方法.本方案采用自上而下的设计理念,将整体电路按照功能划分为分频、计数、控制、数码管显示电路、点阵显示电路等若干模块,模块内用VHDL语言完成逻辑设计,模块间用原理图进行连接,使整体可实现计费、计时等功能。

关键字:可编程器件模块化设计出租车计价器VHDL语言一、设计任务要求➢设计一台出租车计价器,不同情况下具有不同的收费标准。

基本要求:1.行驶公里:用时钟2秒钟表示出租车匀速行驶1公里。

在行车5公里以内,按起步价13元收费,超过5公里部分,以每公里2元收费。

燃油附加费每运次1元。

2.途中等待:用按键控制中途等待,等待少于(包括)5秒不收费,超过5秒后没等待3秒钟加收1元。

3.用数码管分时显示计费金额、行驶里程和等候时间.字母A表示当前处于显示计费金额状态,字母B表示当前处于显示行驶里程状态,字母C表示当前处于显示等候时间状态。

4.用按键控制出租车空驶、载客状态。

提高要求:1.用点阵滚动显示收费单据.2.具有夜间模式,基本单价加收20%的费用.出租车收费以元为单位,元以下四舍五入。

3.出租车行驶速度可调可控.4.多人乘车,分段计价。

5.自拟其他功能。

二、设计思路与结构框图1。

设计思路图1 结构框图由结构框图可以分析得出,该系统的的主体是计数控制器。

该系统由外部控制载客控制信号和等待控制信号,以时钟信号的翻转为计数依据,完成对时间、里程和费用的计数,并将结果通过数码管译码电路显示出来。

该系统的控制信号可由拨码或按键输入,时钟由开发板内部时钟分频得出,输出有点阵输出和数码管输出.因此,可将系统分为分频器、计数控制器、数码管译码和显示以及点阵显示四部分。

数电综合实验——数字时钟仿真与调试

数电综合实验——数字时钟仿真与调试

译码器 译码器 译码器时计数器校时电路分频器555振荡器分计数器秒计数器整点报时电路显示部分驱动部分计数部分3.计数、译码、显示电路同理可得到二十四进制计数器,如图1-4所示译码电路可先用BCD-锁存器/七段译码/驱动器74LS47,它可以直接驱动共阳数码管显示器。

译码显示电路如图1-5所示4.校时电路校时电路的作用是当计数器刚接通电源或走时出现误差时,进行时间的校准。

校准电路如图1-6所示。

分为时校准、分校准、秒校准。

5.整点报时电路电路图如1-7所示。

此电路每当“分”计数器和“秒”计数器计到59分50秒时便会自动驱动蜂鸣器,发出报警声,报警时间为10秒。

3、实验心得经过一周的努力,终于完成了该电子时钟的课程设计。

经过这段时间的课程设计,我学到了许多东西,对课本上的内容的理解加深了印象,同时也学会了一种学习的态度。

理论要联系实践,当然实践也离不开理论,由于对课本的内容还不是很熟悉,所以在做这个课程设计前,我先把课本的重点知识复习了一遍,时序逻辑电路、组合逻辑电路等,然后就是到图书馆查找相应的资料,抱着好几本书就在那里认真地查,查的过程中也看到了很多关于CMOS芯片的应用实例。

理论上的知识搞定了,接下来就是开始设计了。

Mutisim这个软件的仿真,给我的印象是简洁实用,很多电路都能在上面先进行仿真,不过我这个题目的核心芯片在仿真上面,出现了一些问题,一些管脚的位置和实际的不一样,仿真调试不成功,于是我就想到,按照理论来讲这是没有错的,为了验证清除,我先将电路进行分模块调试,把每一部分都仔细检查了一遍,最终发现了与仿真的不同,接线是一样的,不过在真实的接线中可行,在仿真中却不行,最大一个不同之处就在于校时模块,虽然仿真是那种接法可行,不过在实际接线中我采用了另外一种接法。

这次课程设计也再次让我看到理论与实践的差别和联系,理论固然重要,然而我们要在实践中发现错误,并解决错误,也提高了自己的动手能力和实际解决问题的能力。

数字电路实验报告_北邮

数字电路实验报告_北邮

一、实验目的本次实验旨在通过实践操作,加深对数字电路基本原理和设计方法的理解,掌握数字电路实验的基本步骤和实验方法。

通过本次实验,培养学生的动手能力、实验技能和团队合作精神。

二、实验内容1. 实验一:TTL输入与非门74LS00逻辑功能分析(1)实验原理TTL输入与非门74LS00是一种常用的数字逻辑门,具有高抗干扰性和低功耗的特点。

本实验通过对74LS00的逻辑功能进行分析,了解其工作原理和性能指标。

(2)实验步骤① 使用实验箱和实验器材搭建74LS00与非门的实验电路。

② 通过实验箱提供的逻辑开关和指示灯,验证74LS00与非门的逻辑功能。

③ 分析实验结果,总结74LS00与非门的工作原理。

2. 实验二:数字钟设计(1)实验原理数字钟是一种典型的数字电路应用,由组合逻辑电路和时序电路组成。

本实验通过设计一个24小时数字钟,使学生掌握数字电路的基本设计方法。

(2)实验步骤① 分析数字钟的构成,包括分频器电路、时间计数器电路、振荡器电路和数字时钟的计数显示电路。

② 设计分频器电路,实现1Hz的输出信号。

③ 设计时间计数器电路,实现时、分、秒的计数。

④ 设计振荡器电路,产生稳定的时钟信号。

⑤ 设计数字时钟的计数显示电路,实现时、分、秒的显示。

⑥ 组装实验电路,测试数字钟的功能。

3. 实验三:全加器设计(1)实验原理全加器是一种数字电路,用于实现二进制数的加法运算。

本实验通过设计全加器,使学生掌握全加器的工作原理和设计方法。

(2)实验步骤① 分析全加器的逻辑功能,确定输入和输出关系。

② 使用实验箱和实验器材搭建全加器的实验电路。

③ 通过实验箱提供的逻辑开关和指示灯,验证全加器的逻辑功能。

④ 分析实验结果,总结全加器的工作原理。

三、实验结果与分析1. 实验一:TTL输入与非门74LS00逻辑功能分析实验结果表明,74LS00与非门的逻辑功能符合预期,具有良好的抗干扰性和低功耗特点。

2. 实验二:数字钟设计实验结果表明,设计的数字钟能够实现24小时计时,时、分、秒的显示准确,满足实验要求。

北邮数电综合实验报告

北邮数电综合实验报告

北邮数电综合实验报告北邮数电综合实验报告一、实验目的与背景数电综合实验是北邮电子信息工程专业的重要实践环节,旨在通过实际操作,巩固和应用学生在数字电路、模拟电路、通信原理等相关课程中所学到的理论知识。

本实验报告将对数电综合实验的内容、过程和结果进行详细描述和分析。

二、实验内容本次数电综合实验的主要内容为设计一个数字电子钟。

该电子钟具备显示时间、日期、闹钟功能,并能实现闹钟的设置、开关控制等基本操作。

实验中,我们需要使用数字集成电路、显示模块、按键开关、时钟模块等元件进行电路设计和搭建。

三、实验过程1. 硬件设计与连接根据实验要求,我们首先进行电路设计。

根据数字电子钟的功能需求,我们需要选取适当的集成电路和模块。

通过分析电路原理图,我们将各个模块进行连接,保证信号的正确传递和控制。

2. 软件编程与调试在硬件连接完成后,我们需要进行软件编程。

通过使用C语言或者Verilog等编程语言,我们可以实现数字电子钟的各项功能。

在编程过程中,我们需要考虑到时钟频率、显示模块的控制、按键开关的响应等因素。

3. 实验调试与测试完成软件编程后,我们需要进行实验调试和测试。

通过连接电源,观察电子钟的各项功能是否正常工作。

如果发现问题,我们需要进行调试,找出问题所在,并进行修复。

四、实验结果与分析经过实验调试和测试,我们成功实现了数字电子钟的设计和搭建。

该电子钟能够准确显示时间和日期,并能根据用户的设置进行闹钟的开关和响铃。

通过实验过程,我们对数字电路的原理和应用有了更深入的理解。

五、实验心得与收获通过参与数电综合实验,我深刻体会到了理论与实践的结合的重要性。

在实验中,我们需要将课堂上所学的知识应用到实际中,通过实际操作来巩固和加深对知识的理解。

同时,实验中也锻炼了我们的动手能力和解决问题的能力。

在实验过程中,我们还学会了团队合作的重要性。

在设计和搭建电路的过程中,我们需要相互配合,互相帮助,共同解决问题。

通过与同学们的合作,我们不仅解决了实验中遇到的各种问题,还加深了与同学们的交流和友谊。

电子实习数字钟实验报告

电子实习数字钟实验报告

数字钟实验报告一、实验目的1. 学习数字电路的设计与实践,提高动手能力。

2. 了解和掌握数字电子钟的工作原理及制作方法。

3. 培养严谨的科学态度和良好的团队协作精神。

二、实验任务及要求1. 设计并制作一个具有时、分、秒显示功能的数字电子钟。

2. 电子钟应具备校时功能,能手动调整时、分。

3. 电子钟在24小时内整点报时,从59分50秒开始,每2秒钟响一声,共响5次。

4. 电子钟在6--22点之间每整点报时,23--5点之间整点不报时。

三、实验原理及设计思路1. 实验原理数字电子钟主要由石英晶体振荡器、分频器、计数器、译码器、显示器等组成。

石英晶体振荡器产生1Hz的基准信号,分频器将1Hz信号分频得到秒信号,计数器对秒信号进行计数实现时、分、秒的显示,译码器将计数器的输出信号转换为显示器所需的信号,显示器以数字形式显示时间。

2. 设计思路(1)选用合适的石英晶体振荡器,确保电子钟的走时准确。

(2)设计分频器,将1Hz信号分频得到秒信号。

(3)设计计数器,实现时、分、秒的计数功能。

(4)设计译码器,将计数器的输出信号转换为显示器所需的信号。

(5)设计显示器,以数字形式显示时间。

(6)设计校时电路,实现手动调整时、分功能。

(7)设计整点报时电路,实现整点报时功能。

四、实验步骤1. 搭建石英晶体振荡器电路,确保输出1Hz的基准信号。

2. 设计并搭建分频器电路,将1Hz信号分频得到秒信号。

3. 设计并搭建计数器电路,实现时、分、秒的计数功能。

4. 设计并搭建译码器电路,将计数器的输出信号转换为显示器所需的信号。

5. 设计并搭建显示器电路,以数字形式显示时间。

6. 设计并搭建校时电路,实现手动调整时、分功能。

7. 设计并搭建整点报时电路,实现整点报时功能。

8. 调试并优化电路,确保电子钟的正常运行。

五、实验结果与分析1. 实验结果经过以上步骤,我们成功制作了一个具有时、分、秒显示功能的数字电子钟。

实验结果显示,电子钟走时准确,能手动调整时、分,整点报时功能正常,符合实验要求。

数字电路实验六 数字时钟的设计

数字电路实验六 数字时钟的设计
分计数器的个位和十位之间的连接类同于秒计数器。需实现从秒到分的进位。电路连接完成
后检验其功能。
3、实现校时功能(扩展命题)
检验功能。
在实验2电路图基础上做如下改动:图中粗线(已用红线圈出)引出的连线
置高电平,当调整到校准的时刻后,再将这根连线重新接到74HC20的输出端,
及完成了校时,此后数字钟正常工作。
截断正常的计数通路,然后再进行人工出触发计数或将频率较高的方波信号加到需要校正的
计数单元的输入端,校正好后,再转入正常计时状态即可。
5)闹钟电路
一般时钟都应具备闹钟功能,即在到达某预定时间时,时钟会发出连续的或有节奏的音频声
波,较复杂的也可以是实时语音提示,以示提醒。
实验用器件管脚介绍:
1、74HC(LS)20(二四输入与非门)管脚如下图所示。
4、实现闹钟功能(扩展命题)
连接电路,检验其功能。
制作整分报时器:在实验2电路图基础上做一些调整就能得到,将从左端74HC20引出的置数信号,就可以得到一高电平,用这个高电平区驱动蜂鸣器报时,实际上,
每当数字钟计时到59分59秒,蜂鸣器便开始报时,发出一个音频声波。
五、实验注意事项
集成电路要轻插轻拔!
信号得到。
2)时间计数单元
时间计数单元有分计数和秒计数等几个部分。分计数和秒计数单元为60进制计数器,其输
出为8421BCD码。
3)译码驱动及显示单元
计数器实现了对时间的累计并以8421BCD码形式输出,显示译码电路将计数器的输出数码
转换为数码显示器件所需要的输出逻辑和一定的电流。
4)校时电路
当重新接通电源或走时出现误差时都需要对时间进行校正。通常,校正时间的方法是:首先
2、74HC(LS)160(4位十进制计数器)管脚如下图所示。

北邮数电综合实验报告

北邮数电综合实验报告

数字电路与逻辑设计实验题目: 简易出租车计价器学号:姓名:班级:学院:时间:2013/11/4一.设计课题的任务要求设计一台出租车计价器,不同情况具有不同的收费标准。

基本要求:1、行驶公里:用时钟2 秒钟表示出租车匀速行驶1 公里,在行车5 公里以内,按起步价13 元收费,超过5 公里部分,以每公里2 元收费。

燃油附加费为每运次1 元。

2、途中等待:用按键控制中途等待,等待少于(包括)5 秒不收费,超过5 秒后每等待3 秒钟加收1 元。

3、用数码管分时显示计费金额、行驶里程和等候时间。

字母A 表示当前处于显示计费金额状态,字母B 表示当前处于显示行驶里程状态,字母C 表示当前处于显示等候时间状态。

4、用按键控制出租车空驶、载客状态并用点阵显示空驶、载客状态。

二、系统设计(包括设计思路、总体框图、分块设计)1、设计思路:将整个计价器分为控制和计费模块,按键及防抖模块,数码管显示模块,点阵显示模块。

其中控制和计费模块作为系统核心,负责给出所有控制和对外显示信号。

按键及防抖模块提供输入按键信号,用于状态间切换。

数码管用于显示计费金额、里程和等待时间信息。

点阵模块用于显示出租车载客和空驶状态。

2、设计框图:3、分块设计①控制和计费模块:采用状态机的设计方式,根据计费计时方式的不同,分为了S0、S1、S2、S3四个状态,四个状态的含义和状态转移图如图所示:②按键防抖模块:如图:按键防抖模块的原理是利用信号延迟,每个防抖模块都有一个输入时钟,每按下一次按键后输出端将产生一个输入时钟宽度的脉冲,输入时钟频率与主控模块中的状态切换扫描时钟频率相同,使状态能够及时的切换。

③点阵显示模块:点阵模块主要用于显示出租车的空载和载客状态。

空载时显示汉字“空”,载客时显示标志“X”。

输出信号lie和com分别连接到点阵控制的行和列。

En是由计费控制模块给出的空载/载客信号。

④数码管显示模块数码管主要用于显示计费、里程、等待时间信息。

数字电路课程设计实验-电子钟.

数字电路课程设计实验-电子钟.

本科实验报告多功能数字钟题目:多功能数字钟一、设计要求要求设计一个具有“时”、“分”、“秒”的十进制数字显示的电子钟,具体要求如下:1、具有手动校时、校分、校秒的功能。

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

3、能进行整点报时,能发出仿中央人民广播电台的整点报时信号。

(从59分50秒起,每隔2秒钟发出一次低音“嘟”的信号,连续5次,最后一次要求高音“嘀”的信号,此信号结束即达到整点)二、设计分析及系统方案设计1、系统分析作为时钟设计,首先需要的是定时器。

输入1Hz秒信号进入通过模60计数器(秒),其进位端作为分信号clk的发生器;之后把该分钟clk信号输入到下一个模60计数器(分),其进位端作为小时信号clk的发生器;最后把小时信号clk 输入到模24计数器,这样,时钟的基本框架就完成了。

系统要求能做时钟“具有手动校时、校分、校秒的功能”,因此可以设定一个校时模块,通过人为添加进位端信号达到校时目的。

另外,系统还要求“定时与闹钟功能”,“能进行整点报时”,这个可以通过一个模块进行判定,当达到设定要求时,输出一定频率的信号给SPEAKER.2、系统方案设计通过上述分析,系统可以分为四个部分:校时与闹钟设定模块、显示模块、时钟计数模块以及定时响铃模块。

系统总体结果框图如下:三、系统以及模块硬件电路设计1、硬件电路图2、引脚名称附表四、系统的VHDL设计1、系统原理图(GDF)2、系统各模块的VHDL实现 1、小时时间计数模块SHI library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity shi isport(clk: in std_logic;;输入分钟的输出进位信号;输出小时进位信号,无意义 rco: out std_logic;q1: out std_logic_vector(3 downto 0);;输出小时低位数据 q2: out std_logic_vector(3 downto 0) ;输出小时高位数据 );end;architecture a of shi issignal tempq1: std_logic_vector(3 downto 0);signal tempq2: std_logic_vector(3 downto 0);beginprocess(clk)beginif clk'event and clk='1' thenif ((tempq1="0011" )and(tempq2="0010")) then;如果时间为‘24’tempq1<="0000"; ;低位高位全清零,进位端置1tempq2<="0000"; rco<='1';elsif tempq1="1001" then ;如果低位时间为‘9’tempq2<=tempq2+1; tempq1<="0000"; ;低位清零,高位加1 rco<='0';elsetempq1<=tempq1+1;rco<='0'; ;否则低位时间加1end if;end if;end process;q1<=tempq1;q2<=tempq2;end;2、分钟和秒钟时间计数模块FENMIAOlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fenmiao isport(clk: in std_logic;;对分钟输入秒钟的输出进位信号;对秒钟输入1Hz ;输出进位端;输出时间低位数据;输出时间高位数据 rco: out std_logic; q1: out std_logic_vector(3 downto 0); q2: out std_logic_vector(3 downto 0));end;architecture a of fenmiao issignal tempq1: std_logic_vector(3 downto 0);signal tempq2: std_logic_vector(3 downto 0);beginprocess(clk)beginif clk'event and clk='1' thenif ((tempq1="1001" )and(tempq2="0101")) then; ;如果时间为‘59’ tempq1<="0000"; tempq2<="0000";rco<='1';elsif tempq1="1001" then ;如果低位时间数据为‘9’ ;高位低位时间全部清零,进位端置‘1’ tempq2<=tempq2+1; ;高位时间加1,低位清零tempq1<="0000";rco<='0';elsetempq1<=tempq1+1; ;否则低位加1rco<='0';end if;end if;q1<=tempq1;q2<=tempq2;end process;end;3、分频模块FENPINlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fenpin isport(clk: in std_logic; ;输入1KHz信号;输出1HZ信号 q1sec: out std_logic);end;architecture td OF fenpin issignal x:std_logic;beginprocess(clk)variable cnt:integer range 0 to 511;beginif clk'event and clk='1' thenif cnt<1999 then ;对信号1024分频cnt:=cnt+1;elsecnt:=0;x<=not x;end if;end if;end process;q1sec<=x;end;4、调时间允许模块 SETlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity set isport(set: in std_logic;clk: in std_logic;adds: in std_logic;addm: in std_logic;addh: in std_logic; ;调时允许信号;工作主频;调节时间;调节分钟;调节秒钟 os: out std_logic; ;调节时间允许 om: out std_logic; ;调节分钟允许 oh: out std_logic);end;architecture a of set isbeginprocess(clk)beginif set='0' thenos<=adds;om<=addm;oh<=addh; ;如果允许调节时间;把按键值赋给输出信号;调节秒钟允许else NULL;end if;end process;end;5、调闹钟时间模块 SETSlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity sets isport(set: in std_logic;add: in std_logic; ;闹钟调时允许信号;调节按键q1: out std_logic_vector(3 downto 0); ;低位输出 q2: out std_logic_vector(3 downto 0) ;高位输出 );end;architecture a of sets issignal tempq1: std_logic_vector(3 downto 0);signal tempq2: std_logic_vector(3 downto 0);beginprocess(add)beginif set='0' then ;如果调时不允许,闹钟清零 tempq1<="0000";tempq2<="0000";elsif add'event and add='1' then ;否则按按键值设定时间 if((tempq1="0011" )and(tempq2="0010")) then tempq1<="0000";tempq2<="0000";elsif tempq1="1001" thentempq2<=tempq2+1;tempq1<="0000";elsetempq1<=tempq1+1;end if;end if;end process;q1<=tempq1;q2<=tempq2;end;6、调闹钟分钟秒钟模块 SETFMlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity setfm isport(set: in std_logic;add: in std_logic; ;调节闹钟允许信号;调节按按键之设定时间q1: out std_logic_vector(3 downto 0); ;低位数据输出 q2: out std_logic_vector(3 downto 0) ;高位数据输出 );end;architecture a of setfm issignal tempq1: std_logic_vector(3 downto 0);signal tempq2: std_logic_vector(3 downto 0);beginprocess(add)beginif set='0' then ;如果闹钟调节不允许,闹钟清零 tempq1<="0000";tempq2<="0000";elsif add'event and add='1' then ;否则按设定值if ((tempq1="1001" )and(tempq2="0101")) then tempq1<="0000";tempq2<="0000";elsif tempq1="1001" thentempq2<=tempq2+1;tempq1<="0000";elsetempq1<=tempq1+1;end if;end if;end process;q1<=tempq1;q2<=tempq2;end;7、定时模块 DINGSHIlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity dingshi isport(clk: in std_logic;sl: in std_logic_vector(3 downto 0); ;时钟秒信号低位 sh: in std_logic_vector(3 downto 0); ;时钟秒信号高位 ml: in std_logic_vector(3 downto 0); ;时钟分信号低位 mh: in std_logic_vector(3 downto 0); ;时钟分信号高位 hl: in std_logic_vector(3 downto 0); ;时钟时信号低位 hh: in std_logic_vector(3 downto 0); ;时钟时信号高位 ssl: in std_logic_vector(3 downto 0); ;闹钟秒信号低位 ssh: in std_logic_vector(3 downto 0); ;闹钟秒信号高位 sml: in std_logic_vector(3 downto 0); ;闹钟分信号低位 smh: in std_logic_vector(3 downto 0); ;闹钟分信号高位 shhl: instd_logic_vector(3 downto 0); ;闹钟时信号低位 shh: in std_logic_vector(3 downto 0); ;闹钟时信号高位 sounder: out std_logic);end;architecture a of dingshi issignal clk1: std_logic;signal temp1: std_logic;signal temp2: std_logic;begin ;扬声器process(clk)beginif (hh=shh and hl=shhl) then ;如果时钟与闹钟设定值时、分;相同,且秒高位相同,则响铃if (mh=smh and ml=sml) thenif (sh=ssh) thentemp1<=clk;end if;end if;end if;end process;process(clk)begin ;二分频,产生512Hz信号 if clk'event and clk='1' thenclk1<=not clk1 ;end if;end process;process(clk)beginif(mh="0101" and ml="1001") thenif(sh="0101") the ;如果时钟分信号为‘59’,秒信号高位为;‘5’,低位为‘0’,‘2’,‘4’,‘6’,‘8’;则响铃case sl is when "0000" => temp2<=clk1; when "0010" => temp2<=clk1; when "0100" => temp2<=clk1; when "1000" => temp2<=clk1; when others => NULL; when "0110" => temp2<=clk1; end case;end if;elsif(mh="0000" and ml="0000") then ;如果时分均为‘0’,则响;铃if(sh="0000" and sl="0000") thentemp2<=clk; end if;end if;end process;sounder<=(temp2 or temp1);end;8、输出显示模块 OUTPUTS(系统有三个输出模块,大体雷同,这里以其中一个为例)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity outputh isport(clk: in std_logic;;系统工作主频 mode: in std_logic; ;显示模式选择信号 hl: in std_logic_vector(3 downto 0); ;时钟信号低位 hh: in std_logic_vector(3 downto 0); ;时钟信号高位shhl: in std_logic_vector(3 downto 0);;闹钟信号低位shh: in std_logic_vector(3 downto 0);;闹钟信号高位ohh: out std_logic_vector(3 downto 0);;输出信号低位 ohl: out std_logic_vector(3 downto 0);输出信号高位 );end;architecture a of outputh isbeginprocess(clk)beginif clk'event and clk='1' thenif mode='1' then;elseend if;end if;end process; ;如果mode选择1,则输出显示闹钟;否则mode选择0,则输出显示时钟 ohh<=shh;ohl<=shhl; ohh<=hh;ohl<=hl;end;五、结论以及结果说明1、运行环境说明(1)系统运行的软硬件环境计算机平台:Windows Xp(service pack3)软件调试环境:Max Plus 2下载系统:EPF10K10LC84-4(2)系统运行结果·24小时制时钟显示·按new键可以选择显示数码管显示内容:显示时间或显示闹钟·set键未按下时可以对时钟/闹钟进行修改:adds修改秒;addm修改分;addh修改时·闹钟允许,则时钟时间与闹钟一致时,扬声器发声·整点报时,且从59分50秒起,每隔2秒钟发出一次低音“嘟”的信号,连续5次,最后一次高音“嘀”的信号,此信号结束即达到整点。

数电课程实验报告-数字钟的设计

数电课程实验报告-数字钟的设计

《数字电子技术》课程设计报告设计题目: 数字钟班级学号:1407080701221 1407080701216 1407080701218学生姓名:谢志强陈企张海清指导教师:周玲时间:2016.6.15-2016.6.16《数字电子技术》课程设计一、设计题目:数字钟的设计一、设计任务与要求:1.时钟显示功能,能够以十进制显示“时”、“分”、“秒”。

其中时为24进制,分秒为60进制。

2. 其他功能扩展:(1)设计一个电路实现时分秒校准功能。

(2)闹钟功能,可按设定的时间闹时。

(3)设计一个电路实现整点报时功能等。

在59分51秒、53秒、55秒、57秒输出750Hz音频信号,在59分59秒时输出1000Hz信号,音频持续1s,在1000Hz荧屏结束时刻为整点。

二、设计方案:数字电子钟由石英晶体振荡器、分频器、计数器、译码器显示器和校时电路组成。

振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。

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

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

计时出现误差时,可以用校时电路校时、校分。

三、芯片选定及各单元功能电路说明:实验器材及主要器件(1) CC4511 6片(2) 74LS90 5片(3) 74LS92 2片(4) 74LS191 1片(5) 74LS00 5片(6) 74LS04 3片(7) 74LS74 1片(8) 74LS2O 2片(9) 555集成芯片 1片(10)共阴七段显示器 6片(11)电阻、电容、导线等若干①振荡器石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整。

它还具有压电效应,在晶体某一方向加一电场,则在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限止时,才达到最后稳定。

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

数电综合实验数字电子时钟
指导老师:王老师
姓名:胡安明
学号:09210082
实验名称:数字电子钟
设计指标:
数字电子钟以一昼夜24小时为一个计数周期;
设计具有“时”、“分”、“秒”数字显示;
设计具有较时功能,分别进行时、分、秒的校正。

实验目的:
了解数字电子钟的工作原理;
了解数字电子钟的设计及其电路的连接;
会使用555多谐振荡器、CD4518芯片、74LS00芯片、74LS47芯片。

实验仪器:
实验所需元器件:
555定时器一个、CD4518芯片一个、译码器74LS47六个、数码管六个、74LS00二个、电阻680Ω六个、电容0.1µf一个、电容0.01µf一个、电阻2.4K二个
CD4518功能表:
实验原里电路图:
实验分析过程及结果:
(1)555定时器组成的多谐振荡器电路:
且f=2kHz q=C=0.1µf
所以
(2)分频器电路:
分析:由555定时器组成的多谐振荡器的输出为2kHz的方波,现在设计数字电子钟所需1Hz的脉冲,则需要使用2个CD4518芯片进行分频,电路图如下:
六十进制计数器电路连接图:
二十四进制计数器:
译码驱动电路:
实验心得体会:
通过本次综合设计实验,我体会颇深。

站在个人的角度,我从两方面叙述和总结一下这次的实验。

我在本次实验中所做的工作:
分析电路的要求,根据实验设计要求选取实验材料;
与组员协作、讨论,共同完成实验电路的设计;
连接电路,与组员平均分配参与各个部分电路的研究;
检查电路的能否工作,是否达到设计的要求,排错,最终完成电路。

个人体会:
这是一次综合性很强的实验,在实验中,学会了如何和组员共同协作完成任务,实践时间不成,和组员的协作是否默契在这次实验中体现出及其重要的一面,协作的好与坏直接影响到本次实验进程的快慢与结果的是否成功;这又是一次需要动手的实验,学会了如何理论联系实践,实验中的认芯片,根据芯片图与实际芯片连接电路很能体现实践联系理论的重要性,很能锻炼动手能力;这又
是一次急需细心的实验,不仅要快,而且要准,不能有丝毫的马虎,实验中出现的漏连了本该接地的管脚的问题很能说明这个问题。

总体上说,我们小组在本次实验是成功,较好的完成任务。

电路板的连接比较美观,实验结果也是成功的。

在这次实验中不仅锻炼了我的动手能力,也让我对理论知识有了更深刻的认识。

同时,我也更加理解了“理论是实践的基础”、“理论联系实践的重要”,只有在平时努力学好理论知识,多动脑,多动手,才能在是问题面前游刃有余!。

相关文档
最新文档