当前位置:文档之家› 大连理工大学数字电路课程设计报告:多功能数字时钟设计

大连理工大学数字电路课程设计报告:多功能数字时钟设计

大连理工大学数字电路课程设计报告:多功能数字时钟设计
大连理工大学数字电路课程设计报告:多功能数字时钟设计

大连理工大学本科实验报告题目:多功能数字时钟设计

课程名称:数字电路与系统课程设计

学院(系):信息与通信工程学院

专业:电子信息工程

班级:

学生姓名:

学号:

完成日期:2014年7月16日

2014 年7 月16 日

题目:多功能数字时钟设计

1 设计要求

1) 具有“时”、“分”、“秒”及“模式”的十进制数字显示功能;

2) 具有手动校时、校分功能,并能快速调节、一键复位(复位时间12时00分00秒);

3) 具有整点报时功能,从00分00秒起,亮灯十秒钟;

4) 具有秒表功能(精确至百分之一秒),具有开关键,可暂停、可一键清零;

5) 具有闹钟功能,手动设置时间,并可快速调节,具有开关键,可一键复位(复位时间12时00分00秒),闹钟时间到亮灯十秒钟进行提醒;

6) 具有倒计时功能(精确至百分之一秒),可手动设置倒计时时间,若无输入,系统默认60秒倒计时,且具有开关键,计时时间到亮灯十秒钟进行提醒,可一键复位(复位时间默认60秒)。

2 设计分析及系统方案设计

2.1 模式选择模块:按键一进行模式选择,并利用数码管显示出当前模式。模式一:时钟显示功能;模式二:时钟调节功能;模式三:闹钟功能;模式四:秒表功能;模式五:倒计时功能。

2.2 数字钟的基本功能部分:包括时、分、秒的显示,手动调时,以及整点报时部分。基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。

具有复位按键1,在时钟模式下按下复位键后对时钟进行复位,复位时间12时00分00秒。

进入手动调时功能时,通过按键调节时间,每按下依次按键2,时钟时针加一,按下按键2一秒内未松手,时钟时针每秒钟加十;按键1对分针进行控制,原理与时针相同并通过译码器由七位数码管显示。

从00分00秒开始,数字钟进入整点报时功能(本设计中以一个LED灯代替蜂鸣器,进行报时),亮灯10秒钟进行提示。

2.3多功能数字钟的秒表功能部分:计时范围从00分00.00秒至59分59.99秒。可由复位键0异步清零,并由开关1控制计时开始与停止。

将DE2硬件中的50MHZ晶振经过分频获得周期为0.01秒的时钟脉冲,将信号送入计数器进行计算,并把累计结果通过译码器由七位数码管显示

2.4多功能数字钟的闹钟功能部分:进入闹钟功能模式后,通过按键2(设定小时)和按键1(设定分钟)设定闹钟时间,当按下按键一秒内未松手时,可进行快速设定时间。当时钟进入闹钟设定的时间(判断时钟的时信号时针,分针分别与闹钟设定的时信号时针、分针是否相等),则以LED灯连续亮10秒钟进行提示,并由开关0控制闹钟的开和关。

2.5 多功能数字钟的倒计时功能部分:可通过按键3(设定分针)和按键2(设定秒针)设定倒计时开始,当按下按键一秒内未松手时,可进行快速设定时间。当没有手动时间设定时,系统默认为60秒倒计时。倒计时的时钟与数字钟的时钟相同,每迎到一个1s时钟上升

沿,则计数器减一。计数器减至00时,分钟位、秒钟位保持为00。倒计时结束时(即00分00秒),倒计时信号灯亮10秒钟进行提示,并由开关2控制倒计时的开始于停止。

本设计通过数据选择器控制译码器,使数码管独立显示,各功能之间互不影响。 当mode=“000”时,时钟功能,则对时钟信号进行译码,数码管显示时钟数据; 当mode=“001”时,时间校准功能,则对时钟信号进行译码,数码管显示闹钟数据; 当mode=“010”时,闹钟功能,则对闹钟信号进行译码,数码管显示闹钟信号数据; 当mode=“011”时,秒表功能,则对秒表信号进行译码,数码管显示秒表信号数据。 当mode=“100”时,则倒计时功能,对倒计时钟信号进行译码,数码管显示倒计时信号数据。

系统总体结构框图如下所示:

3系统以及模块硬件电路设计

3.1分频电路参数计算: 6

6

61

5010001000150101

5010001000.150101

501000100.015010T s

T s

T s

=

???=?=???=?=???=?

3.2系统硬件电路设计

系统硬件模拟图:

4 系统的VHDL设计

4.1顶层设计

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity liyabin is --实体声明,及系统输入与输出

port(clk,rst,add,dec,selectmode,startmb,startnz,startdjs:in std_logic;

qgs,qgg,qss,qsg,qfs,qfg,qms,qmg:buffer std_logic_vector(6 downto 0);

ledbs,lednz,leddjs:out std_logic

);

end;

architecture data of liyabin is

component mode --模式循环模块元件例化

port(selectmode:in std_logic;

mode:buffer std_logic_vector(2 downto 0)

);

end component;

component gnxz --功能选择模块元件例化

port(zt:in std_logic_vector(2 downto 0);

sz1,sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);--时钟显示信号

mb1,mb2,mb3,mb4,mb5,mb6:in std_logic_vector(3 downto 0);--秒表显示信号

nz3,nz4,nz5,nz6:in std_logic_vector(3 downto 0);--闹钟显示信号

djs1,djs2,djs3,djs4,djs5,djs6:in std_logic_vector(3 downto 0);--倒计时显示信号

s1,s2,s3,s4,s5,s6,s7,s8:out std_logic_vector(3 downto 0)--输出,送入显示模块用数码管进行显示

);

end component;

component fp --分频模块元件例化

port(clk,rst:in std_logic;

clk10ms,clk100ms,clk1s:out std_logic);

end component;

component sz --时钟模块元件例化

port(zt:in std_logic_vector(2 downto 0);

clk,clk100ms,rst,add,dec:in std_logic;

sz1,sz2,sz3,sz4,sz5,sz6:buffer std_logic_vector(3 downto 0);

ledbs: out std_logic

);

end component;

component nz --闹钟模块元件例化

port(startnz,add,dec,rst,clk,clk100ms:in std_logic;

zt:in std_logic_vector(2 downto 0);

sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);--时钟显示信号

nz3,nz4,nz5,nz6:buffer std_logic_vector(3 downto 0);--闹钟显示信号]

lednz:out std_logic --闹钟提示灯输出

);

end component;

component mb --秒表模块元件例化

