基于FPGA的洗衣机控制器的设计_第1页
基于FPGA的洗衣机控制器的设计_第2页
基于FPGA的洗衣机控制器的设计_第3页
基于FPGA的洗衣机控制器的设计_第4页
基于FPGA的洗衣机控制器的设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、湖南文理学院课程设计报告课程名称:专业班级:自动化专业课程设计自动化2班学生姓名:石扬指导教师:彭琛完成时间:报告成绩:评阅意见:评阅教师日期基于FGA的洗衣机控制器的设计基于FPGA勺洗衣机控制器设计,主要通过使用VerilogHDL语言,在Quartus2 上完成电路设计以及程序开发模拟。实现以洗衣机控制器为核心,加上必要的外 围电路,能够对洗衣机工作状态自由控制。全部程序由控制器模块,分频模块, 按键去抖模块,显示译码模块组成,顶层模块使用原理图实现,底层由VerilogHDL语句实现。核心控制器FPGA艮据控制端口的信号输入,向洗衣机发出正传, 反转,待机信号,并通过数码管和LED灯显

2、示当前的工作状态以及工作时间。该 洗衣机控制电路可以方便快捷的实现对洗衣机的控制和状态的显示功能,同时具有紧急暂停待机功能,保证控制的可靠性,以及洗涤循环次数报警功能,提高任 务精度。目录一、 系统设计 11、设计要求12、总体设计方案 11. 设计思路12. 系统组成1二、 单元硬件电路设计 21、按键模块22、显示模块23、中心控制模块2三、软件设计31、控制模块程序设计32、显示译码程序设计 43、按键去抖程序设计 44、分频模块程序设计 5四、系统仿真测试 51、控制模块仿真52、显示译码模块仿真 73、分频模块仿真84、按键去抖模块仿真 8五、心得体会9六、参考文献10七、附录11附

3、录一:电路使用说明 11附录二:电路原理图 11附录三:程序代码121. 控制器模块程序122. 显示译码模块程序153. 按键去抖模块程序 164. 分频模块程序 17基于FPGA的洗衣机控制器的设计、系统设计1、设计要求1. 洗衣机的状态为待机 5s正转60s待机5s反转60s,并用3个LED灯 和7段显示器分别表示其工作状态和显示相应工作状态下的时间。2. 可自行设定洗衣机的循环次数,这里设置最大的循环次数为15次。3. 具有紧急情况的处理功能。当发生紧急情况时,立即转入待机状态,紧急情 况解除后,继续执行后续步骤;4. 洗衣机设定循环次数递减到零时立即报警,以表示洗衣机设定的循环次数已

4、 经结束。2、总体设计方案1、设计思路题目要求设计一个洗衣机控制电路,实现对洗衣机工作状态的控制。1. 中心控制模块基本实现要求功能,包括计时、LED输出、电机正反转信号输出、洗涤循环置数设置。2. 分频模块实现从高频向低频转换,供中心控制模块使用3. 按键去抖模块,实现对按键的去抖功能。4. 数码显示电路,将10进制时间通过数码管显示出来。2、系统组成洗衣机控制电路主要由中心控制模块、 按键模块,显示模块,时钟分频模块, 四部分组成组成。系统结构框图、单元硬件电路设计1、按键模块设有1个按键:add; 1个拨码开关start。add用于初始状态下设置循环次 数,没按一次循环次数加一,star

