Wat Baudrate

L

Livingston

Guest
De hieronder getoonde code in die van 9600 baud rate i wilt wijzigen voor 4800
Please guide me

/*------------------------------------------------ ------------------------------
Serial.c
-------------------------------------------------- ----------------------------*/

# include <REG52.H> / * speciale functie register verklaringen * /
/ * Voor de beoogde 8051 derivaat * /

# include <stdio.h> / * prototype declaraties voor I / O functies * /# ifdef MONITOR51 / * Debugging met monitor-51 behoeften * /
char reserve code [3] _AT_ 0x23 / * ruimte voor seriële onderbreken indien * /
# endif / * Stop Exection met Serial bl.* /
/ * Is ingeschakeld * /

/*------------------------------------------------
De vertraging functie
------------------------------------------------*/
void Delay (const unsigned int DELAY)
(
unsigned int x, y;
for (x = 0; x <= Delay; x )
(
for (y = 0; y <= 120; y );
)
)

/*------------------------------------------------
De belangrijkste C functie.Uitvoering van het programma start
hier na stapel initialisatie.
------------------------------------------------*/
void main (void) (

/*------------------------------------------------
Stel de seriële poort voor 9600 baud op 11,0952 MHz.
------------------------------------------------*/
# ifndef MONITOR51
SCON = 0x42; / * SCON: mode 1, 8-bit UART, staat RCVR * /
TMOD | = 0x20; / * TMOD: timer 1, mode 2, 8-bit reload * /
TH1 = 0xfd; / * TH1: reload waarde voor de 9600 MHz baud@11.0592 * /
TR1 = 1; / * TR1: timer 1 run * /
TI = 1; / * TI: TI ingesteld voor het verzenden van eerste char UART * /
# endif

/*------------------------------------------------
Merk op dat een embedded programma nooit uitgangen (omdat
er is geen besturingssysteem om terug te keren).Het
moet lus en uitvoeren voor eeuwig.
------------------------------------------------*/
while (1)
(
P1 ^ = 0x01; / * Toggle P1.0 elke keer dat we afdrukken * /
Delay (2000);
printf ( "GPRMC, UTC, datum, tijd, Lat, Long, Speed"); / * Print "Karakter Data" * /
)
)

 
Verander de waarde van TH1 herladen FDH tot FAH ..

Groeten,
IanP

Code:

Enkele typische baud tarieven voor een 11,0592 kristal:Baudrate SMOD TH1

---------------------

19200 1 0FDH

9600 0 0FDH

4800 0 0FAH

2400 0 0F4H

1200 0 0E8H

300 0 0A0H

 
Kunt u me uitleggen hoe de bard tarief te berekenen is er een formule?

 
Deze informatie (met inbegrip van formules) is beschikbaar op het web ..
Bijvoorbeeld hier:
"Instellen van de seriële poort Baud Rate"
http://www.8052.com/tutser.phtml

Groeten,
IanP

 
Kunt u mij helpen hoe je een programma te ontvangen en om de gegevens in UART van 89c52, 4800 baudsnelheid zenden schrijven

Alsjeblieft

 
U moet tree functies:

void initBaudRate (void)
(
SCON = 0x42; / * SCON: mode 1, 8-bit UART, staat RCVR * /
TMOD | = 0x20; / * TMOD: timer 1, mode 2, 8-bit reload * /
TH1 = 0xFA; / * TH1: reload waarde voor de 4800 MHz baud@11.0592 * /
TR1 = 1; / * TR1: timer 1 run * /
TI = 1; / * TI: TI ingesteld voor het verzenden van eerste char UART * /
)

unsigned char uartSend (unsigned char uc)
(
while (TI == 0)
/ * Wacht tot TRANSMITER leeg * /
TI = 0;
SBUF = uc; / * sturen char * /
return uc;
)

unsigned char uartGet (void)
(
unsigned char uc;
while (RI == 0)
/ * Wacht char * /
uc = SBUF; / * lees de ontvangen char * /
RI = 0;
return uc;
)Toegevoegd na 19 minuten:De formules voor baudrate in modi 1 en 3 zijn:

Baudrate = (1 SMOD) (fXTAL / 12) / (32 (256-TH1)) = (1 SMOD) (fXTAL / 384) / (256-TH1)

TH1 = 256 (1 SMOD) (fXTAL / 384) / Baudrate

TH1 = 256 (fXTAL / 384) / baudrate als SMOD = 0
TH1 = 256 (fXTAL / 192) / baudrate als SMOD = 1

U kunt gebruik maken van een betere initBaudRate functie:

void initBaudRate (unsigned baudrate)
(
PCON | = 0x80; / * SMOD = 1 * /
SCON = 0x42; / * SCON: mode 1, 8-bit UART, staat RCVR * /
TMOD | = 0x20; / * TMOD: timer 1, mode 2, 8-bit reload * /
TH1 = (unsigned char) (256 ((fXTAL / 384) / baudrate))
TR1 = 1; / * TR1: timer 1 run * /
TI = 1; / * TI: TI ingesteld voor het verzenden van eerste char UART * /
)

 
hey i dont know Over C, maar in de assemblage je gewoon de waarde in scon

 

Welcome to EDABoard.com

Sponsor

Back
Top