Red de conocimiento informático - Computadora portátil - Microcontrolador 51, envía una cadena al microcontrolador a través del asistente del puerto serie, y el microcontrolador envía la cadena de regreso a la computadora en orden inverso, programado en lenguaje C

Microcontrolador 51, envía una cadena al microcontrolador a través del asistente del puerto serie, y el microcontrolador envía la cadena de regreso a la computadora en orden inverso, programado en lenguaje C

Para enviar una cadena como esta, es necesario que haya un indicador de fin de cadena, ¡y 0 no se puede usar como indicador de fin de cadena! ¡Aquí, el retorno de carro 0xd se utiliza como marca final!

#include lt;reg51.hgt;

typedef unsigned char uint8;?

bit flag = 0;

uint8 idata buf [30];

uint8 ct;

void InitUART(void) //Inicialización del puerto serie 9600bps

{

TMOD = 0x20

SCON = 0x50;

TH1 = 0xFD

TL1 = TH1; p > EA = 1;

ES = 1;

TR1 = 1;

}

envío nulo(uint8 c)

{

SBUF = c;

mientras(!TI

TI = 0;

void main(void)

{ char j;?

InitUART();

while(1)

{

if(flag) //¿Se recibió un retorno de carro? La cadena ha sido enviada

{

flag = 0;

for(j = ct; j gt; 0; j--)

{

? Enviar(buf[j-1]);

}

}

}

}

interrupción UARTInterrupt(void) nula 4

{ estático uint8 i = 0;?

if(RI)

{

RI = 0

? = SBUF ;

? if(SBUF == 0x0d) //Ingreso de carro recibido

{

ct = i-1;

bandera = 1;

i = 0

}

}

más

TI = 0;

}

Resultados de la simulación

El programa se utiliza como referencia. ¡Espero que puedas entender el programa tú mismo! ¡Solo cuando lo domines podrás usarlo bien!