port(zt:in std_logic_vector(2 downto 0);

clk,rst,startmb:in std_logic;

mb1,mb2,mb3,mb4,mb5,mb6:buffer std_logic_vector(3 downto 0)

);

end component;

component djs --倒计时模块元件例化

port(rst,startdjs,add,dec,clk,clk100ms:in std_logic;

zt:in std_logic_vector(2 downto 0);

djs1,djs2,djs3,djs4,djs5,djs6:buffer std_logic_vector(3 downto 0);

leddjs:out std_logic

);

end component;

component xs --显示模块元件例化

port(xsin:in std_logic_vector(3 downto 0);--

xsout:out std_logic_vector(6 downto 0)

);

end component;

signal clk10ms,clk100ms,clk1s,clk1m,clk1h :std_logic; --分频脉冲信号级进位脉冲信号

signal sz1,sz2,sz3,sz4,sz5,sz6,sz33,sz55:std_logic_vector(3 downto 0);--时钟显示信号signal nz3,nz4,nz5,nz6:std_logic_vector(3 downto 0);--闹钟显示信号

signal mb1,mb2,mb3,mb4,mb5,mb6:std_logic_vector(3 downto 0);--秒表显示信号

signal djs1,djs2,djs3,djs4,djs5,djs6:std_logic_vector(3 downto 0);--倒计时显示信号

signal s1,s2,s3,s4,s5,s6,s7,s8:std_logic_vector(3 downto 0);--显示信号

signal zt:std_logic_vector(2 downto 0);

begin --结构体

------------------------

------模式循环模块------

------------------------

u1:mode port map(selectmode,zt);

------------------------

------功能选择模块-----

------------------------

u2:gnxz port map(zt,sz1,sz2,sz3,sz4,sz5,sz6,

mb1,mb2,mb3,mb4,mb5,mb6,

nz3,nz4,nz5,nz6,

djs1,djs2,djs3,djs4,

s1,s2,s3,s4,s5,s6,s7,s8);

------------------------

--------分频模块--------

------------------------

u3:fp port map(clk,rst,clk10ms,clk100ms,clk1s);

------------------------

--------时钟模块--------

------------------------

u4:sz port map(zt,clk1s,clk100ms,rst,add,dec,sz1,sz2,sz3,sz4,sz5,sz6,ledbs); ------------------------

--------闹钟模块-------

------------------------

u5:nz port map(startnz,add,dec,rst,clk1s,clk100ms,

zt,sz2,sz3,sz4,sz5,sz6,nz3,nz4,nz5,nz6,lednz);

------------------------

--------秒表模块--------

------------------------

u6:mb port map(zt,clk10ms,rst,startmb,mb1,mb2,mb3,mb4,mb5,mb6);

------------------------

--------倒计时模块------

------------------------

u7:djs port map(rst,startdjs,add,dec,clk10ms,clk100ms,

zt,djs1,djs2,djs3,djs4,djs5,djs6,leddjs);

-----------------------------

---------显示模块------------

-----------------------------

show1: xs port map(s1,qmg);

show2: xs port map(s2,qms);

show3: xs port map(s3,qfg);

show4: xs port map(s4,qfs);

show5: xs port map(s5,qsg);

show6: xs port map(s6,qss);

show7: xs port map(s7,qgg);

show8: xs port map(s8,qgs);

end; --结束

4.2 分频模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity fp is

port(clk,rst:in std_logic;

clk10ms,clk100ms,clk1s:out std_logic);

end;

architecture data of fp is

begin

--50兆分频,产生clk1s,作为始时钟的秒计时脉冲

process(clk,rst)

variable num:integer range 0 to 49999999;

begin

if rst='0' then

num:=0;

elsif rising_edge(clk) then

if num=49999999 then

num:=0;

clk1s<='1';

else

num:=num+1;

clk1s<='0';

end if;

end if;

end process;

--5兆分频,产生clk100ms(即clk0.1s),作为快速调整时间的脉冲信号process(clk,rst)

variable num:integer range 0 to 4999999;

begin

if rst='0' then

num:=0;

elsif rising_edge(clk) then

if num=4999999 then

num:=0;

clk100ms<='1';

else

num:=num+1;

clk100ms<='0';

end if;

end if;

end process;

--5兆分频,产生clk10ms(即clk0.01s)作为秒表计时脉冲

process(clk,rst)

variable num:integer range 0 to 499999;

begin

if rst='0' then

num:=0;

elsif rising_edge(clk) then

if num=499999 then

num:=0;

clk10ms<='1';

else

num:=num+1;

clk10ms<='0';

end if;

end if;

end process;

end;

4.3模式循环模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity mode is --实体声明

port(selectmode:in std_logic;

mode:buffer std_logic_vector(2 downto 0)

);

end;

architecture data of mode is

begin

process(selectmode)

begin

if rising_edge(selectmode) then --模式循环计数器

if mode="100" then

mode<="000";

else mode<=mode+1;

end if;

end if;

end process;

end;

4.4功能选择模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity gnxz is --实体声明

port(zt:in std_logic_vector(2 downto 0);

sz1,sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);--时钟显示信号

mb1,mb2,mb3,mb4,mb5,mb6:in std_logic_vector(3 downto 0);--秒表显示信号

nz1,nz2,nz3,nz4,nz5,nz6:in std_logic_vector(3 downto 0);--闹钟显示信号

djs1,djs2,djs3,djs4,djs5,djs6:in std_logic_vector(3 downto 0);--倒计时显示信号

s1,s2,s3,s4,s5,s6,s7,s8:out std_logic_vector(3 downto 0)--输出,送入显示模块用数码

管进行显示

);

end;

architecture data of gnxz is

begin

process(zt,sz1,sz2,sz3,sz4,sz5,sz6, --选择译码器数日信号

nz3,nz4,nz5,nz6,

mb1,mb2,mb3,mb4,mb5,mb6,

djs1,djs2,djs3,djs4,djs5,djs6)

begin

if zt="000" then--1时钟显示

s1<=sz1;s2<=sz2;s3<=sz3;s4<=sz4;s5<=sz5;s6<=sz6;s7<="0001";s8<="1111";

elsif zt="001" then--2调整

s1<=sz1;s2<=sz2;s3<=sz3;s4<=sz4;s5<=sz5;s6<=sz6;s7<="0010";s8<="1111";

elsif zt="010" then--3闹钟

s1<="0000";s2<="0000";s3<=nz3;s4<=nz4;s5<=nz5;s6<=nz6;s7<="0011";s8<="1111";

elsif zt="011" then--4秒表

s1<=mb1;s2<=mb2;s3<=mb3;s4<=mb4;s5<=mb5;s6<=mb6;s7<="0100";s8<="1111";

