数字电子钟毕业课程设计报告

合集下载

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

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

数字闹钟设计报告目录1.设计任务与要求 (2)2.设计报告内容2.1实验名称 (2)2.2实验仪器及主要器件 (2)2.3实验基本原理 (3)2.4数字闹钟单元电路设计、参数计算和器件选择…………………………3-72.5数字闹钟电路图 (8)2.6数字闹钟的调试方法与过程 (8)2.7设计与调试过程的问题解决方案 (8)3.实验心得体会……………………………………………………………………9、101.设计任务与要求数字闹钟的具体设计任务及要求如下:(1) 有“时”、“分”十进制显示,“秒”使用发光二极管闪烁表示。

(2) 以24小时为一个计时周期。

(3) 走时过程中能按预设的定时时间(精确到小时)启动闹钟,以发光二极管闪烁表示,启闹时间为3s~10s。

2.设计报告内容2.1实验名称数字闹钟2.2实验仪器及主要器件(1)CD4511( 4片)、数码管(4片)(2)74LS00(6片)(3)74LS138(2片)(4)74LS163(6片)(5)LM555(1片)(6)电阻、电容、导线等(若干)(7)面包板(2片)、示波器等2.3数字闹钟基本原理要想构成数字闹钟,首先应选择一个标准时间源——即秒信号发生器。

可以采用LM555构成多谐振荡器,通过改变电阻来实现频率的变化,使之产生1HZ的信号。

计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要对计数器分别设计为60进制和24进制的,并发出驱动信号。

各计数器输出信号经译码器到数字显示器,按“时”、“分”顺序将数字显示出来,秒信号可以通过数码管边角的点来显示。

数字闹钟要求有定时响闹的功能,故需要提供设定闹时电路和对比起闹电路。

设时电路应共享译码器到数字显示器,以便使用者设定时间,并可减少电路的芯片数量;而对比起闹电路提供声源,应具有人工止闹功能,止闹后不再重新操作,将不再发生起闹等功能。

数字电子钟的逻辑框图如图所示。

它由555集成芯片构成的振荡电路计数器、显示器和校时电路组成。

电子数字时钟课程设计报告(数电)

电子数字时钟课程设计报告(数电)

电子数字时钟课程设计报告(数电)第一篇:电子数字时钟课程设计报告(数电)数字电子钟的设计1.设计目的数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。

数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。

因此,我们此次设计数字钟就是为了了解数字钟的原理,从而学会制作数字钟。

而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。

且由于数字钟包括组合逻辑电路和时叙电路。

通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。

1.1设计指标1.时间以12小时为一个周期;2.显示时、分、秒;3.具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间; 1.2 设计要求1、电路设计原理说明2、硬件电路设计(要求画出电路原理图及说明)3、实物制作:完成的系统能达到题目的要求。

4、完成3000字的课程设计报告2.功能原理2.1 数字钟的基本原理数字电子钟由信号发生器、“时、分、秒”计数器、LED数码管、校时电路、整点报时电路等组成。

工作原理为时钟源用以产生稳定的脉冲信号,作为数字种的时间基准,要求震荡频率为1HZ,为标准秒脉冲。

将标准秒脉冲信号送入“秒计数器”,该计数器采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。

“分计数器”也采用60进制计数器,每累计60分,发出一个“时脉冲”信号,该信号将被送到“时计数器”。

“时计数器”采用24进制计数器,可以实现24小时的累计。

LED数码管将“时、分、秒”计数器的输出状态显示。

校时电路是来对“时、分、秒”显示数字进行校对调整。

2.2 原理框图3.功能模块3.1 振荡电路多谐振荡器也称无稳态触发器,它没有稳定状态,同时无需外加触发脉冲,就能输出一定频率的矩形波形(自激振荡)。

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

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

多功能数字电子钟设计报告本文将介绍一个多功能数字电子钟的设计报告。

这个钟具有多种功能,可以显示时间,日期,室内温度和湿度,还可以设置闹钟。

这个钟被设计成简单易用,具有时尚外观和实用性。

硬件设计这个数字电子钟由以下主要部件组成:1. 微控制器:使用STM32F103微控制器进行控制和处理2. 显示屏:采用高清彩色TFT屏幕,尺寸为3.5英寸3. 传感器:使用DHT11温湿度传感器,可以实时监测室内的温度和湿度4. 时钟模块:使用DS1302 RTC(实时时钟)模块确保精准的时间显示5. 按键:包括上、下、左、右、确定和返回六个按键,方便用户设置和控制软件设计这个数字电子钟的软件设计采用了嵌入式设计的方法,代码分为三个主要部分:1. 时钟控制:这个数字电子钟确保了精准的时间显示,使用DS1302 RTC模块,可以确保时钟精度误差不超过±2秒/天。

时钟控制部分还包括时钟校准和闹钟设置。

2. 屏幕控制:这个数字电子钟使用3.5英寸TFT高清彩色屏幕,可以实现时钟、日期、温湿度和闹钟的显示。

屏幕控制部分可以显示多种信息,具有时尚的外观和设计。

3. 传感器控制:使用DHT11温湿度传感器监测室内环境。

传感器控制部分可以实现实时监测温度和湿度,并在屏幕上显示当前的室内温度和湿度。

功能设计这个数字电子钟具有以下主要功能:1. 时间显示:可以精准的显示当前的时间,包括小时、分钟和秒钟。

2. 日期显示:可以显示当前的日期,包括月份、日期和星期几。

3. 温湿度监测:可以实时监测室内的温度和湿度,并在屏幕上显示当前的数值。

4. 闹钟设置:可以设置多个闹钟,并在设定的时间开始响铃。

闹钟响铃时可以选择静音或自动关闭。

5. 操作简便:采用方便简单的按键操作设计,方便用户使用。

总结这个数字电子钟设计具有多种功能,采用了高清彩色TFT 屏幕,集精准时间、日期信息、温湿度信息便利的闹钟设置于一身,是一款可以满足日常生活需求的设计。

