原代码只是高、低电平控制继电器开合,无法根据继电器状态控制其开关,修改后可直接控制继电器电器开合。
sbit key1 = P1^0;
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit key4 = P1^3;
switch(tmp) {
case 0x01 : //P1 = P1 ^ (0x01<<0) ;0x01 00000001 //左移0位
if(key1==1){// P1 = 0x01,表示P1.7~P.1=0,P1.0=1
key1 = 0; //低电平继电器开启
}
break;
case 0x02 : //P1 = P1 ^ (0x01<<1) ;break;
if(key1==0){
key1 = 1;
}
break;
default: ;break;
}
编译
串口对应
烧录。