La comunicación en serie entre la computadora host y el microcontrolador controla el relé
Ese no puede ser el caso.
La comunicación serie MCU generalmente se ve así:
Encienda el dispositivo - apague todas las interrupciones - configure los parámetros del puerto serie - encienda las interrupciones - ingrese al bucle principal
Cuando la información proviene del puerto serie, se activará la interrupción de recepción del puerto serie, por lo que debe escribir una función de interrupción de recepción, leer el registro de recepción y luego procesar los datos leídos: borre el registro de recepción y active la interrupción. al mismo tiempo
¿Qué le pasa a tu if udr=0000001? ¿Debería ser así? /p>
¿Tu if udr=0000001 o algo no funciona, debería ser así? int temp; temp=udr; if (temp=0000001) P1^0=1 etc. .... Debes interrumpirlo al leer. Déjame darte el ejemplo 51 anterior. Compílelo usted mismo
Inicialización de encendido y parte de la función principal: void?main()
{ uchar?i,j;
TMOD=0x20 ?/ / Temporizador 1 modo 2
TH1=0xe6;
TL1=0xe6;
SM0=0?//modo uno
SM1 =1;
REN=1;
EA=1;
TR1=1;
ES=1; p >
for(i=0;i<12;i++)
{ Init_DS18B20(i)? ;
}?
mientras(1) )
{?
if(flag==0)
{
TI=1;
ES =0;
bandera=0;
for(j=0;j<12;j++)
{ ReadTemp(j); temp_to_str () ; retraso(1400);printf("%c%c%c%c%c%c%c",habitación[j],TempBuffer[0],TempBuffer[1],TempBuffer[2],TempBuffer[3] , TempBuffer[4]); ?}
mientras(!TI);
TI=0;?
ES=1;
}?
}
}
Recibir interrupción: ¿nulo?
{
RI=0
temp=SBUF;
chuli(temp);
flag=0;
}
Procesamiento específico, el mío es controlar el ventilador del motor void?chuli(char?x)
{
switch(x)
{
case('1'):{P00=0;}romper;
case('2'):{P01=0;}romper;
case('3 ') :{P02=0;}romper;
caso('4'):{P03=0;}romper;
caso('5'):{P04= 0; }romper;
case('6'):{P05=0;}romper
case('6'):{P05=0;}romper; /p >
caso('6'):{P05=0;}romper
caso('6'):{P05=0;}romper
caso (' 7'):{P06=0;}romper
caso('8'):{P07=0;}romper
caso('9'): {P20 =0;}romper;
caso('a'):
{P21=0;}romper;
case('a'):{P21=0;}romper;
case('b'):{P22=0;} romper;
case('c'):{P23=0;}romper;
case('j'):{P00=1;}romper;
case('k'):{P01=1;}romper;
case('l'):{P02=1;}romper;
case(' m'):{P03=1;}romper;
case('n'):{P04=1;}romper;
case('o'):{P05 =1;}romper;
case('p'):{ }romper;
case('u'):{P23=1;}romper;
Predeterminado: P0=0xff;P2=0xff;romper;
}
}
}
}
}