数字电子钟课程设计报告

数字电子钟课程设计报告

课程设计(论文)课程名称:电子设计自动化课程设计题目名称:多功能数字电子钟专业:电子信息科学与技术电子三班学号:姓名:指导教师:设计时间:2011-2012-1学期16、17周目录一、课程设计的目的及要求: (3)1.1 课程设计的目的: (3)1.2课程设计的要求: (3)二、电子钟的总的设计方案及原理图: (3)2.1电子钟的设计的总体框图: (3)2.1.2、工作进程: (4)2.2电子钟各部分的原理及其仿真: (4)2.2.1 分频器的设计原理及其仿真: (4)2.2.2 控制器的设计原理及其仿真: (6)2.2.3 调时器的设计原理及其仿真: (7)2.2.4 时钟的设计原理及其仿真: (7)2.2.5 秒表的设计原理及其仿真: (10)2.2.6 闹钟的设计原理及其仿真: (13)2.2.7 闹钟响铃的设计原理及其仿真: (15)2.2.8 显示模块的设计原理及其仿真: (17)三、电子钟设计的总体仿真: (20)四、收获与体会: (20)五、参考文献: (20)一、课程设计的目的及要求:1.1 课程设计的目的:1、熟悉EDA工具设计数字电路的方法。

2、掌握VHDL描述硬件的方法。

3、加深对VHDL的理解和掌握。

1.2课程设计的要求:基本功能要求:设计一个电子时钟,要求可以显示时、分、秒,用户可以设置时间。

扩展功能要求:跑表功能,闹钟功能,调整数码管的亮度。

