《第8章 数字时钟设计精选文档.ppt》由会员分享,可在线阅读,更多相关《第8章 数字时钟设计精选文档.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第8章 数字时钟设计本讲稿第一页,共三十七页1.多功能数字电子钟功能正常计时:秒(正常计时:秒(60)、分()、分(60)、小时()、小时(24)计数;秒计)计数;秒计时的频率为时的频率为1Hz,数码管用动态扫描实时显示计时的小时、,数码管用动态扫描实时显示计时的小时、分、秒。分、秒。整点报时:逢整点蜂鸣器在整点报时:逢整点蜂鸣器在“59”分钟的第分钟的第51、53、55、57秒发频率为秒发频率为512Hz的低音,在的低音,在“59”分钟的第分钟的第59秒发频秒发频率为率为1024Hz的高音。的高音。校时:校时:1)校小时)校小时,显示小时数码管以显示小时数码管以4Hz的频率递增计数;的频率递
2、增计数;2)校分)校分,显示分数码管以显示分数码管以4Hz的频率递增计数;的频率递增计数;3)校秒)校秒,秒清秒清0。本讲稿第二页,共三十七页模60进制计数器模60进制计数器模24进制计数器CLK小时计时小时计时 分计时分计时 秒计时秒计时CLK1S显示小时显示分显示秒CLK/60CLK/36001小时1分钟个位十位个位十位个位十位计时计时动显动显1.计时、显示电路计时、显示电路RESET60/24进制计数器(进制计数器(VHDL)本讲稿第三页,共三十七页8位数码管动态显示位数码管动态显示1 432 088选一数据选择器选一数据选择器4位BCD码 产生选段码产生选段码ag信号;信号;gfedc
3、baM2M1M3M4M5M6M7M88路脉冲分配器路脉冲分配器 产生选位产生选位M8 M1 信号;信号;模模8计数器计数器 38译码器译码器本讲稿第四页,共三十七页7段译码器段译码器3:8译码器译码器模模8clk1kd13.0q2.08:1MUXd73.0b3.0M8.1ag模模8计数器计数器38译码器译码器8路脉冲分配器路脉冲分配器8位数码管动态显示位数码管动态显示模模24clk1hzh3.0信号源CPLD芯片芯片模模60m3.0模模60s3.0d03.0d63.0h7.4s7.4m7.4d23.0,d53.0可定义为特殊字(“1111”)d33.0d23.0d43.0d53.0遇特殊字(“
4、1111”)时显示(g=1)本讲稿第五页,共三十七页系统时钟系统时钟1)秒计数时钟)秒计数时钟1Hz2)校时时钟校时时钟4Hz3)动显扫描时钟动显扫描时钟1024Hz 4)蜂鸣器时钟蜂鸣器时钟 1024Hz 蜂鸣器时钟蜂鸣器时钟 512Hz3.报时、分频电路报时、分频电路报时:整点前报时:整点前59分分51,53,55,57秒输出秒输出512hz频率的时钟;频率的时钟;59秒输出秒输出1k 频率的时钟。频率的时钟。本讲稿第六页,共三十七页4.系统框图系统框图报时控报时控制电路制电路显示显示控制控制电路电路计时器计时器agclk1hz扫描显扫描显示电路示电路cstchtcmtresetclk1k
5、clk4hzclk1kclk512M1M8蜂鸣器蜂鸣器本讲稿第七页,共三十七页模块说明模块说明时钟的设计共化分为6个模块:秒计数器(count60),分计数器(count601),小时计数器(count24),报警电路(bs),扫描电路(set),译码电路(led7)。下面具体分析各个模块的原理、内容和功能。本讲稿第八页,共三十七页1.秒计数器(count60)能够实现60进制循环计数,带有复位端reset、手动调分功能端setmin和向分进位端c,受时钟上升沿信号控制,其文本语言(文件名:count60.vhd)为底层文本,图1为秒计数器的仿真波形图。本讲稿第九页,共三十七页LIBRARY
6、IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT60 IS PORT(CLK,RESET,SETMIN:IN STD_LOGIC;SEC0,SEC1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);C:OUT STD_LOGIC);END COUNT60;ARCHITECTURE ONE OF COUNT60 ISSIGNAL SEC0_T,SEC1_T:STD_LOGIC_VECTOR(3 DOWNTO 0);S
7、IGNAL E_1,E_2:STD_LOGIC;BEGIN SEC0=SEC0_T;SEC1=SEC1_T;E_2=(SETMIN and CLK);C=(E_1 or E_2);本讲稿第十页,共三十七页PROCESS(CLK,RESET,SETMIN)BEGIN IF RESET=0THEN SEC0_T=0000;SEC1_T=0000;ELSIF CLKEVENT AND CLK=1 THEN IF SEC0_T=1001 THEN SEC0_T=0000;SEC1_T=SEC1_T+1;ELSE SEC0_T=SEC0_T+1;END IF;IF SEC0_T=1001 AND SEC
8、1_T=0101 THEN SEC0_T=0000;SEC1_T=0000;E_1=1;ELSE E_1=0;END IF;END IF;END PROCESS;END ONE;本讲稿第十一页,共三十七页图1.六十进制秒计数器的仿真波形本讲稿第十二页,共三十七页2.分计数器(COUNT601)能够实现60进制循环计数,带有带有复位端reset、手动调小时功能端sethour和向时进位端CO,受时钟上升沿信号控制。其文本语言(文件名:COUNT601.vhd)为底层文本,图2为分计数器的仿真波形图本讲稿第十三页,共三十七页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.
9、ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT601 IS PORT(CLK,RESET,CLK1,SETHOUR:IN STD_LOGIC;MIN0,MIN1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO:OUT STD_LOGIC);END COUNT601;ARCHITECTURE ONE OF COUNT601 IS SIGNAL MIN0_T,MIN1_T:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL ENHOUR_1,ENH
10、OUR_2:STD_LOGIC;BEGIN MIN0=MIN0_T;MIN1=MIN1_T;ENHOUR_2=(SETHOUR and CLK1);CO=(ENHOUR_1 or ENHOUR_2);本讲稿第十四页,共三十七页PROCESS(CLK,RESET,SETHOUR)BEGIN IF RESET=0THEN MIN0_T=0000;MIN1_T=0000;ELSIF CLKEVENT AND CLK=1 THEN IF MIN0_T=1001 THEN MIN0_T=0000;MIN1_T=MIN1_T+1;ELSE MIN0_T=MIN0_T+1;END IF;IF MIN0_T=
11、1001 AND MIN1_T=0101 THEN MIN0_T=0000;MIN1_T=0000;ENHOUR_1=1;ELSE ENHOUR_1=0;END IF;END IF;END PROCESS;END ONE;本讲稿第十五页,共三十七页图2.六十进制分计数器的仿真波形本讲稿第十六页,共三十七页3.小时计数器(COUNT24)能够实现24进制循环计数,带有复位端reset,受时钟上升沿信号控制。其文本语言(文件名:COUNT24.vhd)为底层文本,图3为分计数器的仿真波形图。本讲稿第十七页,共三十七页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;
12、USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT24 IS PORT(CLK,RESET:IN STD_LOGIC;H0,H1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COUNT24;ARCHITECTURE ONE OF COUNT24 IS SIGNAL H0_T,H1_T:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINH0=H0_T;H1=H1_T;本讲稿第十八页,共三十七页PROCESS(CLK,RESET)BEGIN IF RESE
13、T=0THEN H0_T=0000;H1_T=0000;ELSIF CLKEVENT AND CLK=1 THEN IF H0_T=0011 THEN H0_T=0000;H1_T=H1_T+1;ELSE H0_T=H0_T+1;END IF;IF H0_T=0011 AND H1_T=0010 THEN H0_T=0000;H1_T=0000;END IF;END IF;END PROCESS;END ONE;本讲稿第十九页,共三十七页图3.小时计数器的仿真波形本讲稿第二十页,共三十七页4.报警模块(报警模块(BS)能够实现整点报时和循环点亮能够实现整点报时和循环点亮3只只LED灯,灯,工作
14、时受时钟上升沿控制。其文本语言工作时受时钟上升沿控制。其文本语言(文件名:(文件名:BS.vhd)为底层文本,图)为底层文本,图4为为其仿真波形。其仿真波形。本讲稿第二十一页,共三十七页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BS IS PORT(CLK:IN STD_LOGIC;M0,M1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);SPEAK:OUT STD_LOGIC;LAMP:OUT STD
15、_LOGIC_VECTOR(2 DOWNTO 0);END BS;ARCHITECTURE ONE OF BS ISSIGNAL COUNT:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL COUNT1:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN本讲稿第二十二页,共三十七页SPEAKER:PROCESS(CLK)BEGINSPEAK=10 THENCOUNT1=00;ELSE COUNT1=COUNT1+1;END IF;END IF;END IF;END PROCESS SPEAKER;LAMPER:PROCESS(CLK)LAMPER:PR
16、OCESS(CLK)BEGIN BEGINIF CLKEVENT AND CLK=1 IF CLKEVENT AND CLK=1 THENTHEN IF COUNT=10 THEN IF COUNT=10 THEN IF COUNT=00 THEN IF COUNT=00 THEN LAMP=001;LAMP=001;ELSIF COUNT=01 THENELSIF COUNT=01 THEN LAMP=010;LAMP=010;ELSIF COUNT=10 THENELSIF COUNT=10 THEN LAMP=100;LAMP=100;END IF;END IF;COUNT=COUNT+
17、1;COUNT=COUNT+1;ELSE COUNT=00;ELSE COUNT=00;END IF;END IF;END IF;END IF;END PROCESS LAMPER;END PROCESS LAMPER;END ONE;END ONE;本讲稿第二十三页,共三十七页图4.声光报警仿真波形本讲稿第二十四页,共三十七页5.扫描模块(SET)能够实现逐次扫描秒个位、秒十位、分个位、能够实现逐次扫描秒个位、秒十位、分个位、分十位、时个位、时十位,并输出扫描数分十位、时个位、时十位,并输出扫描数据和相应位的点据和相应位的点dp,带有复位端,带有复位端reset,受,受扫描时钟上升沿控制。其
18、文本语言(文件扫描时钟上升沿控制。其文本语言(文件名:名:SET.vhd)为底层文本,图)为底层文本,图5为其仿真为其仿真波形。波形。本讲稿第二十五页,共三十七页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SET IS PORT(CLK1,RESET:IN STD_LOGIC;SE0,SE1,MI0,MI1,HU0,HU1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);DOUT:OUT STD_LOGIC
19、_VECTOR(3 DOWNTO 0);SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);DP:OUT STD_LOGIC);END SET;ARCHITECTURE ONE OF SET ISSIGNAL COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIG SEL=COUNT;本讲稿第二十六页,共三十七页PROCESS(CLK1)BEGIN IF RESET=0 THEN COUNT=000;ELSIF CLK1EVENT AND CLK1=1 THEN IF COUNT=101 THEN COUNT=000;ELSE COUNTDOUT
20、=SE0;DPDOUT=SE1;DPDOUT=MI0;DPDOUT=MI1;DPDOUT=HU0;DPDOUT=HU1;DPDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUT=0000000;END CASE;END PROCESS;END ONE;本讲稿第三十一页,共三十七页7.顶层文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CLOCK_TOP IS PORT(CLK,RESET,CLKDSP,SETMIN,SETHOUR:IN STD_LOGIC;A,B,C,D,E,F,G:OUT STD_LOG
21、IC;LAMP,SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);DP,SPEAKER:OUT STD_LOGIC);END CLOCK_TOP;ARCHITECTURE ONE OF CLOCK_TOP ISCOMPONENT COUNT60 -秒计数器秒计数器COUNT60的元件声明的元件声明PORT(CLK,RESET,SETMIN:IN STD_LOGIC;SEC0,SEC1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);C:OUT STD_LOGIC);END COMPONENT;本讲稿第三十二页,共三十七页COMPONENT COUNT6
22、01 -分计数器分计数器COUNT601的元件声明的元件声明PORT(CLK,RESET,CLK1,SETHOUR:IN STD_LOGIC;MIN0,MIN1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO:OUT STD_LOGIC);END COMPONENT;COMPONENT COUNT24 -时计数器时计数器COUNT24的元件声明的元件声明PORT(CLK,RESET:IN STD_LOGIC;H0,H1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT SET -时间数据扫描分时选择时间数据
23、扫描分时选择SET的元件声明的元件声明 PORT(SE0,SE1,MI0,MI1,HU0,HU1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);RESET,CLK1:IN STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);DP:OUT STD_LOGIC);END COMPONENT;本讲稿第三十三页,共三十七页COMPONENT LED7 -7段译码段译码LED7的元件声明的元件声明PORT(DIN:IN STD_LOGIC_VECTOR(3 DOWNTO
24、 0);DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;COMPONENT BS -报警单元报警单元BS的元件声明的元件声明 PORT(CLK:IN STD_LOGIC;M0,M1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);SPEAK:OUT STD_LOGIC;LAMP:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END COMPONENT;SIGNAL SECOND_0,SECOND_1,MINUTE_0,MINUTE_1,HOUR_0,HOUR_1,SELTIME:STD_LOGIC_VE
25、CTOR(3 DOWNTO 0);SIGNAL JIN1,JIN2:STD_LOGIC;SIGNAL LEDOUT:STD_LOGIC_VECTOR(6 DOWNTO 0);本讲稿第三十四页,共三十七页BEGINA=LEDOUT(6);B=LEDOUT(5);C=LEDOUT(4);D=LEDOUT(3);E=LEDOUT(2);F=LEDOUT(1);GRESET,CLK=CLK,SETMIN=SETMIN,C=JIN1,SEC0=SECOND_0,SEC1=SECOND_1);-分计数器元件例化分计数器元件例化U2:COUNT601 PORT MAP(RESET=RESET,CLK1=CL
26、K,SETHOUR=SETHOUR,CLK=JIN1,CO=JIN2,MIN0=MINUTE_0,MIN1=MINUTE_1);本讲稿第三十五页,共三十七页-时计数器元件例化时计数器元件例化U3:COUNT24 PORT MAP(CLK=JIN2,RESET=RESET,H0=HOUR_0,H1=HOUR_1);-时间数据扫描分时选择元件例化时间数据扫描分时选择元件例化U4:SET PORT MAP(SE0=SECOND_0,SE1=SECOND_1,MI0=MINUTE_0,MI1=MINUTE_1,HU0=HOUR_0,HU1=HOUR_1,CLK1=CLKDSP,RESET=RESET,DOUT=SELTIME,SEL=SEL,DP=DP);-7段译码段译码LED7的元件例化的元件例化U5:LED7 PORT MAP(DIN=SELTIME,DOUT=LEDOUT);-报警单元报警单元BS的元件例化的元件例化U6:BS PORT MAP(CLK=CLK,M0=MINUTE_0,M1=MINUTE_1,SPEAK=SPEAKER,LAMP=LAMP);END ONE;本讲稿第三十六页,共三十七页五、数字钟的整体连接图五、数字钟的整体连接图图6.数字钟各个模块连接示意图本讲稿第三十七页,共三十七页