电子时钟设计(完美实现最终版)要点

合集下载

电子行业智能电子钟设计与制作

电子行业智能电子钟设计与制作

电子行业智能电子钟设计与制作1. 引言随着科技的不断进步,电子行业在我们日常生活中扮演着越来越重要的角色。

智能电子钟作为电子行业中的一种常见应用,不仅能够准确地显示时间,还具备多种功能,如温度显示、闹钟功能、语音播报等。

本文将介绍电子行业智能电子钟的设计与制作过程。

2. 设计需求在设计智能电子钟之前,我们首先需要明确设计需求。

根据市场调研和用户需求分析,我们确定以下设计需求:•显示时间:智能电子钟需要能够准确地显示当前的时间,包括小时、分钟和秒。

•温度显示:智能电子钟需要具备温度传感器,能够实时监测环境温度,并将温度显示在屏幕上。

•闹钟功能:智能电子钟需要具备闹钟功能,用户可以设置闹钟时间,到达指定时间后,智能电子钟会发出响铃提醒。

•语音播报:智能电子钟需要能够通过扬声器进行语音播报,包括时间、温度和闹钟提醒等。

3. 系统设计基于设计需求,我们将进行系统设计,包括硬件设计和软件设计两个方面。

3.1 硬件设计硬件设计是智能电子钟实现功能的基础。

以下是硬件设计的要点:•处理器:选择一款高性能的微控制器作为处理器,具备足够的计算和控制能力。

•显示屏:选择一块合适的液晶显示屏,能够清晰地显示时间和温度。

•温度传感器:选择一款高精度的温度传感器,能够准确地测量环境温度。

•扬声器:选择一款高音质的扬声器,能够清晰地播放语音。

3.2 软件设计软件设计是智能电子钟实现各项功能的关键。

以下是软件设计的要点:•时间显示:编写程序,获取当前时间,并将时间显示在液晶屏上。

•温度显示:编写程序,读取温度传感器的数据,并将温度显示在液晶屏上。

•闹钟功能:编写程序,实现闹钟功能,包括设置闹钟时间、闹钟提醒等。

•语音播报:编写程序,通过扬声器进行语音播报,包括时间、温度和闹钟提醒等。

4. 制作过程4.1 硬件制作根据硬件设计的要点,进行硬件制作的具体步骤如下:1.按照电路图连接微控制器、液晶显示屏、温度传感器和扬声器等模块。

2.确保电路连接正确,检查是否有短路或接触不良的问题。

设计制作电子时钟

设计制作电子时钟

设计制作简易数字钟一、设计要求1、设计一振荡源,用于产生1Hz的脉冲信号;2、能完成从00时00分00秒到23时59分59秒走时,并实时显示时、分、秒;3、具有手动校时、校分、校秒功能。

发挥部分:具有正点报时功能。

要求在59分58秒开始报时,持续5秒钟。

二、总体设计方案1、方案选择数字钟实际上是由一个对标准频率(1HZ)进行计数的计数电路为主要部分构成的。

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

通常使用石英晶体振荡器电路来构成数字钟的标准时间基准信号。

数字钟的组成框图如下图所示。

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

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

设计中采用状态机控制校时,通过切换开关用秒脉冲或手动按键产生脉冲先后对“时” “分” “秒”计数器进行校时操作。

2、数字钟的构成(1)数字钟的构成:振荡器、分频器、计数器、译码器、LED数码管显示器等几部分。

附加功能的实现还需采用T’触发器及与门和或门及蜂鸣器组成报时电路。

(2)数字钟的时、分、秒实际上就是由一个24 进制计数器(00-23),两个60 进制计数器(00-59)级联构成。

设计数字钟实际上就是计数器的级联。

(3)芯片选型:由于24进制、60进制计数器均由集成计数器级联构成,且都包含有基本的十进制计数器,从设计简便考虑,芯片选择十进制计数器74LS390。

3、元器件列表:型号74LS00、74LS04、74LS08、74LS21、74LS32、74LS47、74LS74、74LS86、74LS390、CD4068、CD4060、CD4511。

晶体管8050、510欧姆电阻、LED、轻触开关、自锁开关、蜂鸣器、10p电容、晶振32768、10M电阻。

三、系统工作原理1、主计数部分原理图图1主计数部分原理图如图所示,用两个十进制计数器74LS390组成60进制计数器和24进制计数器,分别用于对分、秒和时的计数。

设计一个电子时钟,要求可以显示时、分、秒,用户可以设置时间

设计一个电子时钟,要求可以显示时、分、秒,用户可以设置时间

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

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

二、系统结构控制键—jian5、jian4、jian7、jian8:数码管显示段选信号输出sg:——选择6位数码管中的某一个显示数据;发光二极管控制信号输出—led(7~0)闹钟声音输出—speaker通过一个10M信号分出各种所需频率功能介绍运行后,选择模式7,8位数码管分显示时间的时、分、秒,当前为模式0:时间显示模式,按键7为模式选择键,按下按键7,系统进入模式1,第二次按下为模式2,设置时间模式,第三次按下为跑表模式,第四次为闹钟设置模式,第五次为亮度调节模式:设置时间模式,按键4控制更改数码管的位,按键5控制选中数码管的数值,时间设置完成后,按键按键8,设置时间会保存住,并在模式0中显示;系统进入模式2:秒表模式,按键4为开始/结束键,按键5为清零键;系统进入模式3:闹钟设置模式,相关设置与模式1相同,当当前时间与闹钟设置时间相同时,喇叭就会响;系统进入模式4:亮度调节模式,通过按键4设置亮度,共三种亮度;再按下按键7,系统又会进入模式0。

