VHDL洗衣机控制系统设计实验报告.doc

上传人:文库蛋蛋多 文档编号:4144259 上传时间:2023-04-07 格式:DOC 页数:15 大小:150.50KB
返回 下载 相关 举报
VHDL洗衣机控制系统设计实验报告.doc_第1页
第1页 / 共15页
VHDL洗衣机控制系统设计实验报告.doc_第2页
第2页 / 共15页
VHDL洗衣机控制系统设计实验报告.doc_第3页
第3页 / 共15页
VHDL洗衣机控制系统设计实验报告.doc_第4页
第4页 / 共15页
VHDL洗衣机控制系统设计实验报告.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《VHDL洗衣机控制系统设计实验报告.doc》由会员分享,可在线阅读,更多相关《VHDL洗衣机控制系统设计实验报告.doc(15页珍藏版)》请在三一办公上搜索。

1、VHDL实验报告洗衣机控制器设计 一实验题目名称:洗衣机控制器设计二:实验目的、任务和要求:设计一个洗衣机洗涤程序控制器,控制洗衣机的电动机按下图所示的规律运转: 图2.1 电机运转时序图用两位数码管预置洗涤时间(分钟数),洗涤过程在送入预置时间后开始运转,洗涤中按倒计时方式对洗涤过程作计时显示,用LED表示电动机的正、反转,如果定时时间到,则停机并发出音响信号。 其系统框图如下图所示: 图 2.2 系统框图设计思路:此设计问题可分为洗涤预置时间编码寄存电路模块、十进制减法计数器模块、时序电路模块、译码驱动模块四大部分。 设置预置信号LD,LD有效后,可以对洗涤时间计数器进行预置数,用数据开关

2、K1-K10分别代表数字1,2,9,0,用编码器对数据开关K1-K10的电平信号进行编码,编码器真值表如下表所示,编码后的数据寄存。 图2.3 编码器真值表设置洗涤开始信号start,start有效,则洗涤时间计数器进行倒计数,并用数码管显示,同时启动时序电路工作。 时序电路中含有20s定时信号,10s定时信号,设为A、B,A、B为“0”表示定时时间未到,为“1”表示定时时间到。 时序电路状态表如下表所示: 图 2.4 时序电路状态表状态编码为: S0=00 S1=01 S2=11 S3=10 若选JK触发器,其输出为Q2Q1。 逻辑赋值后的状态如下表所示: 图2.5 逻辑状态表设置电动机正转

3、信号run、反转信号rev、暂停信号Pause,由时序电路的输出Q2Q1经译码驱动模块,可使显示信号正确反映电路的工作状态,译码驱动模块真值表如下表所示:图2.6 译码驱动真值表直到洗涤计时时间到,时序电路异步复位,并启动音响电路。其硬件系统示意图如下图所示: 图2.7 硬件系统设计 三实验系统结构设计分析系统运行过程如下:在系统进行运行之前,使用K按钮预置洗衣机运转时间,此时用户设定的时间通过数码管时时显示出来,计时设备选取的精度是分钟级,也就是说用户可以设定洗衣时间是多少分钟,范围为00-99。然后用户可以给出开始信号,系统开始运转并开始从预设时间倒计时,重复“正传-暂停-反转-暂停”的循

4、环过程直至剩余时间变为零。数码管在系统的整个运行过程中时时显示剩余运转时间,由于我们选用的数码管是一个,故设定的是每隔一秒分别显示十位和个位。根据以上需求分析,按照系统模块化设计的要求可将洗衣机控制器的电路设计为主要由五部分组成,包括:预设时间和编码电路、减法计数器电路、数码管显示电路、电机运转时序控制电路、译码器。系统总体电路图如下:图3.1 系统模块设计图各个部分的具体功能描述如下:(一) 预设时间和编码电路(settime):接受用户通过按钮预置的时间信息,编码成八位之后转给减法计数器。(二) 减法计数器电路(counter):接收编码之后的预置时间信息,向电机运转控制电路传递运行信号,