elsif zt="100" then--5倒计时

s1<=djs1;s2<=djs2;s3<=djs3;s4<=djs4;s5<=djs5;s6<=djs6;s7<="0101";s8<="1111";

else s1<=sz1;s2<=sz2;s3<=sz3;s4<=sz4;s5<=sz5;s6<=sz6;s7<="0001";s8<="1111";

end if;

end process;

end;

4.5显示模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity xs is

port(xsin:in std_logic_vector(3 downto 0);

xsout:out std_logic_vector(6 downto 0)

);

end;

architecture data of xs is

begin

process(xsin) --显示译码器

begin

case xsin is

when "0000"=>xsout<="1000000";

when "0001"=>xsout<="1111001";

when "0010"=>xsout<="0100100";

when "0011"=>xsout<="0110000";

when "0100"=>xsout<="0011001";

when "0101"=>xsout<="0010010";

when "0110"=>xsout<="0000010";

when "0111"=>xsout<="1111000";

when "1000"=>xsout<="0000000";

when "1001"=>xsout<="0010000";

when others=>xsout<="1111111";

end case;

end process;

end;

4.6 时钟及其调整模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity sz is --实体声明

port(zt:in std_logic_vector(2 downto 0);

clk,clk100ms,rst,add,dec:in std_logic;

sz1,sz2,sz3,sz4,sz5,sz6:buffer std_logic_vector(3 downto 0);

ledbs: out std_logic

);

end;

architecture data of sz is

signal clk1m,clk1h,clk1m0,clk1h0:std_logic; --进位脉冲信号signal js,js1:std_logic_vector(0 downto 0); --按键计时信号begin

process(zt,js,clk100ms,clk1m0,add,dec)--时间校准选择脉冲分针部分begin

if zt="001" and js="1" then

clk1m<=clk100ms;

elsif zt="001" and js/="1" then

clk1m<=clk1m0 or not dec;

else clk1m<=clk1m0;

end if;

end process;

process(zt,js1,clk100ms,clk1h0)--时间校准选择脉冲时针部分

begin

if zt="001" and js1="1" then

clk1h<=clk100ms;

elsif zt="001" and js1/="1" then

clk1h<=clk1h0 or not dec;

else clk1h<=clk1h0;

end if;

end process;

process(zt,clk,rst,add,dec) --时钟分针按键计时begin

if zt="000" and rst='0' then

sz2<="0000";sz1<="0000";

else

if zt="001" and dec='0' then

if rising_edge(clk) then

js<=js+1;

if js="1" then

js<="1";

end if;

end if;

else js<="0";

end if;

if zt="001" and add='0' then --时钟时针按键计时

if rising_edge(clk) then

js1<=js1+1;

if js1="1" then

js1<="1";

end if;

end if;

else js1<="0";

end if;

if rising_edge(clk) then --时钟秒针计数器

if sz2="0101" and sz1="1001" then

sz2<="0000";sz1<="0000";clk1m0<='1';

elsif sz1="1001" then

sz1<="0000";sz2<=sz2+1;clk1m0<='0';

else sz1<=sz1+1;clk1m0<='0';

end if;

end if;

end if;

end process;

process(zt,clk1m,rst) --时钟分针计数器

begin

if zt="000" and rst='0' then

sz4<="0000";sz3<="0000";

elsif rising_edge(clk1m) then

if sz4="0101" and sz3="1001" then

sz4<="0000";sz3<="0000";clk1h0<='1';

elsif sz3="1001" then

sz3<="0000";sz4<=sz4+1;clk1h0<='0';

else sz3<=sz3+1;clk1h0<='0';

end if;

end if;

end process;

process(clk1h,rst,zt) --时钟时针计数器begin

if zt="000" and rst='0' then

sz6<="0001";sz5<="0010";

elsif rising_edge(clk1h) then

if sz6="0010" and sz5="0011" then

sz6<="0000";sz5<="0000";

elsif sz5="1001" then

sz5<="0000";sz6<=sz6+1;

else sz5<=sz5+1;

end if;

end if;

end process;

process(sz1,sz2,sz3,sz4) --整点报时

begin

if sz4="0000" and sz3="0000" and sz2="0000" then ledbs<='1';

else ledbs<='0';

end if;

end process;

end;

4.7闹钟模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity nz is

port(startnz,add,dec,rst,clk,clk100ms:in std_logic;

zt:in std_logic_vector(2 downto 0);

sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);--时钟显示信号

nz3,nz4,nz5,nz6:buffer std_logic_vector(3 downto 0);--闹钟显示信号]

lednz:out std_logic

);

end;

architecture data of nz is

signal js,js1:std_logic_vector(0 downto 0);--按键计时信号

signal clkd,clkg:std_logic; --进位脉冲信号

begin

process(js,clk100ms,dec)

begin

if js="1" then --分针按键计时

clkd<=clk100ms;

else clkd<=not dec;

end if;

end process;

process(js1,clk100ms,add) --时针按键计时

begin

if js1="1" then

clkg<=clk100ms;

else clkg<=not add;

end if;

end process;

process(zt,add,dec,rst,clk,clkg,clkd) --闹钟时间手动设置

begin

if zt="010" then

if rst='0' then

nz6<="0001";nz5<="0010";nz4<="0000";nz3<="0000"; --闹钟复位12:00:00

else

if dec='0' then

if rising_edge(clk) then

js<=js+1;

if js="1" then

js<="1";

end if;

end if;

else js<="0";

end if;

if add='0' then

if rising_edge(clk) then

js1<=js1+1;

if js1="1" then

js1<="1";

end if;

end if;

else js1<="0";

end if;

if falling_edge(clkd) then --闹钟手动设置分钟

if nz4="0101" and nz3="1001" then

nz4<="0000";nz3<="0000";

elsif nz3="1001" then

nz3<="0000";nz4<=nz4+1;

else nz3<=nz3+1;

end if;

end if;

if falling_edge(clkg) then --闹钟手动设置时钟

if nz6="0010" and nz5="0011" then

nz6<="0000";nz5<="0000";

elsif nz5="1001" then

nz5<="0000";nz6<=nz6+1;

else nz5<=nz5+1;

end if;

end if;

end if;

end if;

end process;

process(startnz,nz6,nz5,nz4,nz3,sz2,sz3,sz4,sz5,sz6) ----闹钟判断及提示begin

if startnz='1' then

if nz6=sz6 and nz5=sz5 and nz4=sz4 and nz3=sz3 and sz2="0000" then lednz<='1';

else lednz<='0';

end if;

else lednz<='0';

end if;

end process;

end;