4、RTL图三、VHDL源程序1、library ieee; --通过10M分出所需频率use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport (clk_10M : in std_logic;clk_10000 : out std_logic;clk_100 : out std_logic;clk_1 : out std_logic);end entity;architecture sub1 of fenpin issignal Q_1 : std_logic_vector(8 downto 0);signal Q_2 : std_logic_vector(6 downto 0);signal Q_3 : std_logic_vector(6 downto 0);signal clk10000 : std_logic;signal clk100 : std_logic;signal clk1 : std_logic;beginprocess(clk_10M)beginif clk_10M'event and clk_10M='1' thenif Q_1=500 thenQ_1 <= "000000000";clk10000 <= not clk10000;if Q_2=100 thenQ_2 <= "0000000";clk100<= not clk100;if Q_3=100 thenQ_3 <= "0000000";clk1<=not clk1;else Q_3<=Q_3+1;end if;else Q_2<=Q_2+1;end if;else Q_1<=Q_1+1;end if;end if;end process;clk_10000 <= clk10000;clk_100 <= clk100;clk_1 <= clk1;end sub1;2、library ieee; --扫描数码管use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xianshi isport(clk_10000:in std_logic;jian4:in std_logic;moshi:in integer range 0 to 4;a0,a1,a3,a4,a6,a7:in integer range 0 to 9;sg11:out std_logic_vector(6 downto 0);bt11:out std_logic_vector(7 downto 0));end;architecture one of xianshi issignal cnt8 :std_logic_vector(2 downto 0);signal a :integer range 0 to 15;signal light: std_logic;signal flash:integer range 0 to 2;signal count1,count2:integer range 0 to 10;beginp1: process(cnt8,light,a0,a1,a3,a4,a6,a7)begincase cnt8 iswhen "000" => bt11<= "0000000"&(light);a<=a0;when "001" => bt11<= "000000"&(light)&'0';a<=a1; when "010" => bt11<= "00000"&(light)&"00";a<=15; when "011" => bt11<= "0000"&(light)&"000";a<=a3; when "100" => bt11<= "000"&(light)&"0000";a<=a4; when "101" => bt11<= "00"&(light)&"00000";a<=15; when "110" => bt11<= '0'&(light)&"000000";a<=a6; when "111" => bt11<= (light)&"0000000";a<=a7;when others => null;end case;end process p1;p2:process(clk_10000)beginif clk_10000'event and clk_10000 ='1' then cnt8 <= cnt8+1; end if;end process p2;p3:process(a)begincase a iswhen 0 => sg11<= "0111111";when 1 => sg11<= "0000110";when 2 => sg11<= "1011011";when 3 => sg11<= "1001111";when 4 => sg11<= "1100110";when 5 => sg11<= "1101101";when 6 => sg11<= "1111101";when 7 => sg11<= "0000111";when 8 => sg11<= "1111111";when 9 => sg11<= "1101111";when 10 => sg11<= "1110111";when 11 => sg11<= "1111100";when 12 => sg11<= "0111001";when 13 => sg11<= "1011110";when 14 => sg11<= "1111001";when 15 => sg11<= "1000000";when others => null;end case;end process p3;process(jian4,moshi)beginif moshi=4 thenif jian4'event and jian4='1' thenif flash =2 thenflash<=0;else flash<=flash+1;end if;end if;end if;end process;process(clk_10000,flash)beginif clk_10000'event and clk_10000 ='1' thencase flash iswhen 0 => light<='1';when 1 => if count1=2 thencount1<=0; light<='1';else count1<=count1+1;light<='0';end if;when 2 => if count2=4 thencount2<=0; light<='1';else count2<=count2+1;light<='0';end if;end case;end if;end process;end;3、library ieee; --跑表开始暂停use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity paobiao isport(clk_1:in std_logic;jian8:in std_logic;shishi1,shige1,fenshi1,fenge1,miaoshi1,miaoge1:in integer range 0 to 9; shishi2,shige2,fenshi2,fenge2,miaoshi2,miaoge2:out integer range 0 to 9); end entity;architecture bhv of paobiao issignal shi:integer range 0 to 100;signal fen:integer range 0 to 100;signal miao:integer range 0 to 100;beginprocess(clk_1,jian8,shishi1,shige1,fenshi1,fenge1,miaoshi1,miaoge1)beginif jian8='1' thenshi<=shishi1*10+shige1;fen<=fenshi1*10+fenge1;miao<=miaoshi1*10+miaoge1;elsif clk_1'event and clk_1='1' thenif miao=59 thenmiao<=0;fen<=fen+1;elsif fen>59 thenfen<=0;shi<=shi+1;elsif shi>23 thenshi<=0;else miao<=miao+1;end if;end if;end process;miaoge2<=miao rem 10;miaoshi2<=miao/10;fenge2<=fen rem 10;fenshi2<=fen/10;shige2<=shi rem 10;shishi2<=shi/10;end;4、library ieee; --设置当前时间use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity settime isport(moshi:in integer range 0 to 4;jian4,jian5:in std_logic;shishi,shige,fenshi,fenge,miaoshi,miaoge:out integer range 0 to 9);end entity;architecture bav of settime issignal a:integer range 0 to 5;signal shishi1,shige1,fenshi1,fenge1,miaoshi1,miaoge1: integer range 0 to 9; beginprocess(moshi,jian4)beginif moshi=1 thenif jian4'event and jian4='1' thenif a < 5 thena<=a+1;else a<=0;end if;end if;end if;end process;process(moshi,a,jian5)beginif moshi=1 thenif a=0 thenif jian5'event and jian5='1' thenif miaoge1 =9 thenmiaoge1<=0;else miaoge1<=miaoge1+1;end if;end if;end if;if a=1 thenif jian5'event and jian5='1' thenif miaoshi1 =5 thenmiaoshi1<=0;else miaoshi1<=miaoshi1+1;end if;end if;end if;if a=2 thenif jian5'event and jian5='1' thenif fenge1 =9 thenfenge1<=0;else fenge1<=fenge1+1;end if;end if;end if;if a=3 thenif jian5'event and jian5='1' thenif fenshi1 =5 thenfenshi1<=0;else fenshi1<=fenshi1+1;end if;end if;end if;if a=4 thenif jian5'event and jian5='1' thenif shige1 =9 thenshige1<=0;else shige1<=shige1+1;end if;end if;end if;if a=5 thenif jian5'event and jian5='1' thenif shishi1 =2 thenshishi1<=0;else shishi1<=shishi1+1;end if;end if;end if;end if;end process;miaoge<=miaoge1;miaoshi<=miaoshi1;fenge<=fenge1;fenshi<=fenshi1;shige<=shige1;shishi<=shishi1;end;5、library ieee; --秒表功能use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity miaobiao isport(clk_100:in std_logic;moshi:in integer range 0 to 4;jian5,jian4:in std_logic;fenshi,fenge,miaoshi,miaoge,xmiaoshi,xmiaoge:out integer range 0 to 9); end entity;architecture bhv of miaobiao issignal fen,miao,xmiao:integer range 0 to 99;signal start:std_logic:='0';signal reset:std_logic:='0';beginprocess(clk_100,jian5,jian4,moshi,reset,start)beginif moshi=2 thenif reset='1' thenfen<=0;miao<=0;xmiao<=0;elsif start='1' thenelsif clk_100'event and clk_100='1' thenif xmiao=99 thenxmiao<=0;miao<=miao+1;elsif miao>59 thenmiao<=0;fen<=fen+1;elsif fen>23 thenfen<=0;else xmiao<=xmiao+1;end if;end if;end if;end process;process(jian4,start)beginif jian4'event and jian4='1' thenstart<=not start;else start<=start;end if;end process;process(jian5,reset)beginif jian5'event and jian5='1' thenreset<=not reset;else reset<= reset;end if;end process;xmiaoge<=xmiao rem 10;xmiaoshi<=xmiao/10;miaoge<=miao rem 10;miaoshi<=miao/10;fenge<=fen rem 10;fenshi<=fen/10;end;6、library ieee; --设置闹钟时间use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity naozhongset isport(moshi:in integer range 0 to 4;jian4,jian5:in std_logic;shishi,shige,fenshi,fenge,miaoshi,miaoge:out integer range 0 to 9); end entity;architecture bav of naozhongset issignal a:integer range 0 to 5;signal fenshi1,fenge1,miaoge1: integer range 0 to 9;signal shishi1: integer range 0 to 9:=1;signal shige1: integer range 0 to 9:=2;signal miaoshi1: integer range 0 to 9:=0;beginprocess(moshi,jian4)beginif moshi=3 thenif jian4'event and jian4='1' thenif a < 5 thena<=a+1;else a<=0;end if;end if;end if;end process;process(moshi,a,jian5)beginif moshi=3 thenif a=0 thenif jian5'event and jian5='1' thenif miaoge1 =9 thenmiaoge1<=0;else miaoge1<=miaoge1+1;end if;end if;end if;if a=1 thenif jian5'event and jian5='1' thenif miaoshi1 =5 thenmiaoshi1<=0;else miaoshi1<=miaoshi1+1;end if;end if;end if;if a=2 thenif jian5'event and jian5='1' thenif fenge1 =9 thenfenge1<=0;else fenge1<=fenge1+1;end if;end if;end if;if a=3 thenif jian5'event and jian5='1' thenif fenshi1 =5 thenfenshi1<=0;else fenshi1<=fenshi1+1;end if;end if;end if;if a=4 thenif jian5'event and jian5='1' thenif shige1 =9 thenshige1<=0;else shige1<=shige1+1;end if;end if;end if;if a=5 thenif jian5'event and jian5='1' thenif shishi1 =2 thenshishi1<=0;else shishi1<=shishi1+1;end if;end if;end if;end if;end process;miaoge<=miaoge1;miaoshi<=miaoshi1;fenge<=fenge1;fenshi<=fenshi1;shige<=shige1;shishi<=shishi1;end;7、library ieee; --闹钟喇叭输出use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity naozhongspeaker isport(clk_100:in std_logic;shishi1,shige1,fenshi1,fenge1,miaoshi1,miaoge1:in integer range 0 to 9; shishi2,shige2,fenshi2,fenge2,miaoshi2,miaoge2:in integer range 0 to 9; speaker:out std_logic);end entity;architecture bav of naozhongspeaker isbeginprocess(clk_100,shishi1,shige1,fenshi1,fenge1,miaoshi1,miaoge1,shishi2,shige2,fenshi2,fenge2,miaoshi2,miaoge2)beginif shishi2=shishi1 and shige2=shige1 and fenshi2=fenshi1 andfenge2=fenge1 and miaoshi2=miaoshi1 thenspeaker<=clk_100;else speaker<='1';end if;end process;end;8、library ieee; --转换模式use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity moshi isport(jian7:in std_logic;moshi:out integer range 0 to 4);end;architecture one of moshi issignal moshis:integer range 0 to 4;beginprocess(jian7)beginif jian7'event and jian7='1' thenif moshis=4 thenmoshis<=0;else moshis<=moshis+1;end if;end if;end process;moshi<=moshis;end;9、library ieee; --五选一选择器use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mux5_1 isport(moshi:in integer range 0 to 4 ;shishi1,shige1,fenshi1,fenge1,miaoshi1,miaoge1:in integer range 0 to 9;shishi2,shige2,fenshi2,fenge2,miaoshi2,miaoge2:in integer range 0 to 9;shishi3,shige3,fenshi3,fenge3,miaoshi3,miaoge3:in integer range 0 to 9; fenshi,fenge,miaoshi,miaoge,xmiaoshi,xmiaoge:in integer range 0 to 9;a0,a1,a3,a4,a6,a7:out integer range 0 to 9);end entity mux5_1;architecture bhv of mux5_1 isbeginprocess(shishi1,shige1,fenshi1,fenge1,miaoshi1,miaoge1,shishi2,shige2,fenshi2,fenge2,miaoshi2,miaoge2,shishi3,shige3,fenshi3,fenge3,miaoshi3,miaoge3,fenshi,fenge,miaoshi,miaoge,xmiaoshi,xmiaoge,moshi)begincase moshi iswhen 0 =>a0<=shishi1;a1<=shige1;a3<=fenshi1;a4<=fenge1;a6<=miaoshi1;a7<=miaoge1;when 1 =>a0<=shishi2;a1<=shige2;a3<=fenshi2;a4<=fenge2;a6<=miaoshi2;a7<=miaoge2;when 2 =>a0<=fenshi;a1<=fenge;a3<=miaoshi;a4<=miaoge;a6<=xmiaoshi;a7<=xmiaoge;when 3 =>a0<=shishi3;a1<=shige3;a3<=fenshi3;a4<=fenge3;a6<=miaoshi3;a7<=miaoge3;when 4 => a0<=8;a1<=8;a3<=8;a4<=8;a6<=8;a7<=8;end case;end process;end;10、library ieee; --主程序置顶use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock isport(clk_10M:in std_logic;jian5,jian4,jian7,jian8:in std_logic;sg:out std_logic_vector(6 downto 0);bt:out std_logic_vector(7 downto 0);speaker:out std_logic);end entity;调用声明语句architecture bav of clock iscomponent fenpin --分频port (clk_10M : in std_logic;clk_10000 : out std_logic;clk_100 : out std_logic;clk_1 : out std_logic);end component;component paobiao --跑表port(clk_1:in std_logic;jian8:in std_logic;shishi1,shige1,fenshi1,fenge1,miaoshi1,miaoge1:in integer range 0 to 9; shishi2,shige2,fenshi2,fenge2,miaoshi2,miaoge2:out integer range 0 to 9);end component;component xianshi --扫描显示port(clk_10000:in std_logic;jian4:in std_logic;moshi:in integer range 0 to 4;a0,a1,a3,a4,a6,a7:in integer range 0 to 9;sg11:out std_logic_vector(6 downto 0);bt11:out std_logic_vector(7 downto 0));end component;component moshi --模式转换port(jian7:in std_logic;moshi:out integer range 0 to 4);end component;component mux5_1 --五选一选择器port(moshi:in integer range 0 to 4 ;shishi1,shige1,fenshi1,fenge1,miaoshi1,miaoge1:in integer range 0 to 9;shishi2,shige2,fenshi2,fenge2,miaoshi2,miaoge2:in integer range 0 to 9;shishi3,shige3,fenshi3,fenge3,miaoshi3,miaoge3:in integer range 0 to 9;fenshi,fenge,miaoshi,miaoge,xmiaoshi,xmiaoge:in integer range 0 to 9;a0,a1,a3,a4,a6,a7:out integer range 0 to 9);end component;component settime --设置当前时间port(moshi:in integer range 0 to 4;jian4,jian5:in std_logic;shishi,shige,fenshi,fenge,miaoshi,miaoge:out integer range 0 to 9);end component;component miaobiao is --秒表port(clk_100:in std_logic;moshi:in integer range 0 to 4;jian5,jian4:in std_logic;fenshi,fenge,miaoshi,miaoge,xmiaoshi,xmiaoge:out integer range 0 to 9);end component;component naozhongset is --闹钟时间设置port(moshi:in integer range 0 to 4;jian4,jian5:in std_logic;shishi,shige,fenshi,fenge,miaoshi,miaoge:out integer range 0 to 9);end component;component naozhongspeaker is --闹钟喇叭输出port(clk_100:in std_logic;shishi1,shige1,fenshi1,fenge1,miaoshi1,miaoge1:in integer range 0 to 9;shishi2,shige2,fenshi2,fenge2,miaoshi2,miaoge2:in integer range 0 to 9;speaker:out std_logic);end component;signal moshis:integer range 0 to 4; --信号声明signal shishi1s,shige1s,fenshi1s,fenge1s,miaoshi1s,miaoge1s:integer range 0 to 9;signal shishi2s,shige2s,fenshi2s,fenge2s,miaoshi2s,miaoge2s:integer range 0 to 9;signal shishi3s,shige3s,fenshi3s,fenge3s,miaoshi3s,miaoge3s:integer range 0 to 9;signal fenshis,fenges,miaoshis,miaoges,xmiaoshis,xmiaoges: integer range 0 to 9;signal a0s,a1s,a3s,a4s,a6s,a7s: integer range 0 to 9;signal clk_10000s,clk_100s, clk_1s: std_logic;begin --元件例化u1:paobiao port map(clk_1=>clk_1s,jian8=>jian8,shishi1=>shishi2s,shige1=>shige2s,fenshi1=>fenshi2s,fenge1=>fenge2s,miaoshi 1=>miaoshi2s,miaoge1=>miaoge2s,shishi2=>shishi1s,shige2=>shige1s,fenshi2=>fenshi1s,fenge2=>fenge1s,miaoshi2=>m iaoshi1s,miaoge2=>miaoge1s);u2:xianshi port map(clk_10000=>clk_10000s,jian4=>jian4,moshi=>moshis,a0=>a0s,a1=>a1s,a3=>a3s,a4=>a4s,a6=>a6s,a7=>a7s,sg11=>sg,bt11=>bt);u3:settime port map(moshi=>moshis,jian5=>jian5,jian4=>jian4,shishi=>shishi2s,shige=>shige2s,fenshi=>fenshi2s,fenge=>fenge2s,miaoshi=>miaosh i2s,miaoge=>miaoge2s);u4:moshi port map(jian7=>jian7,moshi=>moshis);u5:mux5_1 port map(moshi=>moshis,shishi1=>shishi1s,shige1=>shige1s,fenshi1=>fenshi1s,fenge1=>fenge1s,miaoshi1=>m iaoshi1s,miaoge1=>miaoge1s,shishi2=>shishi2s,shige2=>shige2s,fenshi2=>fenshi2s,fenge2=>fenge2s,miaoshi2=>m iaoshi2s,miaoge2=>miaoge2s,shishi3=>shishi3s,shige3=>shige3s,fenshi3=>fenshi3s,fenge3=>fenge3s,miaoshi3=>m iaoshi3s,miaoge3=>miaoge3s,fenshi=>fenshis,fenge=>fenges,miaoshi=>miaoshis,miaoge=>miaoges,xmiaoshi=>x miaoshis,xmiaoge=>xmiaoges,a0=>a0s,a1=>a1s,a3=>a3s,a4=>a4s,a6=>a6s,a7=>a7s);u6:miaobiao port map(clk_100=>clk_100s,moshi=>moshis,jian5=>jian5,jian4=>jian4,fenshi=>fenshis,fenge=>fenges,miaoshi=>miaoshis,miaoge=>miaoges,xmiaoshi=>xmiao shis,xmiaoge=>xmiaoges);u7:fenpin port map(clk_10M=>clk_10m,clk_10000=>clk_10000s,clk_100=>clk_100s,clk_1 =>clk_1s);u8:naozhongset port map(moshi=>moshis,jian5=>jian5,jian4=>jian4,shishi=>shishi3s,shige=>shige3s,fenshi=>fenshi3s,fenge=>fenge3s,miaoshi=>mi aoshi3s,miaoge=>miaoge3s);u9:naozhongspeaker port map(clk_100=>clk_100s,speaker=>speaker,shishi1=>shishi3s,shige1=>shige3s,fenshi1=>fenshi3s,fenge1=>fenge3s,miaoshi1=>m iaoshi3s,miaoge1=>miaoge3s,shishi2=>shishi1s,shige2=>shige1s,fenshi2=>fenshi1s,fenge2=>fenge1s,miaoshi2=>m iaoshi1s,miaoge2=>miaoge1s);end;。

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

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

