基于89C51的全自动洗衣机控制系统 程序Word文档格式.docx

上传人:b****5 文档编号:16168918 上传时间:2022-11-21 格式:DOCX 页数:15 大小:19.08KB
下载 相关 举报
基于89C51的全自动洗衣机控制系统 程序Word文档格式.docx_第1页
第1页 / 共15页
基于89C51的全自动洗衣机控制系统 程序Word文档格式.docx_第2页
第2页 / 共15页
基于89C51的全自动洗衣机控制系统 程序Word文档格式.docx_第3页
第3页 / 共15页
基于89C51的全自动洗衣机控制系统 程序Word文档格式.docx_第4页
第4页 / 共15页
基于89C51的全自动洗衣机控制系统 程序Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于89C51的全自动洗衣机控制系统 程序Word文档格式.docx

《基于89C51的全自动洗衣机控制系统 程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于89C51的全自动洗衣机控制系统 程序Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

基于89C51的全自动洗衣机控制系统 程序Word文档格式.docx

#defineT_PiaoXi_110//4min*60s

#defineT_PiaoXi_210//2min*60s

#defineT_TuoShui10//2min*60s

/**********************电机控制宏定义********************/

#defineZHENGZHUAN0

#defineSTOP1

#defineFANZHUAN2

#defineZhengZhuan();

PIN_Motor_A=0;

PIN_Motor_B=1;

#defineStop();

PIN_Motor_A=1;

#defineFanZhuan();

PIN_Motor_A=1;

PIN_Motor_B=0;

/*******************暂停、继续控制宏定义*****************/

#defineZanTing();

ET0=0;

ET1=0;

Stop();

#defineJiXu();

ET0=1;

ET1=1;

/*************************管脚定义***********************/

//都是低有效,因LED是灌电流,而PNP也是低电平时导通

sbitLED_BiaoZhun=P1^0;

//标准程序显示灯

sbitLED_JingJi=P1^1;

//经济程序显示灯

sbitLED_DanDu=P1^2;

//单独程序显示灯

sbitLED_PaiShui=P1^3;

//排水程序显示灯

sbitLED_QiangXi=P1^4;

//强洗状态灯

sbitLED_RuoXi=P1^5;

//弱洗状态灯

sbitLED_XiDi=P1^6;

//洗涤状态灯

sbitLED_PiaoXi=P1^7;

//漂洗状态灯

sbitLED_TuoShui=P2^0;

//脱水状态灯

sbitPIN_BaoJing=P2^1;

//报警喇叭

sbitPIN_JinShui=P2^2;

//进水控制

sbitPIN_PaiShui=P2^3;

//排谁控制

sbitPIN_Motor_A=P2^4;

//电机脚A

sbitPIN_Motor_B=P2^5;

//电机脚B

sbitK_SEL_ChengXu=P3^0;

//选择程序键

sbitK_SEL_QiangRuo=P3^1;

//选择强弱键

sbitp32=P3^2;

//

sbitp33=P3^3;

sbitSW_ShuiWei=P3^6;

//水位开关

sbitSW_AnQuan=P3^7;

//安全开关

/************************函数申明***********************/

voidProgramme_PaiShui(void);

/*************************数据定义***********************/

ucharflag_SEL_ChengXu;

//默认为标准程序,

bitflag_SEl_QiangRuo;

//默认为强洗,1为弱洗

bitflag_Run;

//运行标志,1为运行

//bitflag_ZanTing;

//暂停标志,1为暂停

bitflag_JinShui;

//进水标志,1为进水

bitflag_PaiShui;

//排水标志,1为排水

bitflag_XiDi;

//置洗涤标志

bitflag_PiaoXi;

//置漂洗标志

bitflag_TuoShui;

//脱水标志

bitflag_BaoJing;

//报警标志

uchar_50ms;

//每50ms加一次的变量

uints;

//秒

uintT_S;

//定时总时间

ucharT_Motor;

//电机控制时间

/*************************延时程序*********************/

voidDelay_10ms(uintT1)

{uintt1,t2;

for(t1=0;

t1<

T1;

t1++)

for(t2=0;

t2<

1250;

t2++);

//10ms

}

/**********************管脚初始化程序******************/

voidPin_Init(void)

{LED_BiaoZhun=0;

//默认为标准程序,灯亮

LED_JingJi=1;

//经济程序显示灯,灭

LED_DanDu=1;

//单独程序显示灯,灭

LED_PaiShui=1;

//排水程序显示灯,灭

LED_QiangXi=0;

//默认为强洗状态,灯亮

LED_RuoXi=1;

//弱洗状态灯,灭

LED_XiDi=1;

//洗涤状态灯,运行后灯亮

LED_PiaoXi=1;

//漂洗状态灯,运行后灯亮

LED_TuoShui=1;

//脱水状态灯,运行后灯亮

PIN_BaoJing=1;

//报警喇叭,不叫

PIN_JinShui=1;

//进水控制,关

PIN_PaiShui=1;

//排谁控制,关

PIN_Motor_A=1;

//电机脚A,不走

PIN_Motor_B=1;

//电机脚B,不走

/********************中断初始化程序********************/

voidExInt_Init(void)

{IT0=1;

EX0=1;

IT1=1;

EX1=1;

/*******************定时器0初始化程序******************/

voidTimer0_Init(void)//其中没ET0是为以后控制暂停用的

{TMOD=TMOD|0X01;

//定时方式1

TH0=0X3C;

//50ms

TL0=0XB0;

TR0=1;

_50ms=0;

s=0;

/*******************定时器1初始化程序******************/

voidTimer1_Init(void)//其中没ET1是为以后控制暂停用的

{TMOD=TMOD|0X10;

TH1=0X3C;

TL1=0XB0;

/********************电机初始化程序********************/

voidT_Motor_Ctl(uchart1,uchart2,uchart3)

{if(!

flag_SEl_QiangRuo)//强洗

T_Motor=t1;

if(flag_SEl_QiangRuo)//弱洗

T_Motor=t2;

if(flag_TuoShui)//脱水

T_Motor=t3;

voidMotor_Init(void)

{ZhengZhuan();

T_Motor_Ctl(4,3,5);

/**********************解除报警************************/

voidNo_BaoJing(void)

{flag_BaoJing=0;

//置报警标志

PIN_BaoJing=1;

//报警喇叭

//进水、排水已没时间限制了

/**************外部中断0程序为运行或者暂停*************/

voidint0(void)interrupt0

{

if(!

p32)

{Delay_10ms

(1);

//延时10ms左右,去抖动

if(!

{if(!

flag_Run)

flag_Run=1;

//置运行标志

elseif(flag_BaoJing)

No_BaoJing();

else

{staticbitflag_ZanTing;

flag_ZanTing=~flag_ZanTing;

if(flag_ZanTing)

ZanTing();

if(!

flag_ZanTing)//这里用else,编译出错。

JiXu();

}//endelse

}//endif(!

p32)2

}//endif(!

p32)1

/**********************报警程序************************/

voidBaoJing(void)

{flag_BaoJing=1;

PIN_BaoJing=0;

TR0=0;

/*******************时间到处理程序*********************/

voidOk_Timer(void)

{s=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1