4.8秒表模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity mb is --实体声明

port(zt:in std_logic_vector(2 downto 0);

clk,rst,startmb:in std_logic;

mb1,mb2,mb3,mb4,mb5,mb6:buffer std_logic_vector(3 downto 0) );

end ;

architecture data of mb is

signal clk10ms,clk1s,clk1m:std_logic; --进位脉冲信号

begin

process(zt,clk,startmb,rst) --秒表脉冲计数器

begin

if zt="011" and rst='0' then

mb2<="0000";mb1<="0000";

elsif startmb='1' then

if rising_edge(clk) then

if mb2="1001" and mb1="1001" then

mb2<="0000";mb1<="0000";clk1s<='1';

elsif mb1="1001" then

mb1<="0000";mb2<=mb2+1;clk1s<='0';

else mb1<=mb1+1;clk1s<='0';

end if;

end if;

end if;

end process;

process(zt,clk1s,rst) --秒表分针计数器

begin

if zt="011" and rst='0' then

mb4<="0000";mb3<="0000";

elsif rising_edge(clk1s) then

if mb4="0101" and mb3="1001" then

mb4<="0000";mb3<="0000";clk1m<='1';

elsif mb3="1001" then

mb3<="0000";mb4<=mb4+1;clk1m<='0';

else mb3<=mb3+1;clk1m<='0';

end if;

end if;

end process;

process(zt,clk1m,rst) --秒表时针计数器

if zt="011" and rst='0' then

mb6<="0000";mb5<="0000";

elsif rising_edge(clk1m) then

if mb6="0101" and mb5="1001" then

mb5<="0000";mb6<="0000";

elsif mb5="1001" then

mb5<="0000";mb6<=mb6+1;

else mb5<=mb5+1;

end if;

end if;

end process;

end;

4.9 倒计时模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity djs is --实体声明

port(rst,startdjs,add,dec,clk,clk100ms:in std_logic; --按键及脉冲输入

zt:in std_logic_vector(2 downto 0); --状态输入

djs1,djs2,djs3,djs4,djs5,djs6:buffer std_logic_vector(3 downto 0);--倒计时显示输出leddjs:out std_logic --倒计时提示灯

);

end;

architecture data of djs is

signal clk1s,clk1m,clkd,clkg:std_logic; --进位脉冲

signal js,js1:std_logic_vector(0 downto 0); --按键计时信号

signal s1,s2,s3,s4,s5,s6,ss1,ss2,ss3,ss4,ss5,ss6:std_logic_vector(3 downto 0); --倒计时设置时间信号和倒计时减法器时间信号

begin --结构体

process(js,clk100ms,dec)--分针按键计时

begin

if js="1" then

clkd<=clk100ms;

else clkd<=not dec;

end if;

end process;

process(js1,clk100ms,add)--时针按键计时

if js1="1" then

clkg<=clk100ms;

else clkg<=not add;

end if;

end process;

process(zt,add,dec,rst,startdjs,clk,clkd,clkg)--倒计时设置时间begin

if zt="100" and rst='0' then --异步复位

s6<="0000";s5<="0000";s4<="0101";s3<="1001";

elsif zt="100" and startdjs='0' then

if dec='0' then

if rising_edge(clk) then

js<=js+1;

if js="1" then

js<="1";

end if;

end if;

else js<="0";

end if;

if add='0' then

if rising_edge(clk) then

js1<=js1+1;

if js1="1" then

js1<="1";

end if;

end if;

else js1<="0";

end if;

if rising_edge(clkd) then

if s4="0101" and s3="1001" then

s4<="0000";s3<="0000";

elsif s3="1001" then

s3<="0000";s4<=s4+1;

else s3<=s3+1;

end if;

end if;

if rising_edge(clkg) then

if s6="0101" and s5="1001" then

s6<="0000";s5<="0000";

数字钟设计报告——数字电路实验报告

. 数字钟设计实验报告 专业:通信工程 :王婧 班级:111041B 学号:111041226 .

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生器、“时、 3

微机原理课程设计数字时钟程序

河北科技大学 课程设计报告 学生姓名:学号: 专业班级: 电子信息科学与工程 课程名称:微型计算机原理及应用 学年学期: 2 01 1 —2012 学年第1 学期 指导教师: 20 0 1 1年 1 2月 课程设计成绩评定表

目录 一、课设题目及目的………………………………….4 二、设计任务………………………………………….4 三、总框图及设计流程 (4) 四、?源程序清单 (6) 五、?调试结果及显示 (19) 六、?个人贡献………………………………………….19 七、课程设计总结及体会 (21) 一、课设题目及目的 实习题目:数字时钟程序 实习目的:通过实习,使我们进一步弄懂所学到的课本知识,巩固和深化对8086系统的指令系统、中断系统、键盘/显示系统、程序设计、应用开发等基本理论知识的理解,提高汇编语言应用于技术的实践操作技能,掌握汇编语言应用系统设计、研制的方法,培养利用科技革新、开发和创新的基本能力,为毕业后从事与其相关的工作打下一定的基础。

二、课设任务 本课题为利用汇编语言设置时钟程序,其显示效果为:截取系统时间,能以时、分、秒(其中时为24小时制)的形式显示,并且通过合理的操作能修改时和分的内容来修改时间。再有,可以给它设定一个ALARM时间,到这个时间它就能产生信号,起到定时作用,。除此之外还能显示日期,日期分为年、月、日,其显示方式为xxxx年xx 月xx日。 ' *

DB '***********PRESS ESCBUTTON TO EXIT**************',0AH,0DH,'$' TN DB'PLEASE INPUT THE NEW TIME(HH:MM:SS):',0DH,0AH,'$' TMDB'PLEASE INPUT THE ALARM TIME (HH:MM:SS):',0DH,0AH,'$' MUSICMESS DB'PLEASE CHOOSE THE TYPE OF MUSIC:1(FAST) 2(MIDDLE) 3(SLOW)',0DH,0AH,'$' MESS2DB'TIME IS:',0AH,0DH,'$' MESS3DB 'TODAY IS:',0AH,0DH,'$' DBUFFER1DB20DUP('') T_BUFFD B 40 ;在数据段开一段时间显示缓冲区 DB ? DB 40DUP(?) HOR DB? MIN DB? SEC DB? TEMPHOR DB ? TEMPMIN DB? TEMPSEC DB? MUSIC DW 800;存放音乐的频率数DATA ENDS STACK SEGMENT DB 100 DUP(?) STACK ENDS CODESEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA START: CALL CLEAR ;调用清屏子程序 DISPLAY:;时间显示部分 MOV AX,DATA MOVDS,AX MOVBX,OFFSETT_BUFF;送T_BUFF的偏移地址到BX MOV AH,2CH;调用DOS时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在CH,CL,DH中 INT 21H ;判断时间是否相等SUB DH,1;秒数+1修正 CALL CHECK ;.........................................................................

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

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

