《专题一:数字钟及校园打铃系统设计》由会员分享,可在线阅读,更多相关《专题一:数字钟及校园打铃系统设计(47页珍藏版)》请在金锄头文库上搜索。
1、专题二:数字钟及校园打铃系统设计,一、教学内容:数字钟设计二、教学目的及要求:1、掌握VHDL语言的基本结构及编程思想。2、掌握VHDL语言的软件仿真方法。3、掌握VHDL语言的下载及硬件仿真方法。4、提高综合应用能力。 三、授课课时:6课时四、教学重点、难点:数字钟VHDL语言设计,数字钟及校园打铃系统设计,设计目标:1、基本的数字钟计时功能、校时功能;2、定时闹钟功能;可以任意设定闹钟时间,闹铃时间为1分钟。3、校园打铃功能;(1)正常教学打铃:分夏季作息时间和春季作息时间打铃,响铃时间20秒。两季作息时间通过开关切换。(2)考试时间打铃,响铃时间20秒。(3)正常教学打铃和考试打铃通过开
2、关切换。,一、基本的数字钟计时功能、校时功能电路设计,1、基本计时功能电路设计,60进制计数器元件外部引脚功能图,说明:1、EN1时,正常计数,0时,停止计数。2、CLRN0时,复位清零,1时,正常计数。3、CLK时钟信号,上升沿触发。4、QSA:60进制个位输出;QSB:60进制十位输出。,LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY clock_60 IS PORT( CLRN,EN,CLK: IN STD_LOGIC;cout1: out STD_LOGIC;Qsa : OUT INTEGER RANGE 0 TO 9;Qsb : O
3、UT INTEGER RANGE 0 TO 5); END clock_60; ARCHITECTURE a OF clock_60 ISBEGINPROCESS(CLK,CLRN)VARIABLE tmpsa: INTEGER RANGE 0 TO 9;VARIABLE tmpsb: INTEGER RANGE 0 TO 5;,60进制计数器设计(VHDL程序),BEGINIF CLRN=0 THEN tmpsb := 0; tmpsa := 0;ELSIF CLKevent AND CLK=1 THENIF EN=1 THENIF tmpsb=5 AND tmpsa=9 THEN tmpS
4、a:=0; tmpSb:=0 ;COUT1=1;ELSIF tmpSa=9 THEN tmpSa:=0; tmpSb:=tmpSb+1; ELSE tmpSa:=tmpSa+1;END IF;END IF;END IF ;QSA=tmpsa;QSB=tmpsb;END PROCESS ; END a;,24进制计数器设计元件外部引脚功能图:,说明:1、EN1时,正常计数,0时,停止计数。2、CLRN0时,复位清零,1时,正常计数。3、CLK时钟信号,上升沿触发。4、QHA:24进制个位输出;QHB:24进制十位输出。,LIBRARY ieee; USE ieee.std_logic_1164.
5、all; ENTITY clock_24 IS PORT( CLRN,EN,CLK: IN STD_LOGIC;cout: out STD_LOGIC;Qha : OUT INTEGER RANGE 0 TO 9;Qhb : OUT INTEGER RANGE 0 TO 2); END clock_24; ARCHITECTURE a OF clock_24 ISBEGINPROCESS(CLK,CLRN)VARIABLE tmpha: INTEGER RANGE 0 TO 9;VARIABLE tmphb: INTEGER RANGE 0 TO 2;,24进制计数器设计,BEGINIF CL
6、RN=0 THEN tmphb := 0; tmpha := 0;ELSIF CLKevent AND CLK=1 THENIF EN=1 THENIF tmphb=2 AND tmpha=3 THEN tmpha:=0; tmphb:=0 ;COUT=1;ELSIF tmpha=9 THEN tmpha:=0; tmphb:=tmphb+1; ELSE tmpha:=tmpha+1;END IF;END IF;END IF ;QHA=tmpha;QHB=tmphb;END PROCESS ; END a;,数字钟实体,数字钟实体,LIBRARY ieee; USE ieee.std_logi
7、c_1164.all; ENTITY clock_v IS PORT( EN,CLK,CLRN : IN STD_LOGIC;QSa,QMa,QHa : OUT INTEGER RANGE 0 TO 9;QSb,QMb : OUT INTEGER RANGE 0 TO 5;QHb : OUT INTEGER RANGE 0 TO 2 ;cout: out std_logic ); END clock_v;,ARCHITECTURE a OF clock_v ISsignal cout1,cout2,COUT3:STD_LOGIC; BEGIN u60s: PROCESS(CLK,CLRN)VA
8、RIABLE tmpsa: INTEGER RANGE 0 TO 9;VARIABLE tmpsb: INTEGER RANGE 0 TO 5;BEGINIF CLRN=0 THEN tmpsb := 0; tmpsa := 0;ELSIF CLKevent AND CLK=1 THENIF EN=1 THENIF tmpsb=5 AND tmpsa=9 THEN tmpSa:=0; tmpSb:=0 ;COUT1=1;ELSIF tmpSa=9 THEN tmpSa:=0; tmpSb:=tmpSb+1; COUT1=0; ELSE tmpSa:=tmpSa+1;COUT1=0;END IF
9、;END IF;END IF ;QSA=tmpsa;QSB=tmpsb;END PROCESS u60s;,数字钟VHDL程序的结构体部分,接下页,u60M: PROCESS(cout1,CLRN)VARIABLE tmpMa: INTEGER RANGE 0 TO 9;VARIABLE tmpMb: INTEGER RANGE 0 TO 5;BEGINIF CLRN=0 THEN tmpMb := 0; tmpMa := 0;ELSIF COUT1event AND COUT1=1 THENIF EN=1 THENIF tmpMb=5 AND tmpMa=9 THEN tmpMa:=0; t
10、mpMb:=0 ;COUT2=1;ELSIF tmpMa=9 THEN tmpMa:=0; tmpMb:=tmpMb+1; COUT2=0; ELSE tmpMa:=tmpMa+1;COUT2=0;END IF;END IF;END IF ;QMA=tmpMa;QMB=tmpMb;END PROCESS u60M;,数字钟分计数器,接下页,u24H: PROCESS(COUT2,CLRN)VARIABLE tmpHa: INTEGER RANGE 0 TO 9;VARIABLE tmpHb: INTEGER RANGE 0 TO 2;BEGINIF CLRN=0 THEN tmpHb := 0
11、; tmpHa := 0;ELSIF COUT2event AND COUT2=1 THENIF EN=1 THENIF tmpHb=2 AND tmpHa=3 THEN tmpHa:=0; tmpHb:=0 ;COUT3=1;ELSIF tmpHa=9 THEN tmpHa:=0; tmpHb:=tmpHb+1; COUT3=0; ELSE tmpHa:=tmpHa+1;COUT3=0;END IF;END IF;END IF ;QHA=tmpHa;QHB=tmpHb;COUT=COUT3;END PROCESS u24H; END a;,数字钟时计数器,结构图NO.7:此电路适合于设计时钟
12、、定时器、秒表等。因为可利用键8和键5分别控制时钟的清零和设置时间的使能;利用键7、5和1进行时、分、秒的设置。,原理图设计方法,带校时电路的数字钟电路设计,状态机状态图,2选1多路选择器vhdl程序,ENTITY mux21a ISPORT( a, b : IN BIT ; k : IN BIT;c : OUT BIT ) ; END ENTITY mux21a ;ARCHITECTURE one OF mux21a ISBEGINc = a WHEN k = 1 ELSEb ; END ARCHITECTURE one ;,状 态 机 程 序,LIBRARY IEEE; USE IEEE.
13、STD_LOGIC_1164.ALL; ENTITY zhuantaiji IS PORT ( CLK 0,reset: IN STD_LOGIC; y : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); END zhuantaiji; ARCHITECTURE behav OF zhuantaiji ISTYPE states IS (st0, st1, st2, st3,st4); SIGNAL stx : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN -决定转换状态的进程IF RESET =1 THENSTX STX
14、 STX STX STX STX y y y y Q=“111“ ; END CASE ;END PROCESS COM1 ;END behav;,二、定时闹钟功能电路设计,七段数码管译码器及显示器,K1闭合,显示正常计时时间 K1断开,显示定时器时间,思考:在正常显示时间时,如何使定时器“”键失效,以保证在正常计时时定时时间不被修改?,思考:响铃时间为1秒,如何保证?,数字钟电路设计,将上一讲中的数字钟包装成一个元件,引脚定义如下图所示。,定时器控制电路及定时时间存储电路设计,定时器控制电路及定时时间存储电路VHDL程序,LIBRARY ieee; USE ieee.std_logic_11
15、64.all; ENTITY ctrl_memo IS PORT( reset,k1,up_key: IN STD_LOGIC; -k1高电平为调时,低电平为调分Q_hourb : OUT INTEGER RANGE 0 TO 2;-“时”高位Q_houra : OUT INTEGER RANGE 0 TO 9;-“时”低位Q_minueb : OUT INTEGER RANGE 0 TO 5;Q_minuea : OUT INTEGER RANGE 0 TO 9); END ctrl_memo; ARCHITECTURE a OF ctrl_memo IS BEGINPROCESS(reset,k1,up_key)VARIABLE Q_tmpma: INTEGER RANGE 0 TO 9;VARIABLE Q_tmpmb: INTEGER RANGE 0 TO 5;VARIABLE Q_tmpha: INTEGER RANGE 0 TO 9;VARIABLE Q_tmphb: INTEGER RANGE 0 TO 2;,