Programación de reenvío de puerto serie
# include ltreg 51.h gt;
typedef unsigned char uint8?
Bit flag = 0;
uint 8 idata buf[30];
uint8 ct
Void InitUART(void) // El puerto serie se inicializa a 9600 bps.
{
TMOD = 0x 20
SCON = 0x 50
ésimo 1 = 0x FD
TL 1 = th 1;
PCON = 0x 00;
EA = 1;
ES = 1;
tr 1 = 1;
}
Envío no válido(uint8 c)
{
SBUF = c;
And(!TI);
TI = 0;
}
Controlador no válido (no válido)
{
char j;
InitUART();
? while(1)
{
If(flag) //¿Recibiste un retorno de carro? Cadena enviada
{
flag = 0;
for(j = CT; j gt0; j -)
{ p>
? enviar(buf[j-1]);
}
? }
}
}
void UARTInterrupt(void) interrupción 4
{
Uint estático 8 I = 0;?
Frecuencia intermedia (RI)
{
RI = 0;
? buf[i]= SBUF;
? If(SBUF == 0x0d) //Acepta retorno de carro.
{
CT = I-1;
bandera = 1;
I = 0; }
}
Otros
TI = 0;
}
Resultados de la simulación
Programa como esperanza de referencia? ¡Puedes entender el espectáculo tú mismo! ¡Solo cuando lo domines podrás usarlo bien!