EDA课程设计洗衣机控制器

  • 格式:docx
  • 大小:17.91 KB
  • 文档页数:15

东北石油大学课程设计课程201D年3月术课程设计题目洗衣机控制器院系 __________ 电子科学学院 ____________ 专业班级____________ 电子信息工程___________ 学生姓名_________________________学生学号指导教师东北石油大学课程设计任务书课程EDA技术课程设计 _______________________________________________________题目洗衣机控制器_____________________________________________________________专业电子信息工程______________ 姓名学号_________________主要内容、基本要求、主要参考资料等主要内容:设计一个洗衣机控制器,要求洗衣机有正转、反转、暂停三种状态。

设定洗衣机的工作时间,要洗衣机在工作时间内完成:定时启动正转20秒暂停10秒反转20秒暂停10秒定时未到回到“正转20秒暂停10秒”,定时到则停止,同时发出提示音。

基本要求:1、设计一个电子定时器,控制洗衣机作如下运转:定时启动正转20秒暂停10秒反转20秒暂停10秒定时未到回到“正转20秒暂停10秒 .. ",定时到则停止;2、若定时到,则停机发出音响信号;3、用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;洗涤过程由“幵始”信号幵始;4、三只LED丁表示“正转”、“反转”、“暂停”三个状态。

主要参考资料:[1] 潘松着.EDA技术实用教程(第二版).北京:科学出版社,2005.[2] 康华光主编•电子技术基础模拟部分.北京:高教出版社,2006.[3] 阎石主编.数字电子技术基础.北京:高教出版社,2003.完成期限______________指导教师_______________________专业负责人_____________________2014年3月3日、设计思想1.基本原理洗衣机控制器的设计主要是定时器的设计。

由一片 FPG 保口外围电路构成了电器控制部分。

FPGA 接收键盘的控制命令,控制洗衣机的进水、排水、水位和 洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、 制动控制、起停控制和运动状态控制。

对芯片的编程采用模块化的 VHDL (硬件 描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。

顶层和中 间层多数是由VHDL 的元件例化语句实现。

中间层由无刷直流电机控制、运行模 式选择、洗涤模式选择、定时器、显示控制、键盘扫描、水位控制以及对直流 电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用 底层模块。

2.设计框图图1设计框图用两位数码管预置洗涤时间(分钟数),洗涤过程在送入预置时间后开始运 转,洗涤中按倒计时方式对洗涤过程作计时显示,用LED 表示电动机的正、反转,如果定时时间到,则停机并发出音响信号。

二、设计步骤和调试过程1、模块设计和相应模块代码洗衣机控制器电路主要有五大部分组成,包括:减法计数器、时序控制电 路、预置时间和编码电路、数码管显示、译码器组成(1)预设时间和编码电路:本模块将输入的四位时间信号编码成八位二进制数 输出到减法计数器电路。

暂 停[[反 转.定时没libraryieee;use signalp1:std_logic_vector(7downto0);beginprocess(load)beginif(load'eventandload='1')thencasetime_inputiswhen"0000"=>p1<="00000000";when"0001"=>p1<="00000001";when"0010"=>p1<="00000010";when"0011"=>p1<="00000011";when"0100"=>p1<="00000100";when"0101"=>p1<="00000101";when"0110"=>p1<="00000110";when"0111"=>p1<="00000111";when"1000"=>p1<="00001000";when"1001"=>p1<="00001001";whenothers=>p1<="00000000";endcase;endif;endprocesstime_set<=p1;endsettime;图 2 预设时间和编码仿真用K1、K2、K3、K4 给time_input 输入一个二进制数0111,让load 有效,输出time_set 为00000111。

( 2)减法计数器模块:由于洗衣机有工作时间,必须要一模块来控制它的工作时间范围,当洗衣机开始工作后,减法计数器即会实现减数功能,直到时间减到零,洗衣机便停止工作。

当出现系统运行结束信号time_over 时, 蜂鸣器报警洗衣机工作结束。

libraryieee;use process(clk)variabletime_second:integerrange0to59:=59;beginif(clk'eventandclk='1')thenif(start='0')thenif(time_remain(7downto0)=0)thentime_remain<=time_set;elsetime_remain(7downto4)<=time_remain(3downto0);time_remain(3downto0)<=time_set(3downto0);endif; time_second:=59;time_over<='1';if(time_over='1')thenif(time_second=0andtime_remain(7downto0)=0) then time_over<='0';elseif(time_second=0)thenif(time_remain(3downto0)=0)thentime_remain(7downto4)<=time_remain(7downto4)-1;time_remain(3downto0)<="1001";time_second:=59;elsetime_remain(7downto4)<=time_remain(7downto4);time_remain(3downto0)<=time_remain(3downto0)-1; time_second:=59;endif;elsetime_second:=time_second-1;endif;endif;endif;endif;endprocess;endcounter;图 3 减法计数器模块源仿真(3)数码管显示模块:根据课程设计要求,必须将洗衣机的工作状态及工作时间在数码管和指示灯上显示出来,此模块是用来控制洗衣机的工作状态及工作的频率,并把工作状态及工作时间显示出来。

a,b,c,d,e,f,g 分别对应数码管的七段,minute 和second 分别位选两个数码管,显示十位和个位。

libraryieee;use'eventandclk='1')thenchoose<=notchoose;if(choose='1')then minute<='0';second<='1'; bcd<=time_remain(7downto4); elseminute<='1';second<='0'; bcd<=time_remain(3downto0); endif; endif;endprocess;process(bcd)begincasebcdiswhen"0000"=>temp<="1111110";when"0001"=>temp<="0110000";when"0010"=>temp<="1101101";when"0011"=>temp<="1111001";when"0100"=>temp<="0110011";when"0101"=>temp<="1011011";when"0110"=>temp<="1011111";when"0111"=>temp<="1110000";when"1000"=>temp<="1111111";when"1001"=>temp<="1111011";whenothers=>temp<="1111011";endcase;a<=temp(6) ;b<=temp(5) ;c<=temp(4) ;d<=temp(3) ;e<=temp(2) ;f<=temp(1) ;g<=temp(0)endprocessendshowtime图4 数码管模块仿真(4)时序电路模块:接收运行起止信号,安排电机运行状态并编码输出libraryieee;use'eventandclk='1')thenif(start='0')thenwash_time:=0;wait_time:=0;state:='0';out_1<='0';out_2<='0'; elseif(time_over='1')thenif(wash_time=20)thenif(wait_time=10)thenwash_time:=0;state:=notstate;elsewait_time:=wait_time+1; endif;elsewash_time:=wash_time+1; wait_time:=0;endif;endif;if(wash_time=20)thenout_1<='0';out_2<='0';elseif(state='0')then out_1<='1';out_2<='0';elseout_1<='0';out_2<='1';endif;endif;endif;endif;endprocess;endanalyse;图 5 时序电路模块仿真:(5)译码器模块:接收电机运行状态信号,译码后实时控制电机的正传、反转和暂停。