Red de conocimientos turísticos - Información de alquiler - Programa C de comunicación serie para 51 microcontroladores, muy sencillo...

Programa C de comunicación serie para 51 microcontroladores, muy sencillo...

#includelt; reg52.hgt; // Definición de 52 registros mejorada

#define uchar unsigned char //Reemplazar unsigned char con uchar

#define uint unsigned int //Reemplazar con unsigned int uint

unsigned char flag, a, i; //Definir variable flag, a, i

uchar code table[]="Recibo, gracias" //Definir string Array

void init()

{

}//Establezca una solución alternativa, esto se puede obtener.

void main()

{

init(); //inicialización del sistema, lo obtienes

while(1) / /parte del bucle principal, continúa ejecutándose

{

if(flag==1) //espera a que se establezca el bit de posición del indicador en el puerto serie cuando se establece la interrupción de recepción de datos

{

ES=0; //Deshabilita la interrupción en serie, pero ten en cuenta que el indicador de interrupción de transmisión todavía está configurado normalmente

for(i=0; ilt ; 18; i) //Bucle For para escribir cadenas previamente definidas una por una

{

SBUF=table[i] //Escribe respuesta "Recibo, gracias"

while(!TI); //espera a que se complete el envío, el indicador de interrupción de envío se establece en uno; de lo contrario, el ciclo while continúa

TI=0; enviar bit de indicador de interrupción

{

SBUF=table[i] //escribe la respuesta "Recibo, gracias"

for loop para poder enviar la cadena previamente definida una por una. flag bit

}

SBUF=table[i] //escribe la respuesta "Recibo, gracias"

; for bucle para enviar las cadenas previamente definidas una por una.

SBUF=a; //continúa enviando un al buffer del transceptor serie a través del puerto serie para mostrar los datos recibidos

mientras(! TI); // Espera a que se complete la transmisión

TI=0; // Borra el bit de bandera de interrupción de transmisión

ES=1 // Vuelve a habilitar la interrupción del puerto serie.

flag=0; // Borra la bandera para esperar la próxima recepción

}

}

}

void serial() interrupción 4 //Rutina de servicio de interrupción en serie, nivel de prioridad 4

{

RI=0 // Cuando se completa la recepción, RI se establece en 1; . Se produce una interrupción en serie, borre el bit de bandera

a=SBUF; //Lee los caracteres recibidos y asígnalos a la variable a

flag=1 //La recepción será completado El indicador se establece en 1 para que la respuesta pueda enviarse en el programa principal

}