校园智能打铃系统的设计_第1页
校园智能打铃系统的设计_第2页
校园智能打铃系统的设计_第3页
校园智能打铃系统的设计_第4页
校园智能打铃系统的设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、题目:校园智能打铃系统的设计一、大作业摘要 本设计利用本设计利用AlteraAltera公司的开发软件公司的开发软件Quartus IIQuartus II平台,采用平台,采用VerilogVerilog硬件描述语言编程的设计硬件描述语言编程的设计方法,设计系统核心电路的硬件程序,在方法,设计系统核心电路的硬件程序,在Quartus IIQuartus II软件平台上进行编译和电路仿真,软件平台上进行编译和电路仿真,最后生成的目标文件下载到实验台内的最后生成的目标文件下载到实验台内的FPGAFPGA芯芯片以实现该系统,并在实验台上对设计进行了片以实现该系统,并在实验台上对设计进行了验证。最终实

2、现控制校园按时打铃,分为上下验证。最终实现控制校园按时打铃,分为上下午上课下课铃声,带有午休时间。午上课下课铃声,带有午休时间。二、设计的背景、目的和意义 背景背景:现代电子设计技术的核心是:现代电子设计技术的核心是EDA(Electronic Design Automation)EDA(Electronic Design Automation)技术,即技术,即电子设计自动化。它是现代电子信息工程领域中电子设计自动化。它是现代电子信息工程领域中的一门新技术,提供了一种基于计算机和信息技的一门新技术,提供了一种基于计算机和信息技术为一体的电子系统设计方法。它的发展和推广术为一体的电子系统设计方法

3、。它的发展和推广极大地推动了电子工业的发展,并成为极大地推动了电子工业的发展,并成为电子工电子工业中不可缺少的一项主要技术。该技术的业中不可缺少的一项主要技术。该技术的系统逻辑描述主要表达方式为硬件描述语系统逻辑描述主要表达方式为硬件描述语言,设计载体为大规模可编程逻辑器件,言,设计载体为大规模可编程逻辑器件,设计工具为可编程逻辑器件实验开发系设计工具为可编程逻辑器件实验开发系统和计算机,通过相关开发软件,自动统和计算机,通过相关开发软件,自动完成电完成电 子系统的设计,最终形成集成子系统的设计,最终形成集成电子系统或专用集成芯片电子系统或专用集成芯片 。经过一学期经过一学期VerilogVe

4、rilog语言的学习,为了加语言的学习,为了加深对这门语言的理解与应用,通过几个深对这门语言的理解与应用,通过几个星期的课程设计,利用自己所学的知识星期的课程设计,利用自己所学的知识和各种相关文献的查询,选择了校园智和各种相关文献的查询,选择了校园智能打铃系统的设计,写出相应的程序后能打铃系统的设计,写出相应的程序后,利用,利用QuartusQuartus进行调试、仿真,发现并进行调试、仿真,发现并改正错误,并记仿真成功后的功能仿真改正错误,并记仿真成功后的功能仿真图和时序仿真图。图和时序仿真图。三、设计任务及要求在早晨8点电源自动开启,并打铃进行上课,上课时间设定为50分钟,打铃下课,下课时

5、间为10分钟,打铃进行第二节课 ,如此反复,11点50下课,进行午休,午休时间为100分钟,13点30进行下午的课程,直至17点20下课放学 ,电源自动关闭,内部自动计时,第二天8点自动开启。四、确定输入和输出变量 输入变量输入变量clk ,reset ,is_en 输出变量ring ,smg_out,smg_en五、确定输入状态 程序开始时内部计时显示在共阳数码管上,程序开始时内部计时显示在共阳数码管上, 初始状态初始状态 : 8点开始计时打铃。点开始计时打铃。 打铃下课打铃下课 午休午休 17点点20放学电源关闭放学电源关闭七、输入和输出变量对应部件说明 输入变量:输入变量:clk : 总

