Red de conocimientos turísticos - Conocimientos sobre calendario chino - Comunicación serie MCU, la computadora host envía una cadena de caracteres y la MCU determina si las cadenas coinciden y, de ser así, enciende una luz LED. Sería mejor tener ejemplos.

Comunicación serie MCU, la computadora host envía una cadena de caracteres y la MCU determina si las cadenas coinciden y, de ser así, enciende una luz LED. Sería mejor tener ejemplos.

Como usted también es un novato y no tiene puntos, dedicaré 5 minutos a escribir un programa de referencia para usted y lo estudiaré usted mismo. Puede utilizar este programa directamente.

#include "REG52.H"

carácter sin firmar MAIN_FLG;

carácter sin firmar MAIN_BUF

carácter sin firmar Cverrput[5]; //Matriz de visualización de temperatura

/*

* Configurar la inicialización de la velocidad en baudios del puerto serie USART

*/

void SysemInit(void)

{

TMOD = 0x20;

TH1 = 0xFD; //El temporizador se carga con un valor inicial de 9600 baudios

TL1 = 0xFD;

TR1 = 1; //Inicia el temporizador

REN = 1; //REN = 1 permite que el puerto serie reciba datos, de lo contrario dejará de recibir

SM0 = 0; //Selección de modo

SM1 = 1; //Selección de modo SM0 = 0; SM1 = 1; recepción y transmisión asíncrona de datos de 8 bits

ES = 1; // Habilitar interrupción del puerto serie

EA = 1; //Habilitar interrupción total

}

/*

* Función principal del programa

*/

int main(void)

{

SysemInit() ;

mientras(1)

{

cambiar (MAIN_BUF)

{

caso 0xAA: / /Recibir datos consistentes con el encendido del LED1

P1 = 0xFE;

romper;

caso 0xBB:

P1 = 0xFD; /Los datos recibidos coinciden y encienden el LED2

break ;

case 0xDD:

P1 = 0xFB //Los datos recibidos coinciden y encienden el LED1

break;

caso 0xCC:

P1 = 0xFB; //Si los datos recibidos coinciden, enciende el LED1

break;

default:P1 = 0xFF; //Si los datos recibidos no coinciden, apague todos los LED

break

}

}

}

/*

* Puerto serie interrumpe la rutina de servicio, el microcontrolador activa la interrupción del puerto serie

*/

void USART_TI(void) interrupción 4

{

while(RI = = 1) //Juzga el indicador de recepción, si hay datos recibidos, RI está configurado

{

MAIN_BUF = SBUF; //La computadora inferior asigna los datos recibidos de la computadora superior a la variable MAIN_BUF

RI = 0; por hardware y debe borrarse por software

}

}