您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 基于Verilog_HDL的洗衣机程序
EDA嵌入式系统课程设计北京印刷学院课程设计报告——嵌入式系统EDA课程设计名称:EDA技术课程设计课程设计题目:洗衣机控制电路专业:电子信息工程专业班级:XXXXX学生姓名:XXXXXXXXXXXXXXXXXXXXXXXX指导老师:XXXXXXX时间:XXXXXX至XXXXX年XXXX月XXXX日目录一、设计任务要求·················································31、基本要求···················································3二、总体设计方案·················································31、系统功能···············································32、系统设计···············································31)系统结构框图···········································32)模块分析···············································31、分频模块···············································32、七段数码管显示模块·····································33、洗衣机主程序模块·······································3三、应用设备及软件介绍···········································31、主要仪器设备(实验用的软硬件环境)······················32、实验的软件环境·········································43、操作方法与实验步骤·····································4四、调试过程分析、遇到的问题及解决方法···························41、分频模块···············································32、七段数码管显示模块·····································33、洗衣机主程序模块·······································3五、设计结论·····················································3六、DE2管脚分配说明············································3七、参考文献·····················································3八、附录·························································3附录一分频模块··················································9附录二七段数码管显示模块········································9附录三洗衣机主程序模块··········································9一、设计任务要求1、基本要求:1)洗衣机的状态为待机5s→正转60s→待机5s→反转60s→,并用3个LED灯和7段显示器分别表示其工作状态和显示相应工作状态下的时间。2)可自行设定洗衣机的循环次数,这里设置最大的循环次数为15次。3)具有紧急情况的处理功能。当发生紧急情况时,立即转入待机状态,紧急情况解除后,继续执行后续步骤。4)洗衣机设定循环次数递减到零时立即报警,以表示洗衣机设定的循环次数已经结束。二、设计方案1、系统功能基本功能:能够实现洗衣机在设置洗衣次数后待机5s→正转60s→待机5s→反转60s的四种基本状态,并且可显示循环次数,当遇到紧急状态时可打开紧急开关,暂停洗衣机的工作。当洗衣机循环次数递减到0时洗衣机自动报警。2、系统设计1)系统结构框图,如图1-1所示:通过分频模块得到1Hzclk作为标准时钟输入到洗衣机主程序模块中,rst,en,start,add,四个输入信号作为洗衣机主程序模块的总输入,所得到的led信号分别用三个红灯显示,alarm信号用一个红灯显示,numa信号、numb信号、tim信号用七段数码管显示,最终实现了洗衣机的各项功能。图1-12)模块分析1、分频模块将系统给定的50MHZ的频率通过分频模块变成1HZ的clkclk,(我们在这里以50分频为例)输入一个50MHz的信号作clkin,每当clkin上升沿来时,count计数加1,且每当count==24时,clkout取反一次并且count=0,这样会得到一个1MHz的信号,然后在进行3次100分频,即可得到1HZclk作为我们后面所需的标准时钟。。其流程图及预制仿真图如下图:图2-1.1,图2-1.2,图2-1.3为100分频仿真所示:50MHZ信号一个50分频和三个100分频洗衣机主程序模块clk(时钟信号)rst(复位按键)en(紧急停止按键)Start(开始按键)add(设置循环次数)led(洗衣机工作信号灯)alarm(警报信号)numb(倒计时十位)numa(倒计时个位)tim(显示剩余循环次数)LED灯显示七段数码管显示NYNYY图2-1.1图2-1.2开始Clkin上升Count==24~CountCount==0Count+1图2-1.32、七段数码管显示模块:运用三个七段数码管显示模块,分别显示倒计时个位numa,倒计时十位numb,循环剩余次数tim,如图2-2.1,图2-2.2,图2-2.3,图2-2.4图2-2.1图2-2.2图2-2.3图2-2.43、洗衣机主程序模块:如图3-1状态转换图与图3-2软件流程图所示,控制模块采用有限状态机实现对洗衣机工作状态的控制。启动start后,控制器首先进入待机s0状态,时间从5秒倒计时,如果没有到0秒则继续等待,时间自减;当t=0,进入洗衣机正转s1状态,时间从60秒倒计时,如果没有到0秒则继续等待,时间自减;当t=0,进入洗衣机待机s2状态,同理等待5秒;当t为零后,进入s3洗衣机发转状态,时间从60秒倒计时,如果没有到0秒则继续等待,时间自减;整个过程依次循环。紧急状态en,当按下紧急停止按钮后,处于正反转状态中的电机停止转动,同时紧急报警LED灯亮,因此紧急状态不设定独立状态。图3-1图3-2三、应用设备及软件介绍1:主要仪器设备(实验用的软硬件环境)(1)计算机;循环设置循环开始待机5秒正转60秒待机5秒反转60秒达到循环次数最大值循环结束循环次数未到报警开始S0S1S2S3t==0t==0t==0t==0t!=0t!=0t!=0t!=0(2)DE2开发板(ALTERACyclone2(2C35));(3)电源线一根;(4)USB下载线一根。2:实验的软件环境QuartusII9.0软件3:操作方法与实验步骤(1)利用QuartusII9.0软件实现EDA的基本设计流程:创建工程、编辑文本输设计文件、编译前设置、全程编译、功能仿真。(2)利用QuartusII9.0软件实现引脚锁定和编译文件下载。四、调试过程分析、遇到的问题及解决方法1、分频模块的调试:分析:如图4-1所示,每当count==24时,clkout实现一次翻转,并且count清零;该模块总体来说思路较为简单,一般都是一次性成功的(以50分频为例),其仿真图如下图4-1图4-12、七段数码管显示模块的调试:洗衣机对七段数码管显示的要求不太高,设计好该模块的程序后,只需将洗衣机主程序模块下的输出numa,numb,tim三个信号分别接入三个七段数码管显示模块即可显示出对应的数字。3、洗衣机主程序模块的调试:在设计洗衣机的时候我们小组大致的步骤如下:1、弄清洗衣机有哪几种按键在编写程序时我们小组决定先由易到难,从按键下手,整个洗衣机应有rst(复位键),add(设置循环次数键)、start(开始键)、、en(紧急暂停键)这四个键,并将这四个按键作为输入。2、确立洗衣机有哪几种状态我们小组认为该洗衣机洗衣时应有四种状态:S0:待机5S;S1:正转60S;S2:待机5S;S3:反转60S;S4:待机5秒。计数的十位用numb表示,计数的个位用numa表示。将这四种状态作为一次循环。在编写程序时我们一开始选择从0开始计数到5,切换状态再从0开始计数到60换状态,跑板子的时候总觉得奇怪,后来经过思考,一般洗衣机计时都是倒数的,于是我们才将程序改正过来。在编写程序时,我们把系统紧急状态也归在这四个状态当中,结果每个状态都得判断是否为紧急状态,导致程序变得非常的繁琐,后来经思考才将紧急信号作为按键输入,这样一来程序变得简练了,不必每个状态都加上紧急状态。之后经过我们小组的努力修改和调试,最终完成了洗衣机主程序。洗衣机的仿真如下图如图4-1所示,rst置高电平,控制器复位,rst低电平后,add按下两次,设置循环次数为2,按下start后置为高电平,洗衣机开始工作。图4-1洗衣机正常运行的仿真图如图4-2所示,紧急状态发生,en变为高电平,洗衣机暂停工作,电机停止运转,紧急状态结束后,恢复原状态。图4-2紧急暂停仿真图如图4-3所示,紧急暂停结束,en恢复低电平,再次开始工作,进入下一循环。图4-3紧急状态结束,状态恢复五、设计结论1)通过设计,实现了一个能够实现洗衣机在按下add设置洗衣次数后按下start洗衣机开始待机5s待机灯亮→正转60s待机灯灭,正转灯亮→待机5s正转灯灭,待机灯亮→反转60s待机灯灭反转灯亮的四种基本状态,并且可用tim显示循环次数,当遇到紧急状态时可打开紧急开关en,暂停洗衣机alarm灯亮的工作。当洗衣机循环次数递减到0时洗衣机自动报警,alarm灯亮。2)设计体会:通过这次课程设计使我发现了很多自己在EDA学习中被忽略的问题,一些重点。从一次次的程序的调试中发现了自己在程序设计中的弱项,为自己敲了一个警钟。更是我充分的认识到不断学习、不断探索的重要性。通过查阅其它资料丰富了我们的知识,是我们所能学到的。东西不仅仅是局限于课堂上,加强了我们自主学习的积极性。并且从同学的相互交流中弥补了自身的弱点。形成了一种你争我赶的良好学风。因为这次课设题目的新颖,更提高了我们的自主创新能力,大幅的提高了我们的学习效率,快速的实现了学以致用的目的。在整个设计工过程中,尤其是设计之前,一定要有整体的逻辑思路;然后在分块解决。同样在检测的过程中,要学会分模块检测,这一点是很重要的,会起事半功倍的效果。小组成员之间要及时沟通,分享思路及想法,不断改进,成员之间还要互相现任,还要有耐心。总之,通过这次课设我受益匪浅。3)3:系统工程图及洗衣机效果展示图如下图:图5-1至图5-6所示图5-1六、DE2管脚分配说明图6-1七、参考文献[1]夏宇闻.Verilog数字系统设计教程(第3版).北京航空航天出版社.2013.[2]夏宇闻.Verilog嵌入式数字系统设计教程.北京航空航天出版社.2009.八、附录附录1:分频模块(此处选取50分频,其余分频模块省略)modulefenping50(clockin,clockout);inputclockin;outputclockout;reg[9:0]count;regclockout;parameterN=24;//改变N的值可以显示任意偶分频always@(posedgeclockin)//clockin上升沿触发beginif(count==N)begincount=3'b000;clockout=~clo
本文标题:基于Verilog_HDL的洗衣机程序
链接地址:https://www.777doc.com/doc-4797747 .html