数字闹钟设计报告目录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进制的, 并发出驱动信号。

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

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

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

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

电工大作业-数字电子钟的设计

电工大作业-数字电子钟的设计

一、设计要求设计一个电子时钟,并使它具有自动运行的功能。

要求:1、用数码管显示:小时、分、秒。

24小时制或12小时制均可。

2、应用所学知识,产生1s的时钟信号,然后经过进位计数器,最后经过数码管示。

3、对使用何种电子元件及数量无要求。

二、设计思路电子时钟主要为秒信号发生器,计数部分和显示部分组成,用石英晶体震荡构成秒信号发生器,将信号输入计数部分,然后显示。

1、时钟信号:用555计时器和74LS161计数器实现1Hz的方波信号2、进位计数:用74LS90实现60,60,24进制,即实现时钟的计时3、显示设置:用数码管接74LS90实现时间的显示三、电子元件1、七段显示器6个2、计数器(74LS161)4个3、计数器(74LS90)6个4、与非门(74LS00)2个5、反相器(74LS04)2个5、石英晶体1个6、电阻、电容、导线等四、流程设计1、信号发生部分石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整、它是电子时钟的核心,用它产生标准频率信号,在由分频器分成秒时间脉冲。

下图为用反向器与石英晶体构成的振荡电路:(反向器与石英晶体构成的振荡电路)石英晶体振荡器选用32768Hz的石英晶体,发生的信号不符合要求,但通过分频,课产生1Hz的秒信号。

