Forum: Mikrocontroller und Digitale Elektronik Ports AT89S8253


von Anfaenger (Gast)


Lesenswert?

P0 = 0xFF;                             // Set P0 as high impedance input
  P1 = 0xFF;                             // Set P1 as input
  P2 = 0xFF;                             // Set P2 as input
  P3 = 0xFF;                             // Set P3 as input


Hallo,
im Datenblatt kann ich dass so rauslesen. wie muss ich sie als output 
initialiseieren?
Alle mit 0x00?

von chris (Gast)


Lesenswert?

ich wage mich dran zu erinnern das dass alles mit IN OUT im CISC gemacht 
wird das heißt die ganze Umschaltung wie beim Risc ist eigentlich nicht
Notwendig
z.B.

out   P0, akku

dann übernimmt der Controller diese Funktion und weiß selbst das er den 
Port als Ausgang schalten muss mit IN ist es umgekehrt

von Achim S. (Gast)


Lesenswert?

die 8051 (zu denen dein µC gehört) haben ein anderes Konzept zu 
Ein/Ausgängen als die meisten anderen µC. Es gibt keine Umschaltung 
zwischen Eingang und Ausgang.

Es funktioniert darüber, dass die Ausgangstreiber stark asymmetrisch 
sind. Wenn du eine 1 ausgibst, dann wird der Pin nur schwach nach oben 
gezogen (µA Bereich, auf Port 0 floatet er sogar völlig). Wenn du außen 
einen Treiber an diesen Pin anschließt, dann kann er die 1 locker 
übertreiben und den Pegel beliebig festlegen. Wenn kein externer Treiber 
angeschlossen ist, dann wird der Pin durch den schwachen Pullup auf 1 
gezogen.

Wenn du eine 0 ausgibst, dann wird diese stark nach außen getrieben - 
dann sollte möglichst kein externer Treiber versuchen, den Pin auf 1 zu 
ziehen, sonst fließt viel Strom.

Also:
- um den Pin als Ausgang zu benutzen einfach den gewünschten Wert 
reinschreiben (und an Port 0 zusätzlich externe Pullups vorsehen).
- um den Pin als Eingang zu benutzen einfach 1 reinschreiben, und den 
Pegel durch den externen Treiber festlegen lassen.

von Juppi Duh (Gast)


Lesenswert?

Achim S. schrieb:
> Es funktioniert darüber, dass die Ausgangstreiber stark asymmetrisch
> sind.

Oder einfach Openkollektor mit (festem) internen Pullup Widerstand.
http://www.elektronik-kompendium.de/sites/slt/1206121.htm

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.