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

合集下载

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

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

电子行业智能电子钟设计与制作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、用数码管显示:小时、分、秒。

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进制计数器,数量为两片。

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.时间显示:显示当前的小时、分钟和秒数。

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. 硬件设计2.1 主控芯片选择选择适合的主控芯片是设计电子时钟的关键步骤之一。

主控芯片应具备以下特点: - 高性能:能够稳定运行各种功能,并提供充足的计算能力。

- 低功耗:通过合理地管理能源,延长电子时钟的使用时间。

- 多功能接口:提供与其他外围设备的连接接口,如显示屏、按键、声音输出等。

2.2 显示屏选择电子时钟显示屏通常有液晶显示屏(LCD)和数码管显示屏两种。

液晶显示屏适合显示更复杂的内容,而数码管显示屏则适合显示简单的数字信息。

根据实际需求,选择显示屏材质和类型,并配合主控芯片进行驱动。

2.3 声音输出设计对于具有闹钟功能的电子时钟,声音输出是不可或缺的。

设计时应考虑合适的声音输出模块,并通过主控芯片进行控制。

2.4 电源设计电子时钟通常使用直流电源供电,应根据需要设计适当的电源模块。

考虑到时钟的移动性,推荐使用可充电电池作为备用电源。

3. 软件设计3.1 实时时钟模块实时时钟模块是电子时钟的核心部分,用于记录和维护时间信息。

主控芯片应具备实时时钟功能,并与时钟振荡器配合使用,保证时间精度。

3.2 时间计算与显示主控芯片应具备时间计算功能,计算当前的小时、分钟和秒数,并将其显示在合适的显示屏上。

还应考虑到时区、夏令时等因素,确保时间的准确性。

3.3 闹钟功能设计电子时钟时,闹钟功能往往是不可或缺的一部分。

通过主控芯片和声音输出模块的配合,实现设置闹钟时间、触发闹钟并发出声音的功能。

3.4 其他功能设计根据需求,还可以为电子时钟添加一些其他功能,如定时器、温湿度显示等。

这些功能的实现依赖于主控芯片和适当的外围设备。

4. PCB设计PCB设计是将电子元件固定在电路板上的过程。

在设计电子时钟的PCB布线时,需要合理安排元件的位置,并考虑信号线的布置和分层,以降低噪声和电磁干扰。

简易电子钟的设计与实现.docx

简易电子钟的设计与实现.docx

简易电子钟的设计与仿真一、设计要求和电路原理1.1 设计要求1)可以准确地显示北京时间。

2)时间显示选择24小时模式。

3)选用AT89C52单片机,将编写的程序下载到该单片机中,并能使数码管显示。

4)采用Keil C51编译,Proteus软件进行仿真。

1.2 设计原理与思路利用单片机的定时与中断系统功能实现电子钟的计数和调时。

采用AT89C52定时中断方式实现24小时制时钟精确的计时。

通过外部的12M(11.0529M)Hz 晶振产生稳定的谐振,在AT89C52的内部定时器电路实现定时,当定时器溢出时产生中断,累计定时器的定时时间达一秒时,数码管的秒显示加1,判断数码管的秒显示达60时,秒显示自动清零,分显示加1,判断分显示达60时,分显示自动清零,时显示加1,判断时显示达24时,时显示自动清零。

从而实现00:00:00—23:59:59 之间的任意时刻显示。

为了使时钟能够灵活的对时间进行调整、校对,通过增加外部的按键实现简单的复位、时调整、分调整的功能。

形成一个具有复位和校时功能的简易电子时钟。

二、电子时钟设计方案2.1电子钟设计的基本方法2.1.1电子钟实现计时的方法利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计时。

(1) 计数初值计算:把定时器T0设为工作方式2,产生0.25ms定时中断,计数溢出4000次即得时钟计时最小单位秒,而4000次计数可用软件方法实现。

假设使用T/C0,方式2,0.25ms定时,fosc=12MHz。

则初值a满足(256-a)×1/12MHz×12μs =250μsa=6 (6H)TH0=#6H; TL0=#6H(2) 采用中断方式进行溢出次数累计,计满4000次为秒计时(1秒);(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。

2.1.2 电子钟的时间显示电子钟的时钟时间在8位数码管上进行显示,时、分、秒的显示值可以在单片机的内部RAM设置三个缓冲单元,30H、31H、32H分别存储时、分、秒的值。

电子钟的设计

电子钟的设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

电子时钟设计方案

电子时钟设计方案

电子时钟设计方案吴新光01210150唐斌01210134李浩罡01210116一、设计目标数字钟是一种用数字显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到了广泛的应用:小到人们日常生活中的电子手表,大到车站、码头、机场等公共场所的大型数显电子钟。