5、并将预置时间信息和剩余时间信息发给数码管显示电路进行实时显示。(三) 数码管显示电路(showtime):接收减法计数器电路传来的时间信息,进行实时译码显示。(四) 电机运转时序控制电路(analyse):接收运行起止信号,安排电机运行状态并编码输出。(五) 译码器(move):接收电机运行状态信号,译码后实时控制电机的正传、反转和暂停。 为方便使用Spartan-3E进行系统实现,我们根据该开发板的特点对实验实现进行了如下修改:(一) 开始的时候是在settime模块我们是使用十个按钮进行数字0到9的输入,每一位分别对应数字一到十,后来在写入板子的时候由于开关个数有限,选用了四位编码输入,即

6、:“0000”到“1001”,非别对应一到十;(二) 预置时间的十位数字和个位数字分开输入。先进行十位数字的输入,完成后通过按钮向系统发送“Load”信号。然后进行预置时间个位数字的输入,输入完成后同样以“Load”按钮结束;而且,当开始输入的时间是错误的时候,可以进行多次输入,以前的信息会被自动覆盖。(三) 以发光二极管的亮灭展示电机的正转、反转和暂停;(四) 在七个数码管上交替显示倒计时的十位和个位数字,每个时序脉冲替换一次。开始的时候是设计为两个数码管,大但考虑到只有一个数码管,故我们设计为每一秒交替显示十位和个位。四实验代码设计以及分析:根据总体设计图和实验分析,各个部分的程序实现如下

7、:预置时间和编码电路(settime):其中,time_input为通过开发板上按钮输入的信号,load为输入确认信号。本模块将输入的四位时间信息编码输出到减法计数器电路。减法计数器(counter):本模块中clk为系统时序脉冲信号,start为系统开始运行的信号,time_set为从预置时间模块接收到的时间编码信号,time_remain为输出到数码管显示电路的时间信号,time_is_up为系统运行结束信号,可以用来控制蜂鸣器的通断。在系统运行的开始时期,用户第一次输入的预置时间会被赋给个位,第二次输入的时间会被赋给十位,可以进行多次输入,以前的会被覆盖。数码管显示电路(showtime

8、):接收减法计数器电路传来的时间信息,进行实时译码显示,由于我们的实际是可以进行两位的时间显示的,所以开始的时候是用的两个数码管,后来见到硬件芯片上是只有一个,又修改成了一个,但为了进行两位的显示,我们就设计了两个小灯,每个小灯分别代表十位和个位,当某个小灯被点亮时代表当前显示的是对应位的数值,每个一秒转换一次,这样就可以实现两位的显示了。电机运转时序控制电路(analyse):通过时钟的输入进行计算当前系统应该处的状态,并进行编码输出电机的运转状态。由于在显示以及输入的时候只有分钟,故需要内设一个秒的计时变量。译码器(move):分析输入的电机转动编码信号,即为思路中的Q1何Q2,安排电机运

9、行状态并进行输出。此模块较为简单,设计基本没什么难度。分频电路(主程序中未包含):由于在最后写入板子的过程中时钟一直产生问题,故我们采取直接调用内部的时钟然后进行分频,这样就可以得到自己所想要的频率了。主程序(wash)用来将各个模块进行组合,从而实现一个可以运行的系统。程序代码如下所示:五:仿真图以及波形:以下为系统仿真运行时输出的波形图通过波形可以看到time_input设定的值通过load读入,start后,电机就会运转,同时数码管进行显示,实现了预定的功能,而且对于minute和second的显示也是正确的。六实验问题分析和经验总结:关于这个洗衣机控制器,就是用模块化层次化的设计方法进

10、行系统层的设计,这样分解下来,设计会更容易点,思路也比较简单。洗衣机控制器主要就只有三个状态,要实现几种状态的多次循环的改变,其他的还有计时和数码显示的功能,所以电路可以设计为大致五大部分:settime,counter,analyse,move,和showtime。通过每个模块的设计最后组装即可完成系统级的设计。在设计的时候,如果特别要注意各个模块之间接口的设计,要是接口不对,模块之间就没法实现组装。通过这次设计,对于VHDL的设计方法大致有了一些技巧性的了解,位以后的硬件设计打下了基础,对FPGA的编程、定时器和计数器的设计都熟悉起来,加深了对时序组合电路的印象。通过在网上进行各种资料的查询,也发现了其实FPGA的设计具有较好的前景,其功能的强大和设计方法的简单可靠。具有较强的适应能力和可移植性。备注:本实验报告中的代码均为图片形式,而且有的图片由于较大所以相对显示较为不清晰,在文件目录位置附有压缩包,内含源代码以及各个截图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号