📄 xiyijichengxu.txt
字号:
附录二 程序
#include "STC12C5410AD.H"
#define uchar unsigned char
#define uint unsigned char
sbit P10=P1^0;/*进水控制位*/
sbit paishui=P1^1;/*排水开关控制位*/
sbit dianji_Z=P1^2;/*电机正传控制位*/
sbit dianji_F=P1^3;/*电机反转控制位*/
sbit P30=P3^0; /*洗衣程序控制位对于LED灯的亮灭*/
sbit P31=P3^1; /*洗衣程序控制位对于LED灯的亮灭*/
sbit P35=P3^5;/*水位开关*/
sbit beep=P3^7;/*蜂鸣器控制位*/
bit WORK=1;/*脱水标志位*/
bit S=1;/*标准和经济洗衣程序选择位 */
uint P_T=0;/*时间控制变量*/
uint W_T;/*洗涤时间控制*/
/*定时器位10ms中断*/
void reset()
{
asm("POP ACC");
asm("POP ACC");
asm("clr A");
asm("PUSH ACC");
asm("PUSH ACC");
}
void error()
{ int i
for(i=0;i<3;i++)
{
beep=1;
Delay10MS(1200)
beep=0;
Delay10MS(1200);
}
reset();
}
/*进水程序*/
void jinshui()
{
P10=1;/*打开进水开关*/
P_T=0;
while(P_T<24000);/*四分钟延时*/
if(P35==1){error();}
else {Delay10MS(6000);/*再进水1分钟*/}
}
/*排水程序*/
void paishui()
{P30=0;P31=0;/*LED4点亮*/
Paishui=1;/*启动排水开关*/
P_T=0;
while(P_T<1200);/*定时器采用50ms定时,等待1分钟后*/
if(P35==0) {error();}
else{while(P_T<3400);/*没有故障则再排两分50秒*/}
}
/*脱水程序*/
void tuoshui()
{ P_T=0;
dianji_Z=1;
while(P_T<12000) /*脱水2分钟*/
{
dianji_Z= dianji_Z & WORK;
P_T=0;
if( WORK==1) Delay10MS(500);/*延时100毫秒 延时5秒钟*/
else Delay10MS(200);/*延时100毫秒*延时2秒钟*/
WORK=! WORK
}
}
/*以下为洗涤/漂洗程序 Standard为洗涤方式选择,qiangdu 为洗涤强度选择,强洗其值为4若洗为3*/
void washi(uchar qiangdu)
{ int j,k;
k=qiangdu;
dianji_Z=1;
Delay10MS(10);/*延时100毫秒*/
dianji_Z=0;
Delay10MS(10);/*延时100毫秒*/
dianji_F=1;
Delay10MS(10);/*延时100毫秒*/
dianji_F=0;
Delay10MS(10);/*延时100毫秒*/
P_T=0;
j=P3&0x03;/*选择洗衣程序*/
switch(j)
{
case 1: dandu(k); /*LED3亮*/
case 2: /*LED2亮*/
case 3: biaozhun(k,j); /*LED1亮k表示洗衣强弱程度,j表示是标准型还是经济型*/
}
}
/*以下为标准和经济洗衣程序 c=1表示强洗,c=0表示弱洗*/
void biaozhun(uchar c,uchar h)
{ int k,b,a;
b=c; /*强度选择*/
k=h;/*选择是经济型还是标准型*/
W_T=12;/*洗涤2分钟定时*/
jinshui();
if(k==0) a=3;/*j=0,位标准洗衣程序1位经济洗衣程序*/
else a=2;
for(;a<0;a--)
{
while(a*W_T--)
{
dianji_Z=1;dianji_F=0;
Delay10MS(b*100);/*延时*/
dianji_Z=0;dianji_F=0;
Delay10MS(b*100);/*间歇*/
dianji_Z=0;dianji_F=1;
Delay10MS(b*100);/*反转延时*/
dianji_Z=0;dianji_F=0;
Delay10MS(b*100);/*间歇*/
}
}
/*洗涤漂洗完毕后执行排水 脱水工作*/
paishui();
tuoshui();
}
void dandu(uchar k)
{
int h;
h=k;
W_T=12;/*洗涤2分钟定时*/
jinshui();
while(h*W_T--)
{
dianji_Z=1;dianji_F=0;
Delay10MS(b*100);/*延时*/
dianji_Z=0;dianji_F=0;
Delay10MS(b*100);/*间歇*/
dianji_Z=0;dianji_F=1;
Delay10MS(b*100);/*反转延时*/
dianji_Z=0;dianji_F=0;
Delay10MS(b*100);/*间歇*/
}
}
void intt0() interrupt 0
{
P34=1;/*撤销中断请求*/
P1=0xf0;/*停止各种工作*/
while(P34==1);
P37=1;
Delay10MS(100);
P37=0;
P34=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -