L
Livingston
Guest
Hai,
Navrhl jsem jednoduchou obvodu k zobrazení některých znaků v pc
Že obvod obsahuje jeden MAX232 obvod a základní pracovní okruh pro 89c2051 (obsahuje 11,0592 krystal se dvěma 33pf a 8,3 k ohmů a 10ľf pro reset pin).
Program je vykonávající dobře (testováno s 89c51 řadič), ale pokud jsem programoval stejný kód v 89c2051 neexistuje žádný výstup z UART
Baurd sazba je 9600bps
/*------------------------------------------------ ------------------------------
Serial.c
-------------------------------------------------- ----------------------------*/
# Include <REG52.H> / * speciální funkce rejstříku prohlášení * /
/ * Pro zamýšlené 8051 derivát * /
# Include <stdio.h> / prototyp prohlášení * pro I / O funkce * /# Ifdef MONITOR51 / * Ladění s-51 potřebuje Monitor * /
char kód rezervy [3] _at_ 0x23, / * prostor pro sériovou přerušení, pokud * /
# Endif / * Stop Exection s Řadový intr.* /
/ * Je povolen * /
/*------------------------------------------------
Funkce zpoždění
------------------------------------------------*/
neplatné Delay (const unsigned int zpoždění)
(
unsigned int x, y;
pro (x = 0; x <= zpoždění; x )
(
pro (y = 0, y <= 120, y );
)
)
/*------------------------------------------------
Hlavním C funkcí.Uskutečňování programu začíná
zde po inicializaci zásobníku.
------------------------------------------------*/
void main (void) (
/*------------------------------------------------
Nastavení sériového portu pro 9600 baudů na 11,0952 MHz.
------------------------------------------------*/
# Ifndef MONITOR51
SCON = 0x42; / * SCON: režim 1, 8-bit UART, aby rcvr * /
TMOD | = 0x20; / * TMOD: časovač 1, mód 2, 8-bit reload * /
TH1 = 0xFD; / * TH1: reload hodnotu 9600 baud@11.0592 * MHz /
TR1 = 1; / * TR1: timer 1 běh * /
TI = 1; / * TI: TI soubor poslat první char * na UART /
# Endif
/*------------------------------------------------
Všimněte si, že vložený program nikdy východy (protože
neexistuje žádný operační systém k návratu k).To
musí smyčky a popravit navždy.
------------------------------------------------*/
while (1)
(
P1 ^ = 0x01; / * Přepínání P1.0 pokaždé, když jsme tisk * /
Delay (1000);
printf ("Livingston \ n"); / * Tisk "Livingston" * /
)
)
Omlouváme se, ale musíte přihlásit a prohlížet tuto přílohu
Navrhl jsem jednoduchou obvodu k zobrazení některých znaků v pc
Že obvod obsahuje jeden MAX232 obvod a základní pracovní okruh pro 89c2051 (obsahuje 11,0592 krystal se dvěma 33pf a 8,3 k ohmů a 10ľf pro reset pin).
Program je vykonávající dobře (testováno s 89c51 řadič), ale pokud jsem programoval stejný kód v 89c2051 neexistuje žádný výstup z UART
Baurd sazba je 9600bps
/*------------------------------------------------ ------------------------------
Serial.c
-------------------------------------------------- ----------------------------*/
# Include <REG52.H> / * speciální funkce rejstříku prohlášení * /
/ * Pro zamýšlené 8051 derivát * /
# Include <stdio.h> / prototyp prohlášení * pro I / O funkce * /# Ifdef MONITOR51 / * Ladění s-51 potřebuje Monitor * /
char kód rezervy [3] _at_ 0x23, / * prostor pro sériovou přerušení, pokud * /
# Endif / * Stop Exection s Řadový intr.* /
/ * Je povolen * /
/*------------------------------------------------
Funkce zpoždění
------------------------------------------------*/
neplatné Delay (const unsigned int zpoždění)
(
unsigned int x, y;
pro (x = 0; x <= zpoždění; x )
(
pro (y = 0, y <= 120, y );
)
)
/*------------------------------------------------
Hlavním C funkcí.Uskutečňování programu začíná
zde po inicializaci zásobníku.
------------------------------------------------*/
void main (void) (
/*------------------------------------------------
Nastavení sériového portu pro 9600 baudů na 11,0952 MHz.
------------------------------------------------*/
# Ifndef MONITOR51
SCON = 0x42; / * SCON: režim 1, 8-bit UART, aby rcvr * /
TMOD | = 0x20; / * TMOD: časovač 1, mód 2, 8-bit reload * /
TH1 = 0xFD; / * TH1: reload hodnotu 9600 baud@11.0592 * MHz /
TR1 = 1; / * TR1: timer 1 běh * /
TI = 1; / * TI: TI soubor poslat první char * na UART /
# Endif
/*------------------------------------------------
Všimněte si, že vložený program nikdy východy (protože
neexistuje žádný operační systém k návratu k).To
musí smyčky a popravit navždy.
------------------------------------------------*/
while (1)
(
P1 ^ = 0x01; / * Přepínání P1.0 pokaždé, když jsme tisk * /
Delay (1000);
printf ("Livingston \ n"); / * Tisk "Livingston" * /
)
)
Omlouváme se, ale musíte přihlásit a prohlížet tuto přílohu