版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于FPGA的洗衣机电机正反转控制器院:信息与控制工程学院业:电子信息工程级:名:口号:2014年7月1. 设计任务与要2. 设计思3. 设计原理及方4. 总结与讨14一、设计任务及要求:1.控制洗衣机的电机作如下周期性运转,正转 4S暂停2S反转4S 暂停2S,用8位七段数码管显示自己学号的后四位(显示在从左边数第一个到第 四个数码管上)、定时时间(两位,单位:分钟,显示在第五个和第六个数码管 上), 剩余时间(两位,单位:分钟,显示在第七个和第八个数码管上2洗衣机控制器的工作过程为:(1)上电后显示自己学号的后四位,在运行中不变;初始洗涤时间为10分钟,在开始前可用S1和S2按键设置总的工
2、作时间,确定洗衣机控制器定时工作时间。(按下并松开S1定时时间增加一分钟,按下并松开S2定时时间减少一分钟,时间 范围为: 0030分钟)(2)设定好定时时间后,按下并松开 S3(按下时S3=0,松开时S3=1),启动控 制器,整个系统开始运行;再次按下并松开 S3,停止运行;再次按下并松开 S3 继续运行;按下并松开S4则回到上电初始状态。其他两个按键不起作用。到达 定时时间后,停止运行,按下并松开 S4则回到初始状态,在运行中要显示定时 时间和剩余工作时间,当剩余时间为 0时,要显示“ End。在工作过程中用三 个LED指示灯指示电机工作状态,正转 D1灯亮,反转D2灯亮,暂停D3灯亮,
3、如此反复直至工作时间为0停止(三个LED灯都不亮)。系统总体框图如下:二、设计思路为了便于计时,首先把1000Hz的外部时钟分频为1Hz。正转时间设为4s,反 转设为4s,暂停设为2s,令洗衣机按照正转4s、暂停2s、反转4s、暂停2s的 顺序进行旋转,周期恰好为 10秒,而定时时间单位为分钟,因此需要设计分钟 计数器和秒计数器。开发板提供的时钟信号 CP频率为1000Hz,应该设计一分频 器得到1Hz的时钟信号作为时间计数脉冲。设计中七段数码管采用动态扫描的方式显示,扫描需要一个比较高频率的信 号,本次设计选用1000HZ为了得到1000Hz信号,必须对输入的时钟信号50MHZ 进行分频。显
4、示模块共用 10个管脚,其中 7个用于连接 8个数码管的七段 LED, 还有 3个管脚用于选择点亮哪个数码管, 每隔很短的一段时间 8 个数码管交替点 亮,依次循环,动态显示,由于人眼的视觉残留,可以观察到连续的测量计数器 的计数值。其原理框图如图所示:本系统采用层次化、 模块化的设计方法, 设计顺序为自下向上。 首先实现系统 框图中的各子模块, 然后由顶层模块调用各子模块 (既可以采用原理图, 也可以 采用 Verilog HDL 语言)来完成整个系统。三、设计原理及方案1. 洗衣机点击正反转控制器的设计由由分频模块, 模八计数器模块, s1s2s3s4 控制电路模块, 32 位信号产生模块
5、,数据选择器模块,数码管显示模块组成。0 时显示 End 的FPGA接收命令,控制洗衣机的正转、反转、停机和定时时间为 工作状态。对FPGA芯片的编程采用模块化的Verilog HDL (硬件描述语言)进行 设计。顶层使用原理图实现,底层由 Verilog HDL 语句实现。(1)总体框图(2) 功能实现2.分频器50MHz到1KHz本模块实现对50MHz到1KHz的分频,1KHz的信号为模八计数器提供时钟信号。(1) 源程序module lrfenpinqi50M(clk_50M,clk_1000);input clk_50M;output clk_1000;reg clk_1000;reg
6、 15:0cnt; always(posedge clk_50M) beginif(cnt=16d24999)begin clk_1000=clk_1000;cnt=0;endelse cnt=cnt+1;end endmoduleendmodule(2) 元器件(3) 功能仿真3.分频器1KHz到1Hz本模块实现对1KHz到1Hz的分频,1KHz的信号为s1s2s3s4控制电路提供时 钟信号。(1) 源程序module lrfenpinqi1000(clk_1000,clk_1);input clk_1000;output clk_1;reg clk_1;reg 15:0cnt;always
7、(posedge clk_1000) beginif(cnt=16d499)begin clk_1=clk_1;cnt=0;endelsecnt=cnt+1;endendmodule(2) 元器件(3) 功能仿真4. 模八计数器本模块实现显示数码管的动态扫描。 如果采用静态显示, 则需要 56 根线实现,动态则只需要10根。其输出还作为数据选择器的 SEL端输入。(1) 源程序module lrjishuqi(cp,q);input cp;output q;reg 2:0q;always(posedge cp)beginif(q=3d7)q0)q=q+1;endendmodule(2) 元器件
8、(3) 功能仿真控制电路本模块实现时间加减,开始和复位的功能并且通过本模块来控制 D1,D2,D3 个灯的循环产生,本模块还输出 8 位信号作为下一模块设置时间和剩余时间的输 入。(1) 源程序module s1s2s3s4(clk,s1,s2,s3,s4,m_settime,m_left,d1,d2,d3); input clk;input s1,s2,s3,s4;output 4:0m_left; output 4:0m_settime;output d1,d2,d3; reg 5:0s_out; reg 4:0m_out; reg 4:0m_left; reg 4:0m_up;reg 4
9、:0m_down; reg 4:0m_settime; reg str;reg d1,d2,d3; reg 3:0i; reg stop;always(posedge clk or negedge s4) begin if(!s4) begin s_out=0;m_out=0; i=0;d1=0; d2=0; d3=0; stop=0;end else if(m_left=0) begin i=14; d1=0; d2=0; d3=0; stop=1;end else if(str&!stop) begin if(i=0) begin i=i+1; d1=1; d3=0;end if(i=4)
10、 begin i=i+1;d1=0;d3=1; end if(i=6) begin i=i+1;d3=0;d2=1; end if(i=10) begin i=i+1;d2=0; d3=1;end if(i=11) i12) d1=0;if(s_out!=6d59) s_out=s_out+1;else begin s_out=0;m_out=m_out+1;end end end always(posedge s1 or negedge s4) begin if(!s4) m_up=0; else if(!str) m_up=m_up+5d1;endalways(posedge s2 or
11、negedge s4) begin if(!s4)m_down=0; else if(!str) m_down=m_down-5d1;endalways(posedge s3 or negedge s4) beginif(!s4) str=0;else if(str=1) str=0;else if(str=0) str=1;endalways( s1 or s2 or s4) begin m_settime=5d10+m_up+m_down;endalways(clk or s3 or s4) begin m_left=m_settime-m_out;end endmodule(2) 元器件
12、(3) 功能仿真5. 32 位信号产生电路本模块长生 32 位信号实现显示学号和设置时间、剩余时间的功能。(1) 源程序module xinhao32(settime,lefttime,s1,s2,s3,s4,s5,s6,s7,s8);output 3:0s1,s2,s3,s4,s5,s6,s7,s8;input 4:0lefttime,settime;reg 3:0s1,s2,s3,s4,s5,s6,s7,s8; always(settime or lefttime)begin s1=4h2;s2=4h2;s3=4h0;s4=4h3; if(lefttime=0)begin s5=4hd;s
13、6=4ha; s7=4hb; s8=4hc;end else begin s5=settime/10; s6=settime%10; s7=lefttime/10; s8=lefttime%10; end end endmodule(2) 元器件(3) 功能仿真6. 数据选择器通过本模块将四个八位信号分别选到译码器的输入端。(1) 源程序module lrshujuxuanze(in0,in1,in2,in3,in4,in5,in6,in7,sel,out);input3:0in0,in1,in2,in3,in4,in5,in6,in7;input2:0sel;output3:0out;reg
14、3:0out;always( in0 or in1 or in2 or in3 or in4 or in5 or in6 or in7 or sel)begincase(sel)3d0:out=in0;3d1:out=in1;3d2:out=in2;3d3:out=in3;3d4:out=in4;3d5:out=in5;3d6:out=in6;3d7:out=in7;endcaseendendmodule(2) 元器件(3) 功能实现7. 译码电路本模块将数据选择器的 4 位输出信号译码为 7 位信号作为数码管的显示。 (1) 源程序module lryimaqi(decode_out,dec
15、ode_in); output6:0 decode_out;input3:0 decode_in;reg6:0 decode_out; always (decode_in) begincase(decode_in)4h0:decode_out=7b1111110;4h1:decode_out=7b0110000;4h2:decode_out=7b1101101;4h3:decode_out=7b1111001;4h4:decode_out=7b0110011;4h5:decode_out=7b1011011;4h6:decode_out=7b1011111;4h7:decode_out=7b1
16、110000;4h8:decode_out=7b1111111;4h9:decode_out=7b1111011;4ha:decode_out=7b1001111;4hb:decode_out=7b0010101;4hc:decode_out=7b0111101;4hd:decode_out=7b0000000;endcaseend endmodule(2) 元器件(3) 功能仿真四、总结与讨论本次课程设计设计了基于EPGA的洗衣机电机正反转控制器。在课程开始之前, 要提前预习, 掌握设计的总体思路。 由于没有好好预习, 所以在第一天花费很长 时间了解设计任务、设计要求及思考总体思路。 本次设计要根据系统采取层次化、 模块化的设计方法, 设计顺序自下而上。 首先实现系统框图中的各子模块, 然后 由顶层设计调用各子模块来完成整个系统。 在显示管的管脚分配的时候由于基础 知识掌握不牢固, 将管脚分配弄反, 得到了镜像的数字显示。 第二次验证程序的 时候,数字可以正常显示,但 D1, D2, D3三个灯均不亮,检查了很多遍才发现 自己的错误。最后,顺利完成了本次设计并且实现了题目要求的功能。 本次设计, 学到了很多东西:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年小学数学生活化教学中的折扣问题案例
- 精神类药品安全管理制度
- 急性胰腺炎处理管理培训指南
- 规范穿脱防护用品要点
- 肝炎病毒感染的防控措施培训
- 2025年公务员(责任意识提升)试题及答案
- 肾上腺皮质功能减退康复训练方案
- 老年人旅游团夕阳红专列旅游
- 产科肿瘤患者的护理
- 2026年基于战略落地的绩效管理体系设计与推行
- 2026年吉林省长春市辅警考试试卷含答案
- 瓮福达州化工有限责任公司招聘(四川)笔试备考题库及答案解析
- 智慧安全油库试点建设指南(试行)
- 2026年及未来5年中国广东省民办教育行业市场调研及投资规划建议报告
- 2025年山东高考思想政治真题试卷完全解读(含试卷分析与备考策略)
- 广西中烟工业有限责任公司2026年招聘51人备考题库附答案详解
- 2026年能源发展行业全球海洋能分析报告
- 安全生产连带考核制度
- 工业和信息化部所属单位招聘54人备考题库及答案详解(新)
- 云南省公路工程试验检测费用指导价
- 2025-2026学年辽宁省沈阳市浑南区七年级(上)期末英语试卷(含答案)
评论
0/150
提交评论