UART AT89C2051

Gast #254953
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
Gast #254954
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren