VHDL实验报告自动打铃系统曹刚DOC_第1页
VHDL实验报告自动打铃系统曹刚DOC_第2页
VHDL实验报告自动打铃系统曹刚DOC_第3页
VHDL实验报告自动打铃系统曹刚DOC_第4页
VHDL实验报告自动打铃系统曹刚DOC_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、VHDL实验报告自动打铃系统曹 刚DOC实验13自动打铃系统第二次实验自动打铃系统(14)姓名:曹刚学号: 1228401082班级:班电子信息工程一. 实验目的1、综合运用EDA技术,完成自动打铃系统的设计与操作;2、进一步熟悉EDA技术的开发流程,掌握文件 编辑、编译、仿真、下载验证等环节的实现 方法和应用技巧;3、通过本实践环节,培养科学和严谨的工作作实验要求1.用6个数码管实现时,分、秒的数字显示;2 .能设置当前时间;3 .能实现上、下课打铃及起床铃、熄灯铃功能;4 .能实现整点报时功能,并能控制启动和关闭;5 .能实现调整打铃时间和间歇长短的功能;三. 实验设计说明根据设计要求,可

2、以将自动打铃系统的划分为以 下几个模块:1 .状态机:系统有多种显示模式,设计中将每种 模式当成一种状态,采用用状态机来进行模式切 换,将其作为系统的中心控制模块;2 .计时调时模块:用于完成基本的数字钟功能;3 .打铃时间设定模块:系统中要求打铃时间可调,此部分功能相对独立,单独用一个模块实现;4,打铃长度设定模块:用以设定打铃时间的长短;5 .显示控制模块:根据当前时间和打铃时间等信息决定当前显示的内容;6 .打铃控制模块:用于控制铃声音乐的输出;7 .分频模块、分位模块、七段数码管译码模块等;以上各模块可用下图表示其间的联系o一 实验原理用层次化设计的方法以VHDL语言编程实现以第5页共

3、27页实验is自动打铃系统下功能:【1】具有“时”、“分”、“秒”计时功能;时为 24进制,分和秒都为60进制。【2】 具有消抖功能:手工按下键盘到是否这个过程大概50ms左右,在按下开始到弹簧片稳,定接触这段时间为510ms,从释放到弹 片完全分开也是5-10ms,在达到稳定接触和 完全分开的微观过程中,电平是时高时低 的,因此如果在首次检测到键盘按下时延时 10ms再检测就不会检测到抖动的毛刺电平 了。64Hz的信号周期为15.6ms,正适合做 消抖信号。【3】 具有校时和清零功能,能够用4Hz脉冲对“小时”和“分”进行调整,并可进行秒清零;【4】 具有整点报时功能。在59分51秒、53

4、秒、55秒、57秒发出低音512Hz信号,在59 分59秒发出一次高音1024Hz信号,音响持 续1秒钟,在1024Hz音响结束时刻为整点。5具有一键设定闹铃及正常计时与闹铃时间的显示转换。闹时时间为一分钟。6具有学校的上下课铃,熄灯铃的功能,并且可以控制打铃时间的长短。总体的设计框图如下图自动打铃系统总体设计框图二.实验模块1 .时钟模块设计:时钟模块是学校打铃器最基本的模块,主要实现基本计时、调时、调分功能,包括秒计数模 块、分计数模块、时计数模块。秒计数模块:如图所示为秒计数模块符号图。输入端口clr是秒计数模块的清零信号,也是整个数字中 的使能信号,低电平有效;elk是秒脉冲输入端 口

5、,外接分频模块频率为1Hz的时钟信号;输 出端口 cq030是秒时钟的低位,cql3.0是高位;co端口是进位输出端口,当秒计数到59时 输出高电平,其它时候输出低电平。模块图如图。六十进制带进位计数器,可清 零,当qO计满9后ql增力口 1,当qO满9且ql 记满5, ql、qO同时归零,c。输出为高电平。 ql为十位qO为个位。分计数模块:如图所示为分计数模块符号图。输入端口 clrl 是分计数模块的清零信号,也是整个数字中的使 能信号,低电平有效;clkl是秒脉冲输入端口 端口; cq230是分计时的低位,cq33.0是分计时的高位;cout端口是进位输出端口,接时计 数的clkl作为时

