《2022年利用WHDL设计洗衣机控制器.docx》由会员分享,可在线阅读,更多相关《2022年利用WHDL设计洗衣机控制器.docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源利用 VHDL设计洗衣机掌握器1 引言2 选题讨论地意义2.1 1 课题来源2.2 2 课题讨论地背景2.3 3 讨论地目地和意义 4 应解决地主要问题及应达到地技术要求2 4 1 需解决地主要问题洗衣机掌握系统地核心部件是掌握器.洗衣机掌握电路包括掌握器 .掌握对象 .状态显 示电 路. 计时 器及报警 电路 . 它 是一闭环系统 , 内 部结 构有 洗衣 机状 态转欢迎下载精品学习资源换时间信号产生器 .状态计数器 .数据挑选器和状态译码器 ,它能自动发出次序循环掌握信号( S.R.L) ,并同时完成在该状态下地计时功能.另外 ,它仍向掌握对象供应一个工作过程地周期信号( T)
2、,作循环次数累计 .掌握对象是由 4 位二进制计数器和4 位数值比较器构成 ,它对 T 作计数,与此同时与人工输入地预置循环数比较,随时将反应受控器自身状态地信号反馈给掌握器 ,从而实现系统地掌握功能 .2 4 2 需实现洗衣机掌握器地掌握功能洗衣机地状态为待机 5s正转 60s待机 5s反转 60s,并用 3 个 LED 灯和 7段显示器分别表示其工作状态和显示相应工作状态下地时间.自行设定洗衣机地循环次数 ,这里设最大地循环次数为15 次.具有紧急情形地处理功能 .当发生紧急情形时 ,立刻转入到待机状态 ,紧急情形解除后连续执行后续步骤 .洗衣机设定循环次数递减到零时立刻报警,以表示洗衣机
3、设定地循环次数已经终止.输入变量:时钟 CLK, 直接清零 RD,暂停/连续 EN,设定洗衣机地循环次数 SET.输出变量:三个工作状态 S.R.L,一个过程周期 T(T4),8421BCD 码 Q7Q0输出及报警信号 .2 5 国内外讨论现状 ,进展趋势及存在地主要问题2 6 设计工具介绍3 洗衣机掌握器设计地方案论证3.1 洗衣机掌握器设计地方案挑选设计洗衣机掌握器 ,通常可以用三种方法来实现 .方法一,可以用纯机械式来设计掌握器 .本方法利用机械原理来设计定时器 .例如可以利用弹簧储存能量和释放能量地过程得到定时时间 .其原理犹如机械式 上发条 地钟表.由于长时间工作 ,金属简洁疲惫 ,
4、一旦显现这样地情形 ,其定时地误差变大 ,导致欢迎下载精品学习资源定时不精确 .同时由于金属地疲惫和磨损等 ,可能引发定时器停摆 ,轮子打滑 ,进水等问题.但机械式掌握器具有制造便利 ,成本低等特点 ,所以在许多场合应用面依旧比较广 .方法二 ,利用单片机掌握 .利用单片机设计掌握器也是一种抱负地设计方案 .其优点突出,主要表现为:前期开发投入少 ,效率高 ,设计周期短 ,掌握精度较高 .但单片机芯片单价高 ,假如大批量生产 ,其性价比较低;另外 ,在实际工作过程中简洁显现死机 ,程序调用纷乱等问题 .方法三,采纳FPGA.FPGA具有体积小 ,牢靠性高等优点 .它一方面克服了机械式掌握器所引
5、发地定时器停摆 ,轮子打滑 ,进水等缺点;另一方面也克服了利用单片机设计地掌握器地问题 ,不易显现死机 ,程序调用纷乱等问题 .同时,采纳大批量生产时 ,其性价比高.虽然方案二也能实现设计任务 ,但程序结构繁冗 ,用户看起来不太直观 .方案三只用一个转换器就能实现 ,程序简洁也能较好地完成设计任务 .且移植性好 ,功能更简洁扩展 . 本设计挑选方案三实现洗衣机掌握器地功能 .3.2 数字系统地 FPGA 设计流程3.2.1 设计系统结构框图8系统结构框图如图 2 所示.洗衣机掌握电路包括掌握器 ,掌握对象 ,状态显示电路 ,计时器及报警电路 .掌握器是系统地核心部件 .它是一闭环系统 ,内部结
6、构有 5s 和 60s 信号产生器 ,状态计数器 ,数据挑选器和状态译码器 ,它能自动发出次序掌握信号( S.R.L),并同时完成在该状态下地计时功能 .另外,它仍向掌握对象供应一个工作过程地周期信号 T,作循环次数累计 .掌握对象是由 4 位二进制计数器和 4 位数值比较器构成 ,它对 T 作计数 ,与此同时与人工输入地预置循环数比较 ,随时将反应受控器自身转台地信号反馈给掌握器 ,实现系统地掌握功能 8.欢迎下载精品学习资源图 2 系统地结构框图状态显示电路是通过 3 个 LED 灯来显示洗衣机地状态:当洗衣机暂停或显现紧急情形时其次个 LED 灯亮,当洗衣机正转时第一个 LED 灯都亮,
7、当洗衣机反转时 ,只有第三个 LED 灯亮.报警掌握电路地功能是当设定放地入衣循物环次数减到零时提示用户.水流设置欢迎下载精品学习资源LED 灯和数码管显示电路:水通位过设置码管来显示时间 .LED 灯来显示洗衣机地各种工作状态 ,利用数欢迎下载精品学习资源3.2.2 洗衣机掌握框图模式挑选洗涤时间设置电机驱动系统(驱动电机依据肯定的周期或欢迎下载精品学习资源默认洗涤时间3.2.3 洗衣机掌握系统流程图进水供洗排涤水系统(依据肯定的洗涤中期进水或排水)供电系统(供应掌握板电源)图 3 洗衣机掌握系统节奏洗涤及脱水)掌握器手动设置洗涤时间进水洗涤负载检测系统( 检测衣物重量 )用户接口(获得用户
8、输入同时反映机器状态)欢迎下载精品学习资源排水进水清洗排水脱水自动断电图 4 洗衣机掌握系统流程图3.2.4 洗衣机状态转移图S0S1S212S3S2S222S211S4S221S6S5S7图 5 洗衣机状态转移图4 设计论述S8欢迎下载精品学习资源欢迎下载精品学习资源系统有 3 个工作状态:正转 ,反转,暂停,由状态标志量 count掌握.count=0时,洗衣机正转,时间连续 60s;count=1 时洗衣机第一次暂停 ,时间连续 5s;count=2 时洗衣机反转,时间连续 60s; count=3 时洗衣机其次次暂停 ,时间连续 5 s,此时一个工作周期终止会产生掌握信号 T,设定地循
9、环次数减 1,如减 1 后循环次数为零 ,就洗衣机停止工作 , 产生报警信号;如循环次数不为零就连续工作.假如系统产生复位信号 ,就洗衣机停止工作产生报警信号 .整个掌握功能地 VHDL 程序见附录一 .该程序经编译后创立地模块图如图8 所示,其输入输出信号说明如下:系统时钟 CLK, 直接清零 RD,暂停/连续 EN, 设定洗衣机地循环次数 SET,报警脉冲信号 CLK_1024;LAMP :洗衣机运行各状态指示灯Seg2,seg1:各状态运行时间地显示Seg4,seg3:设定工作周期显示时间计数ALARM :报警信号内部信号说明: temp:状态转换掌握信号count:状态转换信号 C:清
10、零信号s1,s2,s3,s4:状态值 T:掌握器产生地掌握信号A:报警信号欢迎下载精品学习资源欢迎下载精品学习资源4 3 2 使用说明图 11 I/O 模块图欢迎下载精品学习资源在 EN 为低电平常通过 SET设定洗衣机循环工作地次数 .通过按键将 EN 置为高电平 ,启动洗衣机工作 ,以后可通过 EN 暂停/连续.如中途发生故障 ,可通过按键 RD 直接清零复位 ,待清除故障后重新启动 .洗衣机终止工作 ,报警,可通过 RD 或 EN 直接取消报警 ,将 EN 置为低电平,即可重新设定工作次数 .4 4 测试仿真步骤在 Max+plus软件平台上进行仿真地基本步骤如下: 选 File/Pro
11、ject/Name 菜单建立工程名 .见图 12欢迎下载精品学习资源图 12 选 File/New 菜单,并选 text Editor 条目,进入文本编辑窗 ,然后输入电路设计文件.见图 13图 13 选 File/Project/Save & Check 菜单将文件存盘并检查文件地正确性 .见图 14.欢迎下载精品学习资源图 14 选 Max+plus /waveform Editor 菜单,编辑输入信号波形(在波形编辑窗口,选Node/Enter Nodes from SNF菜单将输入和输出端口调入 ,然后再编辑) .见图 15.图 15 选 Max+plus /Simulator 菜单进
12、行行为仿真 .见图 16欢迎下载精品学习资源图 16 观看仿真结果 ,讨论设计地正确性 .5 结果分析测试仿真波形见附录二BCD 码模块仿真波形和七段显示译码模块仿真波形如附录二中图 1 和图 2 所示,测试波形正确 .执行设定次数为 2 地波形图见附录二 图 3 所示,测试波形符合要求 .加入暂停信号后地波形 .从附录二 图 4 整体上看暂停有效 .从附录二 图 5 细节上看程序具有记忆功能 ,能从断点处装载 ,连续工作 ,符合要求.加入 RD 信号后地波形附录二图 6 复位信号有效 ,复位后报警提示胜利 .6 设计总结设计过程中采纳了VHDL 语言进行编写 ,并用 MAX+ plus软件进
13、行仿真 ,它主欢迎下载精品学习资源要是对洗衣机工作状态 .时间进行掌握 ,在整个设计过程中 , 我先对 FPGA 地结构和VHDL 地语法结构进一步地把握 ,然后着重依据设计原理和思路着手编程 ,其间参考了不少文献资料 ,对计数器 .数据挑选器 .译码器.数值比较器地功能 .规律图.引脚图进行分析,然后再在 MAX + plus 上进行编译仿真 ,分析波形 ,修改程序直至与设计要求相符 .当然在讨论中仍存在不少问题 ,比如我设计地洗衣机只是半自动地 ,其功能仍不完善,如水位地掌握 .脱水.漂洗地方式等都仍没设计出来;仿真地波形仍没完全达到设计标准,对时间地推迟没考虑清晰等 ,假如是对课题地进一
14、步讨论可以增加洗衣机地功能,这就仍需要增加传感器等等 ,同时仍可以添加一个测试程序,就可以更加直观地看到仿真结果 .参考文献1 黄任 . VHDL 入门 .解惑.经典实例 .体会总结 . 第一版 ,北京:北京航空航天高校出版社,2005.12 谭会生 ,瞿遂春 . EDA 技术综合应用实例与分析. 第一版 ,西安:西安电子科技高校出版社,2004.113 潘松 ,黄继业 . EDA 技术有用教程 . 第三版 ,北京:科学出版社,20064 徐光辉 ,程东旭 ,黄如 . 基于 FPGA 地嵌入式开发与应用 . 第一版 ,北京:电子工业出版社,2006.95 郭冀岭 ,王君瑞 ,王远波 . 用 V
15、HDL 实现智能洗衣机掌握系统有限状态机地设计. 电子技术,2004;6 李渊 ,马善农 . 基于 CPLD 地洗衣机掌握器 . 科技广场 ,2007 ;7 李波 ,王章瑞 ,高一波 . 基于 VHDL 地洗衣机掌握器设计 . 科技设计成果 ,2007;8 司孝平 ,赵严峰 . 基于 FPGA 地洗衣机掌握器设计与试验教案. 天中学刊 ,2006;9 司孝平 ,赵严峰 . 对一种洗衣机掌握器地FPGA 设计改进 . 佳木斯高校学报 自然科学版 , 2006;10 赵晓博 ,刘展威 ,李素娟 . 数字电压表地VHDL设计与实现 . 外表技术 ,2005;11 EP1C12.pdf . 12 EP
16、1C8.pdf. 13 ByteBlaster_II_Download_Cable.pdf. 欢迎下载精品学习资源致谢欢迎下载精品学习资源附录一 程序源代码-BCD 码变换模块 .module bcdmaclk,TIMES,t ;input clk;input 3:0 TIMES ;output 7:0 t;reg 7:0 t;always posedge clk begin ifTIMES4b1001t=TIMES+8b00000110;else t=TIMES+8b00000000;endendmodule-共阴极七段显示译码模块module decodeCOUNT,oseg1,oseg2
17、; input 7:0 COUNT ;output 6:0 oseg1,oseg2;reg 6:0 oseg1,oseg2; always COUNT7:0 begincaseCOUNT3:04h1: oseg1 = 7b0000110;4h2: oseg1 = 7b1011011;4h3: oseg1 = 7b100111;14h4: oseg1 = 7b1100110;4h5: oseg1 = 7b1101101;4h6: oseg1 = 7b111110;14h7: oseg1 = 7b0000111;4h8: oseg1 = 7b111111;14h9: oseg1 = 7b11001
18、1;1 4ha: oseg1 = 7b111011;1 4hb: oseg1 = 7b111110;0 4hc: oseg1 = 7b0111001; 4hd: oseg1 = 7b101111;0 4he: oseg1 = 7b111100;1 4hf: oseg1 = 7b1110001; 4h0: oseg1 = 7b011111;1 endcasecase COUNT7:4 4h1: oseg2 = 7b0000110;4h2: oseg2 = 7b1011011;欢迎下载精品学习资源4h3: oseg2 = 7b100111;14h4: oseg2 = 7b1100110;4h5:
19、oseg2 = 7b1101101;4h6: oseg2 = 7b111110;14h7: oseg2 = 7b0000111;4h8: oseg2 = 7b111111;14h9: oseg2 = 7b110011;1 4ha: oseg2 = 7b111011;1 4hb: oseg2 = 7b111110;0 4hc: oseg2 = 7b0111001; 4hd: oseg2 = 7b101111;0 4he: oseg2 = 7b111100;1 4hf: oseg2 = 7b1110001; 4h0: oseg2 = 7b011111;1 endcaseend endmodule-
20、扫描挑选输出模块module scan4rd,clk,seg1,seg2,seg3,seg4,c1,c2,c3,c4,s;eg output6 : 0seg;output c1,c2,c3,c4;input clk,rd;input6 : 0seg1,seg2,seg3,seg;4 reg6 : 0seg;reg c1,c2,c3,c4;reg1: 0sel;alwaysposedge clk beginif rd=1 sel=0; else ifsel=3 sel=0; else sel=sel+1;end alwayssel begincase sel1: 02b00:begin seg=
21、seg1;c1=1;c2=0;c3=0;c4=0;end 2b01:欢迎下载精品学习资源beginseg=seg2;c1=0;c2=1;c3=0;c4=0;end2b10:beginseg=seg3;c1=0;c2=0;c3=1;c4=0;end2b11:beginseg=seg4;c1=0;c2=0;c3=0;c4=1;endendcase end endmodule-整个洗衣机掌握模块module washer1CLK,CLK_1024,SET,RD,EN,LAMP,seg,c1,c2,c3,c4,ALARM ;output6 : 0seg;output c1,c2,c3,c4;outpu
22、t3 : 0LAMP ;output ALARM ;input CLK,CLK_1024,EN,RD ;input3 : 0SET;reg7 : 0num;reg temp,C,ALARM ;reg2 : 0count;reg7 : 0s1,s2,s3,s4; reg3 : 0LAMP,tim ;reg6:0seg;reg c1,c2,c3,c4;reg6 : 0seg1,seg2,seg3,seg;4 reg7:0t;wire T,A;assign T=count=0&num=2&LAMP=2|.EN|RD; /掌握器产生地掌握信号Tassign A=.tim&EN ; /报警信号alway
23、s/状态转换置数begins1 =8h 60;s2 =8h 05;s3 =8h 60;s4 =8h 05;endalways posedge CLK /掌握器模块欢迎下载精品学习资源begin if.RDbeginC=0;ifEN&.C beginif.temp&tim begintemp=1;casecount0: begin num=s1;LAMP=4 ;count=1;end 1: begin num=s2;LAMP=2 ;count=2;end 2: begin num=s3;LAMP=1 ;count=3;end 3: begin num=s4;LAMP=2 ;count=0;end
24、default LAMP1ifnum3:0=0 beginnum3:0=4b1001;num7:4=num7:4-1;endelse num3:0=num3:0-1;ifnum=2 temp=0;ifnum=1 num=0;endend end elsebegincount=0;num=0;temp=0;LAMP=2 ;C=1;end欢迎下载精品学习资源endalways negedge T/受/ beginifnum=0&tim=0 tim=SET;控器模块欢迎下载精品学习资源else ifnum=0&LAMP=2欢迎下载精品学习资源tim=0;else ifnum=1tim=tim-1 ;
25、endalways /报警电路beginifA欢迎下载精品学习资源else endALARM=CLK_1024 ;ALARM=0 ;欢迎下载精品学习资源bcdma bcd1tim,t;decode dec1num,seg1,seg2; decode dec2 t,seg3,seg4;scan4 sc1RD,CLK_1024,seg1,seg2,seg3,seg4,c1,c2,c3,c4,se;g endmodule图 1 BCD 码模块仿真波形图 2 七段显示译码模块仿真波形附录二 仿真波形图 3 洗衣机掌握器整体模块仿真波形1欢迎下载精品学习资源图 4 洗衣机掌握器整体模块仿真波形2图 5 洗衣机掌握器整体模块仿真波形3图 6 洗衣机掌握器整体模块仿真波形4欢迎下载