|
洗衣机故障,开机一直洗,不关机。买控制板太奢侈,用15f104w做一个小装置解决了。
制作出来的实物图如下:
单片机源程序如下:
#include<reg52.h>
#define uint unsigned int
sbit key =P3^2; //开机
sbit x =P3^5; //喇叭检测
sbit l1=P3^3; //指示灯
sbit l2=P3^4; //继电器
uint b; m;aa;bt;
void delay(uint z) //延时
{
uint x ,y;
for(x=200;x>0;x--)
for(y=z;y>0;y--);
}
void main()
{ m=0;
l1=0;
l2=0;
TMOD=0x01;
TR0=1;
EA=1;
ET0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
while(1)
{
if(key==0)
{for(bt=0;bt<50;bt++);
if (key==0)
{
l1=1;
l2=1;
}
}
if(x==0&&m>20) //开机20秒后检测,排除开机选择洗衣机功能干扰
{delay(2000);
if(x==0&&m>20)
{ l1=0;
l2=0;
m=0;
}
}
if(m>2700) //定时关闭
{
l1=0;
l2=0;
m=0;
}
}
}
void timer0() interrupt 1 //中断
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa==20)
{
m++;
aa=0;
}
}
|
评分
-
查看全部评分
|