Forum: Mikrocontroller und Digitale Elektronik AT89S52 Port 0 als I/0-Port


von Anon A. (anon1234)


Angehängte Dateien:

Lesenswert?

Hallo allesamt,
ich bastle gerade mit meinem AT89S52 (ein 8051er Derivat).
Nun wollte ich den Port 0 eigentlich ganz normal als I/O-Port nutzen, 
habe nun allerdings festgestellt, dass er, wenn er als I/O-Port genutzt 
werden soll mit externen Pull-Up-Widerständen gegen + gezogen werden 
muss.

Im Datenblatt steht dazu:
1
Port 0
2
Port 0 is an 8-bit open drain bidirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs. 
3
Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode, P0 has internal pull-ups.
4
Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pull-ups are required during program verification.

In einem anderem Thread habe ich gelesen, dass Pull-Ups von 2K bis 10K 
benötigt werden.
Bei mir sollen konkret LEDs angesteuert werden, mit denen ich mir 
Status-Ausgaben mache. (Jeder Pin von Port 0 hat also ein kleine rote 
3mm LED).
Nun meine Frage :
1.) Wie berechne ich wie groß der Pull-Up-Widerstand sein muss und ist 
dann noch ein Vorwiderstand für die LED nötig?
2.) Ist es richtig, dass ich dann wie im angehängten Bild einfach nur 
direkt mit meinem Widerstand vom Pin zu Plus (bzw. von der LED zu Plus) 
verbinde?
3.) Was passiert eigentlich genau dabei im µC. Ist das zweite angehängte 
Bild hierfür richtig? Und verstehe ich es richtig:
- dass Bei einer 1 am Pin, der Transistor die Verbindung von Plus, über 
den Pull-Up und den Verbraucher zu Masse durchschaltet, deswegen dann 
Strom fließen kann und quasi eine 1 anliegt?
- dass bei einer 0 am Pin, der Transistor die Verbindung nicht schaltet, 
kein Strom fließen kann und quasi eine 0 anliegt?

Viel Grüße
anon1234

von greg (Gast)


Lesenswert?

LEDs mit Vorwiderstand an Vcc. Dann schaltest du die LEDs gegen Masse. 
Du brauchst keinen Pullup!

Anon Anon schrieb:
> 3.) Was passiert eigentlich genau dabei im µC. Ist das zweite angehängte
> Bild hierfür richtig? Und verstehe ich es richtig:
> - dass Bei einer 1 am Pin, der Transistor die Verbindung von Plus, über
> den Pull-Up und den Verbraucher zu Masse durchschaltet, deswegen dann
> Strom fließen kann und quasi eine 1 anliegt?
> - dass bei einer 0 am Pin, der Transistor die Verbindung nicht schaltet,
> kein Strom fließen kann und quasi eine 0 anliegt?

Es ist genau umgekehrt, sonst stimmt es.

von Mr. Claudius (Gast)


Lesenswert?

Wofür Pullups bei deiner Anwendung?
LEDS mit Vorwiderstand an Port 0 nach +5V und gut ist.

von Peter D. (peda)


Lesenswert?

Mr. Claudius schrieb:
> LEDS mit Vorwiderstand an Port 0 nach +5V und gut ist.

Lasten schaltet man am 8051 immer low aktiv.
Sonst gehen bei jedem Reset alle LEDs, Relais, Motoren usw. an.

von Anon A. (anon1234)


Lesenswert?

Vielen Dank für eure schnellen Antworten :)
Das lerne ich echt immer mehr zu schätzen hier im Forum.. :)

greg schrieb:
> Es ist genau umgekehrt, sonst stimmt es.

Wenn es genau umgekehrt ist, dann blicke ich glaub ich nicht ganz durch.
Heißt das der Transistor ist andersherum gepolt, so dass er mit einer 0 
geschaltet wird?

Peter Dannegger schrieb:
> Mr. Claudius schrieb:
>> LEDS mit Vorwiderstand an Port 0 nach +5V und gut ist.
>
> Lasten schaltet man am 8051 immer low aktiv.
> Sonst gehen bei jedem Reset alle LEDs, Relais, Motoren usw. an.

Macht man das, weil die Ports Standard-High sind, wenn sie nicht belegt 
werden?
Das heißt dann, ich komplementiere einfach meine Werte die ich mir 
ausgeben lassen will, und verbinde Pin mit Widerstand, Widerstand mit 
Kathode, Anode mit 5V richtig?

Gruß
Anon1234

von Route_66 H. (route_66)


Lesenswert?

Anon Anon schrieb:
> Das heißt dann, ich komplementiere einfach meine Werte die ich mir
> ausgeben lassen will, und verbinde Pin mit Widerstand, Widerstand mit
> Kathode, Anode mit 5V richtig?

Genau so!
Wenn man SIP-Widerstandsnetzwerke verwendet, kann man auch noch 
Widerstand und LED in der Reihenfolge tauschen.

: Bearbeitet durch User
von Anon A. (anon1234)


Lesenswert?

Dankeschön. Das werd ich dann heute Abend gleich mal testen :)

von Anon A. (anon1234)


Lesenswert?

Ihr seid super :) Es funktioniert :) :)
Danke :)

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.