AT89C51 und AT89C52

Gast #2100029
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
#2100470
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
Gast #2101005
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
Gast #2101032
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.
Gast #2101127
Lesenswert?

Bild von dem Schaltplan und ein kurzer Code zum testen was passiert.
1
$regfile = "8052.dat"
2
$baud = 9600
3
$crystal = 11059200
4

5

6
  Dim A As Byte
7
  Dim Ad As Integer
8
  Dim D As Byte
9

10
  D = &B01111111
11

12
  P3 = 1
13

14
Mainloop:
15

16
'ADC Ansteuerung ADC0808N
17
 P2.7 = 1                                                     '**  ADC ALE  --:..:---
18
                                                              '**  Channel 0
19
 P2.7 = 0
20

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

23
 P1.5 = 1                                                     '** Clock ----
24
 P1.5 = 0                                                     '** Clock  ---:..
25
 P1.5 = 1                                                     '** Clock      ..:----
26

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

29
 For Ad = 1 To 260 Step 1
30

31
 P1.5 = 0
32

33
 P1.5 = 1
34

35

36
 Next
37

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

42
 A = Not A
43

44

45

46
Shiftout P1.0 , P1.1 , A , 0
47

48

49
Goto Mainloop
Angehängte Dateien:
Gast #2101335
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren