《根据FPGA的自动打铃系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《根据FPGA的自动打铃系统的设计与实现.docx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、根据FPGA的自动打铃系统的设计与实现当前位置:文档视界根据FPGA的自动打铃系统的设计与实现根据FPGA的自动打铃系统的设计与实现目录一、题目及要求简介(1)1.设计题目(1)2.总体要求简介(1)二、设计方案讲明(1)三、各部分功能介绍及程序(2)1.系统框图(2)2.选择的FPGA芯片及配置(2)3.各模块元件讲明(2)四、仿真结果(4)1.计时进位(4)2.手动校时(5)3.六点整闹铃(5)五、讲明(5)1.输入鼓励信号讲明(5)2.输出结果讲明(6)六、源程序(6)1.顶层模块(6)2.形式控制子模块(7)3.计时及调整子模块(8)4.闹铃及调整子模块(10)5.显示子模块(11)七
2、、参考文献(14)一、设计题目及要求简介1.设计题目基于FPGA的自动打铃系统的设计与实现2.总体要求简介1基本计时和显示功能24小时制显示动态扫描显示显示格式:88-88-882能设置当前时间(含时、分)3能实现基本打铃功能,上午06:00起床铃,打铃5秒二、设计方案讲明本系统采用自顶向下的模块化设计方法,将数字闹钟根据功能实现分为形式控制模块、计时及调整模块、闹铃及调整模块、显示模块。系统调整部分软件控制流程示意图如图2-1所示。图2-1开场mode计时功能turnchange闹铃功能调整小时调整分钟返回计时LD_hour亮LD_min亮校时功能调整小时调整分钟返回计时LD_alert亮?
3、切换切换012三、各部分功能介绍及程序1.系统框图顶层电路主要由FPGA实现,输出信号接到八位数码管、LED指示灯及扬声器上,系统框图如图3-1所示。图3-12.选择的FPGA芯片及配置本系统选择ACEX1K系列的EP1K10TC100-3芯片,由于FPGA器件是基于SRAM构造的,具有易失性,在此采用被动串行配置(PS)方式,由外部的计算机控制配置经过,使用USB-Blaster下载电缆下载程序。3.各模块元件讲明3.1顶层文件端口讲明modulealarmclock(clk,clk_1k,mode,change,turn,sel,decodeout,alert,LD_alert,LD_ho
4、ur,LD_min);inputclk,clk_1k,mode,change,turn;outputalert,LD_alert,LD_hour,LD_min;output2:0sel;output7:0decodeout;reg7:0hour,min,sec,hour1,min1,sec1,ahour,amin;reg1:0m,fm,num1,num2,num3,num4;reg1:0loop1,loop2,loop3,loop4,sound;regLD_alert,LD_hour,LD_min;regclk_1HZ,clk_2HZ,minclk,hclk;regalert1,ear;reg
5、count1,count2,counta,countb;wirect1,ct2,cta,ctb,m_clk,h_clk;reg2:0sel;reg7:0decodeout;3.2顶层文件引脚映射讲明输入引脚5个,输出引脚15个,映射关系如图3-2所示。图3-23.23各子模块讲明形式控制子模块此模块通过mode信号0、1、2三种状态的控制,使系统分别在计时、闹铃、校时三种形式下工作。计时及调整子模块当mode信号为0时,在基准时钟信号clk下,系统按60进制加1计时;当mode信号为2时,若检测到turn信号的脉冲时,在校对小时和分钟之间作切换,当前的调整状态可通过LD_hour或LD_min
6、指示灯查看,change信号每来一个脉冲,计数器加1,这样能够将系统当前的时间调到任意时刻。闹铃及调整子模块此模块下,mode信号为2,当检测到turn信号的脉冲时,闹铃定时在小时和分钟之间作切换,当前的调整状态可通过LD_hour或LD_min指示灯查看,change信号每来一个脉冲,计数器加1,这样能够给系统设置任意时刻的闹铃,设置完成之后LD_alert指示灯会常亮注:此模块程序中已经参加了六点整闹铃控制语句。显示子模块此模块用于将实时时间包括调整经过中时钟的状态输出到八位数码管中,通过sel信号位选的控制动态扫描显示当前时钟。四、仿真结果1.计时进位以23:59:59为例当秒计时满59
7、时,向分钟进位并重新开场计时;当分钟计时满59时,向小时进位并重新开场计时;当小时计时满23时,清零并重新开场计时,23:59:59时刻后从00:00:00重新开场计时,仿真波形如图4-1所示。图4-12.手动校时以06:05为例给mode输入2个连续的高脉冲使系统进入校时形式,再给change输入6个连续高脉冲使小时调到六点,此经过中LD_hour指示灯亮,再给turn一个高脉冲切换到调分钟状态,再给change输入5个连续高脉冲使小时调到五分钟,此经过中LD_min指示灯亮,再给mode一个高脉冲回到计时形式,此后系统从06:05分开场计时,仿真波形如图4-2所示。图4-23.六点整闹铃闹
8、铃指示灯LD_alert常亮表明已经设置闹铃,06:00开场闹铃5秒,仿真波形如图4-3所示。图4-3五、讲明1.输入鼓励信号讲明clk:标准时钟信号;clk_1k:数码管扫描时钟;mode:功能形式控制信号,为0:计时功能;为1:闹铃功能;为2:校时功能;turn:接按键,在手动校时功能时,选择调整小时/分钟;change:接按键,手动调整时,每按一次,计数器加1;2.输出结果讲明alert:输出到扬声器的信号,用于产生闹铃声;sel:数码管位选信号,选择当前要显示的位置;decodeout:数码管段选信号,显示当前数字;LD_alert:接LED,灯亮表示设置了闹铃;LD_hour:接LE
9、D,灯亮表示正在调整小时;LD_min:接LED,灯亮表示正在调整分钟。六、源程序1、顶层电路模块modulealarmclock(clk,clk_1k,mode,change,turn,sel,decodeout,alert,LD_alert,LD_hour,LD_min);inputclk,clk_1k,mode,change,turn;outputalert,LD_alert,LD_hour,LD_min;output2:0sel;output7:0decodeout;reg7:0hour,min,sec,hour1,min1,sec1,ahour,amin;reg1:0m,fm,num
10、1,num2,num3,num4;reg1:0loop1,loop2,loop3,loop4,sound;regLD_alert,LD_hour,LD_min;regclk_1HZ,clk_2HZ,minclk,hclk;regalert1,ear;regcount1,count2,counta,countb;wirect1,ct2,cta,ctb,m_clk,h_clk;reg2:0sel;reg7:0decodeout;/调用子模块modecontrolmodecontrol(mode,change,turn,m,count1,count2,counta,countb);timertime
11、r(m,clk,count1,counta,turn,hour1,min1,sec1);bellbell(clk,ear,ct2,ctb,alert1,hour1,min1,sec1,ahour,amin);displaydisplay(m,hour1,min1,sec1,ahour,amin,sel,decodeout);endmodule2.形式控制子模块modulemodecontrol(mode,change,turn,m,count1,count2,counta,countb);inputmode,change,turn;outputm,count1,count2,counta,countb;regcount1,count2,counta,countb;regLD_hour,LD_min;regfm,m;always(posedgemode)/控制系统在三种功能间转换beginif(m=2)m当前位置:文档视界根据FPGA的自动打铃系统的设计与实现根据FPGA的自动打铃系统的设计与实现当前位置:文档视界根据FPGA的自动打铃系统的设计与实现根据FPGA的自动打铃系统的设计与实现