二、电子钟的总的设计方案及原理图:2.1电子钟的设计的总体框图:2.1.1、闹钟电路控制电路时钟电路秒表电路显示模块数码管输出显示2.1.2、工作进程:当开机后,系统首先是时钟状态,当按下键8进入调时,键4调节时间,再按下键8退出调时,按两下键5进入秒表,同时键8为开始及清零,键1为结束及开始,再按两下键5进入闹钟设置,键4调节时间,最后按两下键5返回时钟状态,2.2电子钟各部分的原理及其仿真:2.2.1 分频器的设计原理及其仿真:2.2.1.1、原理程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dvf is----------------状态机控制模块port(clk:in std_logic; -------输入10MHZ信号clk_out1:out std_logic;clk_out2:out std_logic;clk_out3:out std_logic);end;architecture one of dvf issignal clk_tmp1: std_logic;signal clk_tmp2: std_logic;signal clk_tmp3: std_logic;signal cnt1:integer range 0 to 4999999;signal cnt2:integer range 0 to 49999;signal cnt3:integer range 0 to 49;beginfen1: process(clk,clk_tmp1)--时钟信号1秒,1HZbeginif clk'event and clk='1' thenif cnt1<4999999 thencnt1<=cnt1+1;elsecnt1<=0;clk_tmp1<=NOT clk_tmp1 ;end if;end if;clk_out1<=clk_tmp1;end process;fen2: process(clk,clk_tmp2)--跑表信号100HZbeginif clk'event and clk='1' thenif cnt2<49999 then cnt2<=cnt2+1;else cnt2<=0; clk_tmp2<=NOT clk_tmp2 ;end if;end if;clk_out2<=clk_tmp2;end process;fen3: process(clk,clk_tmp3)--用于控制模块的时钟beginif clk'event and clk='1' thenif cnt3<49 thencnt3<=cnt3+1;elsecnt3<=0;clk_tmp3<=NOT clk_tmp3 ;end if;end if;clk_out3<=clk_tmp3;end process;end ;2.2.1.2、分频器的RTL仿真:2.2.2.1、控制器原理程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity control isport (ad_in: in std_logic;out_en: out std_logic_vector(1 downto 0)); end;architecture one of control issignal moshis:std_logic_vector(1 downto 0):="00"; beginprocess(ad_in)beginif ad_in'event and ad_in='1' thenif moshis="10"thenmoshis<="00";else moshis<=moshis+1;end if;end if;end process;out_en<=moshis;end;2.2.2.2、RTL仿真:2.2.3.1、调时器的原理程序:library ieee;use ieee.std_logic_1164.all;entity tiaoshi isport( clk_t,dis_clk : in std_logic;ad_in : in std_logic;ad_out : out std_logic);end ;architecture bhv of tiaoshi issignal q1: std_logic;beginq1<=clk_t and dis_clk;ad_out<=q1 or ad_in;end;2.2.3.2、RTL仿真:2.2.4 时钟的设计原理及其仿真:2.2.4.1、时钟的原理程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock is --时钟port( en_in : in std_logic_vector(1 downto 0);clk_in : in std_logic;s_out1 : out std_logic_vector(3 downto 0);--秒的个位s_out2 : out std_logic_vector(3 downto 0);--秒的十位m_out1 : out std_logic_vector(3 downto 0);--分的个位m_out2 : out std_logic_vector(3 downto 0);--分的十位h_out1 : out std_logic_vector(3 downto 0);--小时的个位h_out2 : out std_logic_vector(3 downto 0));--小时的十位end ;architecture one of clock issignal tmp10:std_logic_vector(3 downto 0);signal tmp:std_logic_vector(3 downto 0);signal m_tmp10:std_logic_vector(3 downto 0);signal m_tmp:std_logic_vector(3 downto 0);signal h_tmp10:std_logic_vector(3 downto 0);signal h_tmp:std_logic_vector(3 downto 0);signal s_jinwei:std_logic;--秒的溢出signal m_jinwei:std_logic;--分钟的溢出begin--******************************************************************* no1:process(clk_in,tmp,tmp10)beginif clk_in'event and clk_in='1' thenif en_in="00"thenif (tmp10="0101" and tmp="1001") thentmp10<="0000";tmp<="0000";elsif tmp="1001" thentmp<="0000";tmp10<=tmp10+1;else tmp<=tmp+1;end if;end if;end if;if tmp10="0000" and tmp="0000" then s_jinwei<='1';else s_jinwei<='0';end if;s_out2<=tmp10;s_out1<=tmp;end process;--*******************************************************************no2: process(s_jinwei,en_in,m_tmp,m_tmp10)--用来输出分钟beginif s_jinwei'event and s_jinwei='1' thenif en_in="00"thenif (m_tmp10="0101" and m_tmp="1001") thenm_tmp10<="0000";m_tmp<="0000";elsif m_tmp="1001" thenm_tmp<="0000";m_tmp10<=m_tmp10+1;else m_tmp<=m_tmp+1;end if;end if;end if;if m_tmp10="0101" and m_tmp="1001" then m_jinwei<='1';else m_jinwei<='0';end if;m_out2<=m_tmp10;m_out1<=m_tmp;end process;--******************************************************************* no3: process(m_jinwei,en_in,h_tmp,h_tmp10)--用来输出小时beginif m_jinwei'event and m_jinwei='1' thenif en_in="00"thenif (h_tmp10="0010" and h_tmp="0100") thenh_tmp10<="0000";h_tmp<="0000";elsif h_tmp="1001" thenh_tmp<="0000";h_tmp10<=h_tmp10+1;else h_tmp<=h_tmp+1;end if;end if;end if;h_out2<=h_tmp10;h_out1<=h_tmp;end process;end;2.2.4.2、时钟的RTL仿真:2.2.5 秒表的设计原理及其仿真:2.2.5.1、秒表的原理程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity second is --秒表port( en_in : in std_logic_vector(1 downto 0);clk_in ,jian1 : in std_logic;reset : in std_logic;s_out1 : out std_logic_vector(3 downto 0);--秒下一位的个位s_out2 : out std_logic_vector(3 downto 0);--秒下一秒的十位m_out1 : out std_logic_vector(3 downto 0);--秒的个位m_out2 : out std_logic_vector(3 downto 0);--秒的十位h_out1 : out std_logic_vector(3 downto 0);--分钟的个位h_out2 : out std_logic_vector(3 downto 0));--分钟的十位end ;architecture one of second issignal tmp10:std_logic_vector(3 downto 0);signal tmp:std_logic_vector(3 downto 0);signal m_tmp10:std_logic_vector(3 downto 0);signal m_tmp:std_logic_vector(3 downto 0);signal h_tmp10:std_logic_vector(3 downto 0);signal h_tmp:std_logic_vector(3 downto 0);signal s_jinwei:std_logic;--秒下一位的溢出signal m_jinwei:std_logic;--秒的溢出signal start:std_logic:='0';begin--******************************************************************* no1:process(clk_in,tmp,tmp10,reset,start) --用来输出秒的下一位beginif reset='1' then tmp10<="0000";tmp<="0000";elsif start='1' thenelsif clk_in'event and clk_in='1' thenif en_in="01"thenif (tmp10="1001" and tmp="1001") thentmp10<="0000";tmp<="0000";elsif tmp="1001" thentmp<="0000";tmp10<=tmp10+1;else tmp<=tmp+1;end if;end if;end if;if tmp10="1001" and tmp="1001" then s_jinwei<='1';--可能有错误,有待修改else s_jinwei<='0';end if;s_out2<=tmp10;s_out1<=tmp;end process;--*******************************************************************no2: process(s_jinwei,en_in,m_tmp,m_tmp10,reset,start)--用来输出秒beginif reset='1' then m_tmp10<="0000";m_tmp<="0000";elsif start='1' thenelsif s_jinwei'event and s_jinwei='1' thenif en_in="01"thenif (m_tmp10="0101" and m_tmp="1001") thenm_tmp10<="0000";m_tmp<="0000";elsif m_tmp="1001" thenm_tmp<="0000";m_tmp10<=m_tmp10+1;else m_tmp<=m_tmp+1;end if;end if;end if;if m_tmp10="0101" and m_tmp="1001" then m_jinwei<='1';else m_jinwei<='0';end if;m_out2<=m_tmp10;m_out1<=m_tmp;end process;--*******************************************************************no3: process(m_jinwei,en_in,h_tmp,h_tmp10,reset,start)--用来输出分钟beginif reset='1' then h_tmp10<="0000";h_tmp<="0000";elsif start='1' thenelsif m_jinwei'event and m_jinwei='1' thenif en_in="01"thenif (h_tmp10="0101" and h_tmp="1001") then h_tmp10<="0000";h_tmp<="0000";elsif h_tmp="1001" thenh_tmp<="0000";h_tmp10<=h_tmp10+1; else h_tmp<=h_tmp+1;end if;end if;end if;h_out2<=h_tmp10;h_out1<=h_tmp;end process;process(jian1,start)beginif jian1'event and jian1='1' thenstart<=not start;else start<=start;end if;end process;end;2.2.5.2、RTL仿真:2.2.6 闹钟的设计原理及其仿真:2.2.6.1 闹钟的原理程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity alarm is --闹钟的设置port( en_in : in std_logic_vector(1 downto 0);ala_set : in std_logic;sec,sec10 : out std_logic_vector(3 downto 0);min : out std_logic_vector(3 downto 0);--分的个位min10 : out std_logic_vector(3 downto 0);--分的十位hr : out std_logic_vector(3 downto 0);--小时的个位hr10 : out std_logic_vector(3 downto 0));--小时的十位end ;architecture one of alarm issignal m_tmp10:std_logic_vector(3 downto 0);signal m_tmp:std_logic_vector(3 downto 0);signal h_tmp10:std_logic_vector(3 downto 0);signal h_tmp:std_logic_vector(3 downto 0);signal m_jinwei:std_logic;--分钟的溢出signal s_jinwei:std_logic;signal s_tmp:std_logic_vector(3 downto 0);signal s_tmp10:std_logic_vector(3 downto 0);begin--*******************************************************************no1: process(ala_set,en_in,s_tmp,s_tmp10)--用来输出秒beginif ala_set'event and ala_set='1' thenif en_in="10"thenif (s_tmp10="0101" and s_tmp="1001") thens_tmp10<="0000";s_tmp<="0000";elsif s_tmp="1001" thens_tmp<="0000";s_tmp10<=s_tmp10+1;else s_tmp<=s_tmp+1;end if;end if;end if;if s_tmp10="0101" and s_tmp="1001" then s_jinwei<='1';else s_jinwei<='0';end if;sec10<=s_tmp10;end process;--*******************************************************************no0: process(s_jinwei,en_in,m_tmp,m_tmp10)--用来输出分钟beginif s_jinwei'event and s_jinwei='1' thenif en_in="10"thenif (m_tmp10="0101" and m_tmp="1001") thenm_tmp10<="0000";m_tmp<="0000";elsif m_tmp="1001" thenm_tmp<="0000";m_tmp10<=m_tmp10+1;else m_tmp<=m_tmp+1;end if;end if;end if;if m_tmp10="0101" and m_tmp="1001" then m_jinwei<='1';else m_jinwei<='0';end if;min10<=m_tmp10;min<=m_tmp;end process;--*******************************************************************no2: process(m_jinwei,en_in,h_tmp,h_tmp10)--用来输出小时beginif m_jinwei'event and m_jinwei='1' thenif en_in="10"thenif (h_tmp10="0010" and h_tmp="0100") thenh_tmp10<="0000";h_tmp<="0000";elsif h_tmp="1001" thenh_tmp<="0000";h_tmp10<=h_tmp10+1;else h_tmp<=h_tmp+1;end if;end if;end if;hr10<=h_tmp10;hr<=h_tmp;end;2.2.6.2、RTL仿真:2.2.7 闹钟响铃的设计原理及其仿真:2.2.7.1、闹钟响铃的原理程序:--小时寄存器library ieee;use ieee.std_logic_1164.all;entity hr_jicun isport( clk: in std_logic;adin: in std_logic_vector(3 downto 0);adin10:in std_logic_vector(3 downto 0);adout:out std_logic_vector(3 downto 0);adout10:out std_logic_vector(3 downto 0));end;architecture bhv of hr_jicun isbeginprocess(clk)beginif clk'event and clk='1' thenadout<=adin;adout10<=adin10;end if;end process;end;--分钟寄存器---------------------------------library ieee;use ieee.std_logic_1164.all;entity m_jicun isport( clk: in std_logic;adin: in std_logic_vector(3 downto 0);adin10:in std_logic_vector(3 downto 0);adout:out std_logic_vector(3 downto 0);adout10:out std_logic_vector(3 downto 0));end;architecture bhv of m_jicun isbeginprocess(clk)beginif clk'event and clk='1' thenadout<=adin;adout10<=adin10;end if;end process;end;--比较器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bijiaoqi isport (clk : in std_logic;alah_in: in std_logic_vector(3 downto 0);--闹钟小时个位输入alah10_in:in std_logic_vector(3 downto 0);--闹钟小时十位输入cloch_in: in std_logic_vector(3 downto 0);--时钟小时个位输入cloch10_in:in std_logic_vector(3 downto 0);--时钟小时十位输入alam_in : in std_logic_vector(3 downto 0);--闹钟分钟个位输入alam10_in:in std_logic_vector(3 downto 0);--闹钟分钟十位输入clocm_in : in std_logic_vector(3 downto 0);--时钟分钟个位输入clocm10_in:in std_logic_vector(3 downto 0);--时钟分钟十位输入ad_out : out std_logic );--驱动输出end;architecture bhv of bijiaoqi isbeginprocess(alah_in,cloch_in ,clk, alam_in,clocm_in, alah10_in,cloch10_in , alam10_in,clocm10_in)beginif (alah_in=cloch_in and alam_in=clocm_in and alah10_in=cloch10_in and alam10_in=clocm10_in and alam_in>1)then ad_out<=clk ;else ad_out<='1';end if;end process;end;2.2.8 显示模块的设计原理及其仿真:2.2.8.1显示器的原理程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity scanled isport(clk : in std_logic;alarmset : in std_logic_vector(1 downto 0); --如果进入闹钟定时,则进行定时译码second : in std_logic_vector(1 downto 0); --如果进入秒表,则进行秒表译码sl,sh,ml,mh,hl,hh : in std_logic_vector(3 downto 0); --走时扫描译码asl,ash,aml,amh,ahl,ahh : in std_logic_vector(3 downto 0); --闹钟定时译码sls,shs,mls,mhs,hls,hhs : in std_logic_vector(3 downto 0); --秒表译码sg : out std_logic_vector(6 downto 0);bt : out std_logic_vector(7 downto 0));end;architecture bhv of scanled issignal cnt8 : std_logic_vector(2 downto 0);signal a : std_logic_vector(3 downto 0);beginp1:process(cnt8,sl,sh,ml,mh,hl,hh,second,alarmset,sls,shs,mls,mhs,asl,ash,hhs,hls,aml,amh,ah l,ahh)begincase cnt8 isWHEN "000" => bt<="00000001";if alarmset="10" then a<=ahh(3 downto 0);elsif second ="01" then a<=hhs(3 downto 0);else a<=hh(3 downto 0);end if; --注意检查,显示的顺序WHEN "001" => bt<="00000010";if alarmset="10" then a<=ahl(3 downto 0);elsif second ="01" then a<=hls(3 downto 0);else a<=hl(3 downto 0);end if;WHEN "010" => bt<="00000100";a<="1010";WHEN "011" => bt<="00001000";if alarmset="10" then a<=amh(3 downto 0);elsif second ="01" then a<=mhs(3 downto 0);else a<=mh(3 downto 0);end if;WHEN "100" => bt<="00010000";if alarmset="10" then a<=aml(3 downto 0);elsif second ="01" then a<=mls(3 downto 0);else a<=ml(3 downto 0);end if;WHEN "101" => bt<="00100000";a<="1010";WHEN "110" => bt<="01000000";if alarmset="10" then a<=ash(3 downto 0);elsif second ="01" then a<=shs(3 downto 0);else a<=sh(3 downto 0);end if;WHEN "111" => bt<="10000000";if alarmset="10" then a<=asl(3 downto 0);elsif second ="01" then a<=sls(3 downto 0);else a<=sl(3 downto 0);end if;when others=>null;end case;end process p1;p2:process(clk)beginif clk'event and clk='1' thencnt8<=cnt8+1;end if;end process p2;p3:process(a)begincase a iswhen "0000" =>sg<="0111111";when "0001" =>sg<="0000110";when "0010" =>sg<="1011011";when "0011" =>sg<="1001111";when "0100" =>sg<="1100110";when "0101" =>sg<="1101101";when "0110" =>sg<="1111101";when "0111" =>sg<="0000111";when "1000" =>sg<="1111111";when "1001" =>sg<="1101111";when "1010" =>sg<="1000000";when others => null;end case;end process p3;end;2.2.8.2、RTL仿真三、电子钟设计的总体仿真:四、收获与体会:通过这次课程设计我学到了很多,不但进一步掌握了数字电子技术的基础知识及仿真软件的使用,还提高了自己设计能力和实践能力,同时我也看到了自己在时间方面的不足,明白了仅仅掌握理论知识是不行的,一定要理论结合实践充分发挥知识的作用,将理论知识运用到实践中去。

