洗衣机控制器的设计Word格式文档下载.docx
《洗衣机控制器的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《洗衣机控制器的设计Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
第10天
编写设计说明书
教研室
意见
年月日
系(部)主管领导意见
目录
一设计方案5
二设计原理及其实现过程5
2.1设计总原理5
2.2设计框图6
2.3模块设计和相应模块6
2.3.1预制时间和减法计数器模块6
2.3.2数码管动态扫描及状态显示模块7
2.3.3分频模块9
三总电路仿真波形及引脚分配10
3.1仿真波形及分析10
3.2引脚分配11
四测试结果12
五课程设计心得12
六参考文献12
一设计方案
本定时器实际上包含两级定时的概念,一是总洗涤过程的定时,而是在总洗涤过程中又包含电机的正转、反转和暂停三种定时,并且这三种定时是反复循环直至所设定的总定时时间到位置。
当总定时时间在0~20min以内设定一个书之后T为高电平1,然后用倒计时的方法每分钟减1直至T变为0。
在此期间,若Z1=Z2=1,实现正转;
若Z1=Z2=0,实现暂停;
若Z1=1,Z2=0,实现反转。
实现定时的方法很多,比如采用单稳电路实现定时,又如将定时初值预置到计数器中,使计数器运行在减计数状态,当减到全零时,则定时时间到。
如图所示的电路原理框图就是采用这种方法实现的。
由秒脉冲发生器产生的时钟信号经60分频后,得到分脉冲信号。
洗涤定时的时间的初值先通过拨盘或数码开关设置到洗涤时间计数器中,每当分脉冲到来计数器减1,直至减到定时时间到为止。
运行中间,剩余时间经译码后在数码管上进行显示。
二设计原理及其实现过程
2.1设计总原理
洗衣机控制器的设计主要是定时器的设计。
由一片FPGA(FieldProgrammableGateArray)和外围电路构成了电器控制部分。
FPGA接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制。
对FPGA芯片的编程采用模块化的VHDL(硬件描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。
顶层和中间层多数是由VHDL的元件例化语句实现。
中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示控制、键盘扫描以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。
2.2设计框图
2.3模块设计和相应模块
2.3.1预制时间和减法计数器模块
由于洗衣机有工作时间,必须要一模块来控制它的工作时间范围,所以我们设计了一个减法计数器模块,当洗衣机开始工作后,减法计数器即会实现减数功能,直到时间减到零,洗衣机便停止工作。
预制时间和减法计数器模块程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycountis
Port(clk,en,ld:
instd_logic);
Endentity;
Architectureoneofcountis
signalc1,c2,c3,a,a1,a2,a3,a4,a5,a6:
integerrange15downto0;
signalb:
integerrange5downto0;
signalclk1,clk2,k:
std_logic;
process(clk1,ld,en)
begin
ifen='
1'
then
if(clk1'
eventandclk1='
)then
ifk='
then
ifc1=0andc2=0andc3=0then
a1<
=c1;
a2<
=c2;
a3<
=c3;
else
c1<
=c1-1;
ifc1=0thenc2<
=c2-1;
c1<
=9;
ifc2=0thenc3<
=c3-1;
c2<
endif;
a1<
ifa3=1and(a2>
5)thena4<
=10;
a5<
=15;
a6<
elsifa3=1and(a2>
4)thena4<
a5<
a6<
=12;
2)thena4<
=14;
1)thena4<
elsifa3=1and(a2=0ora2=1)thena4<
elsifa3=0and(a2>
8)thena4<
elsifa3=0and(a2>
6)thena4<
elsifa3=0and(a2>
5)thena4<
elsifa3=0and(a2>
3)thena4<
0)thena4<
elsifa3=0and(a2=0)thena4<
endif;
elsek<
=ld;
=7;
c3<
=endif;
endprocess;
endcount;
2.3.2数码管动态扫描及状态显示模块
此模块用于不同工作状态时,数码管显示相应的H、F和P来表示洗衣机正转、反转和暂停动作,并实现数码管的动态扫描。
数码管动态扫描及状态显示模块程序
entityzhuangtaiis
Port(led_selout:
outstd_logic_vector(7downto0);
led7s:
outstd_logic_vector(6downto0));
Architectureoneofzhuangtaiis
signalclk2:
process(clk2)
variables:
integerrange6downto0;
begin
if(clk2'
eventandclk2='
)then
s:
=s+1;
ifs=6thens:
=0;
b<
=s;
endprocessp2;
process(b)
casebis
when0=>
a<
=a1;
when1=>
=a2;
when2=>
=a3;
when3=>
=a4;
when4=>
=a5;
when5=>
=a6;
endcase;
endprocess;
process(a)
begin
caseais
when0=>
led7s<
="
1000000"
;
--0
when1=>
1111001"
--1
when2=>
0100100"
--2
when3=>
0110000"
--3
when4=>
0011001"
--4
when5=>
0010010"
--5
when6=>
0000010"
--6
when7=>
1111000"
--7
when8=>
0000000"
--8
when9=>
0010000"
--9
when10=>
0001001"
--H
when12=>
0001100"
--p
when14=>
0001110"
--F
when15=>
1111111"
--15
whenothers=>
null;
endcase;
process(b)
casebis
led_selout<
00000001"
00000010"
00000100"
00001000"
00010000"
00100000"
End;
2.3.3分频模块
此模块是为了获得控制洗衣机运转时所需要的不同的频率,以使得洗衣机能够在不同状态时正常运转。
分频模块程序
entityfenpinis
Port(clk:
Architectureoneoffenpinis
signalclk1,clk2:
process(clk)
integerrange10000downto0;
if(clk'
eventandclk='
S:
ifs>
5000thens:
elsifs<
=2then
clk2<
='
0'
else
integerrange25000000downto0;
25000000thens:
clk1<
end;
三总电路仿真波形及引脚分配
3.1仿真波形及分析
总电路仿真波形
洗衣机接通电源,按ld、en置为高电平洗衣机开始工作,当时钟第一个上升沿到达时(正转功能)为高电平维持20s以后变为低电平而(暂停功能)随着时钟上升沿的到来变为高电平维持10s变为低电平,然后(反转功能)开始随着时钟上升沿的到来变为高电平工作维持20s后变为低电平,再停止置高电平,接下来电路一直重复上述工作,直到定时器计数结束。
3.2引脚分配
端口号
引脚号
网络名
CLK
PIN_J3
EN
PIN_M3
FPGA_M1
LD
PIN_M4
FPGA_M2
LED_SELOUT[0]
PIN_G4
E_7SEG_A1
LED_SELOUT[1]
PIN_G3
E_7SEG_A2
LED_SELOUT[2]
PIN_E2
E_7SEG_A3
LED_SELOUT[3]
PIN_F2
E_7SEG_A4
LED_SELOUT[4]
PIN_F1
E_7SEG_A5
LED_SELOUT[5]
PIN_G2
E_7SEG_A6
LED_SELOUT[6]
PIN_G1
E_7SEG_A7
LED_SELOUT[7]
PIN_H2
E_7SEG_A8
LEDS[0]
PIN_L3
E_7SEG_A
LEDS[1]
PIN_L4
E_7SEG_B
LEDS[2]
PIN_H3
E_7SEG_C
LEDS[3]
PIN_H4
E_7SEG_D
LEDS[4]
PIN_H1
E_7SEG_E
LEDS[5]
PIN_L2
E_7SEG_F
LEDS[6]
PIN_K4
E_7SEG_G
四测试结果
电路设计完成以后,按照预定设计,执行相应操作,三只数码管按照设定时间规律间断性亮起,并分别一次间断性地显示H、F和P,表示洗衣机正在进行正传、反转和暂停工作。
同时,另外三只数码管也显示输入时间,并按减数计时产生相应的数字显示,直到到达预定时间停止工作显示零,,洗衣机停止工作,实验设计达到预期效果。
五课程设计心得
本次洗衣机控制器的课程设计过程中,采用的是是模块化层次化的设计方法,通过这样分模块化的思考方式,设计显得相对容易很多,思路也比较简单。
洗衣机控制器主要只有三个状态,要实现几种状态的多次循环的改变,还要有计时和数码管动态显示的功能。
因此电路可主要分为以下几个模块:
预制时间与减法计数器模块、数码管动态显示模块、分频模块。
通过每个模块的设计,最后运用VHDL语言的进程语句进行模块间的组合,从而完成总程序的设计。
通过此次课程设计,对于VHDL语言有了基本的掌握,对其设计方法也有了一些技巧性的了解,为将来的硬件设计打下了一定的基础。
对于FPGA的编程、定时器和计数器的设计都熟悉了起来,加深了对时序组合电路的印象。
在此次课程设计中,感谢指导老师的耐心解答和同学的热情帮助!
课程设计的整个过程中,发现自己很多方面的知识掌握得不太好,不牢固,很多知识不知道如何运用到实际中去解决问题。
归根结底,还是自己学的东西不够扎实,没有真正理解学到的知识。
在今后的学习过程中,一定要认认真真,扎扎实实,好好地学习理论知识,争取将来能够为国家的电力行业做出自己应有的贡献。
六参考文献
[1]潘松著.EDA技术实用教程(第二版).北京:
科学出版社,2005.
[2]康华光主编.电子技术基础模拟部分.北京:
高教出版社,2006.
[3]阎石主编.数字电子技术基础.北京:
高教出版社,2003.