6、时钟信号reset : 复位信号is_en : 手动暂停, 输出变量:输出变量:ring 响铃信号smg_out; 数码管显示时间smg_en; 数码管的使能信号八、方案论证 方案1:基于Verilog HDL原理实现 方案2:基于单片机原理实现 确定选择方案1,理由是对单片机不了解,基于方案一便于在电脑和试验箱上进行验证,故选择方案一九、状态机设计(状态转换图)stage1:电源开启 stage2:打铃上课 stage3:打铃下课stage4:打铃午休 stage5:电源关闭 十、状态机设计(状态编码)module ring(clk,reset,is_en,smg_out,smg_en,ri

7、ng);/4位共阳数码管input clk; /总时钟信号input reset; /复位信号input is_en; /手动暂停,0-暂停计时,1-计时output ring; /响铃信号,响铃时为0,不响时为1output 7:0smg_out; /数码管的8个段码output 3:0smg_en; /数码管的使能信号parameter t1ms=50000; /计时1ms,50Mhz时钟下,(1/50M乘上t1ms=0.001)parameter t1s=100; /计时300ms,50Mhz时钟下 parameter smg_en1=4b0111; /使能数码管1parameter s

8、mg_en2=4b1011; /使能数码管1parameter smg_en3=4b1101; /使能数码管1parameter smg_en4=4b1110; /使能数码管1parameter smg_xiaoying=4b1111; /让数码管消影reg 7:0smg_data9:0; /将4位1转换成数码管的8位1.initialbeginsmg_data0=8h03; /数码管的编码,对应数字0-9smg_data1=8h9f;smg_data2=8h25;smg_data3=8h0d;smg_data4=8h99;smg_data5=8h49;smg_data6=8h41;smg_d

9、ata7=8h1f;smg_data8=8h01;smg_data9=8h09;endreg 15:0 count_1ms; /1ms计时always(posedge clk or negedge reset)beginif(!reset)count_1ms=0;elseif(is_en&count_1ms=t1ms)count_1ms=0;elseif(is_en)count_1ms=count_1ms+1b1;elseif(!is_en)count_1ms=0;endreg 9:0count_1s;reg clk_ge; /300ms计时always(posedge clk or

10、negedge reset)begin if(!reset)begincount_1s=0;clk_ge=0;endelseif(is_en&count_1s=t1s)begincount_1s=0;clk_ge=1;endelseif(is_en&count_1ms=t1ms)begincount_1s=count_1s+1b1;clk_ge=0;endelseif(!is_en)begincount_1s=0;clk_ge=0;endendreg 3:0ge;reg clk_shi; /计时器的个位显示always(posedge clk_ge or negedge res

11、et)beginif(!reset)beginge=0;clk_shi=0;endelseif(ge=4d9)beginge=0;clk_shi=1;endelsebeginge=ge+1b1;clk_shi=0;endendreg 2:0shi; /计时器的十位显示reg clk_bai;always(posedge clk_shi or negedge reset)beginif(!reset)beginshi=0;clk_bai=0;endcelseif(shi=3d5)beginshi=0;clk_bai=1;endelsebeginclk_bai=0;shi=shi+1b1;ende

12、ndreg 3:0bai; /计时器的百位显示reg clk_qian;always(posedge clk_bai or negedge reset)beginif(!reset)beginbai=4d8;clk_qian=0;endelseif(bai=4d9)beginbai=0;clk_qian=1;endelsebeginclk_qian=0;bai=bai+1b1;endendreg qian; /计时器的千位显示always(posedge clk_qian or negedge reset)beginif(!reset)qian=0;elseif(qian=1b1)beginq

13、ian=0;endelsebeginqian=qian+1b1;endendreg 7:0r_smg_out; /数码管显示程序reg 3:0i;reg 3:0rsmg_en;reg 9:0count;reg is_en2;always(posedge clk or negedge reset)beginif(!reset)count=0;elseif(is_en2)count=count+1b1;elsecount=0;endalways(posedge clk or negedge reset)beginif(!reset)beginrsmg_en=4hf;r_smg_out=8hff;i

14、=0;is_en2=0;endelse case(i) /每一个数码管的扫描都分为4步,1.消影,2.输出数据位,3.使能对应的数码管,4.延迟,消影 4d0:begin rsmg_en=smg_xiaoying;i=i+1b1;end 4d1:if(count=10d50) begin r_smg_out=smg_datage;i=i+1b1;is_en2=0;end else is_en2=1; 4d2:begin rsmg_en=smg_en1;i=i+1b1;end 4d3:if(count=10d1023) begin r_smg_out=8hff;i=i+1b1;is_en2=0;