《数字逻辑》数字时钟课程设计报告资料

《数字逻辑》课程设计报告 题目数字时钟 学院(部)信息工程学院 专业计算机科学与技术 班级计算机一班 学生姓名 学号20132402 6 月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秒。石英晶体

数字电路课程设计题目选编

数字电路课程设计题目选编 1、基于DC4011水箱水位自动控制器的设计与实现 简介及要求:水箱水位自动控制器,电路采用CD4011 四与非门作为处理芯片。要求能够实现如下功能:水 箱中的水位低于预定的水位时,自动启动水泵抽水; 而当水箱中的水位达到预定的高水位时,使水泵停止 抽水,始终保持水箱中有一定的水,既不会干,也不 会溢,非常的实用而且方便。 2、基于CD4011声控、光控延时开关的设计与实现 简介及要求:要求电路以CD4011作为中心元件,结合外围 电路,实现以下功能:在白天或光线较亮时,节电开关呈关闭 状态,灯不亮;夜间或光线较暗时,节电开关呈预备工作状态, 当有人经过该开关附近时,脚步声、说话声、拍手声等都能开 启节电开关。灯亮后经过40秒左右的延时节电开关自动关闭, 灯灭。 3、基于CD4011红外感应开关的设计与实现 在一些公共场所里,诸如自动干手机、自动取票机等,只要人手在机器前面一晃,机器便被启动,延时一段时间后自动关闭,使用起来非常方便。要求用CD4011设计有此功能的红外线感应开关。 4、基于CD4011红外线对射报警器的设计与实现 设计一款利用红 外线进行布防的防盗 报警系统,利用多谐振 荡器作为红外线发射 器的驱动电路,驱动红 外发射管,向布防区内 发射红外线,接收端利用专用的红外线接收器件对发射的 红外线信号进行接收,经放大电路进行信号放大及整形, 以CD4011作为逻辑处理器,控制报警电路及复位电路,电

路中设有报警信号锁定功能,即使现场的入侵人员走开,报警电路也将一直报警,直到人为解除后方能取消报警。 5、基于CD4069无线音乐门铃的设计与实现 音乐门铃已为人们所熟知,在一些住宅楼中都 装有音乐门铃,当有客人来访时,只要按下门铃按 钮,就会发出“叮咚”的声音或是播放一首乐曲, 然而在一些已装修好的室内,若是装上有线门铃, 由于必须布线,从而破坏装修,让人感到非常麻烦。 采用CD4069设计一款无线音乐门铃,发射按键与接 收机间采用了无线方式传输信息。 6、基于时基电路555“叮咚”门铃的设计与实现 用NE555集成电路设计、制作一个“叮咚”门铃,使该装置能够 发出音色比较动听的“叮咚”声。 7、基于CD4511数显八路抢答器的设计与实现 CD4511是一块含BCD-7段锁存、译码、驱动电路于一体的集成 电路。设计一款基于CD4511八路抢答器,该电路包括抢答,编 码,优先,锁存,数显和复位。 8、基于NE555+CD4017流水彩灯的设计与实现 以NE555和CD4017为核心,设计制作一个流水彩灯,使之通 过调节电位器旋钮,可调整彩灯的流动速度。 9、基于用CD4067、CD4013、 NE555跑马灯的设计与实 现

数字时钟课程设计方案设计方案

课程设计题目名称:数字时钟 专业名称:电气工程及其自动化班级: ******** 学号: *******8 学生姓名: ******* 任课教师: *******

《电子技术课程设计》任务书

2.对课程设计成果的要求〔包括图表(或实物)等硬件要求〕:设计电路,安装调试或仿真,分析实验结果,并写出设计说明书,语言流畅简洁,文字不得少于3500字。要求图纸布局合理,符合工程要求,使用Protel软件绘出原理图(SCH)和印制电路板(PCB),器件的选择要有计算依据。 3.主要参考文献:⑴《电子技术课程设计指导》彭介华编,高等教育出版社,1997年10月 ⑵《数字电子技术》康华光编著高等教育出版社, 2001年 要求按国标GB 7714—87《文后参考文献著录规则》书写。 4.课程设计工作进度计划: 序号起迄日期工作内容 初步设想和资料查询,原理图的绘画 1 2015.11.18-2015.12.21 仿真调试,元件参数测定,实物的拼接与测试 2 2015.12.21-2016.1.8 叙写设计报告,总结本次设计,论文提交 3 2016.1.8-2016.1.18 主指导教师日期:年月日

摘要 数字时钟已成为人们日常生活中必不可少的必需品,广泛于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便。并且数字时钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。报告围绕此次数字钟的设计进行介绍、总结,包含了设计的步骤,前期的准备,装配的过程。在实装时,采用了74LS90进行计数,用CD4060产生秒脉冲,CD4511进行数码管转换显示,还要考虑电路的校时、校分,每块芯片各设计为几进制等等,最后实现了数字钟设计所要求的各项功能:时钟显示功能;快速校准时间的功能。 关键字:数字时钟校时CD4511

数字电子时钟课程设计

数字电子技术基础课程设计报告 班级:姓名: 学号: 一、设计目的 1掌握专业基础知识的综合能力。 2完成设计电路的原理设计、故障排除。 3逐步建立电子系统的研发、设计能力,为毕业设计打好基础。 4让学生掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法。 5进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力。 6培养书写综合实验报告的能力。 二、设计仪器 1 LM555CH 2 74LS161N 74LS160N 74LS290 3 74LS00 74LS08 4 电源电阻电容二极管接地等 三数字电子钟的基本功能及用途 现在数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性

能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,,因此在许多电子设备中被广泛使用。 电子钟是人们日常生活中常用的计时工具,而数字式电子钟又有其体积小、重量轻、走时准确、结构简单、耗电量少等优点而在生活中被广泛应用,因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。 多功能数字钟采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。具有时间显示、走时准确、显示直观、精度、稳定等优点。电路装置十分小巧,安装使用也方便。同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱。 四设计原理及方框图 数字钟实际上是一个对标准频率进行计数的计数电路,标准的1HZ时间信号必须做到准确稳定。由图可见:本数字钟电路主要由震荡器、、时分秒计数器、译码显示器构成。它们的工作原理是:由震荡器产生的高频脉冲信号作为数字钟的时间基准,送入秒计数

《数字电路课程设计》