因为32768÷16÷16÷16÷8=1,所以用3个16分频和1个8分频就可以使信号达到要求。

用4个16进制计数器74LS161组成分频电路,与晶振部分共同组成信号发生部分。

如下图:(1Hz信号发生器)2、计数部分和显示部分整个计数器电路由秒计数器、分计数器、时计数器串接而成。

计数器之间采用并行接法,将进位输出信号接到置数端实现清零功能。

秒计数器和分计数器各自由一个十进制计数器和一个六进制计数器组成,形成两个六十进制计数器。

时计数器为两个十进制计数器接成的二十四计数器。

(本部分全部用74LS90计数器实现)秒计数器的设计:秒位60进制计数及显示电路四输入的数码管(显示作用)60秒后给分位的时钟信号信号发生器产生的1Hz信号分计数器的设计:分位60进制计数及显示电路四输入的数码管(显示作用)60分后给小时位的时钟信号从秒计数器来的时钟信号小时位采用24小时计时制设计过程:采用芯片为74LS90的2-10进制计数器,数量为两片。

电子时钟的设计

电子时钟的设计

电子钟的设计1.序言1.1系统开发背景随着电子科技的不断发展,传统的时钟已被一些高档的电子时钟所取代,与传统的时钟相比,电子时钟融合了挂历和时钟的优点,能昼夜清晰显示,集年、月、日、时、分、秒、日期、农历、气温于一体,外观新颖,造型别具一格。

除此之外由于挂历以及一些传统电子表的制作成本相对较高,其销售价格也大多在15——30元之间,而一个电子时钟的价格也在这之间,但是挂历只能用一年,传统电子表又不能显示年、月、日,而电子时钟则不一样,由于它可以自动识别闰年、公历、农历、大小月份、农历,星期能自动对应公历无须调整。

对若干年前后的日期都可以查询,但考虑到其寿命原因,至少也可用5—8年。

在价格相差不大的情况下,电子时钟的性价比显然要高的多,就其阅读功能而言,电子时钟阅读起来更加方便,同时他还有闹铃和显示温度的功能,这比传统的挂历以及电子表要强大的多。

其实现的方法也很简单,用一个单片机和数个数码管就可以实现,由此可见,电子时钟的市场经济开发价值要比挂历以及电子表要高的多,电子时钟取代传统的挂历以及传统电子表已成为不可抵挡的趋势。

因此开发一个电子时钟就必须要了解单片机和数码管的原理和功能等,下面一节我们将简单介绍一下单片机和数码管。

1.2 系统开发工具介绍与安装1.2.1 PIC系列单片机开发工具MPLAB的组成MPLAB是一个集成了多种单片机应用开发工具软件于一体的、功能完备的软件包,是PIC单片机编程开发的重要工具。

在此仅对其中的5种工具软件简要介绍如下:⑴ Project Manager(工程项目管理器)工程项目管理器是MPLAB的核心部分,用于创建和管理工程项目,为开发人员提供自动化程度高、操作简便的符号化(屏幕上的指令、指令地址、常数、变量、寄存器等均用表义性和可读性很强的符号代表和标识)调试工作平台。

⑵ MPLAB Editor(源程序编辑器)源程序编辑器是一个全屏幕文本编辑器,用于创建和修改汇编语言源程序文件。

51单片机电子时钟设计

51单片机电子时钟设计

51单片机电子时钟设计电子时钟是一种非常实用的电子设备,它可以准确地显示时间,并拥有一系列的功能,如闹钟、日历等。

使用51单片机设计电子时钟,可以实现这些功能,同时还能够进行功能扩展,更好地满足用户需求。

首先,我们需要硬件上的准备工作。

51单片机需要与时钟(晶振)和显示器(LCD模块)进行连接。

晶振是提供单片机时钟脉冲的源头,LCD模块用于显示时间和各种功能。

同时,在电路中还需要进行一些扩展,如实时时钟模块(RTC模块)、按键模块等。

在软件设计方面,主要需要考虑以下几个方面:1.时钟脉冲:通过配置晶振的频率,可以生成单片机所需的时钟脉冲。

这个脉冲控制了单片机的运行速度,从而影响到时钟的准确性。

需要根据晶振频率进行相关配置。

2.时间的获取和计算:通过RTC模块可以获取当前的时钟数据(包括年、月、日、时、分、秒)。

在程序中,需要通过相应的接口获取这些数据,并进行计算。

比如,在显示时钟的时候,可以通过获取秒数、分钟数和小时数,并将其转换为相应的字符串进行显示。

3.菜单和按键功能:为了实现更多的功能,我们可以通过按键来实现菜单切换和功能选择。

在程序中,需要对按键进行扫描,判断按键的状态,然后进行相应的操作。

