全自动洗衣机控制系统.docx
- 文档编号:6088377
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:31
- 大小:223.02KB
全自动洗衣机控制系统.docx
《全自动洗衣机控制系统.docx》由会员分享,可在线阅读,更多相关《全自动洗衣机控制系统.docx(31页珍藏版)》请在冰豆网上搜索。
全自动洗衣机控制系统
合肥学院
计算机科学与技术系
课程设计报告
2008~2009学年第二学期
课程
微型计算机原理与接口技术
课程设计名称
全自动洗衣机控制系统
学生姓名
王晓冀
学号
0704012007
专业班级
07计本二班
指导教师
龙夏
2010年3月
全自动洗衣机控制系统
一、题意分析及解决方案
1.题义需求分析
题目要求设计一个全自动洗衣机控制系统。
可以用若干个按键来实现对洗衣机的控制,让其有两种洗衣模式分的水流别是普通水流和柔和水流以及两种洗衣程序即标准程序和经济程序。
程序中要实现电机正转反转的功能,而且在各个状态中都应该通过LED晶体二极管显示洗衣机运行状态,最后在洗衣工作完成后,由蜂鸣器发出声响,表示衣物已洗干净。
由此可见,本课程设计大致上需要一个8255A芯片来控制整个程序的连接以及输入输出,若干个LED二极管来显示洗衣机运行状态,一个步进电机,逻辑开关,一个继电器来控制阀门的闭合,最后还需要一个蜂鸣器来提示洗衣过程的结束。
1)解决问题的方法跟思路
(1)硬件部分:
a.选择可编程并行接口芯片8255A,实现自动洗衣机各个控制以及状态的显示输出。
本设计使8255A工作于方式0,即基本输入输出方式;将PA口作为输出口,显示洗衣机工作时的各个状态,即连接LED指示灯;PB口作为输入口,即连接开关按键;PC作为输入口,连接继电器,蜂鸣器,步进电机部件。
b.直接选用LED二极管显示洗衣机工作状态因为其会使实验过程一目了然,而且减少了8255端口的使用,编程上也方便了。
c.一开始准备使用直流电机,不过在实际操作中,发现直流电机的使用需要加入一段关于数模转换的代码,而且由于洗衣机中的电机要有一个正转反转的过程,在本设计中采用了步进电机。
(2)软件部分:
对8255进行初始化。
将8255的工作方式设定为方式0,即PA、PB、PC三个口能够进行输入输出操作。
PB口作为输入口,与逻辑开关相连,接收开关表示的数值和要控制的相关状态。
PA口连接LED小灯输出运行状态。
在开始时候应将水位设为1即高水位。
PC口连接蜂鸣器,继电器,电机等元件也为输入口。
在过程中需要完成对于洗衣模式的设定,以及这个部分的设定!
比如洗涤,漂洗等等,也就是在其中设定了关于电机正转还是反转以及转速和转的圈数的设定。
二、硬件设计
1.8255A芯片
1)8255A在本设计中的作用
8255A为可编程输入/输出接口芯片,用于接收二进制开关送来的高低信号,和程序中给定的相应的高低位用来实现对发光二极管的发光与否控制,蜂鸣的控制和继电器的开关控制。
2)8255A的功能分析
其主要用于输入输出的控制。
其内部有3个并行I/O端口分别为A,B,C口。
A口可工作于方式0、1、2,而B口只可工作于方式0与方式1下。
C口通常用作联络信号的传送。
在本设计中A口用于输出高低信号指示相应的发光管发光,B口用于开关的输入,而C口用于连接相应的步进电机和蜂鸣器,以及继电器。
8255A的引脚信号:
与外设相连的:
PA7~PA0:
A口数据信号线。
PB7~PB0:
B口数据信号线。
PC7~PC0:
C口数据信号线。
与CPU相连的:
RESET:
复位信号。
当此信号来时,所有寄存器都被清除。
同时三个数据端口被自动置为输入端口。
D7~D0:
它们是8255A的数据线和系统总线相连。
:
片选信号。
在系统中,一般根据全部接口芯片来分配若于低位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,于8255A被选中。
只有当有效时,读信号写才对8255进行读写。
:
读信号。
当此信号有效时,CPU可从8255A中读取数据。
:
写信号。
当此信号有效时,CPU可向8255A中写入数据。
A1、A0:
端口选择信号。
8255A内部有3个数据端口和1个控制端口,共4个端口。
规定当A1、A0:
为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。
8255A的方式控制字:
图2-18255A的方式控制字
3)8255A的技术参数
输入最低电压:
min-0.5V,max0.8V,输入最高电压:
2.0V。
输出最低电压:
0.45V
输出最高电压:
2.4V。
标识符
最小
最大
测试条件
输入低电平(VIL)
-0.5V
0.8V
输入高电平(VIH)
2.0V
5V
输出低电平(VOL)DB
0.45V
IOL=2.5mA
输出低电平(VOL)PER
0.45V
IOL=1.7mA
输出高电平(VOH)DB
2.4V
IOH=-400μA
输出高电平(VOH)PER
2.4V
IOH=-200μA
驱动电流
-1.0mA
-4.0mA
REXT=750Ω,VEXT=1.5V
供应电流
120mA
IIL(INPUTLOADCURRENT
±10μA
VIN=0V~5V
IOFL(Outputfloatleakage
±10μA
VOUT=0.45~5V
表2-18255A的技术参数
其中PER为peripheralport的缩写,
2.选择逻辑开关
(1)逻辑开关在本设计中的作用
设计时用到六个个逻辑开关。
按键分配如下:
K1:
暂停开关(0,暂停;1启动)
K2:
洗衣程序选择开关(0,经济洗衣;1标准洗衣)
K3:
预设水位的开关(0,低水位;1高水位)
K4:
选择水流(0,普通水流;1柔和水流)
(2)逻辑开关的功能分析
如图所示,开关未合时,与5V电压相连,输入1,当合上之后,开关就将A口接地,也就输入为0,4位开关可以置0~15的数。
(3)逻辑开关的技术参数
逻辑开关及其编码
编码
数字
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7
八路二进制开关
开关高电平:
+5V、低电平:
0V
3.选择LED发光二极管
(1)发光二极管在本设计中的作用
即显示作用,标示洗衣机运行时候的各个状态,分别为洗涤、脱水、漂洗、甩干。
1)发光二极管的功能分析
LED作指示电路时,应该串接限流电阻,该电阻的阻值大小应根据不同的使用电压和LED所需工作电流来选择。
2)发光二极管参数
发光二极管的压降一般为1.5~2.0V,其工作电流一般取10~20mA为宜。
4.选择继电器
(1)继电器在本设计中的作用
主要是用来模拟进水阀、排水阀。
(2)继电器的功能分析
继电器的继电特性继电器的输入信号x从零连续增加达到衔铁开始吸合时的动作值xx,继电器的输出信号立刻从y=0跳跃到y=ym,即常开触点从断到通。
一旦触点闭合,输入量x继续增大,输出信号y将不再起变化。
当输入量x从某一大于xx值下降到xf,继电器开始释放,常开触点断开
继电器结构如图所示:
(3)继电器参数
5A/120VAC
10A/80A/240VAC~
5A/24VDC-
COIL:
5VDC
AC交流电,DC直流电,A安,COIL线圈
这个继电器的触电容量是工作在交流120V是5A交流240V是10A/80A,直流24V是5A,电磁继电器工作电压(线圈工作电压)是5V直流电.
5.选择蜂鸣器
(1)蜂鸣器在本设计中作用
在全部洗衣工作完成后,由蜂鸣器发出声响,表示衣物已洗干净。
(2)蜂鸣器功能分析
在本设计中用8255的PC4接蜂鸣器。
在洗衣过程结束后,程序会给蜂鸣器一个脉冲,促使蜂鸣器发出声响。
(3)蜂鸣器参数
额定电压1.5
工作电压范围1.0~1.7V
最大电流80MA
电阻6.0~10欧
DBA70~100
频率:
3000
6.步进电机
1)步进电机在本设计中的作用
步进电机的正传与反转带动齿轮转动,实现车轮的转动及实现了小车的左转与右转。
1)步进电机的功能分析
步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转。
切换是通过8255输出脉冲信号来实现的。
所以改变各相脉冲的先后顺序,可以改变电机的旋转方向。
步进电机与8255A的链接如下图6:
图6
用8255A的PA0~3分别控制步进电机的A、B、C、D四相,“1”则该相绕组通电,“0”则不通电。
步进电机的驱动原理是使各相绕组依次通电来使其作步进式旋转,通过通电顺序和切换频率来调节其转速和转向。
步进电机可以四相四拍或四相八拍方式工作,即通电顺序为:
A→B→C→D→A;A→AB→B→BC→C→CD→D→DA→A。
按相反的顺序即可改变电机的旋转方向。
本实验系统采用的是:
A→AB→B→BC→C→CD→D→DA→A。
相序表:
08h\0ch\04h\06h\02h\03h\01h\09h(正转);01h\03h\02h\06h\04h\0ch\08h\09h(反转)。
用8279控制键盘输入和LED显示。
UNL2003驱动电机运转。
3).步进电机的技术参数
本设计采用的是四相步进电机,用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
图7是该四相反应式步进电机工作原理示意图。
图7四相步进电机步进示意图
开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。
而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。
依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。
单四拍与双四拍的步距角相等,但单四拍的转动力矩小。
八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
7、硬件总逻辑图及其说明
连线说明:
B4区:
CS(8255)A3区:
CS1
B4区:
A0、A1ES-PCI:
A0、A1
B4区:
JP65(PA口)G6区:
JP65
B4区:
JP53(PB口)G6区:
JP80
B4区:
PC0(PC口)E1区:
A(端口)
B4区:
PC1(PC口)E1区:
B(端口)
B4区:
PC2(PC口)E1区:
C(端口)
B4区:
PC3(PC口)E1区:
D(端口)
B4区:
PC4(PC口)D1区:
CTRL(端口)
B4区:
PC6(PC口)E3区:
CTRL(端口)
三、控制程序
1.控制程序设计思路说明
首先要对8255A进行初始化,让其每个端口都工作在我们预期的状态。
即A口输出(段选),B口输入(开关),C口输出(位选),A,B都是工作在方式0。
对于输入的数字如何转换的问题,可以用XLAT换码指令,采用直接查表法来实现输出段选。
其中LED_Data为表的首地址,存放与BX中。
在程序的调用过程中会经常对8255端口进行置位操作,在之前我们已经对8255的端口给定了偏移量,在以后程序的调用过程中即可完成相应的从端口进入和从端口输出操作。
相应的在初始化得时候给红灯和绿灯也都相应的给了地址,对应的四相八拍的电机也给了相应的地址设置,在以后的洗衣程序中只要相配就执行相应的操作。
在洗衣程序的开始阶段设置了一个洗衣选择条件:
是经济洗,还是标准洗。
这个由二进制开关输入并且进行相应的控制,若二进制开关3置0则是标准洗,1则是经济洗。
洗衣的过程主要包括:
洗涤,脱水,漂洗,甩干。
每个洗涤过程都要让电机转动以达到洗涤的目的。
其中洗涤,漂洗都调用洗衣子函数(包含了电机的正向转动和反向转动)。
而脱水,甩干都是一次的单向转动过程,不需要调用子函数在程序中可以直接实现。
在程序的最后还调用了系统中常用的延时,发光管的持续亮就是延时的调用,从而达到了一直保持灯亮的作用。
2.程序流程图
主函数:
N
Y
K2=0标准洗衣K2=1经济洗衣
图1总流程图
图1总流程图
正
反
转
3
次
图2洗涤过程流程图
正
反
转
2
次
图3漂洗过程流程图
图4脱水过程流程图
图5甩干过程流程图
图4脱水过程流程图
3.控制程序
.MODELTINY
PCIBAR3EQU1CH
Vendor_IDEQU10EBH
Device_IDEQU8376
.STACK100
.DATA
IO_Bit8_BaseAddressDW?
msg0DB'BIOS不支持访问PCI
msg1DB'找不到StarPCI9052板卡$'
msg2DB'读8位I/O空间基地址时出错$'
COM_ADDDW00F3H
PA_ADDDW00F0H
PB_ADDDW00F1H
PC_ADDDW00F2H
LED_Datadb01111111B;初始化绿灯灯亮
db01011111B;初始化红灯亮(绿灯也在亮)
db00110001B;A******采用单八拍,一次旋转的角度7.5度
db00110011B;AB3
db00110010B;B4
db00110110B;BC5
db00110100B;C6
db00111100B;CD7
db00111000B;D8
db00111001B;DA9
.CODE
START:
movax,@DATA
MOVds,ax
NOP
callInitPCI
callModifyAddress;基地址转化为实地址
movdx,COM_ADD
moval,82H;8255初始化控制字10000010(B口为输入,A和C口均只为输出)
outdx,AL
movdx,PC_ADD;取c口的偏移地址
moval,00H;00送al,启动发光管
outdx,al
calldl500ms;调用500ms的延时
moval,0ffh
outdx,al;让蜂鸣响一次,表示洗衣开始
MOVdx,Pa_ADD;取a口的偏移地址
MOVal,0ffH;关掉发光管开始操作
OUTdx,al
LEABX,LED_Data
starta:
movDX,PB_ADD;初始话b口
inal,dx;等待键盘输入
cmpal,01h;输入的结果与1相比较
jnzstarta;等着按开关K1来启动洗衣机
movcx,3
jmpSTARTb
STARTb:
movDX,PA_ADD
moval,0
XLAT
outdx,al
callDL3S;9s放衣服时间,绿灯始终亮,红灯闪3次
movAL,1
XLAT
outdx,al
callDL500MS
loopSTARTb
jmpBEGIN
BEGIN:
;通过对k2键的设置来选择选衣流程
movdx,PA_ADD
moval,1
XLAT;数制转换操作
outax,al
calldl3s;等着按开关K2
movdx,PB_ADD;等待键盘输入
INal,dx
CMPal,01H;1表示标准洗衣程序
JZbiaozhun
CMPAL,03H;3是经济洗衣程序
JZjingji
biaozhun:
;标准洗衣
CALLxidia;洗涤过程
CALLtuoshuia;脱水过程
calltuoshuia;脱水过程
CALLpiaoxia;漂洗过程
CALLtuoshuia;托说过程
CALLpiaoxia;漂洗过程
CALLshuaigana;甩干过程
jmpexit
jingji:
;经济洗衣
CALLxidia;洗涤过程
CALLtuoshuia;脱水过程
callpiaoxia;漂洗过程
calltuoshuia;脱水过程
CALLshuaigana;甩干过程
jmpexit
xidiaPROCNEAR;洗涤过程子函数开始
moval,1;红灯亮
XLAT
OUTdx,AL
calldl500ms
movAL,0;关红灯,开绿灯用来指示工作
XLAT
OUTdx,AL
MOVdx,PC_ADD
MOVAL,0f0H;打开进水阀
OUTDX,AL
CALLDL5S;注水的过程
jmpstart5
start5:
MOVDX,PB_ADD
INAL,DX
CMPAL,04H;达到预定水位,通过按开关3来判断
jnzstart5
movdx,PA_ADD;洗涤状态标示第五个灯亮
MOVal,77H;写入01110111来开启相应的指示灯
OUTdx,al
callDELAY;加入延时保证灯亮
movcx,3;洗涤过程中的三次循环
jmpxididj
xidigc:
;洗涤过程子函数
calldianjizhd;调用电机转动子函数
calldl3s
loopxidigc;循环3次来洗衣服
movDX,PA_ADD
MOVAL,1
XLAT
outDX,AL;红灯亮
CALLDL3S
movAL,0;绿灯亮,用来指示工作
XLAT
OUTDX,AL
ret
xidiaENDP;洗涤过程结束
tuoshuiaPROCNEAR;脱水过程子函数开始
movDX,PB_ADD
INAL,DX;打开排水阀
MOVdx,PA_ADD;脱水状态标示第六个灯亮
moval,7BH;写入相应的二进制码来开启指示灯
OUTdx,AL
callDELAY
PUSHCX
MOVCX,75
JMPzhengxiang;跳到正向转动子程序中
zhengxiang:
movDX,PC_ADD
moval,2;A通电为带动AB转动做准备
XLAT
outdx,al
callDELAY;调用延时让电机转动
movAL,3;AB通电为带动B转动做准备
XLAT
outDX,AL
callDELAY;延迟500ms
movAL,4;B通电为带动BC转动准备
XLAT
outDX,AL
callDELAY;延迟500ms
movAL,5;BC通电旋转类推
XLAT
outDX,AL
callDELAY
movAL,6;C通电旋转类推
XLAT
outDX,AL
callDELAY
MOVAL,7;CD通电旋转类推
XLAT
OUTDX,AL
CALLDELAY
MOVAL,8;D通电旋转类推
XLAT
OUTDX,AL
CALLDELAY
MOVAL,9;DA通电旋转类推
XLAT
OUTDX,AL
CALLDELAY
LOOPzhengxiang
JMPjieshu;5S后结束脱水
jieshu:
MOVDX,PA_ADD
MOVAL,1;绿等亮
XLAT
OUTDX,AL;红灯亮
CALLDL500mS
MOVAL,0
XLAT
OUTDX,AL
RET
tuoshuiaENDP;脱水过程子函数结束
piaoxiaPROCNEAR;漂洗过程子函数开始
movAL,1
XLAT
OUTDX,AL;开启红灯
calldl500ms;延时确保灯的亮
movAL,0
XLAT
OUTDX,AL;开启绿灯指示工作
MOVDX,PC_ADD
MOVAL,0f0H;设置二进制码用来打开进水阀
OUTDX,AL
CALLDL5S
MOVDX,PA_ADD;脱水状态标示第七个灯亮
MOVAL,7DH
OUTDX,AL
CALLDELAY
movcx,2;漂洗中的电机循环2次
jmpxidigc1
xidigc1:
;过程子函数
calldianjizhd;调用电机转动子函数
calldl3s
loopxidigc1
MOVDX,PA_ADD
MOVAL,1
XLAT
OUTDX,AL;红灯亮
CALLDL500ms
MOVAL,0
XLAT
OUTDX,AL
RET
piaoxiaENDP;漂洗子函数结束
shuaiganaPROCNEAR;甩干程序子函数
MOVDX,PC_ADD
MOVAL,0d0H
OUTDX,AL;电机停止
MOVDX,PB_ADD
INAL,DX;打开排水阀
MOVDX,PA_ADD;甩干状态标示最后一个灯亮
MOVAL,7EH
OUTDX,AL
CALLDELAY
MOVCX,150
JMPzhengxiang2
zhengxiang2:
movDX,PC_ADD
MOVAL,2
XLAT;从存储单元[bx+al]中取一个字节送到al寄存器
outDX,AL;A相磁极和转子0、3号齿对齐
CALLDELAY1;延迟500ms
MovAL,3
XLAT
OUTDX,AL;AB通电CD断开(转动角度7.5°)
callDELAY1;延迟500ms
movAL,4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全自动 洗衣机 控制系统
![提示](https://static.bdocx.com/images/bang_tan.gif)