全自动洗衣机程序

上传人:M****1 文档编号:469314681 上传时间:2023-04-18 格式:DOCX 页数:13 大小:30.37KB
返回 下载 相关 举报
全自动洗衣机程序_第1页
第1页 / 共13页
全自动洗衣机程序_第2页
第2页 / 共13页
全自动洗衣机程序_第3页
第3页 / 共13页
全自动洗衣机程序_第4页
第4页 / 共13页
全自动洗衣机程序_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《全自动洗衣机程序》由会员分享,可在线阅读,更多相关《全自动洗衣机程序(13页珍藏版)》请在金锄头文库上搜索。

1、#include vreg51.h#defineucharunsigned char#defineuint unsigned int/* 使能、禁止宏定义*/#defineEnable。; EA=1;#defineDisable();EA=O;/*g序选择功能标志宏定义*/#defineBIAOZHUN0#defineJINGJI1#defineDANDU2#definePAISHUI3/*强弱选择功能标志宏定义*/#defineQIANGXI0#defineRUOXI1/*进水、排水时间限制宏定义*/#defineT_JinShui104min*60s#defineT_PaiShui10/1

2、min*60s#defineT_XiDi10/6min*60s#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 =#defineStop();PIN_Motor_A = 1; PIN_Motor_B =#defineFanZhuan();PIN_Motor_A = 1

3、; PIN_Motor_B =/*暂停、继续控制宏定义*/#defineZanTing();ET0 = 0; ET1 = 0; Stop();#defineJiXu();ET0 = 1; ET1 = 1;1;1;0;sbit LED_BiaoZhun=P1A0;标准程序显示灯sbit LED_JingJi=P1A1;经济程序显示灯sbit LED_DanDu=P1A2;单独程序显示灯sbit LED_PaiShui=P1A3;排水程序显示灯sbit LED_QiangXi=P1A4;强洗状态灯sbit LED_RuoXi=P1A5;弱洗状态灯sbit LED_XiDi=P1A6;洗涤状态灯sb

4、it LED_PiaoXi=P1A7;漂洗状态灯sbit LED_TuoShui=P2A0;脱水状态灯sbit PIN_BaoJing=P2A1;报警喇叭sbit PIN_JinShui=P2A2;进水控制而PNP也是低电平时导通/* 官脚疋义 */ 都是低有效,因LED是灌电流,sbit PIN_PaiShui=P2A3;排谁控制sbitPIN_Motor_A=P2A4;电机脚AsbitPIN_Motor_B=P2A5;电机脚BsbitK_SEL_ChengXu =P3A0;选择程序键sbitK_SEL_QiangRuo =P3A1;选择强弱键sbitp32=P3A2;/sbitp33=P3

5、A3;/sbitSW_ShuiWei=P3A6;水位开关sbitSW_AnQuan=P3A7;安全开关/* 函数申明 */void Programme_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;置漂洗标志bitf

6、lag_TuoShui;脱水标志bitflag_BaoJing;报警标志uchar_50ms;每50ms加一次的变量uint s;/秒uint T_定时总时间ucharT_Motor;电机控制时间/*延 时程序 */void Delay_10ms(uint T1) uint t1,t2;for(t1=0;t1vT1;t1+) for(t2=0;t2v1250;t2+);/10msvoid Pin_Init(void) LED_BiaoZhun=0;LED_JingJi=1;LED_DanDu=1;LED_PaiShui=1;LED_QiangXi=0;LED_RuoXi=1;LED_XiDi=

7、1;LED_PiaoXi=1;LED_TuoShui=1;PIN_BaoJing=1;默认为标准程序,灯亮经济程序显示灯,灭单独程序显示灯,灭排水程序显示灯,灭默认为强洗状态,灯亮弱洗状态灯,灭洗涤状态灯,运行后灯亮 漂洗状态灯,运行后灯亮 脱水状态灯,运行后灯亮 报警喇叭,不叫进水控制,关排谁控制,关电机脚A,不走电机脚B,不走PIN_JinShuiPIN_PaiShuiPIN_Motor_APIN_Motor_B/* 中断初始化程序*/void ExInt_Init(void) IT0 =EX0 =IT1 =EX1 =/*定时器 0 初始化程序*/其中没ET0是为以后控制暂停用的1;1;1

8、;1;1;1;1;1;void TimerO_Init(void) TMOD =TMOD | 0X01;定时方式1TH0=0X3C;/50msTL0=0XB0;TR0=1;0;_50ms s = 0;/* 定时器 1 初始化程序*/ 其中没ET1是为以后控制暂停用的 定时方式1/50msvoid Timerl_Init(void) TMOD=TMODI 0X10;TH1=0X3C;TL1=0XB0;/*电机初始化程序*/void T_Motor_Ctl(uchar tl,uchar t2,uchar t3)if(!flag_SEl_QiangRuo)/强洗T_Motor = t1;if(fla

9、g_SEl_QiangRuo)/弱 洗T_Motor = t2;if(flag_TuoShui)/脱水T_Motor = t3;/*电机初始化程序*/ void Motor_Init(void) ZhengZhuan(); T_Motor_Ctl(4,3,5);/*解除扌报警*/void No_BaoJing(void) flag_BaoJing= 0;置报警标志PIN_BaoJing = 1;报警喇叭进水、排水已没时间限制了 void intO(void) interrupt 0if(!p32) Delay_10ms(l);延时10ms左右,去抖动if(!p32) if(!flag_Run)

10、flag_Run = 1;置运行标志else if(flag_BaoJing)No_BaoJing();else static bit flag_ZanTing; flag_ZanTing =flag_ZanTing; if(flag_ZanTing)ZanTing();if(!flag_ZanTing) / 这里用 else,编译出错。?JiXu();/end else/end if(!p32) 2/end if(!p32) 1 /* 报警程序 */ void BaoJing(void) flag_BaoJing= 1;置报警标志PIN_BaoJing = 0;报警喇叭TR0= 0; voi

11、d Ok_Timer(void) s = 0;if(flag_JinShui II flag_PaiShui)进水中、排水中 BaoJing();报警程序/end if(flag_JinShui II flag_PaiShui)elseflag_XiDi = 0;清洗涤标志flag_PiaoXi = 0;清漂洗标志flag_TuoShui= 0;清脱水标志Stop();/end else/*电机控制程序*/ void Motor(void) static uchar s_Motor;s_Motor+;if(s_Motor=T_Motor) static uchar Motors;s_Motor = 0;Motors+; if(Motors=3) Motors

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号