mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT89C51 und AT89C52


Autor: Monty (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine Frage zu den beiden µC. Ich habe bis jetzt immer den 51er 
benutzt.

Ich gehe von den Ausgängen des ADC0808N direkt auf den Pins vom 51er 
gegangen. Und konnte so das Ergebnis Auswerten

Das Programm und der Programmcode haben wie erwartet funktioniert.
Ich bin jetzt auf den 52er umgestiegen und komischerweise funktioniert 
das Programm nicht mehr.

Das Problem ist folgendes. Ich lege die Eingänge vom 51er P1 = 0 Aktiv. 
Damit er sie Intern auf 5 V hochziehen kann.
Wen ich bei den P1er Pins die Spannung vom ADC messe liegen nur noch ca. 
1,1V an. D.h ich muss sie irgendwie intern wieder auf 5 V hochziehen 
damit ich sie abfragen kann.
Beim 52er mache ich das auch aber er zieht Spannung nicht hoch ?

Ich hoffe ich konnte mich einigermaßen verständlich ausdrücken.

Mit freundlichen grüßen
Monty

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lade mal genau das gleiche Programm (Hex-File) in den C52.
Der ist zu 100% abwärts kompatibel.


Peter

Autor: Jobst M. (jobstens-de)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du einen Port des 51/52ers als Eingang benutzen möchtest, mußt Du 
diesen auf H setzen.
Wenn Du ihn auf L setzt, und extern 5V anlegst, zerstörst Du damit den 
Porttransistor.

Ansonsten ist es so, wie Peter schon gesagt hat. Der 52er hat nur einen 
Timer und 128Byte RAM mehr.


Gruß

Jobst

Autor: Monty (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Jobst du hattest recht, bin falsch gelegen.

Leider geht es mit dem Hex File auch nicht. Laut Datenblätter und Atmel 
müsste es 100 % Kompatibel sein. Wen ich mit dem Oszi beim ALE Messe 
arbeitet er auch (beim 52er.). D.h der µC Funktioniert aber reagiert 
nicht auf die Eingangsabfrage.

Ich benutzte Bascom und Galep III für die Programmierung.
Wo könnte noch ein Fehler sein ?
Hatte jemand so ein Problem schon einmal ?

Mit freundlichen grüßen
Monty

Autor: chaos in der pipeline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wo könnte noch ein Fehler sein ?

Und zum 211744-ten Mal: Ohne Bekanntgabe der Schaltung und des 
Programmes ist alles andere Stochern im Kaffesatz oder die Antwort ist:

Pin 42 ist falsch rum angeschlossen.

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

Bewertung
0 lesenswert
nicht lesenswert
Bild von dem Schaltplan und ein kurzer Code zum testen was passiert.

$regfile = "8052.dat"
$baud = 9600
$crystal = 11059200


  Dim A As Byte
  Dim Ad As Integer
  Dim D As Byte

  D = &B01111111

  P3 = 1

Mainloop:

'ADC Ansteuerung ADC0808N
 P2.7 = 1                                                     '**  ADC ALE  --:..:---
                                                              '**  Channel 0
 P2.7 = 0

 P1.6 = 1                                                     '** Start  ...:---

 P1.5 = 1                                                     '** Clock ----
 P1.5 = 0                                                     '** Clock  ---:..
 P1.5 = 1                                                     '** Clock      ..:----

 P1.6 = 0                                                     '** Start  ---:...

 For Ad = 1 To 260 Step 1

 P1.5 = 0

 P1.5 = 1


 Next

 P1.7 = 1                                                     '** OE ADC ....:-----
 A = P3 And &B11111100                                        '** Read ADC and kill LSBs
 P1.7 = 0                                                     '** OE ADC -----:.....

 A = Not A



Shiftout P1.0 , P1.1 , A , 0


Goto Mainloop


Autor: chaos in der pipeline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider kann ich die Bildlaufleisten in Deinem Screeen-Shot nicht 
bedienen. Willst Du wirklich, dass man Dir hilft?

Was im Ausschnitt auffällt/unklar ist - der Reset-Pin ist nicht 
angeschlossen.

Deine Bascom-Code soll WAS machen?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Monty schrieb:
> P3 = 1

Du lügst ja, das sich die Balken biegen.
Das kann auf dem 89C51 schon nicht funktioniert haben!

Damit setzt Du nur P3.0 auf 1 und der arme ADC ist kurzgeschlossen.


Peter

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.