5、t用于启动和停止洗衣机。2、显示模块设有3个LED灯,两个数码管,一个蜂鸣器。LED灯用来表示当前状态,数 码管用来表示当前状态所剩余时间。蜂鸣器用来表示洗衣是否完成,洗衣完成时 蜂鸣器发出声音。3、中心控制模块中心控制模块是以一片altera 公司的Cyclone2系列FPGA为主体,配合一 些外围电路实现的。Cyclone2系列FPGA采用全铜层、低K值、1.2伏SRAM工 艺设计,裸片尺寸被尽可能最小的优化。采用300毫米晶圆,以TSM(成功的90nm 工艺技术为基础,Cyclone II 器件提供了 4,608到68,416个逻辑单元(LE), 并具有一整套最佳的功能,包括嵌入式18比

6、特x18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。三、软件设计采用Quartus2作为开发工具对可编程逻辑器件FPGA的编程,底层由Verilog HDL语句实现,顶层使用原理图实现。软件设计由控制模块,分频模块, 按键去抖模块,显示译码模块四部分组成,由于输入时钟为100 HZ,因此使用分频模块输出1HZ的方波,给控制模块提供每1s自加1的信号,控制模块输出 的计数时间输入给数码管显示译码模块,通过译码模块定时器的值可以在数码管 上显示,控制模块由此1hz的方波信号可以控制洗衣机的正转、反转、待机和报警工作方式。按键消抖模块的作用是为

7、了消除按键抖动而设立的。1、控制模块程序设计控制模块采用有限状态机实现对洗衣机工作状态的控制状态转换示意图t 二 60st 二 5sSOSIS3S2t-60st 二 5ssO:待机状态s1:正转状态 s2:待机状态 S3:反转状态软件流程图循环次数未到始 开 警 报2、显示译码程序设计数码管显示译码模块主要功能是把定时器送来的值译码并通过数码管显示 出来。fpga的Verilog HDL硬件语言是并行的这有别于软件的描述语言扫描方式。3、按键去抖程序设计在进行独立按键或者矩阵式按键的设计的时候,我们在按下键盘的时候其实并不只是按下去而是有一个抖动的过程,就连松手的过程也有抖动,然而这个抖动通常

8、被人们所忽略,从而导致输入数据的错误和乱码,因此我们必须对按键进 行按键的消抖处理。fpga的Verilog HDL语言是硬件描述语言,主要运用了状 态机和延时的消抖方式。4、分频模块程序设计该模块通过输入的clock信号(100HZ分频后得到1HZ供给中心控制模 块,其余模块使用未分频的100HZ信号。四、系统仿真测试1、控制模块仿真顶层原理图设计22设置循环次数为3,按start后洗衣机开始工作。田 CQWIzhang ledsUp ledzktn La-df urtr*l tinesair inJLrLrWLrLrLrLrLrVUULHJlJVtrLrLrLrLrLnjVLnjUirLn

9、rtrLrLrLrWi0T厂 tljj-CLTITLrtfTiar gency循环次数由3次减为2次,从电机反转到待机状态黑4陌1氐q皿p皿40. Q n车4B 9 qeR4 9 s:龍 :nw待机5秒后,电机正转,开始第二次循环K2 0 keaw.,0 m204 p 皿300. p tls31S.(0 nsMmeelknTrLrLrL-TLrLrLrLrLrLrLrLrLTLrLrLrL-TLrLrLrvLrLrLrL-LnrLrLrLrLrLTLru回 countf Ul1ihamg】価如i iih11led.-&n昭止国 tines031X2EtirtQy讯Mir當普ncy当按下emer

10、gency紧急状况按钮计数器count保持不变,电机停止转动循环次数结束,count和times同时清零,洗衣机停止工作2、显示译码模块仿真40.0 ns 00.0 k 120.0 BS 160. n 30D.D 估 240.0 ns SEO.0 is 220.0 ns 獅他 401Ii1I ImrisFii?i,1 . 3、分频模块仿真AdadcinIB.*IM O bsIf. 5 D&;i nrmwmnonnjiinnnninrjrjuirourjuininninjuwnnrjuirurjuuurmuuuumurjwnnrmnimuuifw4.按键去抖模块仿真rDIJJIps fO.hs9

11、0.9b 伽 Un Wu 唧m 3lh Wm Mis 卿III I IIIIIV1S!1血:n IrnI 五、心得体会经过2周的设计,通过不断地努力与完善,终于完成了这次的专业综合课程 设计。从一开始的确定课题,到后来的资料查找、理论学习,这一切都使我的理 论知识和动手能力进一步得到提高。在选择课题、原理分析、调试过程中不可避 免地遇到各种问题,这要求保持沉着冷静,联系书本理论知识积极地思考, 遇到 解决不了的可以请教同学或指导老师,虽然在设计过程中不可避免地遇到很多问 题,但是最后还是在老师以及同学的帮助下圆满解决了这些问题,实现了整个系统设计与最后调试,相关指标达到期望的要求,很好地完成了

12、。经过这次课程设计培养了我的设计能力以及全面的考虑问题能力。 虽然设计 的过程是痛苦的但是收获成功的喜悦却是如此的让人激动。 相信这次课程设计对 我以后的学习及工作都会产生积极深远的影响。另外。通过使用VerilogHDL语言编程实现了一个洗衣机控制器,实现了各 项控制要求,该控制器操作简单,可用于实际的洗衣机控制器设计中。在 Quartus2上完成电路设计以及程序开发模拟。实现以洗衣机控制器为核心,加 上必要的外围电路,能够对洗衣机工作状态自由控制。全部程序由控制器模块, 分频模块,按键去抖模块,显示译码模块组成,顶层模块使用原理图实现,底层 由Verilog HDL语句实现。核心控制器FP

13、GA根据控制端口的信号输入,向洗衣 机发出正传,反转,待机信号,通过数码管和LED灯显示当前的工作状态以及工 作时间。该洗衣机控制电路可以方便快捷的实现对洗衣机的控制和状态的显示功 能,同时具有紧急暂停待机功能,保证控制的可靠性,以及洗涤循环次数报警功 能,提高任务精度。六、参考文献1、黑金开发板配套教程VerilogHDL那些事儿2、 康华光主编电子技术基础数字部分(第五版)3、 陈明义主编电子技术课程设计实用教程S 2002年05月第1版4、EDA先锋工作室设计与验证 Verilog HDL5、马建国.孟宪元编著FPGA代数字系统设计七、附录附录一:电路使用说明1. 电路通电后,在star

14、t开关未闭合前可以通过add按键开关设置洗衣机洗 涤循环次数(待机-正转-待机-反转,为一次循环)。2. 设定循环次数以后,闭合start开关,洗衣机控制器开始工作。3. 可以观察到指示待机 LEDSTOP丁亮5s,正转LEDZHEN灯亮60S,待机 LEDSTO亮5s,反转LEDFANT亮60s,如此循环直至工作允许时间为 0,报警器 发出警报。4. 当按下emergency紧急情况键时,电机停止工作,开始进入待机状态,同 时 LEDSTO亮o附录二:电路原理图.卜卡smrw甞匸0蔚_”1:f l1 Ph * 斗Hi1 I ,ilI1 *1*1 i.i-j .s = i_j,- r-wtar

15、s-x .二二:CE曲畔吗 r qliMMAfl fiR3E石!耳附录三:程序代码1.控制器模块程序module xiyiji(add,ledzhe ng,ledfa n, ledstop,clk,zhe ng,fa n, start,alram,emerge ncy,co un t);in put add,clk,start,emerge ncy;/add 循环次数,start 洗衣机工作 emerge ncy紧急工作output ledzhe ng,ledfa n,l edstop,zhe ng,fa n,alram,co unt;/ledzheng正转 ledfan 反转,ledstop

16、 暂停alram 警报,count计数reg ledzhe ng,ledfa n, ledstop;reg zhe ng,fa n;reg alram;reg 3:0tim,times;reg 9:0 coun ter;reg 7:0 count;reg 3:0 state;parameter s0=4b0001;parameter s1=4b0010;parameter s2=4b0100;parameter s3=4b1000; always (posedge add) beginif(tim15) tim=tim+1b1;else/4种工作状态/最大循环次数15次tim=0;endalw

17、ays (posedge clk) beginif(start=0)beginzheng=0;fan=0;cou nt=8b00000000; times=tim;alram=1b0;endelsebeginif(emerge ncy=1)/strart=0 时,赋初值/紧急情况时,暂停beginzhe ng=1bO;fa*=1b0;Iedstop=1b1;ledzhe ng=1bO;ledfa n=1b0;endelsecase(state)s0:begi nif(times=O)begin alram=1b1;cou nt=8b00000000;endelsebeginzhe ng=O;f

18、an=O; ledzhe ng=1bO; ledfa n=1b0; ledstop=1b1;if(cou nt=8b00000101) begin state=s1;zhe ng=1;fa n=0; ledzhe ng=1b1; ledfa n =1b0; ledstop=1b0;cou nt=8b00000001; end else coun t=co un t+1b1; end ends1:beg inzhe ng=1;fa n=0; ledzhe ng=1b1; ledfa n =1b0; ledstop=1b0;if(cou nt=8b00111100) begin state=s2;

19、zhe ng=O;fan=O;/状态s0开始/待机时间够5秒/状态转换到s1/状态s1开始/正转够60秒/切换到s2ledzhe ng=1bO; ledfa n=1b0;Iedstop=1b1;cou nt=8b00000001; endelsecoun t=co un t+1b1; ends2:beg inzhe ng=O;fan=O; ledzhe ng=1bO;ledfa n=1b0; ledstop=1b1;if(cou nt=8b00000101) begin state=s3;zhe ng=O;fan=1; ledzhe ng=1bO;ledfa n =1b1; ledstop=1

20、b0;cou nt=8b00000001; endelsecoun t=co un t+1b1; ends3:beg inzhe ng=O;fan=1; ledzhe ng=1bO;ledfa n =1b1; ledstop=1b0;if(cou nt=8b00111100) begin times=times-1b1;cou nt=8b00000001; state=s0;zhe ng=O;fan=O; ledzhe ng=1bO; ledfa n=1b0; ledstop=1b1;endelsecoun t=co un t+1b1;s2 开始/待机时间够5秒s3开始/反转够60秒/如果循环

21、次数结束,并且反转够60秒,则停止工作,报警if(times=1 &cou nt=8b00111100)beginalram=1b1;cou nt=8b00000000;endenddefault:beginstate=s0;endendcaseendenden dmodule2.显示译码模块程序module shumagua n( qclock,code1,code2,discode,e nable); in put qclock;in put 3:0code1,code2;output 6:0discode;output 1:0e nable;reg 6:0discode;reg 1:0e nable;reg 2:0co unt;reg 3:0code;always(posedge qclock)beginif(co un t=1)coun t=0;elsecoun t=co un t+1;case(co unt)3b000:begincode=code2;en able=8b10;end3b001:begincode=code1;en able=8b01;endendcasecase(code)4b0000:discode=7b1111110;4b0001:dis

温馨提示

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

评论

0/150

提交评论