- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的洗衣机电机正反转控制器
电机控制综合课程设计报告
课题名称:基于FPGA的洗衣机电机正反转控制器
学 院:信息与控制工程学院
专业班级:
姓 名:
学 号:
2014 年 7 月 4 日目录
设计内容----------------------------------3
设计方案----------------------------------3
1 洗衣机控制器的整体框图与原理-------------------3
2 控制电路各模块程序及仿真图--------------------4
电路调试----------------------------------10
总结与体会--------------------------------10
一、设计内容
1.任务要求及内容
设计一个基于FPGA的洗衣机正反转定时控制器,其具体要求如下:
控制洗衣机的电机作如下周期性运转,正转4S――暂停2S――反转4S――暂停2S用8位七段数码管显示自己学号的后四位(显示在从左边数第一个到第四个数码管上)、定时时间(两位,单位:分钟,显示在第五个和第六个数码管上),剩余时间(两位,单位:分钟,显示在第七个和第八个数码管上)。
(1)上电后显示自己学号的后四位,在运行中不变;初始洗涤时间为10分钟,在开始前可用S1和S2按键设置总的工作时间,确定洗衣机控制器定时工作时间。(按下并松开S1 定时时间增加一分钟,按下并松开S2定时时间减少一分钟,时间范围为:00~30分钟)
(2)设定好定时时间后,按下并松开S3(按下时S3=0,松开时S3=1),启动控制器,整个系 统开始运行;再次按下并松开S3,停止运行;再次按下并松开S3继续运行;按下并松开S4则回到上电初始状态。其他两个按键不起作用。到达定时时间后,停止运行,按下并松开S4则回到初始状态,在运行中要显示定时时间和剩余工作时间,当剩余时间为0时,要显示“End”。
在工作过程中用三个LED指示灯指示电机工作状态,正转D1灯亮,反转D2灯亮,暂停D3灯亮,如此反复直至工作时间为0停止(三个LED灯都不亮)。
原理:本次设计中七段数码管采用动态扫描的方式显示,扫描需要一个比较高频率的信号,本次设计选用1000HZ。为了得到1000Hz信号,必须对输入的时钟信号50MHZ进行分频。
控制电路各模块程序及仿真图
2.1 时钟分频模块
FPGA的输入脉冲有50MHz,而数码管显示所需的脉冲为1KHz.而时钟中心控制模块所需的脉冲为1Hz.所以需要两个分频器,具体如下:
其Verilog HDL 语言描述如下:
module fenpin(p_50MHz,p_1kHz); //分频
input p_50MHz;
output p_1kHz;
reg p_1kHz;
reg [15:0]count1;
always @ (posedge p_50MHz)
if(count1 == 24999)
begin
count1 = 15d0;
p_1kHz = ~p_1kHz;
end
else count1 = count1 + 1b1;
endmodule
module fenpin1(clk_1000,clk_1);
input clk_1000;
output clk_1;
reg clk_1;
reg [9:0] cnt;
always@(posedge clk_1000)
begin if (cnt==10d499)
cnt = 10d0;
else cnt = cnt+1;
end
always@(posedge clk_1000)
begin if (cnt==10d0)
clk_1 = ~clk_1;
end
endmodule
50MHz-----1KHz仿真波形
1KHz-------1Hz仿真波形
2.2定时和时钟中心控制模块
通过此模块,可以实现时间的设定及加减,时钟中心控制正反转,暂停,以及LED灯的亮灭。通过设定时间及脉冲来决定剩余时间,二者输出作为选择器的输入。
其Verilog HDL 语言描述如下:
modulekongzhi(clk,s1,s2,s3,s4, set,show,d1,d2,d3);
input clk;
input s1;
input s2;
input s3;
input s4;
output [4:0]show;
output [4:0]set;
output d1,d2,d3;
re
文档评论(0)