Código fuente de Wen Ziqi
El código fuente se transfiere de: "51 Tutorial de innovación en lenguaje C del microcontrolador" Wen Ziqi está esperando.
/*Nombre del experimento: Experimento de transmisión y recepción de datos del puerto serie
*Descripción: en el experimento de recepción de datos del puerto serie del microcontrolador,
Qué datos se envían mediante ¿El asistente de depuración en serie?
El microcontrolador envía los datos recibidos a la PC mediante una consulta.
*Autor: Wen Ziqi
*Fecha de revisión: 4/5/2010
*/
#include "stc.h " // cargar "stc.h "
/********************************* * ******
*Nombre de la función: UARTInit
*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 = 0x 50; // 8 bits de datos, se permite la recepción
T2CON = 0x34 // El temporizador 2 se utiliza para el dispositivo de generación de velocidad en baudios .
RCAP2L = 0xD9 //La velocidad en baudios son los 8 bits inferiores de 9600.
RCAP2H = 0xFF//Alta 8 bits, velocidad en baudios 9600.
}
/************************************ ******
*Nombre de la función: UARTSendByte
*Entrada: El byte que se enviará.
*Salida: Ninguna
*Función: El puerto serie envía un solo byte.
******************************************/
vouiuartsendbyte(unsigned charbyte)//Define la función de envío de datos del puerto serie.
{
SBUF = bytes; //Buffer cargado con bytes para enviar.
while(TI == 0); //Cuando se complete la transferencia, el indicador TI se establecerá en 1.
TI = 0; //Borrar el indicador de finalización de la transferencia.
}
/************************************ ******
*Nombre de función: principal
*Entrada: Ninguna
*Salida: Ninguna
*Suma de trabajo Capaz de: Temas funcionales
*************************************** **** ***/
Void main(void) //Función principal
{
Recepción de caracteres sin firmar //Declarar variable recv
p>UART init(); //Inicialización del puerto serie
Y (1) //Ingrese un bucle infinito.
{
If(RI) // Detecta la posición del indicador de finalización de recepción 1.
{
RI = 0; //Borrar el indicador de finalización de recepción.
recv = SBUF//Leer los datos recibidos
UARTSendByte(recv); //Devolver los datos recibidos.
}
}
}