智能洗衣机程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void beep();
void DelayMS(uint ms);
uchar display1[]={"Tw=000sec Fw=0cs"}; //显示时间(单位秒):Tw清洗时间,Tr脱水时间2个时间值显示效果
uchar display2[]={"Tr=000sec Fr=0cs"};//Fw漂洗次数,Fr脱水次数
#define MAXCHAR 50
uchar aa[MAXCHAR];
uchar num;
void keyhandle();
//注意,无论接收到信号还是发送完信号,都会进中断服务程序的
/*初始化程序(必须使用,否则无法收发),次程序将会使用定时器1*/
void SerialInti()//初始化程序(必须使用,否则无法收发)
sbit LED4=P3^7;//指示灯4
sbit relay1=P2^0;//模拟洗衣机进水继电器1
sbit relay2=P2^1;//模拟洗衣机出水继电器2
sbit bee=P1^2;//蜂鸣器
uchar settime;//设置显示时间
uchar wash_time,wash_time1; //设置清洗时间
//DelayMS(100);
LCD_disp_char(5,1,wash_time1%10+'0');
}
else
{
LCD_disp_char(4,1,wash_time/10+'0');
//DelayMS(100);
LCD_disp_char(5,1,wash_time%10+'0');
}
//DelayMS(100);
uchar Ts_time;//设置脱水时间
uchar Pw_times;//设置漂洗次数
uchar Tw_tFra Baidu bibliotekmes;//设置脱水次数
uchar step0;
uchar step1; //洗衣机第1步进水,打开进水继电器
uchar step2; //洗衣机第2步洗衣,关闭进水继电器,电机2S正反转
uchar step3; //洗衣机第3步漂洗水,进水继电器打开,电机正转
uchar step4; //洗衣机第4步重复漂洗次数,进水继电器打开,电机正转
uchar step5; //洗衣机第5步脱水水,打开出水继电器,电机正转。
uchar B_TS_Time;
uchar B_Tw_times;
uchar jinshui_times=10;
relay1=0;
relay2=1;
jinshui_times--;
if(jinshui_times==0)
{
jinshui_times=10;
sec=0;
step1=1;
step0=0;
IN1=0;
IN2=1;
wash_time1=wash_time;
}
}
}
if(step1==1)//洗衣
DelayMS(100);
bee=1;
DelayMS(100);
}
void main()
{
//定时器0初始化
bee=1;
// TMOD=0X01;
//TH0 = (65535-5000)/256;
//TL0 = (65535-5000)%256;
//TR0 = 1;
//IE = 0x8a;
//液晶初始化
TI=0;
}*/
//串行口连续发送char型数组,遇到终止号/0将停止
void Uart1Sends(uchar *str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);//等待发送完成信号(TI=1)出现
TI=0;
str++;
}
}
void beep()
{
bee=0;
uchar Currenttemp=0;
uint sec;
uchar waterflag;
uchar doorflag;
uchar waterwashflag,displaymode;
sbit LED1=P2^2;//指示灯1
sbit LED2=P2^3;//指示灯2
sbit LED3=P2^4;//指示灯3
LCD_init();
DelayMS(100);
//变量初始化
wash_time=40;//漂洗时间40S;
Ts_time=20;//脱水时间20S;
Pw_times=1;//设置洗次数1
Tw_times=1;//设置脱水次数1
step1=0;
step2=0;
step3=0;
step4=0;
step5=0;
step0=0;
relay1=0;
relay2=0;
bee=1;
LED1=0;
SerialInti();
Uart1Sends("AT\r\n");
while(1)
{
keyhandle();
timer0_serv();
//液晶显示参数程序
if(step1==1)
{
LCD_disp_char(4,1,wash_time1/10+'0');
{
TMOD=0x22;//定时器1操作模式2:8位自动重载定时器
TH1=0xfd;//装入初值,波特率9600
TL1=0xfd;
EA=1;//开总中断
ES=1;//开串行口中断
}
/*void Uart1Send(uchar c)
{
SBUF=c;
while(!TI);//等待发送完成信号(TI=1)出现
if(step2==1)
{
LCD_disp_char(4,2,B_TS_Time/10+'0');
LCD_disp_char(5,2,B_TS_Time%10+'0');
}
else
{
LCD_disp_char(4,2,Ts_time/10+'0');
LCD_disp_char(5,2,Ts_time%10+'0');
#include <reg52.h>
#include <intrins.h>
#include <math.h>
#include <stdio.h>
#include <LCD1602.h>
#include<set.h>
#define uchar unsigned char
#define uint unsigned int
}
//DelayMS(100);
LCD_disp_char(13,1,Pw_times%10+'0');
DelayMS(8);
LCD_disp_char(13,2,Tw_times%10+'0');
if(step0==1)//进水
{
sec++;
if(sec>=100)
{
sec=0;
LED1=!LED1;
相关文档
最新文档