欢迎来到天天文库
浏览记录
ID:11721234
大小:395.00 KB
页数:39页
时间:2018-07-13
《基于fpga的洗衣机电机正反转控制器说明书》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、电机控制综合课程设计报告课题名称:基于FPGA的洗衣机电机正反转控制器学院:信息与控制工程学院专业班级:姓名:学号:2014年7月4日7目录一、设计内容----------------------------------3二、设计方案----------------------------------31洗衣机控制器的整体框图与原理-------------------32控制电路各模块程序及仿真图--------------------4三、电路调试----------------------------------10四、总结与体会-----------------------
2、---------10五、7一、设计内容1.任务要求及内容设计一个基于FPGA的洗衣机正反转定时控制器,其具体要求如下:控制洗衣机的电机作如下周期性运转,正转4S――暂停2S――反转4S――暂停2S,用8位七段数码管显示自己学号的后四位(显示在从左边数第一个到第四个数码管上)、定时时间(两位,单位:分钟,显示在第五个和第六个数码管上),剩余时间(两位,单位:分钟,显示在第七个和第八个数码管上)。2.洗衣机控制器的工作过程(1)上电后显示自己学号的后四位,在运行中不变;初始洗涤时间为10分钟,在开始前可用S1和S2按键设置总的工作时间,确定洗衣机控制器定时工作时间。(按下并松开S1定
3、时时间增加一分钟,按下并松开S2定时时间减少一分钟,时间范围为:00~30分钟)(2)设定好定时时间后,按下并松开S3(按下时S3=0,松开时S3=1),启动控制器,整个系统开始运行;再次按下并松开S3,停止运行;再次按下并松开S3继续运行;按下并松开S4则回到上电初始状态。其他两个按键不起作用。到达定时时间后,停止运行,按下并松开S4则回到初始状态,在运行中要显示定时时间和剩余工作时间,当剩余时间为0时,要显示“End”。在工作过程中用三个LED指示灯指示电机工作状态,正转D1灯亮,反转D2灯亮,暂停D3灯亮,如此反复直至工作时间为0停止(三个LED灯都不亮)。二、设计方案1洗衣
4、机控制器的整体框图与原理:原理:本次设计7中七段数码管采用动态扫描的方式显示,扫描需要一个比较高频率的信号,本次设计选用1000HZ。为了得到1000Hz信号,必须对输入的时钟信号50MHZ进行分频。而定时脉冲采用秒脉冲,所以选用两个分频器。总的电路图包括时钟分频模块、定时和加减模块、时钟中心控制模块、数码管显示译码模块。具体电路图如图所示:2.控制电路各模块程序及仿真图2.1时钟分频模块FPGA的输入脉冲有50MHz,而数码管显示所需的脉冲为1KHz.而时钟中心控制模块所需的脉冲为1Hz.所以需要两个分频器,具体如下:其VerilogHDL语言描述如下:modulefenpin(
5、p_50MHz,p_1kHz);//分频inputp_50MHz;outputp_1kHz;regp_1kHz;reg[15:0]count1;always@(posedgep_50MHz)if(count1==24999)begincount1<=15'd0;p_1kHz<=~p_1kHz;end7elsecount1<=count1+1'b1;endmodulemodulefenpin1(clk_1000,clk_1);inputclk_1000;outputclk_1;regclk_1;reg[9:0]cnt;always@(posedgeclk_1000)beginif(c
6、nt==10'd499)cnt<=10'd0;elsecnt<=cnt+1;endalways@(posedgeclk_1000)beginif(cnt==10'd0)clk_1<=~clk_1;endendmodule50MHz-----1KHz仿真波形1KHz-------1Hz仿真波形2.2定时和时钟中心控制模块通过此模块,可以实现时间的设定及加减,时钟中心控制正反转,暂停,以及LED灯的亮灭。通过设定时间及脉冲来决定剩余时间,二者输出作为选择器的输入。其VerilogHDL语言描述如下:7modulekongzhi(clk,s1,s2,s3,s4,set,show,d1,d
7、2,d3);7inputclk;inputs1;inputs2;inputs3;inputs4;output[4:0]show;output[4:0]set;outputd1,d2,d3;reg[5:0]s_out;reg[4:0]m_out;reg[4:0]show;reg[4:0]m_up;reg[4:0]m_down;reg[4:0]set;regstr;regd1,d2,d3;reg[3:0]i;regstop;always@(posedgeclkornege
此文档下载收益归作者所有