多功能数字钟由以下几部分组成:555定时器组成的多谐振荡器构成秒脉冲发生器;校时电路;六十进制的秒、分计数器和二十四进制的时计数器;秒、分、时的数码显示部分;报时电路;闹铃电路。

二、设计方案数字电子钟主要由秒信号发生器、“时、分、秒”计数器、译码显示器、校时电路等组成。

秒信号发生器主要由石英晶体振荡器或555振荡器分频后得到;秒、分都是60进制,故由60进制计数器构成;时为24进制,即由24进制计数器构成;显示部分由译码和数码显示构成;校时电路由门电路和开关等构成。

利用函数信号发生器来进行脉冲信号的输出、利用74160N来设置十进制和六进制的进位输出、利用数码显示器来显示时间、利用或门、与门、非门、与非门、等电路元件进行组合、级联后得到设计所要求的电路图。

由于要对时钟进行校队,电路选择串行的进位方式,使每个位都可以快速接入脉冲,进行校时计时电路:用DCD_HEX用DCD_HEX为时分秒的显示译码器,74LS160十进制的计数器,分别计60进制、60进制24进制,这里使用异步清零法。

校时方案:放置开关选择正常计时模式和校时模式,时分秒计时电路分别连接一个单刀双掷开关,每个单刀双掷开关连接VCC和GND,每次接通VCC给单次脉冲,此时产生上升沿信号,74LS160计数加一,这样就可以实现时间的校准,如图闹钟电路:该电路只需要小时和分钟设定,电路连接方法与计时电路相同,是一个六十进制计数器和二十四进制计数器,通过连接VCC和GND开关的切换产生单次脉冲信号,每次74LS160接到一个脉冲信号,计数器加一。

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

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

电子行业数字电子时钟设计1. 概述数字电子时钟是一种能够以数字形式显示时间的电子设备。

它广泛应用于各个行业,尤其在电子行业中,数字电子时钟是一个非常重要的组成部分。

本文将介绍数字电子时钟的基本原理、设计流程以及注意事项,旨在为电子行业从业人员提供设计数字电子时钟的参考。

2. 基本原理2.1 时钟信号的生成数字电子时钟的核心是时钟信号的生成。

时钟信号可以通过多种方式生成,其中常用的方式是使用晶体管振荡器来产生稳定的方波信号。

晶体管振荡器的基本原理是利用晶体管的放大特性,将反馈信号输入到管子的基极并产生振荡。

通过适当调节电路参数,可以使振荡频率达到所需的时钟频率。

2.2 时间计数时钟信号生成后,接下来的步骤是对时钟信号进行计数。

计数可以通过计数器来完成,计数器是一种用于计数的逻辑电路。

在数字电子时钟中,使用的是二进制计数器。

二进制计数器具有多个输出引脚,每个输出引脚对应一个二进制位。

通过适当的电路连接和逻辑控制,可以实现对时间的精确计数。

2.3 数码管显示计数后,时钟信号需要通过数码管进行显示。

数码管是一种用于显示数字的电子元件。

数码管有多种类型,常见的有共阳数码管和共阴数码管。

在数字电子时钟设计中,可以根据需要选择合适的数码管类型。

根据计数器的输出,将相应的数字信号输入到数码管的控制引脚,数码管将会显示对应的数字。

3. 设计流程设计数字电子时钟的流程可以分为以下几个步骤:3.1 确定需求首先,需要明确数字电子时钟的需求。

包括时钟的显示格式、使用环境、界面布局等。

根据需求,确定时钟的设计参数。

3.2 选择器件根据需求和设计参数,选择合适的器件。

如晶体管、计数器、数码管等。

在选择器件时,需考虑器件的性能指标、功耗、稳定性等因素。

3.3 搭建电路根据选择的器件,搭建电路。

按照时钟信号的生成、时间计数和数码管显示的顺序连接电路。

在连接电路时,需注意电路连接的正确性和稳定性。

3.4 调试测试搭建完成后,进行调试测试。

电子时钟方案

电子时钟方案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

电子时钟设计

电子时钟设计

一、数字钟的基本功能要求:用中小规模集成电路设计一台能显示时、分、秒的数字电子钟1、由晶体振荡电路产生1Hz的标准脉冲信号。

2、秒、分为00——59六十进制计数器,时为00——23二十四进制计数器。

3、可以手动校准。

只要将开关置于校准位置,即可对分别对分、时进行手动脉冲输入校准或连续脉冲校准调整。

4、整点报时。

整点报时电路要求在每一个整点前先鸣叫五次低音(500Hz),整点时再鸣叫一次高音(1kHz)。

二、电路的设计1振荡器的设计振荡器是数字钟的核心。

振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,振荡器的频率越高,计时精度越高。

通常选用石英晶体构成振荡器电路。

如下图所示为电子手表集成电路(如5C702)中的晶体振荡器电路,常取晶振的频率为32768Hz,因其内部有15级2分频集成电路,所以输出端正好可得到1Hz的标准脉冲。

