L
Livingston
Guest
Hai,
Jeg har designet et simpelt kredsløb til at vise nogle tegn på PC
Dette kredsløb indeholder en max232 kredsløb og væsentlige arbejds-kreds til 89c2051 (indeholder 11,0592 krystal med to 33PF og 8,3 k ohm og 10ľf for nulstille pin).
Programmet er fuldbyrdende godt (testet med 89C51 controller), men hvis jeg programmeret den samme kode i 89c2051 er der ingen udgang fra UART
Den baurd sats er 9600bps
/*------------------------------------------------ ------------------------------
Serial.c
-------------------------------------------------- ----------------------------*/
# include <REG52.H> / * speciel funktion registrere erklæringer * /
/ * For den påtænkte 8.051 afledte * /
# include <stdio.h> / * prototype erklæringer til I / O-funktioner * /# ifdef MONITOR51 / * Debugging med Monitor-51 behov * /
char kode reserve [3] _AT_ 0x23; / * plads til seriel afbryde, hvis * /
# endif / * Stop Exection med Serial Intr.* /
/ * Er aktiveret * /
/*------------------------------------------------
Forsinkelsen funktion
------------------------------------------------*/
void Delay (const unsigned int DELAY)
(
unsigned int x, y;
for (x = 0; x <= Delay; x )
(
for (y = 0; y <= 120; y );
)
)
/*------------------------------------------------
De vigtigste C-funktionen.Programafviklingen starter
her efter stak initialisering.
------------------------------------------------*/
void main (void) (
/*------------------------------------------------
Setup den serielle port til 9600 baud på 11,0952 MHz.
------------------------------------------------*/
# ifndef MONITOR51
SCON = 0x42; / * SCON: mode 1, 8-bit UART, så RCVR * /
TMOD | = 0x20; / * TMOD: timer 1, mode 2, 8-bit reload * /
Th1 = 0xFD; / * Th1: reload værdi for 9.600 baud@11.0592 MHz * /
TR1 = 1; / * TR1: timer 1 run * /
TI = 1; / * TI: sæt TI til at sende første tegn i UART * /
# endif
/*------------------------------------------------
Bemærk, at et indbygget program aldrig udgange (fordi
der er ingen operativsystem til at vende tilbage til).Det
skal loop og udføre evigt.
------------------------------------------------*/
while (1)
(
P1 ^ = 0x01; / * Slå P1.0 hver gang vi udskriver * /
Delay (1000);
printf ( "Livingston \ n"); / * Print "Livingston" * /
)
)
Beklager, men du skal logge ind for at se denne vedhæftede fil
Jeg har designet et simpelt kredsløb til at vise nogle tegn på PC
Dette kredsløb indeholder en max232 kredsløb og væsentlige arbejds-kreds til 89c2051 (indeholder 11,0592 krystal med to 33PF og 8,3 k ohm og 10ľf for nulstille pin).
Programmet er fuldbyrdende godt (testet med 89C51 controller), men hvis jeg programmeret den samme kode i 89c2051 er der ingen udgang fra UART
Den baurd sats er 9600bps
/*------------------------------------------------ ------------------------------
Serial.c
-------------------------------------------------- ----------------------------*/
# include <REG52.H> / * speciel funktion registrere erklæringer * /
/ * For den påtænkte 8.051 afledte * /
# include <stdio.h> / * prototype erklæringer til I / O-funktioner * /# ifdef MONITOR51 / * Debugging med Monitor-51 behov * /
char kode reserve [3] _AT_ 0x23; / * plads til seriel afbryde, hvis * /
# endif / * Stop Exection med Serial Intr.* /
/ * Er aktiveret * /
/*------------------------------------------------
Forsinkelsen funktion
------------------------------------------------*/
void Delay (const unsigned int DELAY)
(
unsigned int x, y;
for (x = 0; x <= Delay; x )
(
for (y = 0; y <= 120; y );
)
)
/*------------------------------------------------
De vigtigste C-funktionen.Programafviklingen starter
her efter stak initialisering.
------------------------------------------------*/
void main (void) (
/*------------------------------------------------
Setup den serielle port til 9600 baud på 11,0952 MHz.
------------------------------------------------*/
# ifndef MONITOR51
SCON = 0x42; / * SCON: mode 1, 8-bit UART, så RCVR * /
TMOD | = 0x20; / * TMOD: timer 1, mode 2, 8-bit reload * /
Th1 = 0xFD; / * Th1: reload værdi for 9.600 baud@11.0592 MHz * /
TR1 = 1; / * TR1: timer 1 run * /
TI = 1; / * TI: sæt TI til at sende første tegn i UART * /
# endif
/*------------------------------------------------
Bemærk, at et indbygget program aldrig udgange (fordi
der er ingen operativsystem til at vende tilbage til).Det
skal loop og udføre evigt.
------------------------------------------------*/
while (1)
(
P1 ^ = 0x01; / * Slå P1.0 hver gang vi udskriver * /
Delay (1000);
printf ( "Livingston \ n"); / * Print "Livingston" * /
)
)
Beklager, men du skal logge ind for at se denne vedhæftede fil