www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie programmiere ich einen MCS51


Autor: Lorenz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen

Ich bin ein absoluter Anfänger, was Mikrokontroller anbelangt. Ich habe
schon sehr viel "Hochsprachen" (wie ihr sie immer nennt :))
programmiert. Daher sollte ich mit dem Assembler eigentlich schon
klarkommen.

Mein Problem liegt an einem ganz anderen Ort: der Hardware. Ich habe
mir "Das Microcontroller Kochbuch MCS51" zugelegt, doch komme damit
nicht ganz klar. All diese Beispiele, die ganze Theorie ist ganz nett,
bringt mir aber nicht viel, wenn ich sie nicht ausprobieren kann.
Welche Controller sind zum Einstieg geignet? Wichtig ist mir, dass sie
ISP unterstützen, da ich die Finanzen für ein Programmiergerät nicht
habe.
Sollte ich einefach den Minimalcontroller aus dem Buch bauen?
Wahrscheinlich steht es ja schon irgendwo in diesem Buch, doch wie muss
ich dann an meinen Computer anschliessen um ihnr programmieren zu
können?

Anfangs möchte ich eigentlich nur ein Paar LEDs und Taster und
ansteuern, später dann vor allem externe AD-Wandler und serielle
Schnitstellen. Natürlich kann ich dazu auch den ATmega verwenden, doch
weil ich später sowieso etwas leistungsstärkeres gebrauche beabsichtige
ich gleich mich mit den MCS51 Controllern anzufreunden.

Ist das eine absurde Idee also Neuling in der Microcontrollerwelt?

Vielen Dank für eure Hilfe!
Grüsse
Lorenz

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein AVR ist so ganz allgemein leistungsfaehiger als ein MCS51.
Jedenfalls solange man nicht auf irgendwelchen Details rumreitet)

Ausserdem ist ein MCS51 erstmal so nicht ISP-Faehig weil die alle ein
externes EPROM brauchen das in einem Programmiergeraet gebrannt wird.

Es gibt aber einige spezielle MCS51 typen die auch ISP koennen und dann
brauchst du einen Brenner genau fuer diesen Typ.

Olaf

Autor: Lorenz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Olaf für deine Antwort.

Ich sehe auch langsam, dass ein MCS51 nicht wirklich das Richtig für
mich ist. Ein AVR wäre wirklich besser und vor allem einfacher.

In diesem Fall habe ich das Microcontroller Kochbuch vergebens gekauft
:( Gibt es jemand, der es gebrauchen könnte?

Ich habe gleich einige Zeit auf RoboterNetz.de rumgeschnüffelt mir mir
gefällt ihr Experimentierboard
(http://www.shop.robotikhardware.de/shop/catalog/pr...)
nicht schlecht. Ich überlege mir, ich mir so eins zulegen sollte.


Grüsse
Lorenz

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann ich nicht nachvollziehen. Das Buch ist hervorragend und anstelle
des MC's im Buch nimmst du den AT89S8252. ISP mit PonyProg.
MIDE-51 aus dem Netz saugen und du hast ne komplette IDE incl. C und
Assembler.

Noch einfacher geht es nicht.

Noch Fragen ? dann poste mal

Gruß

Joe

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Außer einem 8051 mit internem Bootloader brauchst Du nur noch einen
MAX202 oder kompatible, siehe hier:

http://www.mikrocontroller.net/forum/read-1-25968.html#new


Welche 8051 einen internen Bootloader haben, findest Du auf den Atmel-,
Maxim-, Philips- usw. Webseiten.

Und wenn Du mal mehr Speed brauchst, die Maxim DS89C420..450 sind mit
die schnellsten (33MIPS).


Peter

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ne, brauchste nicht! Der AT89S8252 ist ISP fähig. PonyProg benötigt nur
nen Bustreiber 74HC244.

Also, Investition ungefähr 6 Euro für Bauteile.

Joe

Autor: buz11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Olaf

Guten Morgen , schon wach ?

Atmel hat min. 20 ISP-fähige 8051er .
http://www.atmel.com/dyn/products/param_table.asp?...

Autor: Wegstabenverbuchsler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Lorenz
Ich bin ein absoluter Anfänger, was Mikrokontroller anbelangt. Ich habe
schon sehr viel "Hochsprachen" (wie ihr sie immer nennt :))
programmiert. Daher sollte ich mit dem Assembler eigentlich schon
klarkommen.

Na ja, das besondere an Assembler ist halt die ganze "Bitfrickelei".
Bis du da mal angelangt bist, bestimmte Dinge (z.B. zeitkritsche
Abläufe) effizient in Assembler zu coden, wirds sicherlich etwas
dauern.

Aber sicherlich startest du durch deine Bekanntschaft mit
"Hochsprachen" (und zugehöriger IDE) von einer sehr guten
Ausgangslage. Da es auch (fast) beliebige Hochsprachen-Compiler für
Mikrocontroller und Mikroprozessoren gibt, sollte der Einstige recht
flott möglich sein.

Autor: Thomas K. (thkais)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vor vielen Jahren habe ich auch mit dem "Mikrocontroller Kochbuch" und
den MCS-51 angefangen. Neben meinen heißgeliebten AVRs habe ich noch
einige 80C535 laufen, die brauchen definitiv externen
Programmspeicher.
Prinzipiell braucht man eine Initialzündung, um weiterzukommen. Bei mir
sah das so aus, dass ich mir ein Mini-Programm geschrieben habe, das nur
die Bytes von der seriellen Schnittstelle abgeholt und in einen RAM (der
als Code-Speicher geschaltet war) geschrieben hat. Dieses Ur-Programm
habe ich mit einem selbstgebauten Programmiergerät in ein 28C16 (2K
x8)geschossen (bestand eigentlich nur aus ein paar Latches am
Druckerport). Nun wurde ein kleiner Monitor gebastelt (den ich auch
heute noch verwende), der seinen Platz schlussendlich im 28C16 fand.
Wenn ich heute ein MCS-51-System in Betrieb nehme, dann sind
Steckplätze für je 64K Code- und 64K Datenspeicher vorhanden, und die
Adressierung so ausgelegt, dass ich auch mal schnell nebenbei ein
Programm in den RAM werfen und ausführen kann.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas

"Bei mir sah das so aus, dass ich mir ein Mini-Programm geschrieben
habe, das nur die Bytes von der seriellen Schnittstelle abgeholt und in
einen RAM (der als Code-Speicher geschaltet war) geschrieben hat."


Und genau dieser Bootloader ist eben bei den heutigen 8051-ern, wie
AT89C51ED2, P89C668, DS89C420 usw. schon eingebaut (factory programmed)
und man kann die Pins für den externen Memory Bus als normale IO-Pins
nutzen.

Auch muß man das zu testende Programm nicht jedesmal in einen RAM
laden, sondern es wird direkt geflasht, d.h. beim nächsten Einschalten
ist es wieder da, solange, bis man das nächste Programm flasht.


Ich hatte auch mal mit nem 8031 und viel Geraffel drumrum angefangen,
aber das ist schon sehr lange her. Die 8031 hatte ich aus alten
Festplatten ausgebaut.


Peter

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
irgendwann in 2004 ist in der elektor das projekt swiss army knife
erschienen (at89s8252). ich hatte es damals gebaut und finde es ist
auch für einsteiger gut geeignet. tcb muss man ja nicht verwenden und
den angebotenen interpreter muss man auch nicht benutzen. ich habe das
board für normale asm prgs benutzt und bin damit noch immer sehr
zufrieden.

gruß oliver

Autor: Lorenz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal vielen dank für eure zahlreichen Beiträge!

Ich habe mir einmal die ISP fähigen Controller auf:
http://www.atmel.com/dyn/products/param_table.asp?...
angeschaut. Dazu einige Fragen:
Bei ISP steht teilweise UART und ab unz zu SPI. Was bedeutet das?

Ich habe einmal den AT89C51ED2 rausgesucht, weil der schoen viel Flash
hat. Ist dieser geegnet zum einsteigen? Kann ich den ohne externen
speicher betreiben, schon oder? Und wie programmiere ich den? Was fuer
ein ISP-Interface muss ich mir basteln?

Ich möchte am Anfang einmal ein paar Taster und LEDs ansteuern und dann
auch versuchen ein A/D Wandler anzuhängen.
Was für eine Schaltung brauche ich dazu?

Und auf was baut man diese Schaltung am besten auf? Eher auf einer
Lochplatine mit Lötpunkten oder auf einem Experimentierboard?
http://www.distrelec.com/ishopWebFront/catalog/pro...

Lorenz

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Ich habe einmal den AT89C51ED2 rausgesucht, weil der schoen viel
Flash
hat. Ist dieser geegnet zum einsteigen?"

Ja, der geht gut:

http://www.mikrocontroller.net/forum/read-1-25968.html#new


Peter

Autor: Leenders (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 51iger sind gar nicht so schlecht , zum einsteigen.
Wer einen Epromsimulator besitzt ist gut dran selbst geschriebene
Software zu endwanzen. Statt immerwieder  in den Flash zu
programmieren.

Ich habe dafür einen 80515 mit einem Epromsimulator und jede Menge
Portleitungen mit LED´s um zu sehen,  wo sich das Programm gerade
rumtreibt.
Beispiel
Da steht z.B. am Anfang der Routine clr P4.3;
  und am Ende setb P4.3  und so weiss man da hängt er nicht.

Paul

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Paul

"Statt immerwieder  in den Flash zu programmieren."

???

Was stört dich denn daran ?
Das hat doch nur Vorteile (einfache Schaltung, P0+P2 verfügbar).

Wenn Du Angst hast, daß Dir die Flashzyklen ausgehen, vergiß es.
Irgendwann ist das Projekt ja mal fertig und dann nimmt man den
nächsten µC.
Oder machst Du Projekte immer nur zum Lernen und rupfst sie dann wieder
auseinander ?

Auch sollte man sich nicht von modernen Derivaten (>3MIPS)
ausschließen.


Peter

Autor: Lorenz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmals zu meiner Frage. Kann mir jemand eine Schaltung geben, mit der
ich direkt aufs Flash programmieren kann von der parrallelen oder
seriellen Schnittstelle vom Computer?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe mir auch mal peters o.g. beispiel angesehen, eine bessere
einstiegshilfe kannst du doch fast nicht bekommen.
die schaltung hast du ratz fatz aufm breadboard aufgebaut und kommst so
zügig zu deinen ersten eigenen erfahrungen.

oliver

Autor: Lorenz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ou, ich das interface gar nicht gesehen, sorry...

ok, dann bestell ich mir einmal alle benötigten teile.

Danke für eure Hilfe!

Autor: Lorenz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nochmals schnell etwas:
Ich suche gleich nach dem richtigen MAX202, welches habt ihr benutz?
Beim Prozi vom Amtel steht, man könne die mit einer Spannung von
2.7-5.5V laufen lassen. Was sollte man da wählen? Und wie baut man am
einfachsten (und billigsten) einen Wandler von 13.8V auf diese
Spannung? Ich habe ein stabilisiertes 12V Netzteil, welches ich
benützen möchte.

Lorenz

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

Bewertung
0 lesenswert
nicht lesenswert
z.B. so:

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
evtl. sollte man noch einen elko am ausgang hinzufügen (wie am eingang
auch)

Autor: buz11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Nochmals zu meiner Frage. Kann mir jemand eine Schaltung geben, mit
der
>ich direkt aufs Flash programmieren kann von der parrallelen oder
>seriellen Schnittstelle vom Computer?

Für die ISP-fähigen per RS232 , CAN und USB gibt es bei Atmel xxx.pdf
:

http://www.atmel.com/dyn/resources/prod_documents/...

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.