2、分频器的设计分频器的功能主要有两个:产生标准秒脉冲信号1Hz ;整点报时用的1kHz的高音频信号和500Hz的低音频信号。

选用3片中规模集成电路计数器74LS90 :因每片为1/10分频,3片级联则可获得所需要的频率信号.即第1片的Q0端输出频率为500Hz,第2片的Q3端输出为10Hz,第3片的Q3端输出为1Hz可以完成上述功能。

3、时分秒计数器的设计分和秒计数器都是60进制的计数器其计数规律为00—>01—>...—>58—>59—>00选74LS90作个位计数器10进制计数器, 将R0(1) ,R9(1) 接地, 74LS90 为10进制计数器; 74LS90作十位6进制记数器.将R0(1) ,R9(1) 接地, 74LS90 为10进制计数器Q2输出的则为6进制.再将它们级联组成60进制的计数器小时计数器是一个24进制计数器,同样选用74LS90作十位计数器,74LS90作个位计数器。

当小时的十位不到2时,小时的个位是十进制计数器;而当小时的十位为2时,小时的个位是4进制计数器。

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

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

电子时钟设计(完美实现最终版)要点————————————————————————————————作者:————————————————————————————————日期:电子时钟实验报告一,实验目的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.序言1.1系统开发背景随着电子科技的不断发展,传统的时钟已被一些高档的电子时钟所取代,与传统的时钟相比,电子时钟融合了挂历和时钟的优点,能昼夜清晰显示,集年、月、日、时、分、秒、日期、农历、气温于一体,外观新颖,造型别具一格。

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

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

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

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

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

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

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

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五,实验要求实现
A.电路设计
1. 整体设计
此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用8个共阴数码管分别显示,星期(年份),小时、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。
首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,在已经正确的设计基础上,添加额外的功能!
二,实验要求
A.基本要求:
1. 在4位数码管上显示当前时间。显示格式“时时分分”
2.由LED闪动做秒显示。
3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹铃时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。
4.实现秒表功能(百分之一秒显示)
B.扩展部分:
1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)
时间调整对应键如下:
6键——时,按一次该位加1
5键——分,按一次该位加1
பைடு நூலகம்4键——秒,按一次该位清0
0键——调整状态指示灯灭,返回主程序,显示时间
3.按3键——闹铃调整模式。显示闹铃时刻且可调整,调整状态指示灯亮。
闹铃调整对应键如下:
5键——时,按一次该位加1
4键——分,按一次该位加1
0键——调整状态指示灯灭,返回主程序,显示时间
4.长按4键——定时调整(倒计时)模式。显示定时长度且可调整,调整状态显示灯亮。
定时调整对应键如下:
6键——分,按一次该位加1
复位电路为手动复位构成,模块如下:
各模块拼接组合,电路总体设计图如下:
B.程序设计
B.1 程序总体设计
本实验用汇编程序完成.
程序总的流程图如下:
NO
YES
结合电路图,程序设计的整体思路为:
接通电源,数码管显示星期数,时,分,秒。并且走时显示LED灯每隔1秒改变一次明暗,此为正常工作模式。以下为在该工作方式下模式选择的按键方式:
1.按1键——日期模式。显示年月日且可调整,调整状态指示灯亮。
日期调整对应键如下:
6键——年(千位,百位),按一次该位加1
5键——年(十位,个位),按一次该位加1
4键——月,按一次该位加1
3键——日,按一次该位加1
0键——调整状态指示灯灭,返回主程序,显示时间
2.按2键——调时模式。显示时分秒且可调整,调整状态指示灯亮。
三,实验基本原理
利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
2.2 输出部分
本电路的输出信号为7段数码管的位选和段选信号,闹铃脉冲信号,提示灯信号。
本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:
闹铃由P2.6端输出,模块如下:
2.3晶振与复位电路
本实验单片机时钟用内部时钟,模块如下:
2.音乐闹铃(铃音可选择,闹铃被停止后,闪烁显示当前时刻8秒后,或按键跳入正常时间显示状态)
3.定时功能(设定一段时间长度,定时到后,闪烁提示)
4.倒计时功能(设定一段时间长度,能实现倒计时显示,时间长减到0时,闪烁提示)
5.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)
四,实验设计分析
针对要实现的功能,采用AT89S51单片机进行设计,AT89S51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。
电路的总体设计框架如下:
2. 分块设计
模块电路主要分为:输入部分、输出部分、复位和晶振电路。
2.1 输入部分
输入信号主要是各种模式选择和调整信号,由按键开关提供。
以下为输入部分样例:
在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:
电子时钟设计(完美实现最终版)要点
———————————————————————————————— 作者:
———————————————————————————————— 日期:
电子时钟实验报告
一,实验目的
1. 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟
相关文档
最新文档