Forum: Mikrocontroller und Digitale Elektronik Hilfe AT89C2051 will nicht !!


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christain (Gast)


Angehängte Dateien:

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

von Conlost (Gast)


Lesenswert?

Hallo,

womit erzeugst du den Takt?

Gruß,
Arno

von Christain (Gast)


Lesenswert?

Hallo Arno

11.05921 MHz und zwei 27p Kondensatoren.

Mit freundlichen Grüßen
Christian

von Conlost (Gast)


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

von Berti (Gast)


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

von Berti (Gast)


Angehängte Dateien:

Lesenswert?

Ach ja das Schaltbild...

von Florian (Gast)


Lesenswert?

Hallo

Ich hatte ein ähnlichhes problem. Den Fehler habe ich bis jezt noch
nicht gefunden.

Gruss Florian

von Juergen (Gast)


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?

von Christain (Gast)


Lesenswert?

Hallo Jürgen
kann ich ohne mit dem Oszilloskop zu messen sehen ob mein Quarz
schwingt? (Multimeter??)

Mit freundlichen Grüßen
Christian

von Juergen (Gast)


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.

von Christain (Gast)


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

von Michael (Gast)


Angehängte Dateien:

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.

von Michael (Gast)


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

von Juergen (Gast)


Lesenswert?

}:-O  Der LED Port soll Toggeln? das halte ich bei dem Quelltext dann
doch wohl eher für ein Gerücht.
@Christian: Was erwartest Du denn, was Deine Schaltung mit dem oben
geposteten Progrämmchen macht?

von Christain (Gast)


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

von Christain (Gast)


Angehängte Dateien:

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

von Juergen (Gast)


Lesenswert?

ja, das sieht doch gut aus...
bis auf P1.7.
Besorg Dir mal einen zweiten Controller zum Testen, ich befürchte der
ist im Eimer.

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]
  • [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.