EDA电子钟设计.doc_第1页
EDA电子钟设计.doc_第2页
EDA电子钟设计.doc_第3页
EDA电子钟设计.doc_第4页
EDA电子钟设计.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子钟课程设计电子设计自动化EDA课程设计题目:电子钟设计专业 班级 学号 姓名 指导老师: 年 月 日目 录一、 设计要求 (3)1. 基本设计要求 (3)2. 扩展功能要求 (3)二、 工作原理 (3)1、 硬件 (3)2、 软件 (3)三、 VHDL源程序 (3)1、 例化模块,顶层文件 (3)2、 秒模块 (6)3、 分模块 (7)4、 时模块 (8)5、 时钟分频模块 (9)6、计数器模块 (10)7、闹钟模块 (12)8、调整数码管亮度模块 (13)四、电路原理图 (15)五、引脚设置 (16)六、模式图七 (16)七、收获与体会 (17)八、参考文献 (17)一、设计要求1,基本功能要求:设计一个电子时钟,要求可以显示时、分、秒,用户可以设置时间。2,扩展功能要求:秒表功能,闹钟功能,调整数码管的亮度。二、工作原理1、硬件2、软件三、VHDL源程序1、例化模块,顶层文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ELECTRONIC_CLOCK IS PORT (K1,K2,K3,K4,CLKIN : IN STD_LOGIC; -K1、K2、K3为控制信号,CLKIN输入10M Hz信号 SGOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); BTOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SPKOUT:OUT STD_LOGIC); END ENTITY ELECTRONIC_CLOCK;ARCHITECTURE watch_behav OF ELECTRONIC_CLOCK ISCOMPONENT SEC-调用秒程序PORT ( COUT_SEC,EN : IN STD_LOGIC; CQ_SEC1,CQ_SEC2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT_MIN : OUT STD_LOGIC); END COMPONENT;COMPONENT MIN-调用分程序PORT ( COUT_MIN,EN : IN STD_LOGIC; CQ_MIN1,CQ_MIN2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT_HOU : OUT STD_LOGIC);END COMPONENT;COMPONENT HOU-调用时程序PORT ( COUT_HOU: IN STD_LOGIC; CQ_HOU1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CQ_HOU2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END COMPONENT;COMPONENT CNT4 PORT (CNT4K1,cnt4k2,CARRY : IN STD_LOGIC;A:IN INTEGER RANGE 0 TO 3; CNT4K1OUT: OUT STD_LOGIC); END COMPONENT;COMPONENT SHOW PORT( SPKCLK,KIN,COUT_HOUIN,NOWTIME: IN STD_LOGIC; B:IN INTEGER RANGE 0 TO 3; ST_CSEC2,ST_CSEC1,ST_SEC2,ST_SEC1,ST_MIN2,ST_MIN1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); NM_SEC1,NM_SEC2,NM_MIN1,NM_MIN2,NM_HOU1,NM_HOU2: IN STD_LOGIC_VECTOR(3 DOWNTO 0); AL_SEC1,AL_SEC2,AL_MIN1,AL_MIN2,AL_HOU1,AL_HOU2: IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEC1,SEC2,MIN1,MIN2,HOU1,HOU2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SPK:OUT STD_LOGIC); END COMPONENT;COMPONENT frtn_frqcPORT(CLK:IN STD_LOGIC;COUNTER_CLK,REFRESH_CLK,STATEMACHINE_CLK,REMOVESHAKE_CLK,NOWTIME_CLK:OUT STD_LOGIC);END COMPONENT ;COMPONENT CNT10 PORT (CLK ,EN: IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC); END COMPONENT;COMPONENT SCAN_LEDPORT(CLK:IN STD_LOGIC; SLK3IN,SLK2IN:IN STD_LOGIC;SL_SEC2,SL_SEC1,SL_MIN2,SL_MIN1,SL_HOU2,SL_HOU1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);SG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-段控制信号BT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-位控制信号输出END COMPONENT; SIGNAL SIG_COUT_HOU,SIG_COUT_MIN :STD_LOGIC;-定义两个内部信号连接线SIGNAL KCOUT_MIN,KCOUT_HOU:STD_LOGIC;SIGNAL SIG_CNT4K1,SIG_CNT4K3:STD_LOGIC;SIGNAL NM_SEC1OUT,NM_SEC2OUT,NM_MIN1OUT,NM_MIN2OUT,NM_HOU1OUT,NM_HOU2OUT:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL ALSIG_COUT_HOU,ALSIG_COUT_MIN :STD_LOGIC;-定义两个内部信号连接线SIGNAL ALKCOUT_MIN,ALKCOUT_HOU:STD_LOGIC;SIGNAL ALCNT4K1,ALCNT4K3:STD_LOGIC;SIGNAL AL_SEC1OUT,AL_SEC2OUT,AL_MIN1OUT,AL_MIN2OUT,AL_HOU1OUT,AL_HOU2OUT:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL SIG_COUNTER_CLK,SIG_REFRESH_CLK,SIG_STATEMACHINE_CLK,SIG_REMOVESHAKE_CLK,SIG_NOWTIME_CLK:STD_LOGIC;SIGNAL SIG_CNT10COUT1,SIG_CNT10COUT2,ST_COUTMIN,ST_COUTHOU:STD_LOGIC;SIGNAL ST_CSEC2OUT,ST_CSEC1OUT,ST_SEC2OUT,ST_SEC1OUT,ST_MIN2OUT,ST_MIN1OUT:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL STKCOUT_CSEC:STD_LOGIC;SIGNAL CQ_SEC1OUT,CQ_SEC2OUT,CQ_MIN1OUT,CQ_MIN2OUT,CQ_HOU1OUT,CQ_HOU2OUT :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU1:SEC PORT MAP (EN=1,COUT_SEC=SIG_COUNTER_CLK,CQ_SEC1=NM_SEC1OUT,CQ_SEC2=NM_SEC2OUT,COUT_MIN=SIG_COUT_MIN);-例化语句U2:MIN PORT MAP (EN=1,COUT_MIN=SIG_CNT4K1,CQ_MIN1=NM_MIN1OUT,CQ_MIN2=NM_MIN2OUT,COUT_HOU=SIG_COUT_HOU);U3:HOU PORT MAP (COUT_HOU=SIG_CNT4K3,CQ_HOU1=NM_HOU1OUT,CQ_HOU2=NM_HOU2OUT);U4:CNT4 PORT MAP (A=1,CNT4K1=K1,CNT4K2=K2,CARRY=SIG_COUT_MIN,CNT4K1OUT=SIG_CNT4K1);U5:CNT4 PORT MAP (A=1,CNT4K1=K3,CNT4K2=K2,CARRY=SIG_COUT_HOU,CNT4K1OUT=SIG_CNT4K3);U6:SEC PORT MAP (EN=1,COUT_SEC=0,CQ_SEC1=AL_SEC1OUT,CQ_SEC2=AL_SEC2OUT,COUT_MIN=ALSIG_COUT_MIN);-例化语句U7:MIN PORT MAP (EN=1,COUT_MIN=ALCNT4K1,CQ_MIN1=AL_MIN1OUT,CQ_MIN2=AL_MIN2OUT,COUT_HOU=ALSIG_COUT_HOU);U8:HOU PORT MAP (COUT_HOU=ALCNT4K3,CQ_HOU1=AL_HOU1OUT,CQ_HOU2=AL_HOU2OUT);U9:CNT4 PORT MAP (A=2,CNT4K1=K1,CNT4K2=K2,CARRY=ALKCOUT_MIN,CNT4K1OUT=ALCNT4K1);U10:CNT4 PORT MAP (A=2,CNT4K1=K3,CNT4K2=K2,CARRY=ALKCOUT_HOU,CNT4K1OUT=ALCNT4K3);U11:SHOW PORT MAP (KIN=K1,B=2,SPKCLK=SIG_COUNTER_CLK,SPK=SPKOUT,COUT_HOUIN=SIG_COUT_HOU,NOWTIME=SIG_NOWTIME_CLK,ST_CSEC2=ST_CSEC2OUT,ST_CSEC1=ST_CSEC1OUT,ST_SEC2=ST_SEC2OUT,ST_SEC1=ST_SEC1OUT,ST_MIN2=ST_MIN2OUT,ST_MIN1=ST_MIN1OUT,NM_SEC1=NM_SEC1OUT,NM_SEC2=NM_SEC2OUT,NM_MIN1=NM_MIN1OUT,NM_MIN2=NM_MIN2OUT,NM_HOU1=NM_HOU1OUT,NM_HOU2=NM_HOU2OUT,AL_SEC1=AL_SEC1OUT,AL_SEC2=AL_SEC2OUT,AL_MIN1=AL_MIN1OUT,AL_MIN2=AL_MIN2OUT,AL_HOU1=AL_HOU1OUT,AL_HOU2=AL_HOU2OUT,SEC1=CQ_SEC1OUT,SEC2=CQ_SEC2OUT,MIN1=CQ_MIN1OUT,MIN2=CQ_MIN2OUT,HOU1=CQ_HOU1OUT,HOU2=CQ_HOU2OUT);U12:FRTN_FRQC PORT MAP(CLK=CLKIN,COUNTER_CLK=SIG_COUNTER_CLK,REFRESH_CLK=SIG_REFRESH_CLK,STATEMACHINE_CLK=SIG_STATEMACHINE_CLK,REMOVESHAKE_CLK=SIG_REMOVESHAKE_CLK,NOWTIME_CLK=SIG_NOWTIME_CLK);U13:CNT10 PORT MAP(EN=K4,CLK=STKCOUT_CSEC,CQ=ST_CSEC1OUT,COUT=SIG_CNT10COUT1);U14:CNT10 PORT MAP(EN=K4,CLK=SIG_CNT10COUT1 ,CQ=ST_CSEC2OUT,COUT=SIG_CNT10COUT2);U15:SEC PORT MAP(EN=K4,COUT_SEC=SIG_CNT10COUT2,CQ_SEC1=ST_SEC1OUT,CQ_SEC2=ST_SEC2OUT,COUT_MIN=ST_COUTMIN);U16:MIN PORT MAP(EN=K4,COUT_MIN=ST_COUTMIN,CQ_MIN1=ST_MIN1OUT,CQ_MIN2=ST_MIN2OUT,COUT_HOU=ST_COUTHOU);U17:CNT4 PORT MAP (A=3,CNT4K1=K3,CNT4K2=0,CARRY=SIG_REMOVESHAKE_CLK,CNT4K1OUT=STKCOUT_CSEC);U18:SCAN_LED PORT MAP(CLK=SIG_REFRESH_CLK,SLK3IN=K3,SLK2IN=K2,SL_SEC2=CQ_SEC2OUT,SL_SEC1=CQ_SEC1OUT,SL_MIN2=CQ_MIN2OUT,SL_MIN1=CQ_MIN1OUT,SL_HOU2=CQ_HOU2OUT,SL_HOU1=CQ_HOU1OUT,SG=SGOUT,BT=BTOUT);END ARCHITECTURE watch_behav;2、秒模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SEC IS PORT (COUT_SEC,EN : IN STD_LOGIC; CQ_SEC1,CQ_SEC2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT_MIN : OUT STD_LOGIC); END SEC;ARCHITECTURE behav OF SEC ISSIGNAL CQ_SEC1I : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CQ_SEC2I : STD_LOGIC_VECTOR(3 DOWNTO 0); -中间信号存储计数器以实现反馈BEGIN PROCESS(COUT_SEC,EN)-RST,EN可以省略,COUT_SEC上跳沿RST一定被启动BEGINIF EN=1 THENIF COUT_SECEVENT AND COUT_SEC=1 THEN -检测时钟上升沿 IF CQ_SEC1I 9 THENCQ_SEC1I = CQ_SEC1I + 1; ELSIF CQ_SEC2I5 THEN CQ_SEC1I0);CQ_SEC2I=CQ_SEC2I+1; ELSE CQ_SEC2I0);-秒为59时时,秒两位都清零,向分位进1 CQ_SEC1I0); END IF; IF CQ_SEC1I=9 AND CQ_SEC2I=5 THEN COUT_MIN=1; ELSE COUT_MIN=0; END IF;END IF; ELSE CQ_SEC1I=0000; CQ_SEC2I=0000;END IF; CQ_SEC1 = CQ_SEC1I; -将计数值向端口输出 CQ_SEC2 = CQ_SEC2I; END PROCESS;END behav;3、分模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MIN IS PORT (COUT_MIN,EN : IN STD_LOGIC; CQ_MIN1,CQ_MIN2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT_HOU : OUT STD_LOGIC); END MIN;ARCHITECTURE MIN_behav OF MIN ISSIGNAL CQ_MIN1I : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CQ_MIN2I : STD_LOGIC_VECTOR(3 DOWNTO 0); -中间信号存储计数器以实现反馈BEGIN PROCESS(COUT_MIN,EN)BEGINIF EN=1 THENIF COUT_MINEVENT AND COUT_MIN=1 THEN -检测时钟上升沿 IF CQ_MIN1I 9 THENCQ_MIN1I = CQ_MIN1I + 1; ELSIF CQ_MIN2I5 THEN CQ_MIN1I0);CQ_MIN2I=CQ_MIN2I+1; ELSE CQ_MIN2I0);-秒为59时时,分两位都清零,向时位进1 CQ_MIN1I0); END IF; IF CQ_MIN1I=9 AND CQ_MIN2I=5 THEN COUT_HOU=1; ELSE COUT_HOU=0; END IF;END IF;ELSE CQ_MIN1I=0000; CQ_MIN2I=0000;END IF; CQ_MIN1 = CQ_MIN1I; -将计数值向端口输出 CQ_MIN2 = CQ_MIN2I; END PROCESS;END ;4、时模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HOU IS PORT ( COUT_HOU: IN STD_LOGIC; CQ_HOU1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CQ_HOU2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END HOU;ARCHITECTURE HOU_behav OF HOU ISSIGNAL CQ_HOU1I : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CQ_HOU2I : STD_LOGIC_VECTOR(3 DOWNTO 0); -中间信号存储计数器以实现反馈BEGIN PROCESS(COUT_HOU)BEGINIF COUT_HOUEVENT AND COUT_HOU=1 THEN -检测时钟上升沿 IF CQ_HOU2I2 THEN IF CQ_HOU1I 9 THENCQ_HOU1I = CQ_HOU1I + 1; ELSE CQ_HOU1I0);CQ_HOU2I=CQ_HOU2I+1; END IF; ELSIF CQ_HOU1I 3 THENCQ_HOU1I = CQ_HOU1I + 1; ELSE CQ_HOU2I0);-秒为59时时,分两位都清零,向时位进1 CQ_HOU1I0); END IF;END IF; CQ_HOU1 = CQ_HOU1I; -将计数值向端口输出 CQ_HOU2 = CQ_HOU2I; END PROCESS;END ;5、时钟分频模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY frtn_frqc ISPORT(CLK:IN STD_LOGIC;-10M Hz输入为1000 0000HzCOUNTER_CLK,REFRESH_CLK,STATEMACHINE_CLK,REMOVESHAKE_CLK,NOWTIME_CLK:OUT STD_LOGIC);-COUNTER_CLK计数器时钟;REFRESH_CLK刷新led时钟,为100Hz;STATEMACHINE_CLK状态机时钟,REMOVESHAKE_CLK消抖时钟END frtn_frqc;ARCHITECTURE ONE OF frtn_frqc ISSIGNAL CONT1,CONT4:STD_LOGIC_VECTOR(23 DOWNTO 0);-计数器中间信号SIGNAL CONT2:STD_LOGIC_VECTOR(16 DOWNTO 0);-刷新led时钟中间信号SIGNAL CONT3:STD_LOGIC_VECTOR(19 DOWNTO 0);-消抖时钟中间信号SIGNAL SIG_COUNTER_CLK,SIG_REFRESH_CLK,SIG_REMOVESHAKE_CLK,SIG_NOWTIME_CLK:STD_LOGIC:=0;BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENIF CONT1 5000000 THEN CONT1 = CONT1 + 1; -计数器时钟频率1HzELSE CONT1 0);-大于5M计数器清零SIG_COUNTER_CLK=NOT(SIG_COUNTER_CLK);-每5 000 000计数器时钟反转一次,两次反转完成一个周期 END IF;IF CONT2500 THEN CONT2 = CONT2 + 1;-刷新led时钟频率10000Hz ELSE CONT2 0);-大于500计数器清零SIG_REFRESH_CLK=NOT(SIG_REFRESH_CLK);-每500个clk脉冲刷新led时钟反转一次,1000完成一个时钟周期 END IF;IF CONT350000 THEN CONT3 = CONT3 + 1;-消抖时钟频率100Hz ELSE CONT3 0);-大于500 0000计数器清零SIG_REMOVESHAKE_CLK=NOT(SIG_REMOVESHAKE_CLK);-每500 0000个clk脉冲刷新led时钟反转一次,100 000完成一个时钟周期 END IF;IF CONT42500000 THEN CONT4 = CONT4 + 1;-整点报时时钟频率2Hz ELSE CONT4 0);-大于2500 000计数器清零SIG_NOWTIME_CLK=NOT(SIG_NOWTIME_CLK);-每2500 000个clk脉冲刷新led时钟反转一次,5000 000完成一个时钟周期 END IF;END IF;COUNTER_CLK=SIG_COUNTER_CLK;REFRESH_CLK=SIG_REFRESH_CLK;STATEMACHINE_CLK=SIG_REMOVESHAKE_CLK;REMOVESHAKE_CLK=SIG_REMOVESHAKE_CLK;NOWTIME_CLK=SIG_NOWTIME_CLK;END PROCESS;END ARCHITECTURE ONE;6、计数器模块-十进制计数器,可做秒、分、时的第二位LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS PORT (CLK,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC); END CNT10;ARCHITECTURE behav OF CNT10 ISSIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); -中间信号存储计数器以实现反馈BEGIN PROCESS(CLK,EN)BEGINIF EN=1 THENIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 IF CQI 9 THEN CQI = CQI + 1; ELSE CQI 0);-大于9计数器清零END IF; END IF; IF CQI = 9 THEN COUT = 1; -计数大于9,输出进位信号 ELSE COUT = 0; END IF;ELSE CQI=0000;END IF; CQ = CQI; -将计数值向端口输出 END PROCESS;END behav;-对K1进行计数,六位循环计数LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT6 IS PORT (CLK_K1 : IN STD_LOGIC; CNT6K1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END CNT6;ARCHITECTURE behav OF CNT6 ISsignal SIG_CLK_K1: STD_LOGIC_VECTOR(3 DOWNTO 0); -中间信号存储计数器以实现反馈BEGIN PROCESS(CLK_K1)-RST,EN可以省略,CLK上跳沿RST一定被启动 BEGINIF CLK_K1EVENT AND CLK_K1=1 THEN -检测时钟上升沿 IF SIG_CLK_K1 5 THEN SIG_CLK_K1= SIG_CLK_K1 + 1; ELSE SIG_CLK_K1 0);-大于9计数器清零 END IF; END IF; CNT6K1=SIG_CLK_K1 ; -将计数值向端口输出 END PROCESS;END behav;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4 IS PORT (CNT4K1,cnt4k2,CARRY : IN STD_LOGIC;A:IN INTEGER RANGE 0 TO 3; CNT4K1OUT: OUT STD_LOGIC); -选择进位信号输出END CNT4;ARCHITECTURE behav OF CNT4 ISSIGNAL SIG_CNT4K1: INTEGER RANGE 0 TO 3; -中间信号存储计数器以实现反馈BEGIN PROCESS(CNT4K1)-RST,EN可以省略,CLK上跳沿RST一定被启动 BEGINIF CNT4K1EVENT AND CNT4K1=1 THEN -检测时钟上升沿 IF SIG_CNT4K1 3 THEN SIG_CNT4K1= SIG_CNT4K1 + 1; ELSE SIG_CNT4K1 =0;-大于9计数器清零 END IF; END IF;IF SIG_CNT4K1=A THEN CNT4K1OUT=CNT4K2;ELSE CNT4K1OUT= CARRY;END IF; -将计数值向端口输出 END PROCESS;END behav;7、闹钟模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY show IS PORT( SPKCLK,KIN,COUT_HOUIN,NOWTIME: IN STD_LOGIC; B:IN INTEGER RANGE 0 TO 3; ST_CSEC2,ST_CSEC1,ST_SEC2,ST_SEC1,ST_MIN2,ST_MIN1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); NM_SEC1,NM_SEC2,NM_MIN1,NM_MIN2,NM_HOU1,NM_HOU2: IN STD_LOGIC_VECTOR(3 DOWNTO 0); AL_SEC1,AL_SEC2,AL_MIN1,AL_MIN2,AL_HOU1,AL_HOU2: IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEC1,SEC2,MIN1,MIN2,HOU1,HOU2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SPK:OUT STD_LOGIC); END show;ARCHITECTURE behav OF show ISSIGNAL SIGK: INTEGER RANGE 0 TO 3; -中间信号存储计数器以实现反馈BEGIN PROCESS(KIN)-RST,EN可以省略,CLK上跳沿RST一定被启动 BEGINIF KINEVENT AND KIN=1 THEN -检测时钟上升沿 IF SIGK 3 THEN SIGK= SIGK + 1; ELSE SIGK =0;-大于3计数器清零 END IF; END IF;IF SIGK=2 THEN SEC1=AL_SEC1; SEC2=AL_SEC2; MIN1=AL_MIN1; MIN2=AL_MIN2; HOU1=AL_HOU1; HOU2=AL_HOU2;ELSIF SIGK=3 THEN SEC1=ST_CSEC1; SEC2=ST_CSEC2; MIN1=ST_SEC1; MIN2=ST_SEC2; HOU1=ST_MIN1; HOU2=ST_MIN2;ELSE SEC1=NM_SEC1; SEC2=NM_SEC2; MIN1=NM_MIN1; MIN2=NM_MIN2; HOU1=NM_HOU1; HO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论