版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VHDL实验报告自动打铃系统曹刚DOC实验 13 自动打铃系统第二次实验自动打铃系统(14)姓名: 曹刚学号: 1228401082班级:12电子信息工程1 实验目的1、综合运用EDA技术,完成自动打铃系统的设计与操作;2、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;3、通过本实践环节,培养科学和严谨的工作作风。2 实验要求1. 用 6个数码管实现时,分、秒的数字显示;2. 能设置当前时间;3. 能实现上、下课打铃及起床铃、熄灯铃功能;4. 能实现整点报时功能,并能控制启动和关闭;5. 能实现调整打铃时间和间歇长短的功能;3 实验设计说明根据设
2、计要求,可以将自动打铃系统的划分为以下几个模块:1 . 状态机: 系统有多种显示模式,设计中将每种模式当成一种状态,采用用状态机来进行模式切换,将其作为系统的中心控制模块;2 . 计时调时模块:用于完成基本的数字钟功能;3 . 打铃时间设定模块:系统中要求打铃时间可调, 此部分功能相对独立,单独用一个模块实现;4 .打铃长度设定模块:用以设定打铃时间的长短;5 .显示控制模块:根据当前时间和打铃时间等信 息决定当前显示的内容;6 .打铃控制模块:用于控制铃声音乐的输出;7 .分频模块、分位模块、七段数码管译码模块等; 以上各模块可用下图表示其间的联系。4 实验原理用层次化设计的方法以 VHDL
3、语言编程实现以下功能:【 1】 具有 “ 时 ” 、 “ 分 ” 、 “ 秒 ” 计时功能;时为24 进制,分和秒都为60 进制。【 2】 具有消抖功能:手工按下键盘到是否这个过程大概50ms 左右,在按下开始到弹簧片稳, 定接触这段时间为5-10ms, 从释放到弹片完全分开也是5-10ms, 在达到稳定接触和完全分开的微观过程中,电平是时高时低的,因此如果在首次检测到键盘按下时延时10ms 再检测就不会检测到抖动的毛刺电平了。64Hz的信号周期为15.6ms,正适合做消抖信号。【 3】 具有校时和清零功能,能够用4Hz 脉冲对“小时 ”和 “分 ”进行调整,并可进行秒清零;【 4】 具有整点
4、报时功能。在59 分 51 秒、 53秒、 55 秒、 57 秒发出低音512Hz 信号,在 59分 59 秒发出一次高音1024Hz 信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。【 5】 具有一键设定闹铃及正常计时与闹铃时间的显示转换。闹时时间为一分钟。【 6】 具有学校的上下课铃,熄灯铃的功能,并且可以控制打铃时间的长短。总体的设计框图如下图自动打铃系统总体设计框图5 实验模块1 .时钟模块设计:时钟模块是学校打铃器最基本的模块,主要 实现基本计时、调时、调分功能,包括秒计数模 块、分计数模块、时计数模块。秒计数模块:如图所示为秒计数模块符号图。输入端口clr是秒计数模块的清零
5、信号,也是整个数字中 的使能信号,低电平有效;clk是秒脉冲输入端 口,外接分频模块频率为1Hz的时钟信号;输出端口 cq03.0是秒时钟的低位,cq13.0是高 第 5 页 共 27 页实验13自动打铃系统位;co端口是进位输出端口,当秒计数到 59时 输出高电平,其它时候输出低电平。模块图如图。六十进制带进位计数器,可清 零,当q0计满9后q1增加1 ,当q0满9且q1 记满5, q1、q0同时归零,co输出为高电平。 q1为十位q0为个位。分计数模块:如图所示为分计数模块符号图。输入端口 clr1 是分计数模块的清零信号,也是整个数字中的使 能信号,低电平有效;clk1是秒脉冲输入端口
6、端口; cq23.0是分计时的低位,cq33.0是分 计时的高位;cout端口是进位输出端口,接时计 数的clk1作为时钟输入,当秒计数到59时输出 高电平,其它时候输出低电平。时技术模块:如图所示为时计数模块符号图。输入端口 clr是时计数模块的清零信号,也是整个数字中 的使能信号,低电平有效;clk是秒脉冲输入端 口输出端口; q03.0是分计时的低位,q13.0 是分计时的高位。此为24进制无进位计数器,当计数信号计到 23 后再检测到计数信号时会自动归零。带清零,clk 输入为分秒进位相与的结果。q1为十位,q0为 个位。hourclk3 cq43.0 -irst3 cq53.0 m
7、inst62 .分频模块设计:晶体振荡器是构成数字时钟的核心,振荡器 的稳定度及频率的精度决定了数字钟计时的准 确程度,它保证了时钟的走时准确及稳定。石英晶体的选频特性非常好,只有某一频率点的信号 可以通过它,其它频率段的信号均会被它所衰 减,而且振荡信号的频率与振荡电路中的R、C元件的数值无关7。模块图如图所示。由四个分频器构成,输入 信号in_clk 为1024Hz脉冲信号。把输入的8192Hz 信号分频为四个脉冲信号,即1Hz的秒脉冲,4Hz的校时、校分脉冲,64Hz的消 抖脉冲,以及512Hz 和1024Hz的蜂鸣器低音输入。 div in_clkclk_1clk_4 clk_64 c
8、lk_512clk_1024inst3 .消抖模块设计:由于大部分按键式机械触点,在触点闭合和 断开时都会产生抖动,为避免抖动引起的误动作 造成系统的不稳定,就要求消除按键的抖动,确 保按键每按一次只做一次响应。在本设计初期完成后,下载程序测试时,拨 动按键或者按下按键时显示出现异常,这就需要 加入按键消抖模块。模块的实现方法是先判断是否有按键按下, 如有按键按下则延时一段时间,待抖动过去之后 再读行线状态,如果仍有低电平行线,则确定有 按键按下,然后产生一个有按键按下的信号。该 模块有一个时钟输入端口,输入时钟信号是分频 出来的64Hz的时钟信号;对sa校时信号、sb 校分信号、sc秒清零信
9、号、sd闹时设置信号进 行防抖动处理。是由四个两级 d触发器构成的,分别对输入的sa、sb、sc、sd信号的相邻两 个上升沿进行比较以确定按键的按下,从而达到 消抖的目的。模块图如下:-xd clk_64hjsamj sbsclrscsdo mml k2k2jinst124 .闹钟模块设计:模块如图所示。一键设定闹铃时间,内部由 四个d触发器构成。当确定sd键按下时,将当 前时间的小时和分的个位十位分别存入四个d触发器内,作为闹时时间。ml_o3.0、 mh_o3.0、hl_o3.0 、hh_o3.0分别为闹 钟时间的分低位、分高位、时低位和时高位。5 .调时模块设计:如图所示为调时模块符号图
10、。本设计的调时 模块类似于二选一数据选择器,输入端口 alarm 是调时模块的调时开关,当为高电平是输出a的 数据,当为低电平时输出b的数据;a端接上一 个计时模块的进位输出;b端接分频器的输出时钟脉冲;y为模块的输出,作为计时模块的输入 时钟。由此可知当 alarm为低电平时可进行调 时、调分。6 .整点报时和闹钟模块设计:模块图如图所示。在59分51秒、53秒、55秒、57秒给扬声器赋以低音 512Hz信号,在 59分59秒给扬声器赋以高音1024Hz信号,音响 持续1秒钟,在1024Hz音响结束时刻为整点。当 系统时间与闹铃时间相同时给扬声器赋以高音 1024Hz信号。闹时时间为一分钟。
11、如表所示为学校作息时间。学校作息时间上 课下课时间共包括18个时间点,将此写入程序 中)当时钟时间与这些时间相同时)输出高电平,与时钟信号相与,作为报警模块的输入 表2-1学校作息时间曜春季作息时间 、上课下课上午08:0008:4008:5009:3009:4010:2010:3011:1011:1012:00下午14:0014:4014:5015:3015:4016:2016:3017:10如图所示为打铃模块设计框图。模块包括作 息选择和时间比较部分,其设计思路为:将时钟 的时高位、时低位、分高位、分低位分别于表2.1中的打铃时间数据进行比较,若相等,则Q_Y 输出高电平,否则输出低电平。
12、COMP_TIMEQ_Y-Q_HA3.0一1 Q_MA3.0一1 Q_HB3.0 -i Q_MB3.0inst77.显示模块设计:第11页共27页实验 13 自动打铃系统对于本自动打铃系统的设计,必不可少的就是显示模块的设计,因为根据设计要求,时钟的计时显示、闹钟的时间设定、蜂鸣器报警时长的设定,都需要数码管来显示,实际应用的时候,用实验箱上的数码管显示是最直观的表现。六 实验程序及仿真1.时钟模块设计:( 1)秒计数模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_l
13、ogic_arith.all;entity second ISport(clk,clr:in std_logic;co:out std_logic;cq0:out std_logic_vector(3 downto 0);cq1:out std_logic_vector(3 downto0);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,d,g)BEGINif
14、 (clr =1) thend =0000;g =0000;elsif(clkEVENT and clk=1)thenif(d=9 and g=5)thenco=1;elseco=0;end if;if(d=9)thend=0000;if(g=5)theng=0000;elseg=g+1;end if;elsed=d+1;end if;end if;第 13 页 共 27 页实验 13 自动打铃系统end process;cq0=d;cq1=g;end behave;波形仿真:Vdn 0t11. 13 砧H 0X 0X 0X 0H 0户一2电 23_平好23平g为邛曲殓平,nrLnrmrLnr
15、LrLnnnjTrLjmrLrLjrrLnnrLrD(D(DDCDtmXiXDEI(EI(DCZlZZ3(E$X 一 一一口厂厂,(2)分计数模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity minute ISport(clk1,clr1:in std_logic;co:out std_logic;cq0:out std_logic_vector(3 downto 0);cq1:out std_logic_vector(3
16、downto0);END minute;ARCHITECTURE behave of minute isSIGNAL d: std_logic_vector(3 downto 0);SIGNAL g: std_logic_vector(3 downto 0);BEGINprocess(clk1,clr1,d,g)BEGINif (clr1 =1) thend =0000;g =0000;elsif(clk1EVENT and clk1=1)thenif(d=9 and g=5)thenco=1;elseco=0;end if;if(d=9)thend=0000;if(g=5)theng=000
17、0;elseg=g+1;end if;elsed=d+1;end if;end if;end process;cq0=d;cq1=g;end behave;波形仿真和秒计时相同。(3)时技术模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD_LOGIC_ARITH.ALL;entity hour ISport(clk3,rst3,m:in std_logic;cq4:out std_logic_vector(3 downto 0);cq5:out std_logic_v
18、ector(3 downto 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 =1) thend =0000;g =0000;elsif(clk3EVENT and clk3=1)thenif(m=0) thenif(d=9 or (d=1 and g=1)thend=0000;if(g=1)theng=0000;els
19、eg=g+1;end if;else第 17 页 共 27 页实验13自动打铃系统d=d+1;end if;elseif(d=9 or (d=3 and g=2)then d=0000;if(g=2)theng=0000;elseg=g+1;end if;elsed=d+1;end if;end if;end if;end process;cq4=d;cq5=7 then c1024=0;e=not e;else c1024=15 then c512=0;d=not d;else c512=127 then c64=0;c=not c;else c64=2047 then c4=0;b=not
20、 b;else c4=8191 then c1=0;a=not a;else c1=c1+1;end if;end if;end process;clk_1=a;clk_4=b;clk_64=c;clk_512=d;clk_1024=e;end one;波形仿真如下:clk_lelk 4 clk_S4 clk_519 in_clk3 .消抖模块设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD_LOGIC_ARITH.ALL;entity xd isport(clk_6
21、4,sa,sb,sc,m,k2:in std_logic;hj,mj,sclr,sdo,ml,k2j:out std_logic);end xd;architecture one of xd isbeginprocess(clk_64)variable sa_n,sa_p,sb_n,sb_p,sc_n,sc_p,m_n,m_p,k2_p,k2_n:std_logic; beginif clk_64event and clk_64=1 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:=m;k
22、2_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;end if;if m_p=m_n then ml=m;end if;if k2_p=k2_n then k2j=k2;end if;end if;end process;end one;波形仿真如下:4 .闹钟模块设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;USE IE
23、EE.STD_LOGIC_ARITH.ALL;entity nz isport (sd:in std_logic;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,hh,hl,mh,ml)beginif sdEVENT and sd=1 thenhh_o=hh;hl_o=hl;mh_o=mh;ml_o=ml;end if;end process;end o
24、ne;波形仿真如下图:5 .调时模块设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD_LOGIC_ARITH.ALL; entity x21 is port (alarm,a,b:in std_logic;y:out std_logic);end x21;architecture one of x21 isbeginprocess(alarm,a,b) beginif alarm=0 then y=a;else y=b;end if;end process;end o
25、ne;波形仿真如下图:6 .整点报时和闹钟模块设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD_LOGIC_ARITH.ALL;entity voice isport (min1,min0,sec1,sec0,hh,hl,mh,ml,hou0,hou1:in std_logic_vector(3 downto0);in_512,in_1024:in std_logic;q:out std_logic);end voice;architecture one of voi
26、ce isbeginprocess(min1,min0,sec1,sec0)beginif min1=0101 and min0=1001 and sec1=0101 thenif sec0=0001 or sec0=0011 or sec0=0101 or sec0=0111then q=in_512;elsif sec1=0101 and sec0=1001 then q=in_1024;else q=0;end if;else q=0;end if;if min1=mh and min0=ml and hou1=hh and hou0=hl then q hh 12L Ji e WJ 0
27、 a. HJU.0 nt 9&J 2j可国可9M IM CH cM TW SM rX工nnnnnnnnnirLTuinnL9: :L 2t 17的* - h3 nurO国| n-3 nL49 “RO x 口7 .打铃模块设计:library ieee;use ieee.std_logic_1164.all;entity comp_time isport( q_ha,q_ma:in std_logic_vector(3 downto 0);q_hb: in std_logic_vector(3 downto 0);q_mb: in std_logic_vector(3 downto 0);Q_Y
28、: out std_logic);end comp time;architecture a of comp_time issignal qtime: std_logic_vector(15 downto 0);beginqtime 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 process;end a;7. 引脚映射本次设计我们采用GW48 EDA实验箱,选 择芯片EP1K30TC144-3 ,选择模式0,引脚锁 定如下表所示:NodePin1CLK562sa303sb314sc325P336m367clr378sec03679sec026510se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中学体卫处工作制度
- 乡教育管理工作制度
- 五老理事会工作制度
- 办公室上墙工作制度
- 办税服务厅工作制度
- 劳动关系股工作制度
- 区信息报送工作制度
- 医务科相关工作制度
- 医疗急救站工作制度
- 医联体建设工作制度
- 2026吉林省职工服务有限责任公司(拟成立) 招聘10人备考题库及一套答案详解
- 浙江四校(含精诚联盟)2025-2026学年高二下学期3月阶段检测历史+答案
- 2026广东珠海高新技术产业开发区党政办公室招聘合同制职员2人考试参考试题及答案解析
- 重庆市康德2026届高三高考模拟调研卷(三)地理试卷(含答案详解)
- 人形机器人与具身智能标准体系2026版类脑与智算专项全文解读
- 2026年辽宁医药职业学院单招职业技能考试题库与答案详解
- (一模)2026年深圳市高三年级第一次调研考试数学试卷(含官方答案及解析)
- 旋挖桩全护筒跟进施工方案
- 2026年叉车常规培训考试题库附答案
- 2026年部编版新教材道德与法治二年级下册全册教案(含教学计划)
- 婴幼儿发展引导员技能竞赛考试题库(含答案)
评论
0/150
提交评论