Interfaz 89C2051

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

 
¿Cuál es el tamaño de su código de
89C51 ha 8kb de flash mientras 89C2051 sólo ha 2kb de flash

Cita:La tasa de baurd es 9600mhz

 
curioso, por qué no utilizar cierta frecuencia, como 8M, 12M, 16M o 20MHz?

 
El 89C51 controladores dividir la frecuencia de reloj de 12 internos.

Para lograr los errores mínimos en todas (la mayoría) de las tasas de baudios las suites 11,0592 MHz cristal de los mejores.

También puede utilizar cualquier otro oscilador, pero con algún error en la velocidad de transmisión.

Recuerdos
Nandhu

 
sashijoseph escribió:

Es alternar Port1 lo dispuesto en el código?
 
Sólo para comprobar si la configuración está funcionando bien, comente la printf y ver si cambia P1.0.

 
sashijoseph escribió:

Sólo para comprobar si la configuración está funcionando bien, comente la printf y ver si cambia P1.0.
 

Welcome to EDABoard.com

Sponsor

Back
Top