L
Livingston
Guest
Hai,
He diseñado un circuito simple para mostrar algunos caracteres en el PC
Que contiene un circuito MAX232 circuito y circuito básico de trabajo para 89C2051 (contiene 11,0592 cristal con dos 33PF y 8,3 k ohmios y 10LF de pin de reset).
El programa se ejecuta bien (probado con 89C51 controlador), pero si yo programado el mismo código en 89C2051 no hay salida de la UART
La tasa de baurd es 9600bps
/*------------------------------------------------ ------------------------------
Serial.c
-------------------------------------------------- ----------------------------*/
# include <REG52.H> / * declaraciones de registro especial función * /
/ * Para el 8051 destinados derivados * /
# include <stdio.h> / * declaraciones prototipo de funciones I / O * /# ifdef MONITOR51 / * Depurar con Monitor-51 necesita * /
Código de reserva char [3] _at_ 0x23; / * espacio para interrumpir la serie si * /
# endif / * Exection Stop con Intr serie.* /
/ * Se activa * /
/*------------------------------------------------
La función de retardo
------------------------------------------------*/
void Delay (retraso const unsigned int)
(
unsigned int x, y;
for (x = 0; x <= retardo; x )
(
for (y = 0; y <= 120; y );
)
)
/*------------------------------------------------
La función principal de C.La ejecución del programa se inicia
aquí después de pila de inicialización.
------------------------------------------------*/
void main (void) (
/*------------------------------------------------
Configuración del puerto serial de 9600 baudios a 11,0952 MHz.
------------------------------------------------*/
# ifndef MONITOR51
SCON = 0x42; / * SCON: modo 1, 8-bit UART, permiten MPU * /
TMOD | = 0x20; / * TMOD: timer 1, modo 2, 8-bit recarga * /
TH1 = 0xfd; / * TH1: el valor de recarga para 9600 baud@11.0592 MHz * /
TR1 = 1; / * TR1: timer 1 ejecutar * /
TI = 1; / * TI: conjunto de TI para enviar primer caracter de UART * /
# endif
/*------------------------------------------------
Tenga en cuenta que nunca un programa integrado salidas (por
no hay ningún sistema operativo para volver a).Ello
debe bucle y ejecutar siempre.
------------------------------------------------*/
while (1)
(
P1 ^ = 0x01; / * Toggle P1.0 cada vez que imprimimos * /
Delay (1000);
printf ( "Livingston \ n"); / * Imprimir "Livingston" * /
)
)
Lo sentimos, pero es necesario iniciar sesión para ver este archivo adjunto
He diseñado un circuito simple para mostrar algunos caracteres en el PC
Que contiene un circuito MAX232 circuito y circuito básico de trabajo para 89C2051 (contiene 11,0592 cristal con dos 33PF y 8,3 k ohmios y 10LF de pin de reset).
El programa se ejecuta bien (probado con 89C51 controlador), pero si yo programado el mismo código en 89C2051 no hay salida de la UART
La tasa de baurd es 9600bps
/*------------------------------------------------ ------------------------------
Serial.c
-------------------------------------------------- ----------------------------*/
# include <REG52.H> / * declaraciones de registro especial función * /
/ * Para el 8051 destinados derivados * /
# include <stdio.h> / * declaraciones prototipo de funciones I / O * /# ifdef MONITOR51 / * Depurar con Monitor-51 necesita * /
Código de reserva char [3] _at_ 0x23; / * espacio para interrumpir la serie si * /
# endif / * Exection Stop con Intr serie.* /
/ * Se activa * /
/*------------------------------------------------
La función de retardo
------------------------------------------------*/
void Delay (retraso const unsigned int)
(
unsigned int x, y;
for (x = 0; x <= retardo; x )
(
for (y = 0; y <= 120; y );
)
)
/*------------------------------------------------
La función principal de C.La ejecución del programa se inicia
aquí después de pila de inicialización.
------------------------------------------------*/
void main (void) (
/*------------------------------------------------
Configuración del puerto serial de 9600 baudios a 11,0952 MHz.
------------------------------------------------*/
# ifndef MONITOR51
SCON = 0x42; / * SCON: modo 1, 8-bit UART, permiten MPU * /
TMOD | = 0x20; / * TMOD: timer 1, modo 2, 8-bit recarga * /
TH1 = 0xfd; / * TH1: el valor de recarga para 9600 baud@11.0592 MHz * /
TR1 = 1; / * TR1: timer 1 ejecutar * /
TI = 1; / * TI: conjunto de TI para enviar primer caracter de UART * /
# endif
/*------------------------------------------------
Tenga en cuenta que nunca un programa integrado salidas (por
no hay ningún sistema operativo para volver a).Ello
debe bucle y ejecutar siempre.
------------------------------------------------*/
while (1)
(
P1 ^ = 0x01; / * Toggle P1.0 cada vez que imprimimos * /
Delay (1000);
printf ( "Livingston \ n"); / * Imprimir "Livingston" * /
)
)
Lo sentimos, pero es necesario iniciar sesión para ver este archivo adjunto