版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 RA
3、NGE 0 TO 9; Qsb : OUT INTEGER RANGE 0 TO 5); END clock_60; ARCHITECTURE a OF clock_60 IS BEGIN PROCESS(CLK,CLRN) VARIABLE tmpsa: INTEGER RANGE 0 TO 9; VARIABLE tmpsb: INTEGER RANGE 0 TO 5;,60进制计数器设计(VHDL程序),BEGIN IF CLRN=0 THEN tmpsb := 0; tmpsa := 0; ELSIF CLKevent AND CLK=1 THEN IF EN=1 THEN IF tm
4、psb=5 AND tmpsa=9 THEN tmpSa:=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进制十位输出。,LI
5、BRARY ieee; USE ieee.std_logic_1164.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 IS BEGIN PROCESS(CLK,CLRN) VARIABLE tmpha: INTEGER RANGE 0 TO 9; VARIABLE tmphb:
6、 INTEGER RANGE 0 TO 2;,24进制计数器设计,BEGIN IF CLRN=0 THEN tmphb := 0; tmpha := 0; ELSIF CLKevent AND CLK=1 THEN IF EN=1 THEN IF 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
7、 ; END a;,数字钟实体,数字钟实体,LIBRARY ieee; USE ieee.std_logic_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 IS signal co
8、ut1,cout2,COUT3:STD_LOGIC; BEGIN u60s: PROCESS(CLK,CLRN) VARIABLE tmpsa: INTEGER RANGE 0 TO 9; VARIABLE tmpsb: INTEGER RANGE 0 TO 5; BEGIN IF CLRN=0 THEN tmpsb := 0; tmpsa := 0; ELSIF CLKevent AND CLK=1 THEN IF EN=1 THEN IF tmpsb=5 AND tmpsa=9 THEN tmpSa:=0; tmpSb:=0 ;COUT1=1; ELSIF tmpSa=9 THEN tmp
9、Sa:=0; tmpSb:=tmpSb+1; COUT1=0; ELSE tmpSa:=tmpSa+1;COUT1=0; END IF; 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; BEGIN IF CLRN=0 THEN tmpMb := 0; tmpMa := 0; ELSIF CO
10、UT1event AND COUT1=1 THEN IF EN=1 THEN IF tmpMb=5 AND tmpMa=9 THEN tmpMa:=0; tmpMb:=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: INT
11、EGER RANGE 0 TO 9; VARIABLE tmpHb: INTEGER RANGE 0 TO 2; BEGIN IF CLRN=0 THEN tmpHb := 0; tmpHa := 0; ELSIF COUT2event AND COUT2=1 THEN IF EN=1 THEN IF 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
12、 IF; END IF ; QHA=tmpHa;QHB=tmpHb;COUT=COUT3; END PROCESS u24H; END a;,数字钟时计数器,结构图NO.7:此电路适合于设计时钟、定时器、秒表等。因为可利用键8和键5分别控制时钟的清零和设置时间的使能;利用键7、5和1进行时、分、秒的设置。,原理图设计方法,校时电路设计,状态机状态图,2选1多路选择器vhdl程序,ENTITY mux21a IS PORT( a, b : IN BIT ; k : IN BIT; c : OUT BIT ) ; END ENTITY mux21a ; ARCHITECTURE one OF mu
13、x21a IS BEGIN c = a WHEN k = 1 ELSE b ; END ARCHITECTURE one ;,状态机程序,LIBRARY IEEE; USE IEEE.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 IS TYPE states IS (st0, st1, st2, st3,st4); SI
14、GNAL stx : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN -决定转换状态的进程 IF RESET =1 THEN STX STX STX STX STX STX = st0; END CASE ; END IF; END PROCESS COMREG ;,COM1: PROCESS(STX) BEGIN -输出控制信号的进程 CASE STX IS WHEN st0 = y y y y y=“111 ; END CASE ; END PROCESS COM1 ; END behav;,二、定时闹钟功能电路设计,七段数码管译码器及显示
15、器,K1闭合,显示正常计时时间 K1断开,显示定时器时间,思考:在正常显示时间时,如何使定时器“”键失效,以保证在正常计时时定时时间不被修改?,思考:响铃时间为1秒,如何保证?,数字钟电路设计,将上一讲中的数字钟包装成一个元件,引脚定义如下图所示。,定时器控制电路及定时时间存储电路设计,定时器控制电路及定时时间存储电路VHDL程序,LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY ctrl_memo IS PORT( reset,k1,up_key: IN STD_LOGIC; -k1高电平为调时,低电平为调分 Q_hourb : OUT IN
16、TEGER 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 BEGIN PROCESS(reset,k1,up_key) VARIABLE Q_tmpma: INTEGER RANGE 0 TO 9; VARIABLE Q_tmpmb: INTEGER RANGE 0 TO 5;
17、VARIABLE Q_tmpha: INTEGER RANGE 0 TO 9; VARIABLE Q_tmphb: INTEGER RANGE 0 TO 2;,BEGIN IF reset=0 THEN Q_tmpma:= 0; Q_tmpmb:= 0;Q_tmpha:= 0; Q_tmphb:= 0; ELSIF up_keyevent AND up_key=1 THEN IF k1=1 THEN IF Q_tmphb=2 AND Q_tmpha=3 THEN Q_tmphb:=0; Q_tmpha:=0 ; ELSIF Q_tmpha=9 THEN Q_tmpha:=0; Q_tmphb:
18、=Q_tmphb+1; ELSE Q_tmpha:=Q_tmpha+1; END IF; else IF Q_tmpmb=5 AND Q_tmpma=9 THEN Q_tmpmb:=0; Q_tmpma:=0 ; ELSIF Q_tmpma=9 THEN Q_tmpma:=0; Q_tmpmb:=Q_tmpmb+1; ELSE Q_tmpma:=Q_tmpma+1; END IF; END IF; END IF ; Q_hourb=Q_tmphb; Q_houra=Q_tmpha; Q_minueb=Q_tmpmb; Q_minuea=Q_tmpma; END PROCESS ; END a;
19、,正常计时时间和定时时间输出选择切换电路,正常时间输入,接时钟输出,闹钟时间输入,接闹钟定时输出,K2为高电平时显示正常时间,仿真波形,正常计时时间和定时时间输出选择切换电路 VHDL程序,LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY NOR_ARM_CTL IS PORT( k2: IN STD_LOGIC; QSAI,QMAI,QHAI:IN INTEGER RANGE 0 TO 9; QSBI,QMBI:IN INTEGER RANGE 0 TO 5; QHBI:IN INTEGER RANGE 0 TO 2; QH_ARM_A,QM
20、_ARM_A: IN INTEGER RANGE 0 TO 9; QH_ARM_B: IN INTEGER RANGE 0 TO 2; QM_ARM_B: IN INTEGER RANGE 0 TO 5; Q_HAO,Q_MAO,Q_SAO:OUT INTEGER RANGE 0 TO 9; Q_HBO: OUT INTEGER RANGE 0 TO 2; Q_MBO,Q_SBO : OUT INTEGER RANGE 0 TO 5); END NOR_ARM_CTL;,ARCHITECTURE a OF NOR_ARM_CTL IS BEGIN Q_HAO=QHAI WHEN K2=1 EL
21、SE QH_ARM_A; Q_HBO=QHBI WHEN K2=1 ELSE QH_ARM_B; Q_MAO=QMAI WHEN K2=1 ELSE QM_ARM_A; Q_MBO=QMBI WHEN K2=1 ELSE QM_ARM_B; Q_SAO=QSAI WHEN K2=1 ELSE 0; Q_SBO=QSBI WHEN K2=1 ELSE 0; END a;,仿真波形,正常计时时间和闹铃时间比较器电路 BIJIAOQI.VHD,与门 电路,两时间相等,输出高电平,512Hz周期信号,正常计时时间和闹铃时间比较器电路设计,clk0,speak,QH_A,QH_B,QM_A,QM_B,H
22、ARM_A,HARM_B,MARM_A,MARM_B,Y,正常计时时间和闹铃时间比较器电路VHDL程序,LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY BIJIAOQI IS PORT( CLk0: IN STD_LOGIC; QH_A,QM_A: IN INTEGER RANGE 0 TO 9; QH_B: IN INTEGER RANGE 0 TO 2; QM_B: IN INTEGER RANGE 0 TO 5; HARM_A,MARM_A: IN INTEGER RANGE 0 TO 9; HARM_B: IN INTEGER RAN
23、GE 0 TO 2; MARM_B: IN INTEGER RANGE 0 TO 5; SPEAK: OUT STD_LOGIC); END BIJIAOQI; ARCHITECTURE a OF BIJIAOQI IS SIGNAL Y: STD_LOGIC; BEGIN SPEAK=CLK0 AND Y; Y=1 WHEN (QH_A=HARM_A) AND (QM_A=MARM_A) AND (QH_B=HARM_B) AND (QM_B=MARM_B) ELSE 0; END a;,仿真波形,总电路图,三、校园打铃系统功能电路设计,方案二:地址发生器及外置存储器方式,方案一:直接数据比
24、较方法,方案一:直接数据比较方法,将“时分”并置,得到下列数据:,实现方法: 将数字钟输出的时间(时和分)逐一与上表中的数据进行比较,如果相等,则Q_Y输出高电平,否则输出低电平。,基本数字钟电路,秒脉冲,时输出,分输出,校时,校时功能切换,复位,秒输出,时间比较器(comp_time),J,K,交流电铃,220V,5V,Q_Y,R,3K,高电平:春季 低电平:夏季,K3,Q_HA Q_HB,Q_MA Q_MB,译码及显示,时间比较器的VHDL程序(COMP_TIME.VHD),LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY COMP_TIM
25、E IS PORT( K3: IN STD_LOGIC; Q_HA,Q_MA: IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q_HB: IN STD_LOGIC_VECTOR(1 DOWNTO 0); Q_MB-: IN STD_LOGIC_VECTOR(2 DOWNTO 0); Q_Y: OUT STD_LOGIC); END COMP_TIME; ARCHITECTURE a OF COMP_TIME IS SIGNAL QTIME:STD_LOGIC_VECTOR(12 DOWNTO 0); BEGIN QTIME=Q_HB ,PROCESS(QTIME,K3) B
26、EGIN IF K3=1 THEN CASE QTIME IS WHEN 0001101010000 = Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y=0; END CASE;,ELSE CASE QTIME IS WHEN 0001100000000 = Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y=0; END CASE; END IF; END PROCESS; END a;,关于电铃响铃时间15秒的处理方法:,说明:因为比
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品厂生产操作细则
- (2026版)家庭服务员家政服务员初级理论知识试卷及答案
- 手术室1月院感试卷
- 面向青年学生的潮绣文化科普
- 第五章第三节焊接触电急救方法
- 第二章第三节典型事故案例及原因分析
- 2026江苏宿迁市宿豫区区直单位招聘27人笔试题库附参考答案详解(基础题)
- 2026广东广州市中山大学孙逸仙纪念医院招聘事业单位人员48人(第一批)参考题库【夺冠】附答案详解
- 2026四川宜宾市高县上源水务投资有限责任公司招聘6人模拟试卷【培优】附答案详解
- 2026福建省泉州德化县公办学校招聘编制内新任教师13人(二)参考题库(满分必刷)附答案详解
- 肺结核病例诊疗记录模板
- 外阴硬化性苔藓
- DGTJ08-2240-2017 道路注浆加固技术规程
- 生猪急宰管理办法
- DB11∕T 2387-2024 城市轨道交通工程盾构机吊装技术规程
- 药品技术转移管理制度
- 2021版220kV厂站二次接线标准图纸集
- 夏令营教官业务培训
- T-CROPSSC 009-2023 茎尖菜用甘薯生产技术规程
- 2023学年度高一下学期班主任工作总结
- 绿化苗木主材采购(供货计划、售后服务承诺)
评论
0/150
提交评论