Forum: Mikrocontroller und Digitale Elektronik Kein 2.ter "serieller Interrupt" beim "AT89C51ED2" ?


von LTD (Gast)


Lesenswert?

Hallo an alle :-)!

Ich habe mir vor kurzem den AT89C51 ED2 zugelegt und auch schon ein 
kleines Demoboard damit gebastelt (16bit AD-Wandler; LED's; serielle 
Schnittstelle)!

Soweit so gut. Jetzt hab ich mir gedacht, ich könnte doch einfach eine 
2.te serielle schnittstelle (+MAX232) dazulöten um gleichzeitig mit PC 
und Modul arbeiten zu können. Aber als ich mir das Datenblatt nochmals 
durchlas kam ich drauf, dass es gar keinen 2.ten "Seriellen Interrupt" 
gibt!

Meine Frage daher: Kann ich eventuell die Rx/Tx Leitung der 2.ten RS232 
Schnittstelle auf ganz normale Ports legen? Wie müsste dann die 
Programmierung (in C) aussehen?

Ich bedanke mich bei euch bereits im voraus für eure Antworten und 
verbleibe

mit freundlichen Grüßen,

Lukas

von Peter D. (peda)


Lesenswert?

Der AT89C51ED2 hat nur eine UART.

Du kannst allerdings ne 2. und auch 3. UART in Software mit dem PCA 
programmieren.

Wenn Du dann dem PCA-Interrupt die Priorität 3 gibst, kannst Du damit 
auch hohe Baudraten erziehlen, ohne daß andere Interrupts (Priorität 
0..2) stören.

Das Prinzip ist zum Empfangsstart die Capture-Funktion und zum Senden 
die Pin set/clear on Compare-Funktion.

In der Codesammlung ist ein Beispiel für den ATMega8, das kann man 
leicht an das PCA anpassen, da in C geschrieben.



Peter


von Stephan H. (stephan-)


Lesenswert?

alternativ läßt sich eine Umschaltung der RS232 via 4051 vornehmen.
Die 4 vom Max kommenden Leitungen auf einen 4051 mit entsprechender 
Umschaltlogik. Voila
Suche mal im Board hier nach 89C51ED2. Ich hatte mein Board mal 
vorgestellt.
Das hat sowas.

Stephan

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.