Forum: Mikrocontroller und Digitale Elektronik UART AT89C2051


von alex (Gast)


Lesenswert?

Hallo zusammen!
Ich hab mittlerweile schon eine halbe Stunde gegoogelt und keine
Antwort auf meine Frage bekommen:
Ich möchte Daten vom uC an den PC seriell übertragen. Ich hab dazu
folgenden Source geschrieben:

**********************
TMOD = 0x20; //Timer 1, Mode 2
TH1  = 0xFD; //9600Baud
SCON = 0x40; //Serielle Schnittstelle
TI   = 0;
TR1  = 1;

while(1) {
  SBUF = 'A';
  while(TI == 0);
  TI = 0;
}
**********************

Irgendwie bekomme ich aber keine Daten. Das Auswerteprogramm am PC
funktioniert, da ich es auch mit der C-Control ausprobiert habe und da
erhalte ich das Zeichen korrekt.
Meine Vermutung ist, dass die Parameter im uC-Source (TMOD, TH1, SCON)
falsch sind.
Eingestellte Parameter am PC:
- 9600 Baud
- 8 Datenbits(Quarz 11.0592MHz)
- keine Parität
- 1 Stoppbit

Vielen Dank im Voraus,
Alex

von Elektrikser (Gast)


Lesenswert?

Welchen Quarz verwendest du?
Du möchtest wirklich den Modus 2 verwenden? Damit teilst du den Quarz
fest herunter und nicht variabel (1/32 oder 1/64 der
Quarzgeschwindigkeit.)
Ich würde dir eher den Mode 1 empfehlen.
Schau mal www.erikbuchmann.de an. De gibt es einen Codegenerator, mit
dem du deine Programme überprüfen kannst.

Gruß Elektrikser

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.