欢迎来到天天文库
浏览记录
ID:19678292
大小:170.50 KB
页数:10页
时间:2018-10-04
《洗衣机控制器的设计new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数字系统设计与硬件描述语言期末考试作业题目:洗衣机控制器的设计学院:电子信息工程学院专业:电子信息工程学号:3011204295姓名:邹雪强2013-11-06设计原理及功能介绍以EDA技术的基本理论为指导,用EDA方法去设计并完成特定功能的电子电路的仿真、调试,本设计为基于VHDL的EDA设计——洗衣机控制器的设计,同时要掌握常用仿真开发软件,比如:QuartusII和MaxplusII等EDA常用软件(本次试用使用的软件为QuartusII9.1)。基本要求:可选择工作模式;可设定工作时间;具有报警
2、功能等。10--设计指标:控制洗衣机作如下运转:定时启动®正转20秒®暂停10秒®反转20秒®暂停10秒®定时未到回到“正转20秒®暂停10秒®……”,定时到则停止;若定时到,则停机发出音响警报信号;用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;洗涤过程由“开始”信号开始;三只LED灯表示“正转”、“反转”、“暂停”三个状态。原理:洗衣机控制器的设计主要是定时器的设计,由一片FPGA和外围电路构成了电器控制部分。FPGA接收键盘的控制命令,控制洗衣机的进水、
3、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制。对FPGA芯片的编程采用模块化的VHDL进行设计,设计分为三层实现,顶层实现整个芯片的功能。顶层和中间层多数是由VHDL的元件例化语句实现。中间层由运行模式选择、洗涤模式选择、定时器、显示控制、键盘扫描、水位控制以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。用LED显示正转20秒,暂停10秒,反转20秒,暂停10秒,60秒为一周期。总之洗衣机控制器
4、设计的关键是计数器和定时器的设计。洗衣机控制器电路由五部分组成:1预置时间和编码电路:定时洗涤时间2减法计数器:计时3时序控制电路:控制洗涤过程的正转、暂停和反转4译码器:译出Q1Q2=00时,为暂停,Q1Q2=10时,为正转,Q1Q2=01时为反转5数码管显示:显示电路显示时间10--程序源代码及说明洗衣机控制器的源程序如下:一数码管显示libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityshowtim
5、eisport(remain_time:instd_logic_vector(3downto0);cp:instd_logic;a,b,c,d,e,f,g:outstd_logic);endshowtime;architecturertlofshowtimeissignaltemp:std_logic_vector(6downto0);beginprocess(remain_time)begincaseremain_timeiswhen"0000"=>temp<="1111110";when"0001"
6、=>temp<="0110000";when"0010"=>temp<="1101101";when"0011"=>temp<="1111001";when"0100"=>temp<="0010011";when"0101"=>temp<="1011011";when"0110"=>temp<="1011111";when"0111"=>temp<="1110000";when"1000"=>temp<="1111111";when"1001"=>temp<="1111011";whenothers=>
7、null;endcase;endprocess;a<=temp(6);b<=temp(5);c<=temp(4);d<=temp(3);e<=temp(2);f<=temp(1);g<=temp(0);endrtl;二时序电路——控制洗衣机按20秒正转,停十秒。20秒反转,停十秒的顺序运行,直到时间结束信号的到来:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;10--entityshixuisport(cp,e
8、n,rd:instd_logic;q1,q2:outstd_logic--00为停机,10为正转,01为反转);endshixu;architecturertlofshixuisbeginprocess(cp)variablestate:std_logic;--0代表正转,1代表反转variablewash_time:integer:=21;variablewait_time:integer:=9;beginif(en='0')thenwa
此文档下载收益归作者所有