51. El programa C para la comunicación mutua entre el microcontrolador y la computadora requiere que los datos se envíen a través de la computadora, y luego el microcontrolador recibe los datos y a su vez los envía a la computadora. Gracias.
El código fuente proviene de: "51 Microcontroller C Language Innovation Tutorial" compilado por Wen Ziqi y otros
/*Nombre del experimento: experimento de envío y recepción de datos por puerto serie
*Instrucciones: En el experimento de usar el puerto serie del microcontrolador para recibir datos,
¿Qué datos se envían usando el asistente de depuración del puerto serie?
El microcontrolador utiliza el método de consulta para transmitir los datos recibidos a la PC
*Autor: Wen Ziqi: Wen Ziqi
*Fecha de revisión: 2010/5/4
Código fuente transferido de: "Tutorial de innovación en lenguaje C del microcontrolador 51" Beijing Aerospace and Aviation Press.
4/5/2010
*/
#include "stc.h"//cargar "stc.h"
/****** ***********************************
*Nombre de función:UARTInit p>
*Entrada.Ninguna
*Salida: Ninguna
*Función: Inicialización del puerto serie
********** ****** *******************************/
void UARTInit(void) //Definir la función de inicialización del puerto serie
{
SCON =0x50; //Bits de datos de 8 bits, recepción permitida
T2CON=0x34; p>
RCAP2L= 0xD9; //Los 8 bits inferiores de la velocidad de 9600 baudios
RCAP2H=0xFF //Los 8 bits superiores de la velocidad de 9600 baudios
} <
/ ******************************************* *
* Nombre de la función :UARTSendByte
*Entrada: Byte Byte a enviar
*Salida: Ninguna
*Función: Puerto serie envía un solo byte
****************************************** **/
void UARTSendByte(unsigned char byte)//definir la función de envío de datos del puerto serie
{
SBUF=byte; to be SBUF=byte; //Búfer cargado con bytes para enviar
while(TI==0); //Esperando que se complete el envío, el bit de bandera TI se establecerá en 1
TI= 0; //Borrar el indicador de finalización de envío
}
/******************* ********* ****************
*Nombre de función: principal
*Entrada: Ninguna
*Salida: Ninguna
*Función: Cuerpo de la función
************************ ************ **********/
void main(void) //Función principal
{ p>
unsigned char recv; //Declarar variables recv
UARTInit(); //Inicialización del puerto serie
while(1) //Ingresar un bucle infinito
{
if (RI) //Detecta el indicador de finalización de recepción en la posición 1
{
RI=0; indicador de finalización en la posición 1
{
RI=0; // Borra el indicador de finalización de recepción
recv=SBUF // Lee los datos recibidos
recv=SBUF; p>
UARTSendByte(recv); // Devuelve los datos recibidos
}
}
}
} p>