多功能数字钟

合集下载

多功能数字钟-电子设计

多功能数字钟-电子设计

多功能数字钟-电子设计
第一步实现多功能数字钟的基本功能,包括显示当前时间和设置定时
功能。

为了实现这一功能,我们需要使用一个定时器,以实现每秒钟更新
一次时间并显示在LCD屏上,同时实现定时功能。

第二步用一个按钮来切换显示当前时间和定时时间。

为了实现这一功能,我们需要在LCD屏上显示当前时间和定时时间,当按钮按下时,可以
改变当前时间和定时时间的显示。

第三步加入计时功能,使用者可以设置一个计时时间,当计时结束时,会有一个提醒和发出报警声。

为了实现这一功能,我们需要使用一个计数器,计算出时间差,当到达设定的计时时间时,发出报警声或者显示一个
提醒。

第四步增加闹钟功能,使用者可以设置一个闹钟时间,当达到闹钟时
间时,会有一个提醒和发出报警声。

为了实现这一功能,我们需要在指定
的时间段内,获取当前时间,通过一个实时检查程序,来实现闹钟功能,
当到达时间时,发出报警声或者显示一个提醒。

第五步加入天气预报功能,使用者可以查询当前城市的天气情况,以
及未来三天的天气预报。

为了实现这一功能,我们需要使用一个API来获
取天气情况,并将获取的信息在LCD屏上显示出来,方便使用者查询。

多功能数字钟

多功能数字钟

电子技术课程设计多功能数字钟学院:专业、班级:姓名:学号:指导老师:2008年12月目录1、设计任务与要求 (2)2、总体框图 (2)3、选择器件 (2)4、功能模块 (3)(1)时钟记数模块 (3)(2)整点报时驱动信号产生模块 (6)(3)八段共阴扫描数码管的片选驱动信号输出模块 (7)(4)驱动八段字形译码输出模块 (9)5、总体设计电路图 (10)(1)仿真图 (10)(2)电路图 (11)(3)管脚图 (11)6、设计心得体会 (12)一、设计任务与要求1、具有时、分、秒记数显示功能,以24小时循环计时。

2、要求数字钟具有清零、调节小时、分钟功能。

3、具有整点报时,整点报时的同时LED灯花样显示。

二、总体框图多功能数字钟总体框图如下图所示。

它由时钟记数模块(包括hour、minute、second 三个小模块)、驱动8位八段共阴扫描数码管的片选驱动信号输出模块(seltime)、驱动八段字形译码输出模块(deled)、整点报时驱动信号产生模块(alart)。

系统总体框图三、选择器件网络线若干/人、共阴八段数码管6个、蜂鸣器、hour(24进制记数器)、minute(60进制记数器)、second(60进制记数器)、alert(整点报时驱动信号产生模块)、seltime(驱动8位八段共阴扫描数码管的片选驱动信号输出模块)、deled(驱动八段字形译码输出模块)。

四、功能模块多功能数字钟中的时钟记数模块、驱动8位八段共阴扫描数码管的片选驱动信号输出模块、驱动八段字形译码输出模块、整点报时驱动信号产生模块。

(1) 时钟记数模块:<1.1>该模块的功能是:在时钟信号(CLK)的作用下可以生成波形;在清零信号(RESET)作用下,即可清零。