电子行业数字电子钟毕业设计

电子行业数字电子钟毕业设计

电子行业数字电子钟毕业设计1. 引言数字电子钟是一种能够准确显示时间的设备,近年来在电子行业得到广泛应用。

本文将介绍一个基于数字电子钟的毕业设计项目,旨在设计和实现一个高精度、多功能的数字电子钟。

2. 设计目标本设计项目旨在满足以下几个设计目标:1.高精度:数字电子钟应能够准确显示当前时间,并具备较高的时间精度。

2.多功能:数字电子钟应具备除基本时间显示功能之外,还应包括日期、闹钟、秒表、倒计时等多种功能。

3.显示清晰:数字电子钟的显示界面应清晰可见,以便用户轻松阅读时间信息。

4.高可靠性:数字电子钟应具备稳定、可靠的工作性能,能够长时间连续工作而不出现故障。

3. 系统框架本设计项目的数字电子钟主要由以下几个模块构成:1.时钟芯片模块:负责实时时钟的计时和时间信息的存储。

2.显示模块:负责将时钟芯片模块获取的时间信息显示在屏幕上。

3.功能模块:包括日期、闹钟、秒表、倒计时等功能模块,负责实现相关功能的逻辑处理和显示。

4.按键模块:负责用户操作的按键检测和响应。

4. 主要实现步骤(1)硬件设计:•使用时钟芯片实现时钟计时和时间信息存储。

•连接显示模块,并设计使其能够正确显示时钟信息。

•连接按键模块,实现用户操作按键的检测和响应。

(2)软件设计:•编写时钟芯片模块的驱动程序,实现时钟计时和时间信息存储的功能。

•设计并实现显示模块的驱动程序,使其能够正确显示时钟信息。

•设计并实现功能模块的驱动程序,实现日期、闹钟、秒表、倒计时等功能的逻辑处理和显示。

•编写按键模块的驱动程序,实现用户操作按键的检测和响应。

5. 预期结果通过设计和实现上述的硬件和软件模块,预期可以实现一个高精度、多功能的数字电子钟。

该数字电子钟可以准确显示当前时间,具备日期、闹钟、秒表、倒计时等功能,并具有良好的用户操作体验和显示效果。

6. 结论本文介绍了一个基于数字电子钟的毕业设计项目。

通过该项目的设计和实现,预期可以得到一个高精度、多功能的数字电子钟。

数字钟课程设计报告

数字钟课程设计报告

数字钟课程设计报告前言:随着科技的不断进步,数字化已经成为了各个领域的主流趋势。

数字技术也在教育领域得到广泛应用。

数字化教育为学生提供了更好的学习方式和体验,同时也给教育工作者带来了更多的创新空间。

本文将围绕数字化教育,探讨数字钟课程设计报告。

数字钟的设计:数字钟是一个数字化的学习工具,在各学科的教学中都得到了广泛应用。

数字钟的设计可以遵循以下步骤:1.确定教学目标:数字钟的设计必须遵循教学目标,以便为教师和学生提供最佳的学习体验,使教学更加生动有趣。

2.选择数字钟的类型:根据教学目标和特点,可以选择不同类型的数字钟,例如计时器、倒计时器、时间轴等。

3.选择数字钟的功能:数字钟的功能会影响到教学效果,因此需要根据教学目标和教学特性选择数字钟的功能。

4.美化数字钟的界面:美化数字钟的界面能够增加学生的学习兴趣,提高教学效果,从而实现教学目标。

数字钟的应用:数字钟是一种数字化教学工具,可以在各个学科的教学中得到广泛应用。

下面以数学为例,详细说明数字钟在数学教学中的应用。

数字钟可以用于教学观念的讲解。

在数学教学中,学习时间的观念非常重要。

使用数字钟可以帮助学生了解时间的本质,为学生认识到时间的重要性打下基础。

数字钟也可以用于学习数学运算。

例如,教师可以设置数字钟来进行加减乘除的计算,帮助学生提高计算速度和精确度。

数字钟还可以用于检查作业。

教师可以在数字钟上设置一个时间限制,让学生在规定时间内完成作业。

如果学生没有完成作业,数字钟将会提醒他们完成。

数字钟的优势:数字化教育工具的吸引力取决于它们的功能和灵活性。

数字钟虽然看起来简单,但它的实际用途非常重要。

它能够帮助教师更好地了解学生的学习情况,同时也能够更好地帮助学生提升学习效果。

数字钟优势如下:1、灵活性:数字钟可以根据教学需要进行设计和选择,可以在不同的学科中得到广泛应用。

2、互动性:数字钟可以与学生互动式地使用。

通过使用数字钟可以促进学生互动,提高学生的学习效果,帮助学生主动掌握学习内容。

电子技术数字时钟报告电路原理图

电子技术数字时钟报告电路原理图

电子技术课程设计报告设计题目:数字电子时钟班级:学生姓名:学号:指导老师:完成时间:一.设计题目:数字电子时钟二.设计目的:1.熟悉集成电路的引脚安排和各芯片的逻辑功能及使用方法;2.了解数字电子钟的组成及工作原理 ;3.熟悉数字电子钟的设计与制作;三、设计任务及要求用常用的数字芯片设计一个数字电子钟,具体要求如下:1、以24小时为一个计时周期;2、具有“时”、“分”、“秒”数字显示;3、数码管显示电路;4、具有校时功能;5、整点前10秒,数字钟会自动报时,以示提醒;6、用PROTEUS画出电路原理图并仿真验证;四、设计步骤:电路图可分解为:1.脉冲产生电路;2.计时电路;3.显示电路;4校时电路;5整点报时电路;1.脉冲电路是由一个555定时器构成的一秒脉冲,即频率为1HZ;电路图如下:2.计时电路即是计数电路,通过计数器集成芯片如:74LS192 、74LS161、74LS163等完成对秒脉冲的计数,考虑到计数的进制,本设计采用的是74LS192;秒钟个位计到9进10时,秒钟个位回0,秒钟十位进1,秒钟计到59,进60时,秒钟回00,分钟进1;分钟个位计到9进10时,分钟个位回0,分钟十位进1,分钟计到59,进60时,分钟回00,时钟进1;时钟个位记到9进10时,时钟个位回0,时钟十位进1,当时钟计数到23进24时,时钟回00.电路图如下:3.显示电路是完成各个计数器的计数结果的显示,由显示译码器和数码管组成,译码器选用的是4511七段显示译码器,LED数码管选用的是共阴极七段数码管,数码管要加限流电阻,本设计采用的是400欧姆的电阻;电路图如下:4.校时电路通过RS触发器及与非门和与门对时和分进行校准,电路图如下:5.整点报时电路即在时间出现整点的前几秒,数值时钟会自动提醒,本设计采用连续蜂鸣声;根据要求,电路应在整点前10秒开始整点报时,也就是每个小时的59分50秒开始报时,元器件有两个三输入一输出的与门,一个两输入一输出的与门,发生器件选择蜂鸣器;具体电路图如下:六.设计用到的元器件有:与非门74LS00,与门74LS08,74LS11,7段共阴极数码管,计数器芯片74LS192,555定时器,4511译码器,电阻,电容,二极管在电路开始工作时,对计数电路进行清零时会使用到,单刀双掷开关;设计电路图如报告夹纸;七.仿真测试:1.电路计时仿真电路开始计数时:计数从1秒到10秒的进位,从59秒到一分钟的进位,从1分到10分的进位,从59分到一小时的进位,从1小时到10小时的进位,从23小时到24小时的进位,然后重新开始由此循环,便完成了24小时循环计时功能,仿真结果如下:1. 7.2.8.3. 9.4. 10.5. 11.6. 12.13.2.电路报时仿真由电路图可知,U18:A和U18:B的6个输入引脚都为高电平时,蜂鸣器才会通电并发声,当计数器计数到59分50秒是,要求开始报时,而59分59秒时,还在报时,也就是说只需要检测分钟数和秒计数的十位,5的BCD码是4和1,9的BCD码是8和1,一共需要6个测端口,也就是上述的6个输入端口,开始报时时,报时电路状态如图:3.校时电路仿真正常计时校时U15:D和u15:C是一个选通电路,12角接的是秒的进位信号,9角接的是秒的脉冲信号,当SW1接到下引脚时,U15:D接通,u15:C关闭,进位信号通过,计数器的分技术正常计时;当SW1接到上引脚时,U15:D关闭,u15:C接通,校时的秒脉冲通过,便实现了分钟校时,时钟的校时与分钟校时大致相同;八.心得体会以及故障解决设计过程中遇到了一个问题,就是在校时电路开始工作时,校时的选择电路会给分钟和时钟的个位一个进位信号,也就是仿真开始时电路的分钟和时钟个位会有一个1;为了解决这个问题,我采用的是在电路开始工作时,同时给分钟和时钟的个位一个高电平的清零信号来解决,由于时钟的个位和十位的清零端是连在一起的,再加上分钟的个位,在校时小时的时候且当小时跳完24小时时,会给分钟的个位一个清零信号,这时在电路中加一个单向导通的二极管变解决了,具体加在那儿,请参考电路图;在设计过称中,我们也许遇到的问题不止一个两个,而我们要做的是通过努力去解决它;首先我们要具备丰富的基础知识,这是要在学习和实际生活中积累而成的;其次,我们还有身边的朋友同学老师可以请教,俗话说:三人行,必有我师;最后,我们还有网络,当今是个信息时代,网络承载信息的传递,而且信息量非常大,所以我们也可以适当的利用网络资源;通过这次对数字钟的设计与制作,让我了解了设计电路的步骤,也让我了解了关于数字钟的原理与设计理念,要设计一个电路总要先用仿真,仿真成功之后才实际接线;但是仿真是在一个比较好的状态下工作,而电路在实际工作中需要考虑到一些驱动和限流电阻等等,因为,再实际接线中有着各种各样的条件制约和干扰;而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功;所以,在设计时应考虑两者的差异,从中找出最适合的设计方法;这次学习让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解,才能在实际生活和工作中应用起来;。

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

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

课程设计_数字电子钟设计报告第一篇:课程设计_数字电子钟设计报告数字电子钟设计报告数字电子钟设计报告目录1.实验目的 (2)2.实验题目描述和要求 (2)3.设计报告内容...........................................................................2 3.1实验名称.................................................................................2 3.2实验目的.................................................................................2 3.3实验器材及主要器件..................................................................2 3.4数字电子钟基本原理..................................................................3 3.5数字电子钟单元电路设计、参数计算和器件选择..............................3-8 3.6数字电子钟电路图.....................................................................9 3.7数字电子钟的组装与调试............................................................9 4.实验结论.................................................................................9 5.实验心得 (10)参考文献 (10)数字电子钟设计报告一简述数字电子钟是一种用数字显示秒,分,时,日的计时装置,与传统的机械相比,它具有走时准确,显示直观,无机械传动装置等优点,因而得到了广泛的应用:小到人们日常生活中的电子手表,大到车站,码头,机场等公共场所的大型数显电子钟。

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

(此文档为word格式,下载后您可任意编辑修改!)目录摘要 (3)关键词 (3)一、设计任务与要求 (4)二、方案设计与论证 (4)方案一 (4)方案二 (5)三、硬件单元电路设计与参数计算 (5)1. 电源电路 (5)2. 按键电路 (5)3. 时钟电路 (5)4. 驱动电路 (5)5. LED显示电路 (5)6. 单片机电路 (6)四、软件设计与流程图 (10)五、总原电路及元器件清单 (10)1.总原理图 (10)2.PCB制板图 (11)3.整体电路仿真图 (12)4.元件清单 (12)六、安装与调试 (13)1. 电路安装 (13)2. 电路调试 (13)3. 软件调试 (13)七、性能测试与分析 (14)八、结论与心得 (14)九、参考文献 (15)十、致谢 (15)十一、程序清单 (15)摘要:本论文基于单片机原理技术介绍了一款于AT89C52芯片作为核心控制器的单片机数字电子钟的设计与制作,包括硬件电路原理的实现方案设计、软件程序编辑的实现、数字电子钟正常工作的流程、原理图仿真实现、硬件实物的安装制作与硬件实物的调试过程。

该单片机数字电子钟采用LED 数码管能够准确显示时间(显示格式为:时时,分分,秒秒),可随时进行时间调整,时间可采用12 小时制显示或24 小时制显示,采用12 小时显示时可在标志位数码管上显示A(表示上午)或B(表示下午),可暂停时间的变动,暂停时一位数码管上显示字母H,可按自己的要求设置扩展的小键盘个数。

关键词:单片机;数字电子钟;数码管;AT89C52一、设计任务与要求1、设计任务用单片机设计一个数字电子钟,采用LED 数码管来显示时间。

2、设计要求(1)显示格式为:XX:XX:XX,即:时:分:秒。

(2)时间可采用12 小时制显示或24 小时制显示,采用12 小时显示时必须在另外一个数码管上显示A(表示上午)或B(表示下午)。

(3)设置一个按键用于时间显示方式的切换。

(4)系统上电后从上电时初始化显示: 开始计时。

(5)能进行时间的调整,可暂停时间的变动,暂停时一位数码管上显示字母H 可按自己的要求设置扩展的小键盘个数。

二、方案设计与论证图1 系统整体框图整个系统用单片机作为中央控制器,由单片机执行采集芯片内部时钟信号,时钟信号通过单片机IO口传给单片机,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出、LED的显示及相关的控制功能。

系统设有按键模块用于对时间进行调整及扩展多个小键盘,系统整体框图如图1所示。

1、单片机芯片选择方案方案一:AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器。

主要性能有:与MCS-51单片机产品兼容、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程IO口线、三个16位定时器计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。

方案二:AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM)。

主要性能有:兼容MCS51指令系统、32个双向IO口、256x8bit内部RAM、3个16位可编程定时计数器中断、时钟频率0-24MHz、2个串行中断、可编程UART串行通道、2个外部中断源、6个中断源、2个读写中断口线、3级加密位、低功耗空闲和掉电模式、软件设置睡眠和唤醒功能。

从单片机芯片主要性能角度出发,本数字电子钟单片机芯片选择设计采用方案一。

2、数码管显示选择方案方案一:静态显示。

静态显示,即当显示器显示某一字符时,相应的发光二极管恒定导通或截止。

该方式每一位都需要一个8 位输出口控制。

静态显示时较小电流能获得较高的亮度,且字符不闪烁。

但因当所需显示的位数较多时,静态显示所需的IO口数较大,造成资源的浪费。

方案二:动态显示。

动态显示,即各位数码管轮流点亮,对于显示器各位数码管,每隔一段延时时间循环点亮一次。

利用人的视觉暂留功能可以看到整个显示,但须保证扫描速度足够快,人的视觉暂留功能才可察觉不到字符闪烁。

显示器的亮度与导通电流、点亮时间及间隔时间的比例有关。

调整参数可以实现较高稳定度的显示。

动态显示节省了IO口,降低了能耗。

从节省单片机芯片IO口和降低能耗角度出发,本数字电子钟数码管显示选择设计采用方案二。

3、数码管驱动选择方案方案一:上拉电阻驱动方式。

数码管段码与接有上拉电阻的单片机芯片IO口相连,通过编程,单片机芯片即控制段码电平的高低。

该方式经费低,但实物制作较复杂。

方案二:74LS245芯片驱动方式。

数码管段码与74LS245芯片B口相连,74LS245芯片A口与单片机芯片IO口,通过编程,单片机芯片即可控制段码电平的高低。

该方式实物制作简单,增强驱动数码管段码能力。

从实物制作简易程度与驱动数码管段码能力角度出发,本数字电子钟数码管驱动选择设计采用方案二。

三、硬件单元电路设计与参数计算1、电源电路本数字电子钟设计所需电源电压为直流、电压值大小5V的电压源。

从硬件实物设计简易程度与经费方面考虑,用两节电压值大小 2.5V干电池与电路电压源引脚相连接即可达到硬件设计要求。

即本数字电子钟设计用两节电压值大小2.5V干电池做硬件电路电压源。

2、按键电路本数字电子钟设计所需按键用于进行显示时间的调整与设置扩展的小键盘。

单片机芯片4个IO口可与按键直接相连,通过编程,单片机芯片即可控制按键接口电平的高低,即按键的开与关,以达到用按键进行显示时间的调整与设置扩展的小键盘的设计要求。

3、时钟电路单片机芯片可使用内部时钟电路和外部时钟电路两种方式产生电路所需的时钟脉冲,内部时钟电路实现可用石英晶体和微调电容外接即可达到,外部时钟电路实现需要一个外部脉冲源引入脉冲信号以保证个单片机之间时钟信号的同步。

从硬件实现难易角度考虑,内部时钟电路的实现比外部时钟电路的实现更简易。

既本数字电子钟设计所需的时钟源采用内部时钟电路实现。

所用定时方式为工作方式1,石英晶振为12M,即最小定时时间为1us,最大定时时间约为65.5ms,其电路图如下图2所示。

图2 时钟电路图4、驱动电路从实物制作简易程度与驱动数码管段码能力角度出发,本数字电子钟设计采用数码管段码与74LS245芯片B口相连,74LS245芯片A口与单片机芯片IO口,通过编程,单片机芯片即可控制段码电平的高低的方式实现数码管段码控制,74LS245芯片图如下图3所示。

图3 74LS245芯片图5、LED显示电路数字电子钟设计的显示模块用8个一位数码管实现,也可用两个四位一体数码管实现。

两种实现方式实现效果一样。

从实物制作的难易程度出,本数字电子钟设计采用两个四位一体数码管实现。

即数码管引脚与单片机芯片和74LS245对应引脚相连接。

单片机电路本数字电子钟设计采用AT89S52单片机芯片作为中央控制器,实现信号的输出、LED的显示及相关的控制功能。

四、软件设计与流程图1、数字电子时钟主程序流程图主程序流程图如下图图4所示。

图4数字电子时钟主程序流程图2、中断服务程序流程图中断服务程序流程图如下图图5所示。

图5 中断服务程序流程图3、显示子程序流程图显示子程序流程图如下图图6所示。

图6 显示子程序流程图五、总原电路及元器件清单1.总原理图最小系统控制原理图如下图图7所示, 数码管原理图如下图图8所示。

图7 最小系统控制原理图图8数码管原理图2.PCB制板图数码管PCB图如下图图9所示,最小系统控制PCB图如下图图10所示。

图9数码管PCB图图10最小系统PCB图3.整体电路仿真图整体电路仿真图如下图图11所示。

图11 整体电路仿真图4.元件清单六、安装与调试1. 电路安装安照电路原理图把元器件安装到已打好的铜板对应的位置,把个元器件固定在铜板后,用导线把对应的元器件的引脚相连接,再用焊锡焊接好即可。

注意事项:(1)元器件的布局应尽量集中,且各个元器件间引脚的连线应尽量短、不弯曲,跳线尽量少。

(2)各个元器件引脚的焊接不要虚焊。

2. 电路调试把相应编译好的目标程序代码加载到单片机芯片AT89S52,可接上5V 电压源即开始进行硬件电路的调试工作。

如果显示结果不符合设计要求,即检查电路各连接点是否正确连接,再次进行硬件电路的调试工作,或是检查代码程序是否符合硬件电路的设计,若有错即进行相应的修改,编译后,再进行硬件电路的调试工作。

如此反复操作,直到调试出正确结果。

3. 软件调试(1)在计算机上运行程序调试软件Keil,进行程序调试,若显示0错误(S),0警告(S)即证明程序代码正确。

(2)在Proteus软件画好的电路原理图中加载程序代码到单片机芯片AT89S52中,进行模拟仿真。

若出现错误,查看错误后进行相应修改再进行调试与模拟仿真,直到调试出正确结果。

七、性能测试与分析1、系统上电后进行功能的测试,通过测试观察到,系统上电后数码管上显示时间:,图12 实物图一接着按下K1按键调整时间小时数的显示,即小时加1,按下K2按键调整时间分钟数的显示,即分钟加1,按下K3按键调整时间秒数的显示,即秒数加1,实物图二如下图图13所示。

图13 实物图二然后按下K5按键调整时间12 小时制的显示或24 小时制的显示。

在24小时制的显示的情况下,显示时间制的数码管上不显示,只显示时,分,秒;在12 小时制的显示的情况下,如果小时数大于12小时的情况,一个数码管上显示B(表示下午);反之如果小时数小于12小时的情况,一个数码管上显示A(表示上午);,实物图三如图14所示。

图13 实物图三通过测试,本作品设计实现了数字电子钟的基本功能,还增加了时间制转换的功能,且系统工作稳定。

八、结论与心得本单片机数字电子钟系统的功能基本符合显示格式为:XX:XX:XX,即时:分:秒。

时间可采用12 小时制显示或24 小时制显示,采用12 小时显示时必须在另外一个数码管上显示A(表示上午)或B(表示下午)。

设置一个按键用于时间显示方式的切换。

系统上电后从上电时初始化显示: 开始计时,能进行时间的调整,可暂停时间的变动,暂停时一位数码管上显示字母H,可按自己的要求设置扩展的小键盘个数设计任务的要求,经过测试数据显示, 系统的可靠性已经基本能够达到实际电子钟的设计要求,同时本单片机数字电子钟系统具有扩展性。

课程设计是培养学生综合运用所学知识,发现实际问题、提出实际问题、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际学习能力、动手能力的具体训练和考察过程。

相关文档
最新文档