单片机全自动洗衣机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全自动洗衣机设计
一、设计目的
1、能够根据题目要求实掌握编写程序、调试程序、软件仿真及与硬件结合。
2、熟悉89C52单片机的内部结构和功能及I/O分配,合理使用其内部寄存器、存储器、位寻址。能够完成全自动洗衣机的软件编程设计工作。
3、对全自动洗衣机软件编程、调试、相关硬件设备的使用技能等方面得到真正的实践机会,把软硬件结合,克服其中的种种问题,提高编程能力。
二、设计要求
1、洗涤过程
通电后,洗衣机进入暂停状态,以便放好衣物。若不选择洗衣周期,则洗衣机从洗涤过程开始。当按暂停开关键时,进入洗涤过程。首先进水阀通电,打开进水开关,向洗衣机供水;当到达预定水位时,水位开关接通,进水阀断电关闭,停止进水;电机接通电源,带动波轮旋转,形成洗衣水流。电机是一个正反转电机,可以形成往返水流,有利于洗涤衣物。
2、脱水过程。
洗涤或漂洗过程结束后,电机停止转动,排水阀通电,开始排水。排水阀动作时,带动离合器动作,使电机可以带动内桶转动。当水位低到一定值时,水位开关断开,再经过一段时间后,电机开始正转,带动内桶高速旋转,甩干衣物。
3、漂洗过程。
与洗涤过程操作相同,只是时间短一些。
全部洗衣工作完成后,由蜂鸣器发出音响,表示衣物已洗干净。
4、具有弱、强洗涤功能
要求强洗时正反转驱动时间各为4S,间歇时间为1S;弱洗时正反转驱动时间各为3S,间歇时间为2S。
洗衣机的标准洗衣程序是:洗涤——脱水——漂洗——脱水——漂洗——脱水——漂洗——脱水。经济洗衣程序少一次漂洗和脱水过程。具体的时间自己设定。
5、暂停功能
不管洗衣机工作在什么状态,当按下暂停键时,洗衣机需暂停工作,待启动键按下后洗衣机又能按原来所选择的工作方式继续工作。
6、声光显示功能。
洗衣机各种工作方式的选择和各种工作状态均有声光提示和显示。
三、硬件电路
3.1STC89C52单片机
3.1.1STC89C52单片机结构
STC89C52单片机如图3-1所示。
图3-1STC89C52单片机
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810
复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。
3.1.2晶振电路
晶振电路如图3-2所示。
图3-2晶振电路
晶振电路是内部时钟发生器,提供震荡脉冲。晶振的安装使用接插方式,可以直接取下更换所需晶振。
3.1.3复位电路
复位电路图如图3-3所示。
图3-3复位电路
复位电路的主要作用就是清零。按下复位按钮,与低电平相接,清除所执行过的程序,回到初始状态。
3.2系统电路原理图
系统电路原理图如图3-7所示。
图3-7系统电路图
四、流程图设计
4.1主程序
通过P0.0口是否为0判断洗衣模式是标准模式还是经济模式,当P0.0为0时洗衣模式为标准模式,程序跳到标准模式下执行,否则为经济模式,程序跳到经济模式下执行。
图4-1 主程序
4.2 强洗子程序
洗涤过程时首先进水阀通电,打开进水阀P1.0,向洗衣机供水;当到达预定水位时,水位开关P3.1接通,进水阀断电关闭,停止进水。正反转驱动时间各为4S,间歇时间为1S。
4.3 弱洗子程序
洗涤过程时首先进水阀通电,打开进水阀P1.0,向洗衣机供水;当到达预定水位时,水位开关P3.1接通,进水阀断电关闭,停止进水。正反转驱动时间各为3S,间歇时间为2S。
4.4 脱水子程序
洗涤或漂洗过程结束后,电机停止转动,打开排水阀P1.3,开始排水。排水阀动作时,带动离合器动作,使电机可以带动内桶转动。当水位低到一定值时,水位开关P1.3断开,电机开始正转,带动内桶高速旋转,甩干衣物,5S后脱水停止,脱水子程序返回。
4.5 漂洗子程序
漂洗过程时首先进水阀通电,打开进水阀P1.0,向洗衣机供水;当到达预定水位时,水位开关P3.1接通,进水阀断电关闭,停止进水。通过P0.2口判断洗涤功能是强洗还是弱洗,若P0.2为1时强洗,强洗时正反转驱动时间各为4S,间歇时间为1S。
五、源程序
#include
sbit s1=P0^0;
sbit s2=P0^2;
sbit s3=P3^0;
sbit s4=P3^1;
sbit sheng=P0^7;
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;
void delay(unsigned int z)//延时函数{int x,y;
for(x=z;x>0;x--);
for(y=110;y>0;y--);
}
void qx() //强洗
{led1=1;
if(s4==1);
led2=1;
delay(4000);
led2=!led2;
delay(1000);
led3=1;
delay(4000);
led3=!led3;
delay(1000);
}
void rx() //弱洗
{led1=1;
if(s4==1);
led2=1;
delay(3000);
led2=!led2;
delay(2000);
led3=1;
delay(3000);
led3=!led3;
delay(2000);
}
void tuo() //脱水函数
{led4=1;
led5=1;