Forum: Mikrocontroller und Digitale Elektronik atmel 89c51cc01 RS232 Datenaustausch


von Guido H. (guidoharst)


Lesenswert?

Hallo,
ich versuche über die normale RS232 Daten vom µC zum PC zu senden. Ich 
arbeite mich gerade in die Thematik des 89c51cc01 ein. Beim 80c537A z.B. 
muss die Baudrate über den reload-wert des Timers bestimmt werden. Wie 
geht das mit dem Atmel? Gibt es zu diesem µC eine oder mehrere 
Internetseiten mit Beiträgen und Beispielprogrammen?

Danke

von ARM-Fan (Gast)


Lesenswert?

Ist ein Standard-8051er bzw. -8052er Kern.
Also Beispielcode so viel du willst im Netz.

Außerdem, was ist immer so schlimm am Datenblatt-Lesen?

http://www.atmel.com/dyn/resources/prod_documents/doc4129.pdf

Kapitel "Serial I/O Port", S.55

von Guido H. (guidoharst)


Lesenswert?

Hallo,
leider ist in der Doku u.a. nichts über die Bestimmung der Baudrate zu 
lesen etc. Das ist einesder Probleme.

von Sardaukar (Gast)


Lesenswert?

Hilft Dir das weiter (T89C51CC01)?

// Baudraten gelten fuer 32MHz, SMOD = 1
unsigned char code baudrate_hwvalue[] = {
                             117,      /* 0  1200 Baud  -0,08% */
                             187,      /* 1  2400 Baud   0,64% */
                             221,      /* 2  4800 Baud  -0,80% */
                             239,      /* 3  9600 Baud   2,08% */
                             247,      /* 4 19200 Baud  -3,68% */
                             };

void uart_init(unsigned char baudrate)
{
  TR1   = 0;
  PCON  = 0x80;              /* PCON: SMOD=1 double baudrate   */
  SCON  = 0x52;              /* SCON: Mode 1, 8-bit UART       */
  TMOD &= 0x0F;
  TMOD |= 0x20;              /* TMOD: Timer 1, Mode 2          */
  TH1   = baudrate_hwvalue[baudrate];/* TH1:  reload value     */
  TR1   = 1;                 /* TR1:  Timer 1 run              */
}

Meiner Erinnerung zur Folgeist die Berechnung der Baudrate schon 
einigermassen brauchbar im Datenblatt dokumentiert. Vielleicht find ich 
auch noch mein Excel-Sheet, mit dem ich das damals berechnet habe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.