Hallo, Please enjoy my website for 8051 microcontrollers. http://members.iinet.net.au/~vanluynm/ Regards, Murray R. Van Luyn.
Mal ne Prinzipielle Frage: Wozu heutzutage noch auf den steinalten 8051 setzen wenn doch die AVR Mikrocontroller meist um den Faktor 12 schneller und genauso billig sind?
Weil der 8051 erstens nicht steinalt ist (der 801 selbst vielleicht, aber der Kern/Architektur wird immer noch für ne Menge hochaktuelle Controller benutzt) und der Einstieg in die Programierung wird an diversen Hochschulen praktiziert. Ausserdem wird eine Firma kaum auf einen neuen Controller umsteigen, bloß weil er neu (und/oder billiger ist, wenn man von diesem Controller schon diverse verbaut hat. Schlieslich hängt da eine Menge firminternes KnowHow dran...
Es gibt aber noch ein besseres Argument fuer den 8051: Der Controller wird von vielen verschiedenen Herstellern angeboten. Setzt einer den Controllertyp ab, so hat man noch andere Hersteller zur auswahl. Bei Microchip, Atmel und Co haette man dann grosse Probleme. Gruss, SIGINT
In Firmen die entsprechende alte Schaltungen haben und wo es sehr wichtig ist das es auch in 10-15 Jahren noch "Ersatzteile" gibt seh ich das ja ein aber im Hausgebrauch...ich weiß ja nicht.. :P
Guck mal auf Internetseiten wie maxim-ic.com o.ä. nach: Es gibt Firmen, die Controller auf Basis des 8051 entwickeln, die ohne internen Frequenzteiler arbeiten und das bei 24MHz. Dass der 8051 immer noch so verbreitet ist, liegt daran, dass er sich bewährt hat, und sich viele Leute damit auskennen. Ausserdem hat er Vorteile (Interrupt-Prioritäten), die man beim AVR vermisst. Einen Blick über den Tellerrand zu werfen hat noch niemandem geschadet...
Ich habe mich im Studium ein Semester mit dem 80C515 von Siemens(Infineon) beschäftigt der ja ein 8051 + Peripherie ist. Das es auch 8051 kompatible Controller gibt die pro Takt ein Befehl ausführen können wußte ich nicht. Aber im Grunde ist das ja dann kein echter 8051 im eigentlichen Sinne mehr. ;)
@Chris, "Aber im Grunde ist das ja dann kein echter 8051 im eigentlichen Sinne mehr. ;)" Warum nicht ? Alle 8051-Derivate haben den gleichen Befehlssatz und Du kannst sie alle mit dem gleichen Assembler oder Compiler programmieren. In der Regel sitzen auch die ersten 5 Interruptvektoren und die Standard-SFRs an der gleichen Stelle, d.h. sie sind binärkompatibel. Daher sind es echte 8051. Eine Ausnahme sind die 8051 mit über 64kB Adreßraum. Bis zu 64kB arbeiten sie wie echte 8051. Erst darüber hinaus muß man dann erweiterte Befehle benutzen. Peter
neee, nicht schon wieder, wer ist der beste, größte, schönste... lernt mal erst und meckert dann ;-))
Das seh ich ähnlich wie Joe. Es nervt schon extrem, wenn man im Forum einen thread bzgl 8051ern startet und die ersten 4 Antworten sind "Nimm doch nen AVR, weil...". 8051er sind halt einfach die am einfachsten zu verstehenden uC und ich kann sie jedem Anfänger nur ans Herz legen! Ich schlag mich seit Wochen zum ersten mal mit einem ATMEGA rum und es scheitert schon an der Bedieung von WINAVR...
warum 8051er?! Also ich muss sagen, das ich mit PIC's angefangen habe. RISC-Satz und schnelles vorwärtskommen ist schon toll! Aber, nun nach einigen Jahren wollte ich den CISC_Satz auch mal einstudieren. So bin ich auf den 89AT8952 gestossen; alt aber geil! Und ich habe Spass daran! Finde es auch toll das es ein 8051er Thema giebt, da kann ich rummstöbern und einiges lernen. Danke Leute!
Also ich habe Einblicke in 8051 im Studium gehabt. Habe diese, entgegen meiner Überzeugung für C, in Assembler programmieren müssen. Zuvor mit AVRs angefangen, diese aber nur in C programmiert. Der Befehlssatz von 8051 ist relativ einfach verständlich, bin recht gut damit zurecht gekommen. Als ich dann mal etwas für den AVR in Assembler programmieren wollte, bin ich irgendwie nicht auf Anhieb mit dem Befehlssatz des AVR zurecht gekommen, zumal dieser bis zu 130 Befehle hat. Dafür muß ich sagen, dass die AVRs sich sehr einfach in System programmieren lassen, aber 8051 die das können gibt es ja auch genug. Und an der Geschwindigkeit soll es nicht hängen, wenn ich da an die 8051er von Maxim denke, die ohne internen Teiler mit 33 MHz laufen, oder die von Silabs mit 100MHz(ok, der Flash kommt net hinterher, man sieht aber dass es weiterentwickelt wurde). MfG Barti
> , zumal dieser bis zu 130 Befehle hat. Ist das nicht Klasse? Damit kannst Du beispielsweise sofort testen, ob ein Wert nun größer oder kleiner als ein anderer ist. Das geht dann soagr wahlweise mit oder ohne Vorzeichen. Mich hat das fehlende N-Flag des 8051 jedenfalls hart getroffen. Bevor es ich da richtig loslegen konnte, war ich erstmal einige Zeit mit dem Schreiben von Makros beschäftigt. Für Bit-Schiebereien mag der '51 vielleicht ganz gut sein. Allerdings wage ich die Behauptung, daß diese mit zunehmender Programm-Größe prozentual weniger genutzt werden. Und da moderne Controller sowieso für alle erdenklichen Schnittstellen die Peripherie direkt in Hardware gegossen mitbringen, lässt diese Befehle auch nicht so sehr viel häufiger genutzt werden. Die Stack-Beschränkung auf weit weniger als 256 Byte gefällt mir auch irgendwie nicht so sehr, usw.. Nein, wenn es da nicht die knackigen Dingers von SiLabs geben würde, hätte ich den 8051 ganz sicher gemieden. Aber: Ich habe erst einige andere Kerne kennengelernt und bin von daher natürlich auch etwas verblendet.
8051 wurde Ende der 70er entwickelt, als jedes Gate teuer war und kein Mensch einen Microprozessor in C programmierte, erst recht keinen Microcontroller. Sondern meist Assembler, oder Intels Eigenzüchtung PLM/51. Zwar wurden ein paar Designfehler von Intels erstem Controller 8048 vermieden, aber der 8051 war eindeutig auf begrenzte Kapazität konzipiert. Daher rührt die Beschränkung auf 256 Byte leidlich einfach adressierbares RAM. Dass dieses Teil nun fast 3 Jahrzehnte überlebt hat, mit RAM-Kapazitäten von zig KB und ROMs mit 1MB, das war nie vorgesehen. Dafür hatte Intel später andere Controller rausgebracht, beispielsweise 8096. Aber kennt jemand den 8096? Es kam also wie üblich: Was absichtlich begrenzt konzipiert war (8051, 8086) überlebt alle Nachfolger, und seien sie noch so viel besser. Schönheitspreise gewinnen sie beide nicht, aber es gibt dennoch für beide sehr gute Gründe sie einzusetzen. Man kann es auch schlimmer kriegen: Immerhin hat 8051 lineare Adressräume, bis 64KB Code kein Banking und die immer gleiche Architektur von klein bis gross (dieser kleine Seitenhieb auf Microchip musste jetzt einfach sein ;-). Ich finde übrigens die Grösse einen Befehlssatzes nebensächlich. Die Übersichtlichkeit und Lesbarkeit wichtiger. Das ist noch so ein Ding, was mich an den PICs nervt: der "d" Operand eines Befehls. Eigentlich müssten das im Assembler jeweils zwei Befehle sein, wäre m.E. wesentlich lesbarer, aber dann kann man nicht mehr mit "nur 34 Befehle" angeben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.