Hallo! Habe von einem berufsmäßigen Programmierer von div. Controllern gehört, dass die 8051er-Architektur am aussterben sei... :-( Was sagt ihr dazu? Ciao!
Echt ? Kann ich mir nicht vorstellen, fast jeder Hersteller hat doch Controller mit 51-er Kern im Programm und von Abkündigungen hört man da auch nichts. Auch habe ich die Erfahrung gemacht, dass viele Kunden bei Neuentwicklungen explizit 8051er haben wollen. Von daher: es lebe die 8051er Architektur :) Thorsten
na ja, wenn es so ist, dann verstehe ich nichtm wieso Atmel mit der AT89-Serie nicht aufhört. Die herstellen immer neue Controller mit CAN, MP3, USB u s.w. als AT89. Und wenn manche professionelle Programmierer meinen, dass 8051-Architektur das beste überhaupt in der 8bit-Welt ist, dann sagt das doch was für mich. Und 8bit Controller sterben ganz bestimmt nicht. Was stirbt aus, wird von den meisten Herstellern nicht mehr produziert, so wie ich die Gesetze von dem Markt kenne. Manche 16bit Controller verlieren in der Leistung und ganz bestimmt im Verhältnis Preis/Leistung. So, schätze ich, war dein Freund zu pessimistisch.
MCS51 wird es vermutlich noch geben wenn wir alle in Rente sind. Das ist der Controller der als letztes ausstirbt. Das Dingen ist zwar schlecht im Vergleich zu fast allem anderen aber er hat eine immense Verbreitung. Olaf
Es kommen doch dauernd neue 8051er kompatible heraus . Habe vor kurzem einen ADuC841 ( Analog Devices ) bekommen . Single-cycle 20 MIPS 8052 core , High speed 420 kSPS , 8Ch 12-bit ADC , 2 * PWM , 2 * 12-bit DAC , bla bla ... Den 8051er bauen sie noch mindenstens ... ewig .
@Olaf, "Das Dingen ist zwar schlecht" Wenn man keine Ahnung davon hat, sollte man sowas nicht sagen. Und wer sowas sagt, hat keine Ahnung, wovon er spricht. Die Dinger sind für Steuerungsaufgaben optimiert und darin unschlagbar (hab mir schon mehrmals den Mund fusselig geredet, weshalb). Und kein einziger der etwa 40 verschiedenen Hersteller zeigt an, daß er sich aus dem 8051-er Geschäft zurückziehen will. Peter
Ja, ja, die sterben seit acht Jahren aus. Und das wird sich sicher auch noch die nächsten 25 Jahre hinziehen.... Dafür ist er einfach zu weit verbreitet. Und - ehrlich gesagt - solange es µCs gibt, die deutlich umständlicher zu programmieren sind (PIC würg...) sehe ich auch keinen Grund, warum er vom Markt verschwinden sollte. Was mich allerdings mächtig stört: Zumindest in der Atmel-Serie gibt es keine ´51er, die eine vernünftige RESET-Schaltung drin haben. So muß man zu den 89C2051, die ja sonst eigentlich nichts außer einem Quarz brauchen, noch einen teuren Resetcontroller verbauen. Oder kennt von Euch jemand eine Version vom ´51er die ähnlich preiswert ist und sowas drin hat? Ich werde ihn jedoch weiterhin gerne einsetzen, auch wenn ich mich gerade beruflich mit dem PIC rumschlagen muß und mich privat in den AVR einarbeite. Es lebe der 8051 !!!
(PIC würg) Bitte keine Verunglimpfungen! Wer sowas sagt hat keine Ahnung. Gerade wer mit 8051 und konsorten arbeitet sollte sowas nicht sagen. So wie die 8051er die Urgroßväter einer bestimmten uC-Familie sind, so sind dies aucg die PIC's. Microchip hat diese Art von uC erfunden. ATmel, National usw haben die Dinger bloß nachgebaut. Einen modernen Atmel mit nem ollen PIC16C-irgendwas zu vergleichen ist unfair. Die modernen PIC18Fxxx halten locker mit Atmel-Dingens mit. So jetzt hab ich das aber mal gesagt!!! Gerhard
Das Preis Leistungsverhältnis ist auf jedenfall beim 8051 super. Für kleine Sachen den AT89C2051 für 1,2 (vergleichbarer AVR: AT90S1200 für 2, OK ist in etwa gleich, aber wenn ich nen UART brauch bin ich schon bei 2,4...) Für größere den AT89S52 (ist bei Reichelt billiger als der S51) für 1,6. Ein AVR mit gleich vielen IOs kostet schon 5 aufwärts. Für einfache Sachen wie Steuerungen usw. bei denen es nicht aus viel CPU Leistung ankommt, sind 8051 überlegen. Der größte Vorteil: Die Bit Funktionen und die quasi Bi-direktionalen IO Port. Daten senden und empfangen, ohne die Richtung umschalten zu müssen. So lande ich am Ende oft bei 2 uC in einer Schaltung: Ein AVR für einfache, schnelle Aufgaben (z.B. DDS Funktionsgenerator), gesteuert von einem 8051 der z.B. LED Anzeigen multiplext, Taster abfragt und die verarbeiteten Daten an den AVR sendet. Und wenn ich wirklich mal CPU Leistung brauche, dann sind die AVRs zu langsam (max. 16MHz). Dafür gibts dann die richtig schnellen 8051 mit 100MIPs, 24bit ADC usw.
@Markus_8051 "keine ´51er, die eine vernünftige RESET-Schaltung drin haben" geplant isser, siehe Anhang. Ansonsten mal bei den Philips LPC nachsehen. Die sind allerdings nur 3,3V fest. Peter
@Peter: >"Das Dingen ist zwar schlecht" >Wenn man keine Ahnung davon hat, sollte man sowas nicht sagen. >Und wer sowas sagt, hat keine Ahnung, wovon er spricht. Woher kommt Dein Wissen, dass Olaf keine Ahnung hat? Es gibt genügend Eigenheiten des 8051, wegen denen man sich mit Grausen abwenden kann (z.B. Datenptr., Zugriff auf ROM-Tabellen, ...). Und es gibt genügend Eigenheiten warum man ihn andererseits lieben kann (z.B. Ansprechen der Portpins). Je nachdem, welche Appl. Olaf programmiert, kann er zur einen oder anderen Gruppe gehören - und trotzdem viel Ahnung haben. Stefan
@Stefan, die Ahnung erschließt sich nicht nur durch bloßes Ansehen des Befehlssatzes, sondern man muß ihn auch anwenden. "(z.B. Datenptr., Zugriff auf ROM-Tabellen, ...)" Genau das meinte ich damit, das sind nämlich genau die Instruktionen, die beim 8051 besonders leistungsfähig sind. Z.B. ein "DJNZ @R0" erschlägt 4 AVR-Befehle. Man muß eben bloß wissen, daß der 8051 insgesamt 9 Datenpointer hat (@R0, @R1 der 4 Registerbänke und @DPTR). Und um z.B. in einem Timerinterrupt zur Multiplexausgabe eine Zahl in den 7-Segment Code umzuwandeln reicht ein simples "MOVC A,@A+PC" ohne umständliche 16-Bit Addition und haufenweises Register pushen, laden und poppen. Soviel zu Datenpointer und Tabellen. Das Grausen kenne ich dagegen von Tabellen mit dem AVR. Ich habe dann einen kleinen Trick gemacht, indem ich Tabellen immer an Adressen 0x**00 oder 0x**80 lege, damit spart man dann 3 Register laden und die 16 Bit Addition ein (5 Befehle). Erkauft man sich aber durch eventuell ungenutzten Platz im Flash. Ich will natürlich keinem einen Vorwurf machen, daß er nicht soviel Ahnung vom 8051 hat (nur darum ging es ja). Ich habe z.B. auch keine Ahnung von C++, warum es besser sein soll als C. Man kann eben nicht alles wissen. Peter
@Peter "Ansonsten mal bei den Philips LPC nachsehen. Die sind allerdings nur 3,3V fest." Ich kann dir nur Recht geben. Die LPC-Reihe sieht recht gut aus. Eine Menge Funktionen (Reset, Clock, Brownout-Detection, Programmierung via RS232, etc.) im Chip. Mit der Versorgungsspannung habe ich ebenfalls keine Probleme. Wenn ich mich recht entsinne sind die I/O-Ports 5V-tolerant. Das einzige Problem ist die Beschaffung. Tschau Krischan
Ich weiß ja nicht von welchen LPC ihr sprecht, aber bei Reichelt gibt es einige Philips LPC 8051... und die sind für 2-6V ausgelegt.
@Peter: >Man muß eben bloß wissen, daß der 8051 insgesamt 9 Datenpointer hat >(@R0, @R1 der 4 Registerbänke und @DPTR). Das mag stimmen, solange man Mini-Applikationen hat. Die Zeiten, wo meine Programme mit 200 Byte RAM auskommen, sind lange vorbei. Mit Datenpointer meinte ich aber eben diesen: "DPTR". Das erweiterte RAM beim 8051 anzusprechen ist einfach nur: häßlich. Der Knackpunkt ist "+PC". Einen Wert aus einer Tabelle bekommst Du nur in Relation zum Programmpointer, das ist für viele Appl. nicht machbar. Und Du kannst nur auf Tabellengrößen bis 256 Byte zugreifen (ohne große Umwege). Kleines Bsp.: Zeichenausgabe auf Graphik-LCD, Aufarbeiten der Graphik im erweiterten RAM. So, jetzt aber zu dem, was ich eigendlich sagen wollte: >>"Das Dingen ist zwar schlecht" >Wenn man keine Ahnung davon hat, sollte man sowas nicht sagen. >Und wer sowas sagt, hat keine Ahnung, wovon er spricht. Es gibt gute Gründe, den 8051 nicht so toll zu finden. Jemand deswegen seine Ahnung abzusprechen, ist meiner Meinung nach schlechter Stil. Wo sowas hinführt, kannst Du jeden Tag im Heise-Forum anschauen. Versteh mich nicht falsch, ich finde viele Deiner Beiträge sehr interessant und nützlich. Ein bischen fehlt aber ab und an die Toleranz anderen Lösungen oder Auffassungen gegenüber. Viele Grüße, Stefan
@Stefan, ich hab da nur aus eigener Erfahrung gesprochen. Ich fand ihn nämlich zu Anfang auch nicht so doll. Erst, wenn man wirklich oft damit programmiert, merkt man auch, wie clever er konstruiert ist, eben auf Steuerungsaufgaben optimiert. Und die Zeichenausgabe auf ein Display ist auch keine Sache, wo High Speed nötig ist, schließlich muß das ein Mensch ja auch ablesen können. Da kann er also ruhig gemütlich zu Werke gehen. Mir gefällt gerade diese Unterteilung optimal: schnelles internes SRAM, um in Echtzeit zu steuern und langsames großes XRAM oder Tabellen, um den langsamen Menschen zu bedienen. Übrigends habe ich oben einen neuen Befehl kreiert, "DJNZ" geht nicht indirekt nur direkt. Indirekt geht z.B. "DEC @R0" und "CJNE @R0, #0". Ist halt schon lange her, daß ich fast nur in C programmiere. Peter
Hi AVR, PIC und 8051 'er Fans, könnt Ihr 2-xx (wohl ca. unter 10) "Streithäne" nicht mal gemeininsam im wiki einen schönen Artikel/Tabelle mit den Vor- und Nachteilen der von Euch gliebten/gehaßten MCs machen, die Ihr alle "unterschreiben" könnt? Gibt es schon, aber immer z.B. von einem AVR oder Pic oder xx Typen, der wieder die Details des anderen MCs nicht kennt bzw. gar nicht richtig bewerten kann. Das bleibt natürlich immer subjektiv und unvollständig, aber ich lerne sehr viel aus diesen Diskussionen, wann welcher MC gut ist und wann nicht. So ein Artikel wäre echt prima, wenn er nicht nur von einem kommt. "Streitet" bitte weiter, so wird die Auswahl einfacher, aber bleibt locker dabei. gg Quark P.S. sorry, rumsülzen macht einfach spaß ;-)
@Peter: >Mir gefällt gerade diese Unterteilung optimal: >schnelles internes SRAM, um in Echtzeit zu steuern und langsames großes >XRAM oder Tabellen, um den langsamen Menschen zu bedienen. ;-) Mir gings genau umgekehrt: Mich hat es immer geärgert, dass die kleinen Programme, die nur ein paar Bits schubsen mussten, wahnsinnig schnell liefen, und wenn das Programm größer wurde, 16-Bit-Adressierung notwendig wurde etc., alles viel langsamer und komplizierter wurde. >Übrigends habe ich oben einen neuen Befehl kreiert, "DJNZ" geht nicht >indirekt nur direkt. Indirekt geht z.B. "DEC @R0" und "CJNE @R0, >#0". Wäre mir jetzt nicht aufgefallen :-) Ist halt schon eine Weile her: Ich habe gerade mal nachgeschaut: die letzten 8051-Reste (12-Kanal-Lichtendstufe, lief auf dem 80517) bei mir auf der Platte sind von 92 ... Für die Appl. war er übrigens ideal, weil der UART die 250kbaud für DMX konnte. Viele Grüße, Stefan
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.