全自动洗衣机程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#define uchar unsigned char
#define uint unsigned int
/***********************使能、禁止宏定义*****************/ #define Enable(); EA=1;
#define Disable();EA=0;
/********************程序选择功能标志宏定义**************/ #define BIAOZHUN 0
#define JINGJI 1
#define DANDU 2
#define PAISHUI 3
/********************强弱选择功能标志宏定义**************/ #define QIANGXI 0
#define RUOXI 1
/*******************进水、排水时间限制宏定义*************/ #define T_JinShui 10 //4min*60s
#define T_PaiShui 10 //1min*60s
#define T_XiDi 10 //6min*60s
#define T_PiaoXi_1 10 //4min*60s
#define T_PiaoXi_2 10 //2min*60s
#define T_TuoShui 10 //2min*60s
/**********************电机控制宏定义********************/ #define ZHENGZHUAN 0
#define STOP 1
#define FANZHUAN 2
#define ZhengZhuan(); PIN_Motor_A = 0; PIN_Motor_B = 1; #define Stop(); PIN_Motor_A = 1; PIN_Motor_B = 1; #define FanZhuan(); PIN_Motor_A = 1; PIN_Motor_B = 0; /*******************暂停、继续控制宏定义*****************/ #define ZanTing(); ET0 = 0; ET1 = 0; Stop();
#define JiXu(); ET0 = 1; ET1 = 1;
/*************************管脚定义***********************/ //都是低有效,因LED是灌电流,而PNP也是低电平时导通
sbit LED_BiaoZhun = P1^0; //标准程序显示灯
sbit LED_JingJi = P1^1; //经济程序显示灯
sbit LED_DanDu = P1^2; //单独程序显示灯
sbit LED_PaiShui = P1^3; //排水程序显示灯
sbit LED_QiangXi = P1^4; //强洗状态灯
sbit LED_RuoXi = P1^5; //弱洗状态灯
sbit LED_XiDi = P1^6; //洗涤状态灯
sbit LED_PiaoXi = P1^7; //漂洗状态灯
sbit LED_TuoShui = P2^0; //脱水状态灯
sbit PIN_BaoJing = P2^1; //报警喇叭
sbit PIN_JinShui = P2^2; //进水控制
sbit PIN_PaiShui = P2^3; //排谁控制
sbit PIN_Motor_A = P2^4; //电机脚A
sbit PIN_Motor_B = P2^5; //电机脚B
sbit K_SEL_ChengXu = P3^0; //选择程序键
sbit K_SEL_QiangRuo = P3^1; //选择强弱键
sbit p32 = P3^2; //
sbit p33 = P3^3; //
sbit SW_ShuiWei = P3^6; //水位开关
sbit SW_AnQuan = P3^7; //安全开关
/************************函数申明***********************/ void Programme_PaiShui(void);
/*************************数据定义***********************/ uchar flag_SEL_ChengXu; //默认为标准程序,
bit flag_SEl_QiangRuo; //默认为强洗,1为弱洗bit flag_Run; //运行标志,1为运行
//bit flag_ZanTing; //暂停标志,1为暂停
bit flag_JinShui; //进水标志,1为进水
bit flag_PaiShui; //排水标志,1为排水
bit flag_XiDi; //置洗涤标志
bit flag_PiaoXi; //置漂洗标志
bit flag_TuoShui; //脱水标志
bit flag_BaoJing; //报警标志
uchar _50ms; //每50ms加一次的变量uint s; //秒
uint T_S; //定时总时间
uchar T_Motor; //电机控制时间
/*************************延时程序*********************/ void Delay_10ms(uint T1)
{ uint t1,t2;
for(t1=0;t1 for(t2=0;t2<1250;t2++);//10ms } /**********************管脚初始化程序******************/ void Pin_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; //报警喇叭,不叫