Forum: Mikrocontroller und Digitale Elektronik Wie programmiere ich einen MCS51


von Lorenz (Gast)


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

von Olaf (Gast)


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

von Lorenz (Gast)


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/product_info.php?products_id=8)
nicht schlecht. Ich überlege mir, ich mir so eins zulegen sollte.


Grüsse
Lorenz

von Joe (Gast)


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

von Peter Dannegger (Gast)


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

von Joe (Gast)


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

von buz11 (Gast)


Lesenswert?

@Olaf

Guten Morgen , schon wach ?

Atmel hat min. 20 ISP-fähige 8051er .
http://www.atmel.com/dyn/products/param_table.asp?family_id=604&OrderBy=1209&Direction=DESC#

von Wegstabenverbuchsler (Gast)


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.

von Thomas K. (thkais)


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.

von Peter D. (peda)


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

von Oliver (Gast)


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

von Lorenz (Gast)


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?family_id=604&OrderBy=1209&Direction=DESC
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/product.do?id=01&node=aeacadabaaaa&series=1

Lorenz

von Peter Dannegger (Gast)


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

von Leenders (Gast)


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

von Peter Dannegger (Gast)


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

von Lorenz (Gast)


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?

von Oliver (Gast)


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

von Lorenz (Gast)


Lesenswert?

ou, ich das interface gar nicht gesehen, sorry...

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

Danke für eure Hilfe!

von Lorenz (Gast)


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

von Oliver (Gast)


Angehängte Dateien:

Lesenswert?

z.B. so:

von Oliver (Gast)


Lesenswert?

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

von buz11 (Gast)


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/C51_Hardware_Connections.pdf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.