switch(dat) //接收数据判断
{
uchar k;
k=10;
case 'A': COM1=0;delay(k);but=dat;senduart2();dat=0xee;break; // 开
case 'B': COM2=0;delay(k);but=dat;senduart2();dat=0xee;break; // 开
case 'C': COM3=0;delay(k);but=dat;senduart2();dat=0xee;break; // 开
case 'D': COM4=0;delay(k);but=dat;senduart2();dat=0xee;break; // 开
case 'a': COM1=1;delay(k);but=dat;senduart2();dat=0xee;break; // 关
case 'b': COM2=1;delay(k);but=dat;senduart2();dat=0xee;break; // 关
case 'c': COM3=1;delay(k);but=dat;senduart2();dat=0xee;break; // 关
case 'd': COM4=1;delay(k);but=dat;senduart2();dat=0xee;break; // 关
case '1': if(IN1==0){but='F';}if(IN1==1){but='f';}delay(k);senduart2();dat=0xee;break; // 读输入口状态
case '2': if(IN2==0){but='F';}if(IN1==1){but='f';}delay(k);senduart2();dat=0xee;break; // 读输入口状态
case '3': if(IN3==0){but='F';}if(IN1==1){but='f';}delay(k);senduart2();dat=0xee;break; // 读输入口状态
case '4': if(IN4==0){but='F';}if(IN1==1){but='f';}delay(k);senduart2();dat=0xee;break; // 读输入口状态
case '5': if(IN5==0){but='F';}if(IN1==1){but='f';}delay(k);senduart2();dat=0xee;break; // 读输入口状态
case '6': if(IN6==0){but='F';}if(IN1==1){but='f';}delay(k);senduart2();dat=0xee;break; // 读输入口状态
case '7': if(IN7==0){but='F';}if(IN1==1){but='f';}delay(k);senduart2();dat=0xee;break; // 读输入口状态
case '8': if(IN8==0){but='F';}if(IN1==1){but='f';}delay(k);senduart2();dat=0xee;break; // 读输入口状态
case 'E': COM1=!COM1;COM2=!COM2;COM3=!COM3;COM4=!COM4;delay(k);but=dat;senduart2();dat=0xee;break; // 输出口取反
default:break; // 跳出
}