mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT89C51 Ausgänge schalten nicht


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich experimentiere gerade mit Bascom und einem Willem-Programmer den
At89C51 zu programmieren.
Aber wenn ich z.B. schreibe: p1=&B10101010, dann haben alle Pins das
selbe Potential.
Kann mir vieleicht jemand sagen warum???

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil du einen Fehler gemacht hast.
Vermtutlich liegen alle Pins auf High ? Dann läuft entweder der uC
nicht, oder er ist nichtmal richtig programmiert.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Versuchsaufbau umfasst LED's mit Vorwiderstand an 5V und an
P1.0-P1.7 und die anderen Anschlüsse wie Quartz, Reset, EA,... sollten
eigentlich richtig angeschlossen sein.

Und hier mal mein Testcode:

do
p1=&B10101010
waitms 500
p1=&B01010101
waitms 500
loop

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du mal den programmierten Controller auslesen und die gelesenen
Daten posten ? Dann wissen wir immerhin schon, ob es ein Hardware oder
Software Fehler ist.

Autor: Stefan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist die vom Chip ausgelesen BIN.
Ist es übrigens normal, dass eine leer compillierte Datei schon 92 byte
groß ist?

Autor: Gerhard Gunzelmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß nicht, ob alle gleich sind, aber es gibt C51-Derivate, bei
denen zumindest ein Port Pull-Up's am Ausgang benötigt. (ATMEL C51?)

Gerhard

Autor: edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Drehe doch mal eine LED so dass Kathode Richtung 0V schaut

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat das nicht eigentlich nur zur Folge, dass die LED leuchtet, wenn der
Pin high ist und nicht bei low?

Im Datenblatt steht, dass alle P1 Pins interne Pull-Ups haben.

Autor: edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Led soll leuchten wenn P1.x nach gnd zieht...clr P1.x

+5V---R---LED---P1.x---gnd

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bevor hier alle sinnlos rumraten, hier mal ein paar Fakten:
Es ist richtig wie die LED angeschlossen ist, (unabhängig ob der Pin
einen Pullup hat oder nicht.)
Die Software ist auch OK, funktioniert zumindest bei mir im Simulator.

Das heißt es liegt ein Hardwarefehler vor:
- Schwingt der Quarz ?
- Welche Spannung liegt am Reset und EA Pin an ?
- Mach mal (per Hand) einen Reset währen die Schaltung läuft (einfach
mit einem Stück Draht Reset an 5V legen)

Nochmal zu den Pullups: Lediglich P0 hat keine internen Pullups. Alle
anderen Ports haben eiinen.

Bascom ist ja noch schlimmer als ich gedacht hatte: Für 6 Bytes wird
ein Long Jump verwendet, wo doch ein Short Jump ausgereicht hätte.
Dasselbe gilt für die Calls...

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reset liegt mit 100k an 0V und 10µF an 5V, EA an 5V
Nach Reset dauert es einen kurtzen Moment und alles ist wie zuvor.
Ich hab auch mal an die anderen Prots LED's gehängt, die flackern.
Sieht  aus, als zählen sie im BCD-Code hoch (0,1,10,11,100,101,...)

Autor: Der Elektrische Reiter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus der Hüfte geschossen, würde ich folgendes prüfen:

Schau Dir mal die "Programm Lock Bits" an. Sind Die richtig gesetzt?
Probier mal anstelle des 100k einen 10k Widerstand zum Reset.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lock Bits sind keine gesetzt. Könnte es aber villeicht sein, dass die
LED's zu wenig Strom ziehen und durch die Pull-Ups die Spannung hoch
bleibt??

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das war natürlich Blödsinn was ich gerade geschrieben habe. (Ich hab im
Geiste + und - vertauscht :P)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.