实验三旋转灯光电路与追逐闪光灯电路 一、实验目的 1.熟悉集成电路CD4029、CD4017、74LS138的逻辑功能。 2.学会用74LS04、CD4029、74LS138组装旋转灯光电路。 3. 学会用CD4069、CD4017组装追逐闪光灯电路。 二、实验电路与原理 1.旋转灯光电路: 图3-1 旋转灯光电路 将16只发光二极管排成一个圆形图案,按照顺序每次点亮一只发光二极管,形成旋转灯光。实现旋转灯光的电路如图3-1所示,图中IC1、R1、C1组成时钟脉冲发生器。IC2为16进制计数器,输出为4位二进制数,在每一个时钟脉冲作用下输出的二进制数加“1”。计数器计满后自动回“0”,重新开始计数,如此不断重复。 输入数据的低三位同时接到两个译码器的数据输入端,但是否能有译码器输出取决于使能端的状态。输入数据的第四位“D”接到IC3的低有效使能端G2和IC4的高有效使能端G1,当4位二进制数的高位D为“0”时,IC4的G1为“0”,IC4的使能端无效,IC4无译码输出,而IC3的G2为“0”,IC3使能端全部有效,低3位的CBA数据由IC3译码,输出D=0时的8个输出,即低8位输出(Y0~Y7)。当D为“1”时IC3的使能端处于无效状态,IC3无译码输出;IC4的使能端有效,低3位CBA数据由IC4译码,输出D=1时的8个输出,即高8位输出(Y8~Y15)。 由于输入二进制数不断加“1”,被点亮的发光二极管也不断地改变位置,形成灯光地“移动”。改变振荡器的振荡频率,就能改变灯光的“移动速度”。

注意:74LS138驱动灌电流的能力为8mA,只能直接驱动工作电流为5mA的超高亮发光二极管。若需驱动其他发光二极管或其他显示器件则需要增加驱动电路。 2. 追逐闪光灯电路 图 3-2 追 逐 闪 光 灯 电 路 ( 1) . CD 401 7 的 管 脚功能 CD4017集成电路是十进制计数/时序译码器,又称十进制计数/脉冲分频器。它是4000系列CMOS数字集成电路中应用最广泛的电路之一,其结构简单,造价低廉,性能稳定可靠,工艺成熟,使用方便。它与时基集成电路555一样,深受广大电子科技工作者和电子爱好者的喜爱。目前世界各大通用数字集成电路厂家都生产40171C,在国外的产品典型型号为CD4017,在我国,早期产品的型号为C217、C187、CC4017等。 (2)CD4017C管脚功能 CMOSCD40171C采用标准的双列直插式16脚塑封,它的引脚排列如图3-3(a)所示。 CC4017是国标型号,它与国外同类产品CD4017在逻辑功能、引出端和电参数等方面完全相同,可以直接互换。本书均以CD40171C为例进行介绍,其引脚功能如下: ①脚(Y5),第5输出端;②脚(Y1),第1输出端,⑧脚(Yo),第0输出端,电路清零 时,该端为高电平,④脚(Y2),第2输出端;⑤脚(Y6),第6输出端;⑥脚(Y7),第7输出端;⑦脚(Y3),第3输出端;⑧脚(Vss),电源负端;⑨脚(Y8),第8输出端,⑩脚(Y4),第4输出端;11脚(Y9),第9输出端,12脚(Qco),级联进位输出端,每输入10个时钟脉冲,就可得一个进位输出脉冲,因此进位输出信号可作为下一级计数器的时钟信号。13脚(EN),时钟输入端,脉冲下降沿有效;14脚(CP),时钟输入

微机原理课程设计报告-数字时钟的实现(附代码)

合肥工业大学 计算机与信息学院 课程设计 课程:微机原理与接口技术设计专业班级:计算机科学与技术x班学号: 姓名:

一、设计题目及要求: 【课题6】数字时钟 1.通过8253 定时器作产生秒脉冲定时中断。在中断服务程序中实现秒、分、小时的进位(24小时制)。 2.在七段数码管上显示当前的时分秒(例如,12 点10 分40 秒显示为121040)。 3.按“C”可设置时钟的时间当前值(对准时间)。 二、设计思想: 总体思想: 1、功能概述: 实验箱连线: 本实验建立在Dais实验箱基础上完成的基本连线及程序如下: 138译码器: A,B,C,D,分别连接A2,A3,A4,GS; y0连接8253的CS片选信号; y1连接8259的CS片选信号; 8253连线: 分频信号T2接8253的CLK0; 8253的OUT0接8259的IR7; 8253的gate信号接+5V; 8259连线: 8259的数据线接入数据总线;

本程序包括显示模块,键盘扫描模块,时间计数模块,设置模块等几个模块, (1)程序运行后,LED显示000000初始值,并且开始计数 (2)按C键进行设置初始时间,考虑到第一个数只能是0,1,2,当第一个数显示2时第二个数只能显示0~4,同理下面各位应满足时钟数值的合理的取值; (3)在手动输入初始值时,按D键进行回退1位修改已设置值,连续按D键可以全部进行删除修改。 2、主程序设计 主程序中完成通过调用子程序完成对8253及8259的初始化,对8259进行中断设置。主要在显示子程序和键盘子处理程序之间不断循环,8253每一秒给8259一个刺激,当8259接受到刺激后会给CPU一个中断请求,CPU会转去执行中断子程序,而中断子程序设置成时间计数加,即完成电子表的整体设计。详细流程图见图三-1。 3、LED显示子程序设计 本程序显示部分用了6个共阳极LED作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个LED依次显示出相应的数字。虽然CPU每隔一定时间便执行显示程序,但只要这个时间段不太长,由于人眼的视觉作用,就可以在6个LED上同时见到数字显示。 4、键盘扫描子程序设计 本程序需要用键盘对时间的初始值进行设置,因此对键盘扫描的子程序需要满足的功能如下: 判断是否是C键,若不是就返回至主程序,若是C键就开始对时间初始值进行设置,同时因注意到第一个值不可以超过2,第一个数是2时第二数不能超过4,余下的同理要满足时间数值的取值范围呢,若不是合法输入不予反应继续等待输入。当遇到输入数值错误时可以按下D键进行删除一位重新设置;当6位初始值全部设置成功后,电子表将自动开始走表。 5、时间运算子程序设计 该子程序的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟

数字钟课程设计

数字逻辑电路课程设计 课题:数字钟 姓名:刘亮 班级:通信2班 学号:21 成绩: 指导教师:查根龙 开课时间: 2014-2015学年第2学期

