Red de conocimientos turísticos - Conocimientos sobre calendario chino - La comunicación en serie entre la computadora host y el microcontrolador controla el relé

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;

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;

}

}

}

}

}