Hilfe AT89C2051 will nicht !!

Gast #71371
Lesenswert?

Hallo Leute ich habe ein kleines Problem...

Muss ich etwas beachten wenn ich einen AT89C2051 Controller
programmieren will?

1) Ich habe mir ein Programmer gebaut läuft jetzt super.
2) Wenn ich den Controller auslese sehe ich das programmierte
   Programm.

3) Controller mit VCC und GND verbinden
4) RESET über ein 10uF/63V zu VCC

Das müßte doch die Hardware Beschaltung sein oder nicht?

Meine Software sieht so aus:

#include <at892051.h>  // Headerdatei Controller einbinden

void main()
{
    while(1)
    {
  P1_0 = 0;
  P1_1 = 1;
  P3_0 = 0;
  P3_1 = 1;
    }
}

Leider funktioniert das einfache Programm nicht.

Was mach ich bloß falsch??

Mit freundlichen Grüßen
Christian
Angehängte Dateien:
Gast #71374
Lesenswert?

Ich kenne den AT89C2051 Controller nicht, aber gehört an
Reset nicht noch ein 10k Widerstand nach Masse?
Mit C Programmen kenne ich mich nicht aus, da kann ich
leider nicht helfen.

Gruß,
Arno
Gast #71375
Lesenswert?

#include <at892051.h>  // Headerdatei Controller einbinden

sbit P1_0 = P1^0;
sbit P1_1 = P1^1;
sbit P3_0 = P3^0;
sbit P3_1 = P3^1;

void main()
{
    while(1)
    {
  P1_0 = 0;
  P1_1 = 1;
  P3_0 = 0;
  P3_1 = 1;
    }
}

mit dem sbit gehts zumindest ganz sicher mit dem Keil Compiler
Gast #71378
Lesenswert?

Hab' hier noch fast die gleiche Schaltung rmfliegen, ist noch ein
bischen mehr drumherum, aber nichts was die Funktion beeinflußt. Hab
gerade Dein Programm genommen, und es so geändert, daß die LED an Port
3 getoggelt wird. Mit dem Oszi nachgesehen, 'blinkt' wunderbar.
Schwing Dein Quarz?
Gast #71380
Lesenswert?

Miß doch mal mit 'nem Multimeter (DC) Pin 4 und 5 gegen Masse da sollte
an Beiden Pins etwa die halbe Betriebsspannung liegen, so hast Du
zumindest sagen schwingt oder schwingt nicht, ob die Frequenz OK ist
kannn man natürlich nicht sagen.
Gast #71381
Lesenswert?

Hallo Jürgen
ich messe 2.4V an PIN4 und PIN5 d.h. der Controller schwingt.

Sollte ich vieleicht mal diesen 10k Widerstand von dem oben Erzählt
worden ist einbauen?  Ich kann das ja mal ausüprobieren..

Hast du vieleicht noch eine weitere Idee was das sein kann.

Mit freundlichen Grüßen
Christian
Gast #71382
Lesenswert?

Hallo Christian,
du machst meiner erfahrung nach folgendes falsch:
1. du musst alle Ausgänge bei der e-init auf 1 setzen

  P1_0 = 1;
  P1_1 = 1;
  P3_0 = 1;
  P3_1 = 1;

2. P1.0 und P1.1 haben keine Pull up Widerstände, diese musst du extern
anbringen da es ein Komperator Eingang ist. Der Kondensator mit 27pF
ist ok, leichter schwingt der Quarz aber mit 33pF.
Angehängte Dateien:
Gast #71383
Lesenswert?

Sorry, hab zu früh auf "Submit" geklickt :)

Den Resetkreis solltest du ja schon so haben wie in meinem Schaltbild
zu sehen ist, falls nicht ändere ihn so ab!

Was ich in deinem Sorcecode auch nicht ganz verstehe wie du den LED
Port zum Toggeln bringen willst???

Gruß, Michael
Gast #71385
Lesenswert?

Hallo Juergen Hallo Michael

vielen Dank für eure Hilfe. Das Programm soll nicht toggeln. Ich möchte
nur die einzelnen Ausgänge auf HIGH oder LOW setzten. Nichts besonderes
nur als Funktionstest.

Ich versuche mal eure Tipps in die Praxis umzusetzten.

Mit freundlichen Grüßen
Christian
Gast #71386
Lesenswert?

Hallo Leute
ich habe mal die Tipp`s in die Tat umgesetzt leider ohne Erfolg.

Ich habe mal meine Schaltung und die Spannungswerte die ich am
Controller messe als Anhang beigefügt.

Ich hoffe Ihr könnt mir weiter helfen. Quelcode sieht jetzt so aus:

#include <at892051.h>  // Headerdatei Controller einbinden

void main()
{
    P1 = 0xFF;

    while(1)
    {
       P1_7 = 0;
    }
}

Mit freundichen Grüßen
Christian
Angehängte Dateien:

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