比如,按下菜单键可以进入菜单界面,通过上下键选择不同的功能,再通过确定键进行确认。

4.闹钟功能:闹钟功能是电子时钟中常见的功能之一、通过设置闹钟时间,并进行闹钟的开启或关闭,可以在指定的时间点触发相应的报警动作。

在程序中,需要编写逻辑判断闹钟是否到达指定的时间,然后触发报警。

5.日历功能:除了显示时间,电子时钟还可以显示当前的日期,包括年、月、日。

在程序中,需要编写相关的逻辑来获取日期数据,并进行显示。

通过以上的步骤,我们可以基本实现一个简单的电子时钟功能。

当然,根据用户的需求,还可以进行更多的功能扩展,比如添加温湿度监测、自动调光等功能。

总结起来,51单片机电子时钟的设计主要包括硬件和软件两个方面。

数字电子钟设计报告,完整版

数字电子钟设计报告,完整版

一、任务技术指标设计一个数字电子钟(1)能显示小时、分钟和秒;(2)能进行24小时和12小时转换;(3)具有小时和分钟的校时功能。

二、总体设计思想1.基本原理该数字钟由振荡器、分频器、计数器、译码器、显示器和校时电路等六部分组成。

振荡器产生的钟标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。

秒信号送入计数器进行计数,计数到60秒后向分进位,同理计数到60分后向小时进位,并将计数的结果以BCD-七段显示译码器显示出来。

计数选用十进制计数器74LS760D,校时电路通过选通开关对“时”和“分”进行校时。

二十四小时和十二小时的转换也可以用开关进行选择。

2.系统框图如图1:振荡器产生的钟标信号送到分频器,分频电路将时标信号送至计数器。

计数器通过译码显示把累计的结果以“时”、“分”、“秒”的数字显示出来。

整个过程中可选择用校时电路进行校时。

图1 系统框图三、具体设计1.总体设计电路该数字钟由振荡器、分频器、计数器、显示器和校时电路组成。

振荡器产生的钟标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。

秒信号送入计数器进行计数,计数到60秒后向分进位,同理分计数器计数到60分后向小时进位,并将计数的结果以BCD-七段显示译码器显示出来。

计数选用十进制计数器74LS760D,校时电路通过选通开关对“时”和“分”进行校时。

二十四小时和十二小时的转换可以用开关进行选择。

图2 总体电路图2.模块设计(1)振荡器的设计振荡器是数字钟的核心。

振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,通常选用石英晶体构成振荡器电路。

石英晶体振荡器的作用是产生时间标准信号。

因此,一般采用石英晶体振荡器经过分频得到这一时间脉冲信号。

电路中采用的是将石英晶体与对称式多谐振荡器中的耦合电容串联起来,就组成了如图3所示石英晶体多谐振荡器。

图3振荡器电路图和仿真波形图(2)分频器的设计对于分频器的设计选定74LS90集成芯片。

电子时钟设计报告

电子时钟设计报告

电子时钟设计报告电子时钟是一款具有非常广泛应用的时钟,它通过电子元器件来实现时间的显示和调节。

随着电子技术的不断发展,人们对电子时钟的要求也越来越高,如何设计一款性能稳定、视觉效果好的电子时钟成为了设计者们的一个重要任务。

本文将着重探讨电子时钟的设计报告,包括设计原理、电路图、主要组成部分、工艺流程等方面内容,以帮助设计者更好地理解电子时钟的设计方法与原理。

一、设计原理电子时钟的工作原理是将系统时钟的时分秒等信息经过处理(包括计数、译码、调制等过程)后,驱动数码管、发声器等输出设备进行显示或报警。

其设计的核心是时钟IC,一般使用时钟芯片作为时钟电路的核心,将各个元器件关联起来,形成一个完整的电路。

二、电路图电子时钟的电路图包含了时钟IC、晶振、电源、数码管、发声器等主要组成部分。

其中,晶振对于时钟的稳定性非常重要,它能提供高精度的振荡波形,保证整个时钟系统的稳定性和准确性;数码管是时钟的显示部分,负责将数字表示在数码管上;发声器用于报时提醒。

下图是一个示例电路图:三、主要组成部分1、时钟IC:它是电子时钟的核心部分,负责处理和计数时间信号,然后把时间信号转换成对应的数字信号,驱动数码管。

2、晶振:它提供了高精度的振荡波形,保证整个时钟系统的稳定性和准确性。

3、电源:它负责为整个时钟系统提供电能,是整个电路的动力来源。

4、数码管:它是时钟的显示部分,负责将时间数字显示在数码管上,提供时分秒等不同的显示格式。

5、发声器:它用于报时提醒,将报时信号转换成声音输出。

四、工艺流程电子时钟的工艺流程包含了设计、PCB 布局、元器件采购、组装及测试等环节。

其中,设计和PCB 布局是电子时钟工艺流程的核心环节。

1、设计:根据用户需求,确定电子时钟的功能和使用场景,然后选择适合的电路图,搭建电路图,并进行仿真调试。

这一阶段要尽可能地避免因为电路选择不当、元器件不匹配等问题导致的功能失效或提前故障。

2、PCB 布局:将电子时钟的各个元器件布置在PCB 上,合理布局,缩短信号通路,提高性能稳定性。

设计制作电子时钟

设计制作电子时钟

设计制作简易数字钟一、设计要求1、设计一振荡源,用于产生1Hz的脉冲信号;2、能完成从00时00分00秒到23时59分59秒走时,并实时显示时、分、秒;3、具有手动校时、校分、校秒功能。

发挥部分:具有正点报时功能。

要求在59分58秒开始报时,持续5秒钟。

二、总体设计方案1、方案选择数字钟实际上是由一个对标准频率(1HZ)进行计数的计数电路为主要部分构成的。

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

通常使用石英晶体振荡器电路来构成数字钟的标准时间基准信号。

数字钟的组成框图如下图所示。

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

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

设计中采用状态机控制校时,通过切换开关用秒脉冲或手动按键产生脉冲先后对“时”“分”“秒”计数器进行校时操作。

2、数字钟的构成(1)数字钟的构成:振荡器、分频器、计数器、译码器、LED数码管显示器等几部分。

附加功能的实现还需采用T’触发器及与门和或门及蜂鸣器组成报时电路。

(2)数字钟的时、分、秒实际上就是由一个24进制计数器(00-23),两个60进制计数器(00-59)级联构成。

设计数字钟实际上就是计数器的级联。

(3)芯片选型:由于24进制、60进制计数器均由集成计数器级联构成,且都包含有基本的十进制计数器,从设计简便考虑,芯片选择十进制计数器74LS390。

3、元器件列表:型号74LS00、74LS04、74LS08、74LS21、74LS32、74LS47、74LS74、74LS86、74LS390、CD4068、CD4060、CD4511。

晶体管8050、510欧姆电阻、LED、轻触开关、自锁开关、蜂鸣器、10p电容、晶振32768、10M电阻。

三、系统工作原理1、主计数部分原理图图1主计数部分原理图如图所示,用两个十进制计数器74LS390组成60进制计数器和24进制计数器,分别用于对分、秒和时的计数。

电子时钟设计(完美实现最终版)要点

电子时钟设计(完美实现最终版)要点

电子时钟设计(完美实现最终版)要点————————————————————————————————作者:————————————————————————————————日期:电子时钟实验报告一,实验目的1. 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。

2. 设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟二,实验要求A.基本要求:1. 在4位数码管上显示当前时间。

显示格式“时时分分”2. 由LED闪动做秒显示。

3. 利用按键可对时间及闹玲进行设置,并可显示闹玲时间。

当闹铃时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。

4.实现秒表功能(百分之一秒显示)B.扩展部分:1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)2.音乐闹铃(铃音可选择,闹铃被停止后,闪烁显示当前时刻8秒后,或按键跳入正常时间显示状态)3.定时功能(设定一段时间长度,定时到后,闪烁提示)4.倒计时功能(设定一段时间长度,能实现倒计时显示,时间长减到0时,闪烁提示)5.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)三,实验基本原理利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。

为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。

由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。

四,实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。

多功能电子时钟设计

多功能电子时钟设计

多功能电子时钟设计一、简介现代的电子时钟不仅仅具有显示时间的功能,还可以提供其他实用的功能,如闹钟、日历、温度显示等。

这种多功能电子时钟不仅在家庭中有广泛的应用,还在办公室、学校等场所发挥着重要的作用。

本文将设计一款具有多种功能的电子时钟。

二、主要功能1.时间显示:显示当前的小时、分钟和秒数。

2.闹钟功能:可以设置闹钟时间,并在设定的时间发出提示音。

3.日历功能:可以显示当前的日期和星期。

4.室内温度显示:可以测量当前的室内温度,并显示在屏幕上。

5.亮度调节:可以根据环境的光照情况调节屏幕的亮度。

6.背光功能:可以通过按钮控制屏幕的背光开关。

7.电池电量显示:可以显示当前电池的电量。

三、设计方案1.硬件设计(1)显示屏:选择一个大于7英寸的彩色液晶显示屏,用于显示时间、日期、温度等信息。

(2)CPU:选择一颗具有较快速度和较大内存的控制芯片,以确保系统的稳定运行。

(3)温度传感器:选择一个高精度的温度传感器,并将其与CPU连接,以实时获取室内温度。

(4)电池:选择一个高容量的可充电电池,以确保长时间使用时的续航能力。

(5)背光灯:选择一个高亮度且耗电量低的LED灯作为背光源。

(6)按钮:选择几个按钮用于调节时间、设置闹钟等操作。

2.软件设计(1)显示模块:设计一个显示模块,负责显示时间、日期、温度等信息。

(2)闹钟模块:设计一个闹钟模块,负责设置和触发闹钟。

(3)日历模块:设计一个日历模块,负责显示当前的日期和星期。

(4)温度模块:设计一个温度模块,负责测量并显示室内温度。

(5)亮度调节模块:设计一个亮度调节模块,负责根据环境光照情况调节屏幕的亮度。

(6)背光模块:设计一个背光模块,负责控制背光灯的开关。

(7)电池电量模块:设计一个电池电量模块,负责显示当前电池的电量。

四、功能实现1.时间的显示可以通过CPU和显示模块的协作实现,CPU读取当前的时间,并将其发送给显示模块,显示模块将时间显示在屏幕上。

电子钟的设计

电子钟的设计

电子钟的设计随着科技的不断进步,电子钟已经成为现代家居中一个不可或缺的存在。

它们可以跟随地球的自转精确地测量时间,并在我们生活中发挥着重要的作用。

设计一个高效准确的电子钟需要考虑许多因素,本文将详细介绍电子钟的设计。

1. 液晶显示屏液晶显示屏是电子钟的一个重要组件。

它可以显示时间、温度、湿度等多种信息。

对于设计一个高效准确的电子钟,液晶显示屏的选择是非常重要的。

液晶显示屏的质量直接影响到电子钟的观感和使用效果。

一般来说,越好的液晶显示屏需要消耗更多的能量,所以在设计电子钟时需要权衡好效能和节能。

2. 晶振晶振是测量时间的重要器件。

它能够以极高的精度产生稳定的信号,用来同步设计中实际时间的计算。

晶振的选择也会直接影响到电子钟的准确度。

随着科技的不断进步,现代化的石英振荡器已被广泛应用,这种器件工作稳定,精度高,且可靠性强。

3. 控制器为了达到更好的稳定性和准确度,大多数电子钟的设计都是通过微控制器来执行操作的。

微控制器可以通过内部程序保持稳定并准确地执行指令。

在电子钟中,微控制器可以控制和监测时间、日期、闹钟、温度等参数。

常见的控制器包括基于ARM,PIC,AVR等芯片的控制器。

4. 续航当我们谈到电子钟的使用寿命时,续航是一个非常重要的问题。

一般来说,电子钟都是使用电池供电。

到目前为止,锂电池已经成为普遍使用的电池类型。

对于设计电子钟来说,需要在保持高效准确度的同时,考虑到电池的寿命。

一些设计公司提供了一些方便的功能,比如低功耗模式、太阳能等,能够最大程度地延长电子钟的使用寿命。

5. 外观美观设计一个好看的电子钟同样非常重要。

它不能仅仅功能强大,同时观感要出色。

外观上的设计可以包括颜色、造型、功能按钮等方面。

对于现代家居而言,简约大方的设计风格是比较流行的,同时还可以通过配色与装饰品等方面进一步丰富元素。

综上所述,电子钟的设计是一个非常繁琐的过程,需要仔细考虑到各个方面的因素。

准确、续航、美观、易操作等必须同时处理,以确保最终产品兼具美观与实用性。

电子时钟设计

电子时钟设计

电子时钟设计电子时钟是一种现代化的时钟,它不仅仅能显示时间,还能够精确地保持时间,并具有多种功能。

电子时钟设计需要考虑的许多因素,例如时钟的精度、功能、成本和外观等。

在电子时钟的设计过程中,最重要的考虑因素之一就是计时精度。

电子时钟需要采用高精度的计时器,以确保时钟的准确性。

这种计时器通常是基于定时晶振的。

定时晶振的频率非常稳定,可以作为时钟的参考基准。

在时钟电路中,定时晶振所产生的脉冲会被计数器所计数,在数字显示部分显示出时钟的具体时间。

电子时钟的功能也是设计时需要考虑的一个重要因素。

现代电子时钟不仅可以显示时间,还可以提供其他信息,如温度、湿度、日期、天气等。

这些额外的功能通常需要额外的传感器和处理器来检测和解析。

设计师需要考虑这些功能对电路设计的影响,如多余的接口和额外的芯片成本等。

除了以上两个因素,电子时钟的成本也是设计者必须考虑的一个重要因素。

电子时钟由多个部件组成,包括显示器、计时器、控制器、按钮和外壳等。

每个零部件的成本都会对总成本产生影响。

设计者需要权衡功能和价格之间的关系,以确保最终产品符合市场需求。

最后,外观也是电子时钟设计中一个重要的因素。

外壳设计不仅要符合功能性需求,还要考虑到外观的吸引力。

时钟外壳的材料和颜色也是设计中需要考虑的因素。

外观的设计可以对产品的销售产生积极影响,因此,设计者需要花费时间和精力来制定合适的产品外观设计。

总之,电子时钟的设计需要综合考虑多个因素,包括时钟的计时精度、功能、成本和外观等。

设计者必须权衡这些因素之间的关系,以确保最终产品符合市场需求和消费者的要求。

电子时钟已经成为现代生活中必不可少的物品之一,因此,对于设计者来说,电子时钟的设计将继续是一个长期而重要的挑战。

电子数字时钟课程设计报告(完整实物图+原理图+web图)

电子数字时钟课程设计报告(完整实物图+原理图+web图)

数字电子钟的设计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 振荡电路多谐振荡器也称无稳态触发器,它没有稳定状态,同时无需外加触发脉冲,就能输出一定频率的矩形波形(自激振荡)。

用555实现多谐振荡,需要R1,R2和电容,并接+5V的直流电源。

电子钟的设计

电子钟的设计

电子钟的设计随着科技的不断发展,电子产品逐渐走进人们的生活中,并展示出越来越强大和便捷的功能。

其中,电子钟是不可或缺的一款智能产品,为人们提供了高精度、易操作和多样化的时间显示方式,是现代生活中必不可少的物品。

那么,电子钟的设计又是怎样的呢?一、设计概述电子钟是一种通过电力或者电池等电源来驱动,用于测量时间以及显示时间的时间测量仪器。

传统的机械式时钟需要由机械部件驱动,但电子钟是用电子技术完成时间的测量和显示。

电子钟的制作需要具备电子电路设计、软件开发、结构设计等技术,这些方面的设计都需要有很高的要求。

二、电路设计电路设计是电子钟设计中最为基础且重要的一环。

电子钟采用的电路种类基本上可以分为数字式和模拟式两种。

数字电路的主要优势在于操作速度快,复杂电路数量少,且不容易受到环境的影响。

而模拟电路则具有更加高的精确度以及更为细腻的显示效果。

不同的电路在使用上各有特点,需要根据实际使用需求进行选择。

三、软件开发电子钟的软件开发也是电子钟设计中的一部分。

目前,市场上电子钟的软件多采用C语言或汇编语言进行编写。

软件可以控制数据的处理和传输以及系统内各种信号和辅助电路的控制,从而保证电子钟科学、高效的运行和显示。

四、结构设计结构设计是电子钟设计的最后一步,主要关注电子钟的外观形态、材料适配以及稳固性等问题。

电子钟的产品外形可以根据不同的需求进行设计。

还可以将电子钟嵌入机器、设备中,或是做成便携式的手持式设备。

五、电子钟常见设计要素1.时间表示精度: 电子钟精度一般都是正负数秒,集成电路的精度则比较高。

2.时钟显示器: 显示器有LED、LCD、Touch Screen 等多种,显示效果好的一般会使用带背光的LED显示屏。

3.电源: 电子钟多采用交直流混合供电方式,也可以使用充电电池。

4.实时钟: 用来保证电子钟时间的准确度。

5.控制电路: 主要由CPU芯片、ROM、RAM、接口芯片等构成。

六、总结电子钟设计是电子工程师的必修课,是一个精密度和专业度均很高的课题。

电子时钟方案

电子时钟方案

电子时钟方案随着科技的发展,电子时钟成为了我们生活中必不可少的物品之一。

它不仅能精确地显示时间,还具备了实时数据显示、闹钟提醒等功能。

在本文中,将介绍一个基于微控制器的电子时钟方案,包括硬件设计和软件编程。

一、硬件设计1.主控芯片选择为了实现电子时钟的各种功能,我们选择了一款功能强大的微控制器作为主控芯片。

这款微控制器具备高性能、低功耗以及丰富的外设,能够满足时钟的各种需求。

2.显示模块设计电子时钟的核心部分是显示模块,我们选择了数码管作为显示器件。

数码管能够清晰地显示数字,而且功耗较低。

通过控制微控制器的输出口,我们可以实现对数码管的控制。

3.时钟电路设计为了保证电子时钟的精确性,我们需要设计一个稳定的时钟电路。

通常可以通过晶体振荡器和相关电路来实现。

通过对晶体振荡的分频,我们可以得到准确的时钟信号。

二、软件编程1.时钟显示功能编程的第一步是实现时钟的显示功能。

通过读取系统时钟信号,我们可以获取当前的时间,并将其转换为数字形式显示在数码管上。

同时,我们还需要编写代码来更新时钟的显示,以实现秒、分、时的无限循环。

2.实时数据显示功能除了时间的显示,电子时钟还可以显示其他实时数据。

例如,当前的温度、湿度、气压等信息。

通过连接传感器和采集模块,我们可以获取这些数据,并编写代码将其实时显示在数码管上。

3.闹钟功能电子时钟还具备闹钟提醒的功能。

我们可以设置闹钟时间,并在达到设定时间时触发提醒。

通过编写闹钟功能的代码,我们可以实现响铃、闪烁等提醒方式,以确保用户不会错过重要的事件。

4.按键控制功能为了方便用户的操作,我们可以通过添加按键来实现电子时钟的控制功能。

通过编写按键扫描和中断处理的代码,我们可以实现对时钟的调整、闹钟的设置等操作。

总结:通过对电子时钟方案的硬件设计和软件编程的介绍,我们可以看到电子时钟的制作并不复杂。

通过选择合适的主控芯片和显示模块,以及编写合适的软件代码,我们可以打造出功能强大、稳定可靠的电子时钟。

单片机电子时钟的设计

单片机电子时钟的设计

单片机电子时钟的设计一、设计目标与原理设计原理:1.使用单片机作为主控制器,通过系统时钟控制并计时,从而实现准确的时间显示。

2.利用矩阵键盘作为输入装置,通过按键输入来设置时间、闹钟等参数。

3.通过液晶显示屏显示时间、日期,以及其他相关信息。

4.利用蜂鸣器作为报警器,实现闹钟功能。

二、硬件设计1.单片机选择:选择一款适合的单片机芯片,如8051系列、PIC系列等,具备较强的扩展性和丰富的外设接口。

2.时钟模块:选择一个准确、稳定的时钟模块,如DS1302、DS3231等,可以提供标准的时间信号。

3.矩阵键盘:使用4x4的矩阵键盘,方便操作,实现对时钟的时间设置和闹钟等功能。

4.液晶显示屏:选择适合的液晶显示屏,显示时间、日期以及状态信息。

5.蜂鸣器:使用适当的蜂鸣器实现报警和闹钟功能。

6.电源:提供适当的电源电压和电流,保证设备正常运行。

三、系统架构设计1.硬件连接:将单片机与时钟模块、矩阵键盘、液晶显示屏和蜂鸣器连接起来,保证数据传输的正常进行。

2.时钟控制:通过单片机与时钟模块通信,获取当前的时间信息,并进行计时。

3.键盘输入:通过矩阵键盘检测按键输入,并根据不同的按键操作来实现时间设置、闹钟设置等功能。

4.显示控制:通过单片机控制液晶显示屏,将时间、日期等信息显示出来。

5.报警控制:根据闹钟设置的时间,通过单片机控制蜂鸣器实现报警和闹钟功能。

四、软件设计1.系统初始化:包括各个外设的初始化配置,如时钟模块的初始化、矩阵键盘的初始化等。

2.时钟控制:包括从时钟模块获取当前时间、计时等功能。

3.键盘输入处理:通过检测矩阵键盘的按键输入,实现对时间和闹钟等参数的设置。

4.显示控制:根据当前时间和设置的参数,将相应的信息显示在液晶显示屏上。

5.报警控制:根据闹钟设置的时间,控制蜂鸣器发出声音来实现报警和闹钟功能。

五、系统测试与优化1.硬件测试:对各个硬件模块进行测试,检查其是否正常工作。

2.软件测试:通过对软件功能的逐一测试,检查其是否符合设计要求。

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

电子时钟实验报告一,实验目的1. 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。

2. 设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟二,实验要求A.基本要求:1. 在4位数码管上显示当前时间。

显示格式“时时分分”2. 由LED闪动做秒显示。

3. 利用按键可对时间及闹玲进行设置,并可显示闹玲时间。

当闹铃时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。

4.实现秒表功能(百分之一秒显示)B.扩展部分:1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)2.音乐闹铃(铃音可选择,闹铃被停止后,闪烁显示当前时刻8秒后,或按键跳入正常时间显示状态)3.定时功能(设定一段时间长度,定时到后,闪烁提示)4.倒计时功能(设定一段时间长度,能实现倒计时显示,时间长减到0时,闪烁提示)5.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)三,实验基本原理利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。

为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。

由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。

四,实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。

这样,既能做到经济合理又能实现预期的功能。

在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。

程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。

运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。

首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。

这是前期准备工作。

第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。

第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。

第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。

第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。

第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。

最后进行功能扩展,在已经正确的设计基础上,添加额外的功能!五,实验要求实现A.电路设计1. 整体设计此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用8个共阴数码管分别显示,星期(年份),小时、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。

单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。

电路的总体设计框架如下:2. 分块设计模块电路主要分为:输入部分、输出部分、复位和晶振电路。

2.1 输入部分输入信号主要是各种模式选择和调整信号,由按键开关提供。

以下为输入部分样例:在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。

对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:单片机输入部分晶振和复位输出部分2.2 输出部分本电路的输出信号为7段数码管的位选和段选信号,闹铃脉冲信号,提示灯信号。

本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:闹铃由P2.6端输出,模块如下:2.3 晶振与复位电路本实验单片机时钟用内部时钟,模块如下:复位电路为手动复位构成,模块如下:各模块拼接组合,电路总体设计图如下:B.程序设计B.1 程序总体设计本实验用汇编程序完成.结合电路图,程序设计的整体思路为:接通电源,数码管显示星期数,时,分,秒。

并且走时显示LED灯每隔1秒改变一次明暗,此为正常工作模式。

以下为在该工作方式下模式选择的按键方式:1. 按1键——日期模式。

显示年月日且可调整,调整状态指示灯亮。

日期调整对应键如下:6键——年(千位,百位),按一次该位加15键——年(十位,个位),按一次该位加14键——月,按一次该位加13键——日,按一次该位加10键——调整状态指示灯灭,返回主程序,显示时间2. 按2键——调时模式。

显示时分秒且可调整,调整状态指示灯亮。

时间调整对应键如下:6键——时,按一次该位加15键——分,按一次该位加14键——秒,按一次该位清00键——调整状态指示灯灭,返回主程序,显示时间3. 按3键——闹铃调整模式。

显示闹铃时刻且可调整,调整状态指示灯亮。

闹铃调整对应键如下:5键——时,按一次该位加14键——分,按一次该位加10键——调整状态指示灯灭,返回主程序,显示时间4. 长按4键——定时调整(倒计时)模式。

显示定时长度且可调整,调整状态显示灯亮。

定时调整对应键如下:6键——分,按一次该位加15键——秒,按一次该位加14键——开启定时功能,并显示倒计时0键——调整状态指示灯灭,返回主程序,显示时间5. 按5键铃声测试,扬声器播放音乐。

6. 按下7键,进入秒表模式,显示秒表走时。

拨上7键,秒表暂停;按下7键,秒表又继续走时。

按下8键,秒表清零。

0键——调整状态指示灯灭,返回主程序,显示时间7. 按下8键,数码管熄灭,时钟仍在走时,进入节能模式。

拨上8键,数码管亮,恢复普通工作模式。

8. 9键为闹铃启动(停止)键,按下可以选择是否要闹铃,以及在闹铃响起时,按此键可以停止闹铃。

9. 10键为铃声选择开关,按下与否,可以选择两手音乐。

10. 11键为闹铃重响控制开关,重响功能开启时,从闹铃随音乐结束而结束的时刻开始,或从手动按9键停止闹铃的时刻开始定时,一段时间后闹铃重响。

11. 12键为闹铃重响间隔选择开关,可选两个定时长度,以便在闹铃重响功能开启时,闹铃初次响后,过一段时间闹铃继续响。

B.2 程序主要模块B.2.1 延时模块数码管显示动态扫描时,用到延时程序,这里使用延迟1ms的程序,此程序需要反复调用程序如下:D_1MS:MOV R7,#2D_5:MOV R2,#250DJNZ R2,$DJNZ R7,D_5RET除数码管动态扫描外,数码管的闪烁提示,以及音乐模块也用到了延时,只是延时的长短不同罢了,在此不再赘述。

B.2.2中断服务程序本实验中,计数器T0,T1中断都有运用,其中T0中断为时钟定时所用,T1中断用于音乐播放。

T0的定时长度为0.01s,工作于方式1,计数1次,时长1us,故计数器计数10000次,进入中断,计数初值为65536-10000=55536=#0D8F0,装满定时器需要0.01s的时间,从而100次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。

包括日期显示的功能也是如此。

另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄存器,需要时将其进行显示。

基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0之后,秒赋值为59,分减一,直到分为0。

以下为定时中断流程图:计数器T1工作于方式1,当调用响铃程序时,其计数功能开启,为音乐音调不同频率的方波的形成,提供延时。

其中断服务程序就是根据音调改变音乐方波输出口电平的高低,用语句 CPL实现。

中断服务程序中日历的实现较为复杂,要考虑平年,闰年,特殊的2月,每月的天数的不尽相同。

具体的逻辑判断方法为:首先,要考虑年份是不是闰年,闰年的判断方法是:将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。

只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。

其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。

日历进位判断流程图如下:本实验用8个数码管,刚好能显示年,月,日,扫描显示与时间的扫描显示类似。

年比较特殊,由两个寄存器存储,个位,十位为0时,表明年数能被100整除,若此时千位,百位组成两位数能被4整除,则年数被400整除,为闰年。

若十位,个位组成两位数能被4整除,则年数能被4整除,为闰年。

B.2.3主程序主程序主要对按键进行扫描,以及判断定时和闹铃时间是否已到,若到则调用相关程序,该段程序如下:MAIN:JNB P3.0,DATETZ ;按下0键,显示日期并可对日期进行调整JNB P3.1,ZSTZ1 ;按下1键,显示时间,并可调时JNB P3.2,NLTZZ ;按下2键,进行闹铃设置JNB P3.3,DSTZ ;按下3键,进行定时设置JNB P3.4,CESHI ;闹铃测试JNB P3.6,STOPWATCHTZ ;按下6键,进入秒表方式ACALL DISP ;调用时钟显示子程序JNB P0.6,RERING ;判断是否开启闹铃重响功能RE: JNB P2.7,DSPDKQ ;判断是否开启闹铃功能,没开则去判断定时FMQPD: ;判断定时值R4,R3是否到零、闹铃时刻是否已到MOV A,HOUR;SUBB A,38H;JZ FEN ;判断小时数是否到闹铃所定时间,若到,则对分进行判断;若不到,则对定时进行判断AJMP DSPDKQFEN:MOV A,MINUTE;SUBB A,37H;JZ MIAO ;判断分是否到闹铃所定时间,若到,则对秒进行判断;若不到,则对定时进行判断AJMP DSPDKQMIAO:MOV A,SECONDSUBB A,#0JZ SHENGYIN1 ;判断秒是否到闹铃所定时间,若到,则时,分,秒都到达闹铃时刻,进入响铃子程序;若不到则判断定时AJMP DSPDKQRERING: ;闹铃重响判断程序JNB F0, RE ;标志位F0为0,不进行闹铃重响设定CPL F0MOV 3CH,#1 ;定时判断标志位赋1,定时判断功能开启JNB P0.7,M1 ;闹铃重响间隔时间选取MOV R4,#0 ;闹铃重响间隔30秒MOV R3,#30AJMP MAINM1: ;闹铃重响间隔60秒MOV R4,#1MOV R3,#0AJMP MAINDSPDKQ: ;判断是否应该进行定时判断MOV A,3CH ;3CH是引入的判断因子,当其为0时,不对定时时间是否到0进行判断AJMP MAINDSPD2:MOV A,R4;JZ S_PD ;R4所存定时分数为0,则转而判断R3所存定时秒数AJMP MAIN;S_PD:MOV A,R3;JNZ MAIN ;R4,R3所存参数减为0,定时长度已到JNB P0.6,SHENGYIN2 ;闹铃重响功能开启时,跳入响铃程序AJMP TISHI ;不是闹铃重响定时,则定时时间到时,跳入提示程序AJMP MAINCESHI:ACALL RINGAJMP MAINSHENGYIN1: ;调用响铃子程序LCALL RINGAJMP MAINSHENGYIN2:SETB F0 ;闹铃重响标志位设定LCALL RING ;响铃CLR F0 ;标志位复位AJMP MAINNLTZZ:AJMP NLTZ1 ;跳入闹铃调整程序AJMP DSTZ1 ;跳入定时调整程序DATETZ:AJMP DATETZ1 ;跳入日期调整程序STOPWATCHTZ:AJMP STOPWATCHTZ1 ;跳入秒表程序B.2.4 显示子程序8个数码管轮流进行显示,分别显示1ms,依赖人的视觉暂留效应,给人以数码管持续高亮的错觉。

相关文档
最新文档