VHDL程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour isport(clk,reset:in std_logic;daout:out std_logic_vector(5 downto 0));end entity hour;architecture fun of hour issignal count:std_logic_vector(5 downto 0);begindaout<=count;process(clk,reset)beginif(reset='0') thencount<="000000";elsif(clk' event and clk='1') thenif(count(3 downto 0)="1001") thenif(count<16#24#) thencount<=count+7;else count<="000000";end if;elsif(count<16#23#) thencount<=count+1;else count<="000000";end if;end if;end process;end fun;<1.2>VHDL程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport(clk,clk1,reset,sethour:in std_logic;enhour:out std_logicdaout:out std_logic_vector(6 downto 0));end entity minute;architecture fun of minute issignal count:std_logic_vector(6 downto 0); begindaout<=count;process(clk,reset,sethour)beginif(reset='0') thencount<="0000000";elsif(sethour='0') thenenhour<=clk1;elsif(clk' event and clk='1') thenif(count(3 downto 0)="1001") thenif(count<16#60#) thenif(count="1011001") thenenhour<='1';count<="0000000"; else count<=count+7;end if;elsecount<="0000000";end if;elsif(count<16#60#) thencount<=count+1;enhour<='0';elsecount<="0000000";end if;end if;<1.3>VHDL程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY second ISPORT(clk,reset,setmin:IN STD_LOGIC;enmin:OUT STD_LOGIC;daout:out std_logic_vector(6 downto 0)); END entity second;ARCHITECTURE fun OF second ISSIGNAL count:STD_LOGIC_VECTOR(6 downto 0); BEGINdaout<=count;process(clk,reset,setmin)beginif(reset='0') thencount<="0000000";elsif(setmin='0')thenenmin <=clk;elsif(clk'event and clk='1')thenif(count(3 downto 0)="1001")thenif(count<16#60#)thenif(count="1011001")thenenmin<='1';count<="0000000";ELSE count<=count+7;end if;elsecount<="0000000";end if;elsif(count<16#60#)thencount<=count+1;enmin<='0';elsecount<="0000000";end if;end if;end process;END fun;(2)整点报时驱动信号产生模块该模块功能:在时钟信号(CLK)的作用下可以生成波形,SPEAK输出接扬声器,以产生整点报时发声。

多功能数字钟文献综述

多功能数字钟文献综述

文献综述(周波电子信息工程 04021026528)1.多功能数字钟的工作原理随着生活水平的提高,人们越来越追求人性化的事物,传统的时钟已不能满足人们的需求.现代的数字钟不仅需要数字电路技术而且需要模拟电路技术和单片机技术,增加了数字钟的功能.其电路可以由实时时钟模块、环境温度检测模块、人机接口模块、报警模块等部分组成。

利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差,但是数字钟还是可以改进和提高如选用更精密的元器件。

但与机械式时钟相比已经具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

数字钟是采用数字电路实现对月,日,时,分,秒。

数字显示的计时装置,工作时,振荡器产生频率稳定的高频脉冲信号,作为数字钟的时间基准,再经过分频器分频,得到标准秒脉冲.秒脉冲送入计数器进行计数,秒计数器满60后向分计数器进位,分计数器计满60后向小时进位,而小时计数器按照“24翻1”规律计天数,日计数器可按照“30翻1”规律计月,月则为12进制.计数器的输出分别经译码器送显示器显示。

计时出现误差可用校时电路予以校准,而当计时达到整点时系统会发出四低一高的鸣叫,最后一声恰为整点。

广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常现实的意义2.钟表的发展历史人类究竟从何时开始,有了“时间”的概念?人类的远祖最早从天明天暗知道时间的流逝。

大约六千年前,“时钟”第一次登上人类历史的舞台:日晷在巴比伦王国诞生了。

多功能数字钟电路设计【PPT课件】PPT课件

多功能数字钟电路设计【PPT课件】PPT课件

3取27晶68振构频Hz的成率,频因振越率其荡高为内器,计电时路精。度一2越2J般M高T 来。说,振荡1R50器k的
部有15级2分频集
成电路,所以输出
32768Hz
端正好可得到1Hz 的标准脉冲
C1 3/22pF
C2 20pF
5
1. 振荡器的设计
+5V R1 2k
如果精度要求 不高也可以采用第
3
三、主体电路的设计与装调
主体电路是由功能部件或单元电路 组成的。在设计这些电路或选择部件时, 尽量选用同类型的器件,如所有功能部件 都采用TTL集成电路或都采用CMOS集成 电路。整个系统所用的器件种类应尽可 能少。下面介绍各功能部件与单元电路 的设计。
4
1. 振荡器的设计
子手如表图集所成示振电为路荡电(器是数字钟的1 核心。振荡1器 vo 体如振5C荡7的钟0器2)稳计电中路定时的,度的晶常及准频 确率 程的 度精,通R确常F 度选决用定石了英数晶字体
Q3
7 4 L S 9 0 (3 )
C P A C P B R 0(1) R 9(1)
10
四、功能扩展电路的设计
定时控制电路的设计 仿广播电台正点报时电路的设计 报整点时数电路的设计 触摸报整点时数电路的设计
11
1. 定时控制电路的设计
例 要求上数午字7钟时在59指分定发的出时闹刻时发信出号信,持号续, 时间 为1分或钟驱。动音响电路“闹时”;或对某 解 7时装5置9的分电对源应进数行字接钟通的或时断个开位“计控数器的状态 为(Q制3Q”2Q。1Q 0)H1=0111,分十位计数器的状态 为(Q3Q2Q不1Q管0)是M2闹=0时10还1是,分控个制位,都计要数求器时的状态为 (Q3Q间2Q准1Q确0)M,即1=信10号01的。开若始将时上刻述与计持数续器时输出为 “1”的间所必有须输满出足端规经定过的与要门求电。路去控制音响电 路,可以使音响电路正好在7点59分响,持续1分 钟后(即8点时)停响。

电子综合设计多功能数字钟报告

电子综合设计多功能数字钟报告

电子综合设计多功能数字钟报告报告内容如下:一、设计目的和原理多功能数字钟是一种能够显示时间,并具有闹钟、计时、倒计时等功能的电子设备。

本设计的目的是通过FPGA实现一个多功能数字钟的功能,以实现时间的显示和闹钟的设置功能。

二、设计方案和实现1.硬件设计方案:本设计使用FPGA作为主控芯片,使用七段数码管作为显示器,通过与FPGA的IO口连接来实现时间的显示功能。

同时,使用按键作为输入进行功能的选择和设置。

2.硬件连接:将FPGA的IO口连接到七段数码管的控制端,通过IO口输出相应的数字信号来控制数码管的亮灭。

将按键连接到FPGA的IO口,通过IO口输入按键的信号。

此外,还需要连接一个晶振电路来提供时钟信号。

3.软件设计方案:本设计使用VHDL语言进行程序设计,通过状态机来实现多功能数字钟的功能。

具体实现包括时间的显示、闹钟的设置和启动、计时和倒计时功能的实现。

通过按键的输入来切换不同的状态,实现不同功能的切换和设置。

4.软件实现具体步骤:(1)定义状态机的状态,包括时间显示、闹钟设置、计时和倒计时等状态。

(2)在时间显示状态下,通过FPGA的IO口输出相应的数字信号来控制七段数码管的亮灭,实现时间的显示。

(3)在闹钟设置状态下,通过按键的输入来设置闹钟时间,并将设置好的时间保存在寄存器中。

(4)在计时和倒计时状态下,通过按键的输入来实现计时和倒计时功能,并通过七段数码管的显示来实时显示计时和倒计时的时间。

以下为本设计的完整程序代码:```vhdl--时钟频率--定义状态signal state : state_type;--定义时钟、按键和数码管信号signal clk : std_logic;signal key : std_logic_vector(1 downto 0);signal seg : std_logic_vector(6 downto 0);--闹钟时间寄存器signal alarm_hour_reg : std_logic_vector(5 downto 0);signal alarm_min_reg : std_logic_vector(5 downto 0);--计时和倒计时寄存器signal count_up_reg : std_logic_vector(23 downto 0); signal count_down_reg : std_logic_vector(23 downto 0); signal count_down_flag : std_logic := '0';beginclock : processbeginwhile true loopclk <= '0';wait for 10 ns;clk <= '1';wait for 10 ns;end loop;end process;key_scan : process(clk)beginif rising_edge(clk) thenkey <= key_scan_func; -- 按键扫描函数end if;end process;fsm : process(clk, key)beginif rising_edge(clk) thencase state isif key = "10" then -- 第一个按键按下state <= set_alarm;elsif key = "01" then -- 第二个按键按下state <= count_up;end if;when set_alarm =>seg <= set_alarm_func; -- 闹钟设置函数if key = "00" then -- 两个按键同时按下elsif key = "01" then -- 第一个按键按下state <= count_up;end if;when count_up =>seg <= count_up_func; -- 计时函数if key = "00" then -- 两个按键同时按下elsif key = "10" then -- 第二个按键按下state <= count_down;count_down_flag <= '1';end if;when count_down =>seg <= count_down_func; -- 倒计时函数if key = "00" then -- 两个按键同时按下count_down_flag <= '0';elsif key = "01" then -- 第一个按键按下state <= count_up;count_down_flag <= '0';end if;end case;end if;end process;--数码管信号和显示模块的连接display : entity work.seg_displayport mapclk => clk,seg => segend architecture;```四、总结与展望通过FPGA实现多功能数字钟的设计,在硬件和软件的配合下,实现了时间的显示和闹钟的设置功能。

多功能数字钟

多功能数字钟

多功能数字钟多功能数字钟是一种具有多种功能的现代化钟表。

它不仅能够显示准确的时间,还可以实现其他实用的功能,使人们的生活更加方便和舒适。

下面将介绍它的几个主要功能。

首先,多功能数字钟能够准确显示时间。

它采用数字显示屏,清晰明了,无论白天还是晚上,都能够清楚地读取时间。

显示屏上通常有四个或六个数字,分别代表小时和分钟,而且还有一个显示秒数的功能。

这样,我们可以通过一眼就知道现在的具体时间,无需再查看手机或手表。

其次,多功能数字钟可以设置多个闹钟。

人们可以根据自己的需要,设置不同的闹钟,以满足不同的时间要求。

比如,可以设置一个早上的闹钟来叫醒自己,还可以设置一个晚上的闹钟来提醒自己休息。

这样,我们不仅能够准时起床,还能够提高工作和生活的效率。

此外,多功能数字钟还可以用作倒计时器。

我们可以根据自己的需要,设置倒计时的时间,比如煮饭、做家务或者做运动。

当时间到达设定值时,多功能数字钟会发出警报声提醒我们。

这样,我们就不用担心忘记时间,可以更好地掌控自己的时间安排。

多功能数字钟还具有温度和湿度显示功能。

它可以显示当前的室内温度和湿度,帮助我们了解室内的环境条件。

通过这个功能,我们可以根据温湿度的变化,进行合理的调控,提高室内的舒适度。

最后,多功能数字钟还可以充当夜灯。

在夜晚,我们可以通过多功能数字钟的设置,将其调整为柔和的灯光状态,提供足够的照明。

这样,我们不用开启强光的灯具,仍然可以看清楚周围的环境,不会打扰到他人的休息。

综上所述,多功能数字钟拥有准确显示时间、设置多个闹钟、使用倒计时器、显示温湿度以及充当夜灯等多种实用功能。

它是一种方便、实用并且综合性很强的钟表,能够满足人们的不同需求,提高生活的便利性和舒适度。

多功能数字钟课程设计

多功能数字钟设计[摘要]多功能数字钟由数字钟电路、定时电路、报时电路、电源电路组成。

为了简化电路结构,便于实现,数字钟电路与定时电路之间的连接采用直接译码技术。

用中规模集成电路设计的数字钟具有电路结构简单、动作可靠、使用寿命长、更改设定时间容易、制造成本低等优点。

[关键词]555定时器;报时电路;译码;校时Design of multi-functional digital clockAbstract:Applicable for automatic digital clock rung, automatic broadcasting, also suitable for electricity, water and automatic control and electrical equipment. It is by several children clock circuit, timing circuit, the power circuit implementation. In order to simplify the circuit structure, a digital clock circuit and timing circuits using direct connection between decoding technology. With simple structure, reliable operation, long service life, change the setting time for easy and manufacturing cost etc.Key words:555timer;time-reported circuit;decode;timing目录引言 (1)1 多功能数字钟工作原理 (1)1.1 系统框图 (1)1.2 工作原理 (1)2 芯片简介 (2)2.1 555定时器 (2)2.2 十进制加法计数器74LS160 (2)3 电路设计 (2)3.1 1Hz秒时钟信号发生器 (2)3.2 时间计数及显示电路 (3)3.2.1译码显示电路 (3)3.2.2 分、秒计数及显示 (4)3.2.3 时计数及显示 (5)3.3 校时电路 (5)3.4 整点报时电路 (6)3.5 整体电路图 (6)4 仿真结果及分析 (7)4.1时钟结果仿真 (7)4.2 1Hz脉冲产生电路 (8)4.3 60进制计数器计数仿真结果 (8)4.4 24进制计数器计数仿真结果 (8)4.5 脉冲输出电压观察 (9)4.6 开关校时电路仿真结果 (10)4.7 测试结果分析 (10)5 安装与调试 (10)6 结束语和展望 (11)致谢 (11)参考文献 (11)附录A (12)引言数字钟是采用数字电路实现对时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头,公室等公共场所,成为人们日常生活中不可缺少的必需品。

多功能数字电子钟设计

数字逻辑课程设计-多功能数字电子钟多功能数字钟的设计与仿真一.设计任务与要求设计任务:设计一个多功能数字钟。

要求:1.有“时”、“分”、“秒”(23小时59分59秒)显示且有校时功能。

(设计秒脉冲发生器)2.有整点报时功能。

(选:上下午、日期、闹钟等)3. 用中规模、小规模集成电路及模拟器件实现。

4. 供电方式: 5V直流电源二.设计目的、方案及原理1.设计目的(1)熟悉集成电路的引脚安排。

(2)掌握各芯片的逻辑功能及使用方法。

(3)了解面包板结构及其接线方法。

(4)了解多功能数字钟的组成及工作原理。

(5)熟悉多功能数字钟的设计与制作2.设计思路(1)设计数字钟的时、分、秒电路。

(2)设计可预置时间的校时电路。

(3)设计整点报时电路。

3.设计过程3.1.总体设计方案及其工作原理为:数字钟原理框图入图1所示,电路一般包括一下几个部分:振荡器、星期、小时、分钟、秒计数器、校时电路、报时电路。

数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。

由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。

通常使用石英晶体振荡器电路构成数字钟,但也可以用555定时器构成。

图1 系统框图数字钟计时的标准信号应该是频率相当稳定的1HZ秒脉冲,所以要设置标准时间源。

数字钟计时周期是24小时,因此必须设置24计数器,秒、分、时由数码管显示。

ﻫ为使数字钟走时与标准时间一致,校时电路是必不可少的。

设计中采用开关控制校时电路“时”“分”“秒”计数器进行校时操作。

3.2.各独立功能部件的设计(1)分、秒计时器(60进制),时计数器(24进制),星期计数器(7进制)如下图,图中蓝色线为高电平+5v,绿色为接地线,红色线为时钟脉冲。

获得秒脉冲信号后,可根据60秒为一分,60分为一小时,24时为一个计数周期的计数规则,分别确定秒、分、时的计数器。

由于秒和分的显示都为60进制,因此他们可有两级十进制计数器组成,其中秒和分的个位为十进数器,十位为六进制计数器,可利用两片74160集成电路来实现。

基于单片机的多功能数字钟的设计

一、概述现代社会,时间被视为人们生活的重要组成部分。

而数字钟作为时间的一种展现形式,已经成为人们生活中不可或缺的一部分。

基于单片机的多功能数字钟设计,将为人们提供更加准确、便捷、多功能的时间展现方式,满足人们对时间的精准要求,同时也为人们的生活带来更多便利。

二、设计目标1. 实现精准的时间显示功能,包括时、分、秒的显示;2. 实现对日期的显示,包括年、月、日的显示;3. 实现多种报时功能,如定时报时、闹钟报时等;4. 实现多种显示效果,如渐变显示、闪烁显示等;5. 实现对时间的调整功能,包括校时、调整日期等;6. 实现对亮度的调节功能,适应不同环境下的使用需求。

三、设计思路1. 硬件设计1.1 硬件采用单片机作为核心控制器,通过外部晶振提供时钟信号;1.2 采用数码管作为显示设备,通过单片机控制数码管进行时间、日期的显示;1.3 通过按钮、旋钮等输入设备,实现时间调节、报时设置等操作;1.4 通过EEPROM等存储设备,实现时间、设置的存储和读取功能;1.5 通过光敏电阻等光敏传感器,实现对环境光强的检测,调节数码管显示亮度。

2. 软件设计2.1 设计合理的时钟系统,确保时间的准确显示;2.2 设计报时功能模块,实现定时报时、闹钟报时等功能;2.3 设计显示控制模块,实现数字、日期的显示效果控制;2.4 设计操作响应模块,实现对按钮、旋钮等输入设备的操作响应;2.5 设计存储管理模块,实现时间、设置数据的存储和读取功能;2.6 设计光敏控制模块,实现对数码管显示亮度的实时调节。

四、实现方法1. 硬件设计1.1 选择合适的单片机作为核心控制器,根据需要进行外围电路的设计;1.2 选择合适的数码管作为显示设备,设计驱动电路以及显示控制电路;1.3 选择合适的按钮、旋钮等输入设备,设计输入电路以及操作响应电路;1.4 选择合适的EEPROM芯片,设计存储管理电路实现数据的存储和读取;1.5 选择合适的光敏电阻或光敏二极管,设计光敏控制电路实现显示亮度的调节。

eda多功能数字钟实验报告

eda多功能数字钟实验报告EDA多功能数字钟实验报告一、引言数字钟是现代生活中常见的一种时间显示工具,其准确性和便携性使其成为人们生活中不可或缺的一部分。

本实验旨在设计并制作一款多功能数字钟,通过EDA(电子设计自动化)软件进行模拟和仿真,验证其功能和性能。

二、设计原理1. 时钟电路:采用CMOS(互补金属氧化物半导体)技术设计时钟电路,包括时钟发生器、计数器和显示器。

时钟发生器产生稳定的方波信号,计数器根据方波信号进行计数,显示器将计数结果以数字形式显示出来。

2. 功能模块:多功能数字钟除了显示时间外,还应具备日期显示、闹钟设置、温度检测等功能。

为实现这些功能,需要添加相应的模块,如时钟芯片、温度传感器、闹钟电路等。

三、电路设计1. 时钟电路设计:根据设计原理,使用EDA软件进行电路设计,选择合适的元器件和连接方式。

通过仿真验证电路的工作稳定性和准确性。

2. 功能模块设计:根据需求,添加相应的功能模块。

时钟芯片用于精确计时和日期显示,温度传感器用于检测环境温度并显示,闹钟电路用于设置闹钟时间并触发报警。

四、电路实现1. 元器件选取:根据电路设计需求,选择合适的元器件。

时钟芯片应具备高精度和稳定性,温度传感器应具备高灵敏度和准确度,闹钟电路应具备可调节和触发功能。

2. 电路布局:将选取的元器件按照电路设计进行布局,注意元器件之间的连接和布线,避免干扰和短路。

3. 电路连接:根据电路设计进行元器件之间的连接,注意连接的正确性和稳定性。

五、仿真与测试1. 仿真验证:使用EDA软件进行电路仿真,检查电路的稳定性和准确性。

通过仿真结果对电路进行调整和优化,确保其正常工作。

2. 功能测试:对多功能数字钟进行功能测试,包括时间显示、日期显示、温度检测和闹钟设置等。

通过测试结果对电路进行调整和改进,确保其功能的完善和可靠性。

六、实验结果与分析经过仿真和测试,多功能数字钟实现了准确的时间显示、日期显示、温度检测和闹钟设置等功能。

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

设计题目多功能数字钟设计设计要求设计一数字钟,实现以下功能:1.具有时、分、秒计数显示功能,以24小时循环计时;2.具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间,并能对计时清零;3.具有仿广播电台整点报时的功能,整点报时的同时LED灯花样显示。

设计过程一、系统方案选择和论证1、数字钟系统方案选择和论证本设计的总体组成框图如图1所示:数字钟电路系统由主体电路和拓展电路两大部分组成。

其中,主体电路完成数字钟的基本功能,拓展电路完成电路的拓展功能。

该系统的工作原理是:震荡器产生的稳定高频脉冲信号,完成数字钟的时间基准,再经分频器输出标准秒脉冲。

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

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

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

拓展电路必须在主体电路正常运行的情况下才能进行功能拓展。

采用译码器接到分计数器和秒计数器相应的输出端,使计数器运行到差十秒整点报时,利用分频器输出的500HZ和1000HZ的信号加到音响电路中,用于模仿电台报时:每当数字钟计时快要正点时发出声响,按照4低音一高音的顺序发出间断声响,以最后一声高音的时刻为正点时刻。

LED灯也依次轮流显示。

在EDA实验室可以直接通过实验箱上的频率脉冲给该电路图添加所需要的频率,而不需要我们自己设计。

下面通过硬件中数字钟所需要的频率来设计电路。

实验中需要的是1HZ的脉冲,通过该脉冲使数字钟达到秒信号所需要的频率图1多功能数字钟系统组成框图1.1振荡器设计方案振荡器是数字钟的核心。

振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,一般来说,振荡器的频率越高,计时精度越高方案一:采用由555集成电路与RC 组成多谐振荡器,以产生符合要求的振荡脉冲。

方案二:采用由石英晶体与逻辑门及RC 组成的多谐振荡电路,以产生符合要求的振荡脉冲。

方案二采用石英晶体振荡器产生的脉冲频率稳定度高且精度很高,适宜于作为要求高精度的时钟基准脉冲,作为振荡器电路。

方案一产生的脉冲频率稳定度相对不高,但在要求不是很高的情况,可以采用方案一。

考虑到市场方面的原因,石英晶体震荡不宜采用,这里我们采用方案一。

原理图如图2振荡器 分频器校时电路时计数器 分计数器 秒计数器LED 灯花样显示扫描选位信号译码驱动电路时钟显示整点报时图2 振荡器原理图这里选用由555构成反对多谐震荡器,震荡频率为fo=1KHZ 由f=2ln )2(1121C R R T +=; 假定C1=0.1uf,得到R1=2K ;R2=5.1K ;为了能使得到的频率更精确,再加一个阻值为10K 的可调电阻。

1.2分频器的设计方案分频器的主要功能有两个:一是产生标准秒脉冲信号,二是提供扩展电路所需信号,仿广播电台报时用的1KHz 的高音频信号和500Hz 的低音频信号等。

选用3片中规模集成电路,计数器74LS90可以完成上述功能。

因每片为1/10分频,3片级联则可获得所需要的频率信号,即第一片的Q0输出频率为500Hz ,第二片的Q3端输出为10Hz ,第三片的Q3端输出为1Hz 。

74LS90是二——五——十进制计数器,它有两个时钟输入端CP0和CP1。

其中CP0和Q0组成一位二进制计数器,CP1和Q3 Q2 Q1组成五进制计数器。

若将Q0和CP1相连接,时钟脉冲从CP0输入,则构成十进制计数器,74LS90有两个清零端Ro(1),Ro(2)和两个置9端R9(1),R9(2),它的功能表和管脚示意图如表1所示。

Ro(1) Ro(2) R9(1) R9(2) Q3 Q2 Q1 Q01 1 0 * 0 0 0 01 1 * 0 0 0 0 0* * 1 1 1 0 0 1* 0 * 00 * 0 *计数0 * * 0* 0 0 *表1 74LS90功能表原理图如图3所示,仿真波形如图4所示图3分频器原理图图4分频器仿真图1.3校时电路的设计方案当数字钟接通电源或者计时出现误差时,需要校正时间。

校时是数字钟应具备的基本功能。

这里只进行分和小时校时。

对校时电路的要求是,在小时校正时不影响分和秒的正常计数;在分校正时不影响秒和小时的正常计数。

通过门电路实现对进位和校时信号的选择,用RS触发器做开关,可以通过控制RS触发器开关来选择是正常计时模式或是校时模式。

校时电路是由门电路构成的组合逻辑电路,可以完全使校时电路能稳定地工作。

图4所示校“时”、校“分”电路。

其中S1为校“时”用的控制开关,S2为校“分”用的控制开,他们的控制功能表如表2.3.1所示。

校时脉冲采用采用分频器输出的1Hz 脉冲。

校时电路原理图如图5所示,仿真图如图6所示。

S1 R1 S2 R2 功能0 ×0 ×计数0 × 1 0 校分1 0 0 ×校时表2图5校时电路原理图图6校时电路仿真图1.4时分秒计数器的设计方案由于考虑到采用各种计数器集成块组成时序逻辑电路,虽然原理简单,但连线繁多,占用芯片非常多的I/O口,电路稳定性较差,而采用VHDL语言构建的模块稳定性好,而且连线少,节省了芯片的I/O口,因此采用VHDL语言构建模块的方法。

小时计数原理图如图7所示,仿真图如图8所示图7小时计数器原理图图8小时计数器仿真图分计数原理图如图9所示,仿真图如图10所示图9分计数器原理图图10分计数器仿真图秒计数原理图如图11所示,仿真图如图12所示图11秒计数器原理图图12秒计器数仿真图1.5扫描显示模块的设计方案在这里我们采用动态扫描显示方法。

通过信号选通器选通计数器的某一位经译码器到相应的那个数码管显示出来,其他各位不显示,在下一选通脉冲到来时选择下一位到数码管显示,如此循环。

当这个选通脉冲频率足够大时人眼就感觉不出六个数码管的交替亮灭,从而实现六位数的显示。

我们选用的七段译码驱动器(74LS48)和数码管(LED )是共阴极接法(需要输出高电平有效的译码器驱动)。

译码显示电路如图13所示。

BI/RBO 4RBI 5LT 3A 7B 1C 2D6a 13b 12c 11d 10e 9f 15g14U174LS481234567a b c d e f g 8dp9GN Da b f c g d edpDS1AMBERCC图13译码显示电路 扫描信号电路原理图如图14,仿真图如图15图14扫描信号电路原理图图15扫描信号电路仿真图译码驱动电路原理图如图16,仿真图如图17图16译码驱动电路原理图图17译码驱动电路仿真图整点报时及LED灯花样显示模块原理图如图18,仿真图如图19所示。

图18整点报时及LED灯花样显示电路原理图图19整点报时及LED灯花样显示电路仿真图1.6总原理图各模块设计确定后,得数字钟总原理图如图20数字钟总原理仿真图如图21图21数字钟总原理仿真图二、系统安装与调试2.1输入与输出端接口(1)SETMIN,SETHOUR、RESET分别接按键开关;(2)A、B、C、D、E、F、G分别与数码管的a,b,c,d,e,f,g输入端相连;(3)LAMP0,LAMP1,LAMP2分别和LED相接;(4)时钟信号CLK接1HZ,扫描信号CLKDSP接32HZ以上频率信号(含32HZ);(5)扫描片地址信号SEL0,SEL1,SEL2分别和字符点阵显示模块的四位扫描驱动地址SEL0~SEL3的低三位相连,最高位地址接“0”,也可以悬空;(6)接口SPEAKER同实验箱的SPEAKER相接;2.2性能测试与分析电路编译完成后下载到Altera公司的EPM7128SLC84-15芯片中.数码显示管显示正常,说明扫描显示模块正确。

数码管显示数字从000000开始,秒、分、时显示正确,在输入为1Hz的时钟脉冲下经与标准表对照,秒计时的周期为1秒钟。

为了在短时间内测试秒、分、时进位是否正确,加大输入脉冲频率。

显示管显示秒、分、时进位正确。

数字从000000一直进位到235959后回到0000000,在每小时的59分的51、53、55、57、秒蜂鸣器鸣低音,59秒鸣高音,同时LED灯循环显示,完全符合设计要求中的“仿广播电台整点报时”这一要求。

按动SETMIN,SETHOUR分别实现对分和时的调整,手动校时功能正确,两者不相影响。

按下RESET键,时间回归到000000,说明计时清零功能正常。

整个性能测试结束,各项要求都已达到。

这次课程设计取得圆满成功。

2.3结论心得与体会1、本次课程设计中主要用到的是24进制和60进制。

计数器需要我们能充分掌握同步和异步之间的区别,以及置数和清零的区别。

对它们有了透彻的了解才能够充分的把所需要的进制给弄出来。

2、方案确定后,才开始设计。

设计时多实用已学的方法,如列真值表,化简逻辑表达式,要整体考虑,不可看一步,做一步。

在整个设计都正确后,再寻求简化的方法。

首先在设计的过程中把每一个部分需要实现的功能都具体想好,再结合与之相关的部分进行整体设计。

3、通过此次课程设计也让我充分的了解的扫描显示电路的用法,及具体的实现过程。

由于本数字钟有6位数字需要显示,如果用普通的一个输出对应一个译码驱动器和一个数码管的静态显示方法,那么仅七端码输出就需要多达42个I/O口和数码管连线,显然这将占据大量I/O口,连线也很麻烦。

而采用动态扫描显示的方法仅需7根数码管连线就能实现多位显示需求,通过本设计深刻感受到动态扫描显示方法的优越性。

4、通过这次数字钟的设计,让我深深感受到了数字电路的重要性和实用性,也加深了对数字钟内部电路的认识,大大提高了我们的逻辑思维能力,使我们在逻辑电路的分析与设计上有了很大的进步。

加深了我们对组合逻辑电路与时序逻辑电路的认识,进一步增进了对一些常见逻辑器件的了解。

通过这次课程设计,更让我了解了合作精神的重要性。

共同研究在学习生活中是很重要的。

5、总的来说,通过这次的课程设计,不仅加深了我们对组合逻辑电路和时序逻辑电路的应用,对数字钟知识的认识,还加深了我们对EDA技术的应用,让我们体会到了构建模块对于数字电路分析带来的方便。

还让我们深深得感受到数字电子技术的奥妙,使我们发现数字电子技术原来离我们的生活竟然是如此的近。

虽然在设计的过程中出现了许许多多的挫折麻烦,但是经过独立思考,查阅资料和跟同学讨论研究后,总能解决问题并提出最佳方案,或对原有方案最优化。

所以通过这次设计,不仅加强了我们对课本知识应用到实际生活中的能力,还学到了不少新知识,锻炼了独立思考与合作处理问题的能力,积累了新经验,这些都无疑使我受益深远。

参考文献:[1] 赣南师范学院物理与电子信息学院编数字电路实验指导书[2] 谢自美主编电子线路设计●实验●测试第3版,武汉:华中科技大学出版社,2006年[4] 曹昕燕周风原聂春燕编EDA技术实验与课程设计北京:清华大学出版社,2006年[5]阎石主编数字电子技术基础第4版北京:高等教育出版社,1998年附录:程序清单1.整点报时及LED花样显示模块VHDL源程序(ALERT)LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY alert ISPORT(clk : IN STD_LOGIC;dain : IN STD_LOGIC_VECTOR(6 DOWNTO 0);speak: OUT STD_LOGIC;lamp : OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END alert ;ARCHITECTURE fun OF alert ISsignal count : std_logic_vector( 1 downto 0);signal count1: std_logic_vector( 1 downto 0);BEGINspeaker:process (clk)beginspeak <= count1(1);if (clk 'event and clk= '1') thenif (dain = "000000") thenif (count1>="10") thencount1<="00";elsecount1 <= count1 + 1;end if;end if;end if;end process speaker;lamper:process(clk)beginif (rising_edge(clk))thenif (count <= "10") thenif (count ="00") thenlamp <= "001" ;elsif (count = "01") thenlamp <= "010" ;elsif(count="10") thenlamp <= "100" ;end if;count <= count + 1;elsecount <= "00";end if;end if;end process lamper;END fun ;2.小时计数模块VHDL源程序(HOUR)LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY hour ISPORT(clk,reset: IN STD_LOGIC;daout: out std_logic_vector (5 downto 0)); END entity hour;ARCHITECTURE fun OF hour ISSIGNAL count: STD_LOGIC_VECTOR( 5 downto 0); BEGINdaout <= count;process ( clk,reset)beginif (reset='0') thencount <= "000000";elsif (clk' event and clk='1') thenif (count(3 downto 0)="1001") thenif (count <16#24#) thencount<=count + 7;elsecount<="000000";end if;elsif(count <16#24#) thencount <= count + 1;elsecount<="000000";end if;end if;end process;END fun;3.分计数模块VHDL源程序(MINUTE)LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY minute ISPORT(clk, clk1,reset,sethour : IN STD_LOGIC;enhour : OUT STD_LOGIC;daout: out std_logic_vector (6 downto 0)); END entity minute;ARCHITECTURE fun OF minute ISSIGNAL count: STD_LOGIC_VECTOR( 6 downto 0); BEGINdaout <= count;process ( clk,reset,sethour)beginif (reset='0') thencount <= "0000000";elsif (sethour='0') thenenhour <= clk1;elsif (clk' event and clk='1') thenif (count(3 downto 0)="1001") thenif (count <16#60#) thenif (count="1011001") thenenhour<='1';count<="0000000";ELSEcount<=count+7;end if;elsecount<="0000000";end if;elsif(count <16#60#) thencount <= count + 1;enhour<='0' after 100 ns;elsecount<="0000000";end if;end if;end process;END fun;4.秒计数模块VHDL源程序(SECOND)LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY second ISPORT(clk, reset,setmin : IN STD_LOGIC;enmin : OUT STD_LOGIC;daout: out std_logic_vector (6 downto 0));END entity second;ARCHITECTURE fun OF second ISSIGNAL count: STD_LOGIC_VECTOR( 6 downto 0); BEGINdaout <= count;process ( clk , reset , setmin)begin-- enmin<=k;if (reset='0') thencount <= "0000000";elsif (setmin='0') thenenmin <= clk;elsif (clk 'event and clk='1') thenif (count(3 downto 0)="1001") thenif (count <16#60#) thenif (count="1011001") thenenmin<='1';count<="0000000";ELSEcount<=count+7;end if;elsecount<="0000000";end if;elsif (count < 16#60#) thencount <= count+1;enmin<='0' after 100 ns; elsecount<="0000000"; end if;end if;end process;END fun;5.时间设置模块VHDL源程序(SELTIME)LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;ENTITY seltime ISPORT(clk1, reset: IN STD_LOGIC;sec,min : IN STD_LOGIC_VECTOR(6 downto 0);hour : in std_logic_vector (5 downto 0);daout : OUT STD_LOGIC_vector (3 downto 0);sel : out std_logic_vector ( 2 downto 0));END seltime;ARCHITECTURE fun OF seltime ISSIGNAL count: STD_LOGIC_vector ( 2 downto 0);BEGINsel <= count;process ( clk1,reset)beginif (reset ='0') thencount <= "000";elsif (clk1 'event and clk1='1') thenif ( count >= "101") thencount <= "000";elsecount <= count + 1;end if;end if;case count iswhen "000" => daout <= sec(3 downto 0);when "001" => daout(3) <= '0';daout(2 downto 0) <= sec (6 downto 4);when "010" => daout <= min (3 downto 0);when "011" => daout(3) <= '0';daout(2 downto 0) <= min (6 downto 4);when "100" => daout <= hour (3 downto 0);when others => daout(3 downto 2) <= "00";daout(1 downto 0) <= hour(5 downto 4); end case;end process;end fun;6.译码驱动模块AHDL源程序(DELED)SUBDESIGN deled(num[3..0]:INPUT;a,b,c,d,e,f,g: OUTPUT;)BEGINTABLEnum[3..0] => a,b,c,d,e,f,g;H"0" => 1,1,1,1,1,1,0; H"1" => 0,1,1,0,0,0,0;H"2" => 1,1,0,1,1,0,1;H"3" => 1,1,1,1,0,0,1;H"4" => 0,1,1,0,0,1,1;H"5" => 1,0,1,1,0,1,1;H"6" => 1,0,1,1,1,1,1;H"7" => 1,1,1,0,0,0,0;H"8" => 1,1,1,1,1,1,1;H"9" => 1,1,1,1,0,1,1;H"A" => 1,1,1,0,1,1,1;H"B" => 0,0,1,1,1,1,1;H"C" => 1,0,0,1,1,1,0;H"D" => 0,1,1,1,1,0,1;H"E" => 1,0,0,1,1,1,1;H"F" => 1,0,0,0,1,1,1;END TABLE;END;。

相关文档
最新文档