mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmel 89c51cc01 RS232 Datenaustausch


Autor: Guido Harst (guidoharst)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/...

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

Autor: Guido Harst (guidoharst)
Datum:

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

Autor: Sardaukar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.