6、钟输入,当秒计数到59时输出 高电平,其它时候输出低电平。minute-clkl coutclri cq2(3.0jcq3(3.Omsti时技术模块:如图所示为时计数模块符号图。输入端口 clr是时计数模块的清零信号,也是整个数字中 的使能信号,低电平有效;elk是秒脉冲输入端 口输出端口; q03.0是分计时的低位,ql3.O 是分计时的高位。此为24进制无进位计数器,当计数信号计到23 后再检测到计数信号时会自动归零。带清零,elk 输入为分秒进位相与的结果。ql为十位,qO为 个位。2 .分频模块设计:晶体振荡器是构成数字时钟的核心,振荡器 的稳定度及频率的精度决定了数字钟计时的准 确程

7、度,它保证了时钟的走时准确及稳定。石英 晶体的选频特性非常好,只有某一频率点的信号 可以通过它,其它频率段的信号均会被它所衰 减,而且振荡信号的频率与振荡电路中的R、C 元件的数值无关。模块图如图所示。由四个分频器构成,输入 信号in_clk为1024Hz脉冲信号。把输入的192Hz信号分频为四个脉冲信号,即1Hz的秒脉冲,4Hz的校时、校分脉冲,64Hz的消 抖脉冲,以及512Hz和1024Hz的蜂鸣器低 音输入。3 .消抖模块设计:由于大部分按键式机械触点,在触点闭合和断开时都会产生抖动,为避免抖动引起的误动作 造成系统的不稳定,就要求消除按键的抖动,确 保按键每按一次只做一次响应。在本设

8、计初期完成后,下载程序测试时,拨动按键或者按下按键时显示出现异常,这就需要 加入按键消抖模块。模块的实现方法是先判断是否有按键按下, 如有按键按下则延时一段时间,待抖动过去之后 再读行线状态,如果仍有低电平行线,则确定有 按键按下,然后产生一个有按键按下的信号。该 模块有一个时钟输入端口,输入时钟信号是分频 出来的64Hz的时钟信号;对sa校时信号、sb 校分信号、sc秒清零信号、sd闹时设置信号进 行防抖动处理。是由四个两级d触发器构成的,分别对输入的sa sb、sc、sd信号的相邻两 个上升沿进行比较以确定按键的按下,从而达到 消抖的目的。模块图如下:xdclk_64 "samj

9、sbsclrscsoo一mml第15页共27页ins! 124 .闹钟模块设计:模块如图所示。一键设定闹铃时间,内部由四个d触发器构成。当确定Sd键按下时,将当 前时间的小时和分的个位十位分别存入四个d 触发器内,作为闹时时间。ml_o 3.0、 mh_o 3. 0 > hl_o 3. 0、hh_o 3. 0分别为闹钟时间的分低位、分高位、时低位和时高位。nh_o|3.0hl_O|3.0mh_o3.0Jmi_o|3.0 sdnh|3.0|- mh(3.O-ml3.Oni|3.o)mt35 .调时模块设计:如图所示为调时模块符号图。本设计的调时模块类似于二选一数据选择器,输入端口 alar

10、m是调时模块的调时开关,当为高电平是输出a的 数据,当为低电平时输出b的数据;a端接上一 个计时模块的进位输出;b端接分频器的输出时 钟脉冲;y为模块的输出,作为计时模块的输入 时钟。由此可知当alarm为低电平时可进行调 时、调分。6 .整点报时和闹钟模块设计:模块图如图所示。在59分51秒、53秒、55秒、57秒给扬声器赋以低音512Hz信号,在 59分59秒给扬声器赋以高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。当 系统时间与闹铃时间相同时给扬声器赋以高音1024Hz信号。闹时时间为一分钟。voicemin1(3.0| q minO(3.O - sec13.0

11、| secO(3.O) -hh3.O hl(3.0l -mh3.O ml3.Ohou0(3.0Jhou1(3.0| m_5l2 in 1024mst87打铃模块设计:如表所示为学校作息时间。学校作息时间上课下课时间共包括18个时间点,将此写入程序 中,当时钟时间与这些时间相同时,输出高电平,与时钟信号相与,作为报警模块的输入。表21学校作息时间4春季作息时间'上课下课上午08:0008:4008:5009:3009:4010:2010:3011:1011:1012:00下午14:0014:4014:5015:3015:4016:2016:3017:10如图所示为打铃模块设计框图。模块包

12、括作息选择和时间比较部分,其设计思路为:将时钟 的时高位、时低位、分高位、分低位分别于表2.1中的打铃时间数据进行比较,若相等,则Q_Y 输出高电平,否则输出低电平。7.显示模块设计:对于本自动打铃系统的设计,必不可少的就 是显示模块的设计,因为根据设计要求,时钟的 计时显示、闹钟的时间设定、蜂鸣器报警时长的 设定,都需要数码管来显示,实际应用的时候, 用实验箱上的数码管显示是最直观的表现。三.实验程序及仿真1 .时钟模块设计:(1)秒计数模块 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;us

13、e ieee.std_logic_arith.all;entity second ISport(clk9clr:in std_logic;co:out std_logic;cqO:out std_logic_vector(3 downto 0);cql:out std_logic_vector(3 downtoO);END second;ARCHITECTURE behave of second isSIGNAL d: std_logic_vector(3 downto 0);SIGNAL g: std_logic_vector(3 downto 0);BEGINprocess(clk,clr

14、,d9g)BEGINif (clr =T) thend<=n0000n;g<=0000n;elsifCclkVENT and clk=T)then if(d=9 and g=5)thencov=T;elseco<=,0,;end if;if(d=9)thend<=f,0000H;if(g=5)theng<=0000n;elseg<=g+l;end if;elsed<=d+l;end if;end if;实验is自动打铃系统end process;cqO<=d;cql<=g;end behave;(2)分计数模块library ieee;us

15、e ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity minute ISport(clkl9clrl:in std_logic;co:out stdjogic;cqO:out std_logic_vector(3 downto 0);cql:out std_logic_vector(3 downto0);END minute;ARCHITECTURE behave of minute isSIGNAL d: std_logic_vector(3 downto 0

16、);SIGNAL g: std_logic_vector(3 downto 0);BEGINprocess(clkl9clrl,d,g)BEGINif (clrl ='l') then d<=n0000n;g<=0000n;elsif(clklfEVENT and clkl=,l,)then if(d=9 and g=5)thenco<=,l,;elseco<=,01;end if;if(d=9)thend<=n0000n;if(g=5)thengv=,000(T;elseg<=g+l;end if;else第16页共27页实验is自动打铃系

17、统d<=d+l;end if;end if;end process;cqO<=d;cql<=g;end behave;波形仿真和秒计时相同。(3)时技术模块:library ieee;use ieee.std_logic_l 164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD LOGIC ARITH.ALL;entity hour ISport(clk39rst39m:in stdjogic;cq4:out std_logic_vector(3 downto 0);cq5:out std_logic_vector(3 do

18、wnto 0);END hour;ARCHITECTURE behave of hour isSIGNAL d: std_logic_vector(3 downto 0);SIGNAL g: std_logic_vector(3 downto 0);BEGINprocess(clk3,rst3,m,d,g)BEGINif (rst3 =T) then<1 v="0000”;g<=n0000M;elsif(clk3 EVENT and clk3=,r)thenif(m=f0f) thenif(d=9 or (d=l and g=l)thend<=n0000M;if(g

19、=l)thengv="0000”;elseg<=g+l;end if;elsed<=d+l;end If;elseif(d=9 or (d=3 and g=2)then d<=n0000M;if(g=2)thengv="0000”;elseg<=g+l;end if;elsed<=d+l;end if;encl if;end if;encl process;cq4<=d;cq5<=g;end behave;波形仿真如下:Nameelkelr0 q。国qlValue at12.23 nsH 1H 0HOH 0280.0 ns 360.

20、0 ns 440.0 ns 520.0 ns 600.0 ns 6;2 .分频模块设计:library ieee;use ieee.std_logic_l 164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD LOGIC ARITH.ALL;entity div Isport(in_clk:in stdjogic;clk_ 1 ,clk_45clk_64,clk_512,clk_1024:out stdjogic);end div;architecture one of div issignal a,b,c,d,e:stdogic;signa

21、l c 1 ,c4,c64,c512,c1024:integer range 8192 downto 0;beginprocess(ln_clk)beginIf ii】_clk'event and in_clk=fr thenif cl024>=7 then c1024<=0;e<=not e;else c1024<=c1024+1;end if;if c512>=15 then c512<=0;d<=not d;else c512<=c512+l;end if;if c64>=127 then c64<=0;c<=no

22、t c;else c64<=c64+l;end if;if c4>=2047 then c4<=0;b<=not b;else c4<=c4+l;end if;if cl>=8191 then cl<=0;a<=not a;else cl<=cl+l;end if;encl if;encl process; clk_l<=a; clk_4<=b; clk_64<=c; clk_512<=d; clk_1024<=e;encl one;波形仿真如下:elkelk 4 clkJ4 clkJ12 in.clk_Ji

23、M u !-m小 i1 ; I'卿唧唧啊咖鲫咖婀咖唧唧.唧删唧蛔删唧喇唧唧唧3 .消抖模块设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD LOGIC ARITH.ALL;entity xd isport(dk_64,sa,sb,sc,m,k2:in stdjogic;hj3nj9sclr,sdo9ml,k2J:out stdjogic);encl xd;architecture one of xd isbeginprocess(clk_64)variable

24、 sa_n,sa_p,sb_n,sb_p,sc_nc_p,m_n5m_p,k2_p,k2_n:stdjogic;beginif clk_64fevent and clk_64=,lt thensa_p:=sa_n;sa_n: =sa;sb_p:=sb_n ;sb_n:=sb;sc_p :=sc_n;sc_n :=sc;m_p:=m_n;m_n:=in;k2_p:=k2_n; k2_n:=k2;if sa_p= sa_n then hj<=sa;end if;if sb_p= sb_n then mj<=sb;end If;if sc_p= sc_n then sclr<=sc

25、;end if;if m_p=m_n then ml<=m;end if;if k2_p=k2_n then k2J<=k2;end if;end if;encl process;encl one;波形仿真如下:ffameValue a17.5 n3 ps 320.0 its 640. 0 ns 960.0 ns 1.28 us1.6 us1* 17.5 nsmoii o I _11J'1_11 ,j_urmsa sb sc sd hjH 0!D2H 0_ua23H 0一删跚H 0MH05H 0J! !36mjH 0J ! ! j H07sclrH 0J28sdoK 0r4

26、 .闹钟模块设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD LOGIC ARITH.ALL;entity nz isport (sd:in stdjogic;hh,hl,mh,ml:in std_logic_vector(3 downto 0);hh_o,hl_o,mh_o,ml_o:out std_logic_vector(3 downto 0);end nz;architecture one of nz isbeginprocess (sd,hhMmh,ml)b

27、eginifsd'EVENT and sd=T thenhh_o<=hh;hl_o<=hl;mh_o<=mh;ml_o<=ml;end if;encl process;end one;波形仿真如下图:5 .调时模块设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD LOGIC ARITH.ALL; entity x21 isport (alarm,a9b:in stdjogic;y:out stdjogic);encl x21;archi

28、tecture one of x21 isbeginprocess(alarm,a,b)beginIf alarm=,0, then y<=a;else y<=b;end if;encl process;end one;波形仿真如下图:6 .整点报时和闹钟模块设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unslgne(l.all;USE IEEE.STD LOGIC ARITH.ALL;entity voice is Vport (ininl9minO,secl9secO,hhJil5inh9mhho

29、uOJioul:in stdjogic_vector(3 downto0);ln_5124n_1024:ln stdjogic;q:out stdjogic);encl voice;architecture one of voice isbeginprocess(min 1 jninO,sec 1 ,secO)beginif minl=,l010r, and min0=,t100rt and secl=M010rf thenif sec0=n000rf or sec0=H0011t, or sec0=H010rf or sec0=''0ni''then q<

30、;=in_512;elsif secl=H0101M and sec0=tt1001t, then q<=ln_1024;else q<=l0t;end if;else q<=f0f;end if;If minl=mh and minO=ml and houl=hh and houO=hl then q<=in_1024;end if;encl process;encl one;20 1I n_93D ta_LOCO 0r»h 国 n)r0 国mnlq Q a«cO 3 mci:T/ :,:二:,工rLrLnjTrmrLrLruTuryri-rmjr

31、njrj:一一2;;;.X_?_; ;。. . .XZZJTT>.三 2 ; 汇.8. .X"T2 ; .;CX4二XZ3波形仿真如下图:30 3, 由10 *15 苗琏WG 3>4 3万 /:' 中”3 S “ IJ / 407 .打铃模块设计:library ieee;use ieee.std_logic_l 164.all;entity comp_time isport( q_ha,q_ma:in std_logic_vector(3 downto 0);q_hb: in stdjogic_vector(3 downto 0);q_mb: in stdjog

32、ic_vector(3 downto 0);Q_Y: out stdjogic);end comp_tinie;architecture a of comp_tlme issignal qtime: std_logic_vector(15 downto 0);beginqtime<=q_hb & q_ha & q_mb & q_ma;process(qtime)begincase qtime is:when “0000100000000000" => Q_Yv='l' when n0000100001000000M => Q_

33、Y<='1'when ”0000100001010000" => Q_Yv=T; when n0000100100110000tl => Q_Y<=T;when ''0000100101000000'' => Q_Y<=fr; when H0000101000100000,f => Q_Y<=T;when H0000101000110000u => Q_Yv=T; when H0000101100010000M => Q_Y<='1'when H00001

34、01100100000H => Q_Yv='l'; when H0000110000000000H => Q_Y<=T;when H0000111000000000H => Q_Yv=T; when M0000111001000000M => Q_Y<=T;when t,0000111001010000,t => Q_Yv=T; when M000011H00110000M => Q_Y<='1'when |,0000111101000000,1 => Q_Y<=,1,; when 110001000000100000M => Q_Y<='1'when ”0001000000110000” => Q_Yv=T; when H0001000100010000fl =>

温馨提示

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

评论

0/150

提交评论