摘要 (1) ABSTRACT (2) 第1章设计背景 (3) 1.1设计任务 (3) 1.2设计要求 (3) 1.3 设计目的 (3) 第2章课程设计方案 (4) 2.1 数字钟的基本组成和工作原理 (4) 2.2 振荡电路 (5) 2.3 分频电路 (6) 2.4时分秒计数电路 (7) 2.5 校时校分功能 (10) 2.6整点报时电路 (10) 2.7上下午显示电路 (11) 第三章课程总结 (12) 第四章参考文献 (13) 第五章附件 (14) 5.1 电路原理图 (14) 5.2 元器件清单 (14)

摘要 电子钟在现代社会已经使用的非常广泛,伴随着数字电路技术的发展,数字钟的出现,更加方便了大家的生活,同时也大大地促进了社会的进步。数字电路具有电路简单、可靠性高、成本低等优点,本设计就以数字电路为核心设计智能电子钟。 数字钟就是由电子电路构成的计时器。是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和、报时、上下午显示等附加功能。主电路系统由秒信号发生器、时、分、秒计数器,译码器及显示器,校时电路,上下午显示,整点报时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。秒信号产生器将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24和12小时的累计。计数器用的是74160。译码显示电路将“时”、“分”、“秒”计数器的输出状态送到七段显示译码器译码,通过六位LED七段显示器显示出来。整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的 关键词:计时器;计数;译码;报时;校时校分

数字电路课程设计

数字电路课程设计 一、概述 任务:通过解决一两个实际问题,巩固和加深在课程教学中所学到的知识和实验技能,基本掌握常用电子电路的一般设计方法,提高电子电路的设计和实验能力,为今后从事生产和科研工作打下一定的基础。为毕业设计和今后从事电子技术方面的工作打下基础。 设计环节:根据题目拟定性能指标,电路的预设计,实验,修改设计。 衡量设计的标准:工作稳定可靠,能达到所要求的性能指标,并留有适当的裕量;电路简单、成本低;功耗低;所采用的元器件的品种少、体积小并且货源充足;便于生产、测试和维修。 二、常用的电子电路的一般设计方法 常用的电子电路的一般设计方法是:选择总体方案,设计单元电路,选择元器件,计算参数,审图,实验(包括修改测试性能),画出总体电路图。 1.总体方案的选择 设计电路的第一步就是选择总体方案。所谓总体方案是根据所提出的任务、要求和性能指标,用具有一定功能的若干单元电路组成一个整体,来实现各项功能,满足设计题目提出的要求和技术指标。 由于符合要求的总体方案往往不止一个,应当针对任务、要求和条件,查阅有关资料,以广开思路,提出若干不同的方案,然后仔细分析每个方案的可行性和优缺点,加以比较,从中取优。在选择过程中,常用框图表示各种方案的基本原理。框图一般不必画得太详细,只要说明基本原理就可以了,但有些关键部分一定要画清楚,必要时尚需画出具体电路来加以分析。 2.单元电路的设计 在确定了总体方案、画出详细框图之后,便可进行单元电路设计。 (1)根据设计要求和已选定的总体方案的原理框图,确定对各单元电路的设计要求,必要时应详细拟定主要单元电路的性能指标,应注意各单元电路的相互配合,要尽量少用或不用电平转换之类的接口电路,以简化电路结构、降低成本。

EDA数字时钟课程设计报告

EDA技术及应用课程设计说明书 2013 届电子信息工程专业班级 题目数字时钟 学号 姓名 指导教师 二О一五年月日

一、基本原理 一个完整的时钟应由三部分组成:秒脉冲发生电路、计数显示部分和时钟调整部分。 秒脉冲发生电路原理:一个时钟的准确与否主要取决于秒脉冲的精确度。为了保证计时准确我们对系统时钟48MHz进行了48000000分频,从而得到1Hz的秒脉冲。 计数显示部分原理:显示部分是用数码管LED实现的,这里使用的是共阳极的数码管如图所示8个数码管,其中左边两个数码管用来显示时的个位和十位、中间的显示分的个位和十位、最右边两个显示分的个位和十位。 时钟调整部分原理:校时电路里定义key[0]、key[1]和k2、k3分别用于控制时钟的计时开始、清零和调整功能中的时的加1、分的加1处理,从而完成对现在的时间调整。本实验电路校时电路在此完成了暂停、清零、时调整和分调整。

二、硬件设计 芯片图: 图1 数字时钟原理图 程序的调试工作都是在电脑上完成的,通过程序的输入、原理图的建立、管脚分配、编译、仿真、再下载到芯片进行运行。

电路中采用共阳极连接的七段数码管,通过程序的控制扫描驱动来显示时钟的时-分-秒。

程序中的按键设定为K1暂停、K2清零、K3调时、K4调分元件清单: 三、数字时钟的Verilog实现 管脚的分配: 程序: module clock(clk,s1,,s2,key,dig,seg); //模块名clock input clk,s1,s2; //输入时钟 input[1:0]key; //输入按键 output[7:0]dig; //数码管选择输出引脚

数字时钟设计实验报告

电子课程设计 题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路与校时电路构成电路。 秒时钟信号发生器可由振荡器与分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时与分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器就是数字电子钟的核心部分,它的精度与稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ? 振荡器: 通常用555定时器与RC 构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ? 分频器: 分频器功能主要有两个,一就是产生标准秒脉冲信号,一就是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz 标准秒脉冲。其电路图如下: 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数与进位功能。利用74LS161与74LS11设计6进制计数器显示秒的十位 ,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下: 图三60进制--秒计数电路 ?60进制——分计数电路 分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:来自秒计数电路的进位脉冲使分的个位加1,利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0

电子技术课程设计数字时钟

目录 目录 (1) 前言 (2) 内容摘要 (2) 设计要求 (2) 第一章方案设计 (3) 第二章硬件设计及仿真 (4) 2.1振荡器的设计 (4) 2.2分频器的设计 (6) 2.3时间计数器的设计 (7) 2.3.1六十进制计数器 (7) 2.3.2二十四进制计数器 (8) 2.4译码器与显示器的设计 (9) 2.5校时电路 (10) 第三章电路的总体设计 (11) 第四章元器件清单及部分芯片介绍 (12) 4.1元器件清单 (12) 4.2部分芯片功能介绍 (13) 4.2.1 74LS90N (13) 4.2.2 555 (14) 第五章总结 (16) 附录参考文献 (17)

前言 内容摘要 数字钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒。一个基本的数字钟电路主要由秒信号发生器、“时、分、秒、”计数器、译码器及显示器组成。由于采用纯数字硬件设计制作,与传统的机械表相比,它具有走时准,显示直观,无机械传动装置等特点。 本设计中的数字时钟采用数字电路实现对“时”、“分”、“秒”的显示和调整。通过采用各种集成数字芯片搭建电路来实现相应的功能。具体用到了555震荡器,74LS90及与非,异或等门集成芯片等。该电路具有计时和校时的功能。 在对整个模块进行分析和画出总体电路图后,对各模块进行仿真并记录仿真所观察到的结果。 实验证明该设计电路基本上能够符合设计要求! 设计要求 (1)、要求电路能够产生定时脉冲; (2)、要求电路能够根据对定时脉冲的计算得到时,分,秒;(3)、要求电路能够产生时,分,秒。

数字时钟课程设计报告

《电子线路课程设计报告》 系另 1」: 机电与自动化学院 专业班级:电气及自动化技术1001 学生姓名:陈星涯 指导教师:梁宗善 i=r (课程设计时 间: 2012年1月3日——2012年1月13日) 华中科技大学武昌分校 1.课程设计目的................................................. 3页 2.课程设计题目描述和要求....................................... 3页 2.1课程设计题目............................................. 3页

2.2课程设计要求............................................. 3页 3. ......................................................................................................... 比较和选定设计的系统方案.................................................... 4页 3.1数字钟的构成............................................. 4页 4.单元电路设计及工作原理....................................... 5页 4.1时基电路................................................. 5页 a. 多谐振荡器的工作原理................................... 5页 4.2计数器................................................... 7页 a.中规模计数器组件介绍.................................. 7页 b.60 进制计数器 .......................................... 8页 C.12 翻1计数器........................................... 9页 4.3译码器................................................... 10页 4.4显示器................................................... 10页 4.5校时电路................................................. 11页 4.6定时控制电路............................................. 12页 4.7仿广播电台正点报时电路................................... 13页 5.调试过程及分析............................................... 14页 5.1显示器故障排查........................................... 14页 5.2计数器调试及分析......................................... 15页 5.3校时电路的调试........................................... 16页 5.4增加抗干扰电路........................................... 16页 5.5闹时电路的调试........................................... 17页 5.6仿广播电台整点报时电路调试............................... 17页 6.课程设计总结................................................. 17页 7.参考文献..................................................... 19页 8.附件一:电子时钟主体电路电路图............................... 20页 9.附件二:扩展电路电路图....................................... 21页 10.附件三:系统所需元器件清单 ................................ 22页 11.课程设计成绩.............................................. 23页 一、设计任务与目的 数字时钟是一种利用数字电路技术实现时、分、秒计时的装置,与传统的

数字时钟课程设计

1 绪论 1.1 课题背景及目的 在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着数字集成电路性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。 随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。根据这种实际情况,设计了一个单片机多功能定时系统,它可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以进行时钟校准和定点打铃。它可以执行不同的时间表(考试时间和日常作息时间)的打铃,可以任意设置时间。这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。 1.2数字时钟的应用 数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片出售,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但可以显示当前的时间,而且可以显示日期、农历、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展

数字电子钟课程设计报告-数电

华东交通大学理工学院课程设计报告书所属课程名称数字电子技术课程设计题目数字电子钟课程设计分院电信分院 专业班级10电信2班 学号20100210410201 学生姓名陈晓娟 指导教师徐涢基 20 12 年12 月18 日

目录 第1章课程设计内容及要求 (3) 第2章元器件清单及主要器件介绍 (5) 第3章原理设计和功能描述 (10) 第4章数字电子钟的实现 (15) 第5章实验心得 (17) 第6章参考文献 (18)

第1章课程设计内容及要求 1.1 数字钟简介 20世纪末,电子技术获得了飞速的发展。在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高、产品更新换代的节奏也越来越快。数字钟已成为人们日常生活中必不可少的生活日用品。广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点。 因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。多功能数字钟采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。具有时间显示、走时准确、显示直观、精度、稳定等优点,电路装置十分小巧,安装使用也方便而受广大消费的喜爱。 1.2 设计目的 1. 掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法;

2. 进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力; 3. 提高电路布局,布线及检查和排除故障的能力。 1.3 设计要求 1. 设计一个有“时”、“分”、“秒”(23小时59分59秒)显示,且有校时功能的电子钟。 2. 用中小规模集成电路组成电子钟,并在实验箱上进行组 装、调试。 3. 画出框图和逻辑电路图、写出设计、实验总结报告。 4. 整点报时。在59分59秒时输出信号,音频持续1s,在结束时刻为整点。

数字电子时钟课程设计总结报告

《数字逻辑电路设计》课程设计 总结报告 题目:数字电子钟设计 指导教师: 设计人员: (学号): 班级:

日期:2018年12月

一.设计任务书 任务:数字电子钟设计 基本设计要求:仿真实现数字电子钟 1.要求能显示“时”“分”“秒” 2.时24小时,分60分钟,秒60。 3.能够校时,校分 电路在实验箱上实现 二.设计框图及整机概述 设计框图: 概述:数字电子时钟电路系统由秒信号发生器、校分校时电路、“时、分、秒”计数器和“时、分、秒”显示器组成。秒信号发生器将秒信号送入秒计时器,秒计时器为六十进制计数器,每计六十个数便发送分脉冲信号给分计数器,分计数器也为六十进制计数器,每计六十个数便发送时脉冲信号给时计数器,时计数器是二十四进制计数器。“时、分、秒”显示器将计数器输

出的状态显示出来。 三.各单元电路的设计方案及原理说明 1.六十进制计数器 计数器是对cp脉冲进行计数的时序逻辑电路。“分”和“秒” 的计数由六十进制计数器实现,74LS161为16进制计数器, 两片74LS161EP和ET恒为1,均工作在计数状态,当分个位 和秒个位计数器计到9(1001)时,CLOR端为高电平,经反 相器后使时位CLK端为低电平。当下一个计数输入脉冲到达后,个位记成0(0000),此时CLOR端跳回低电平,时位计数1。 计数器从0开始计数,当计入60个脉冲时,经与非门产生低 电平,立即将两片74LS161同时置零,得到60进制计数器。 2.二十四进制计数器 时的计数由二十四进制计数器实现,当计入24个脉冲的

时候,经与非门产生的低电平信号即将两片74LS161同时置零,得到二十四进制计数器。 3.显示电路 计数器输出的是8421BCD码,需译码器将其转为阿拉伯数字。 4.校时电路 利用校时电路截断分十位和时十位的直接计数通路,当校时电路中的开关截断时,其中的与非门一端接高电平,另一端接秒/分十位的进位输出端,若秒/分十位的进位输出端输出的是低电平,则分/时个位的CLK有低电平的信号输入,此时得到

相关主题
文本预览
相关文档 最新文档