15、end else is_en2=1; 4d4:begin rsmg_en=smg_xiaoying;i=i+1b1;end 4d5:if(count=10d50) begin r_smg_out=smg_datashi;i=i+1b1;is_en2=0;end else is_en2=1; 4d6:begin rsmg_en=smg_en2;i=i+1b1;end 4d7:if(count=10d1023) begin r_smg_out=8hff;i=i+1b1;is_en2=0;end else is_en2=1; 4d8:begin rsmg_en=smg_xiaoying;i=i+1b

16、1;end 4d9:if(count=10d50) begin r_smg_out=smg_databai-1b1;i=i+1b1;is_en2=0;end else is_en2=1; 4d10:begin rsmg_en=smg_en3;i=i+1b1;end 4d11:if(count=10d1023) begin r_smg_out=8hff;i=i+1b1;is_en2=0;end else is_en2=1; 4d12:begin rsmg_en=smg_xiaoying;i=i+1b1;end 4d13:if(count=10d50) begin r_smg_out=smg_da

17、taqian;i=i+1b1;is_en2=0;end else is_en2=1; 4d14:begin rsmg_en=smg_en4;i=i+1b1;end 4d15:if(count=10d1023) begin r_smg_out=8hff;i=i+1b1;is_en2=0;end else is_en2=1; endcaseendreg is_en3;reg r_ring;always(shi,bai,qian,reset,ge)beginif(!reset)beginis_en3=1;r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&

18、amp;ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5)r_ring=0;else r_ring=4d0&ge

19、4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0; else r_ring=4d0&ge4d5) r_ring=0;else r_ring=1;/17.20default:r_ring=8b01000000&qian,bai,shi=8

20、b10111010)is_en3=1;elseis_en3=0;endendassign ring=r_ring;assign smg_out=r_smg_out;/assign smg_en=rsmg_en;assign smg_en=is_en3?rsmg_en:smg_xiaoying;endmodule十一、状态机设计原理图原理图十二、管脚分配图十二、管脚分配图十三、RTL图DQPREENACLRDQPREENACLRDENAQPRECLRDQPREENACLRDQPREENACLRDENAQPRECLR010DQPREENACLRDENAQPRECLRDENAQPRECLR01DQP

21、REENACLRDQPREENACLRDENAQPRECLRDQPREENACLRDENAQPRECLRDQPREENACLRDENAQPRECLRSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL1.0DATA3.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL1.0DATA3.0OUTMUXSEL3.0DA

22、TA15.0OUTMUXSEL1.0DATA3.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL1.0DATA3.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSEL3.0DATA15.0OUTMUXSELDATAADATABOUT0MUX21SELDATAADATABOUT0MUX21SELDATAADATABOUT0MUX21SELDATAADATABOUT0MUX21SELDATAADATABOUT0MUX21

23、SELDATAADATABOUT0MUX21WEDATAIN7.0WADDR3.0RADDR3.0DATAOUT7.0SYNC_RAM+A8.0B8.0ADDER=A9.0B9.0EQUAL=A9.0B9.0EQUAL010count_OUT0count_OUT0Equal2_OUTbai_OUT0bai_OUT0shi_OUT0shi_OUT0Equal4_OUTSelector0_OUTclk_ge2_OUT0clk_ge_OUT0qian0_OUT0qian_OUT0always81_OUT0is_en3_OUT0ge_OUT0ge_OUT0count_1ms30_OUT0count_1

24、ms28_OUT0count_1ms26_OUT0count_1ms24_OUT0count_1ms22_OUT0count_1ms20_OUT0count_1ms18_OUT0count_1ms16_OUT0count_1ms14_OUT0count_1ms12_OUT0count_1ms10_OUT0count_1ms8_OUT0count_1ms6_OUT0count_1ms4_OUT0count_1ms2_OUT0count_1ms0_OUT0count_1ms_OUT0bai3_OUT0rsmg_en_OUT0is_en2_OUT0count_1s_OUT0count_1s_OUT0Equal3_OUTAdd0_OUTcount_1ms3_OUT001resetclk_shibai2.0shi2.0clk_qianr_ring0ringsmg_out7.0clk_geqiange3.0bai3is_en2clk_baiMux181 h0 -Mux5Mux151 h1 -1 h1 -1 h0 -1 h1 -1 h1 -1 h1 -1 h1 -1 h1 -Add71 h1 -9 h1FD -

温馨提示

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

评论

0/150

提交评论