Microcontroller-Experimentierboard für Derivate der 8051
Transcription
Microcontroller-Experimentierboard für Derivate der 8051
Microcontroller-Experimentierboard für Derivate der 8051-Familie Von: Marek Niemiec, DB1BMN Vorläufige Mitteilung, April 2004 Einleitung: Microcontrollergesteuerte Geräte sind aus der heutigen Zeit nicht mehr wegzudenken. Durch geeignete Bausteine verschiedener Hersteller ist es heute aber auch dem Hobby-Bastler mit relativ geringem Aufwand möglich, selbst Microcontroller für vielfältige Aufgaben einzusetzen. Projekte, die vor einigen Jahren unmachbar schienen, sind heute problemlos realisierbar. Zum Einstieg in die Microcontroller-Programmierung soll das nachfolgende Experimentierboard behilflich sein, das gleichzeitig die Programmierung als auch die Erprobung des Projekts ermöglicht. Als Microcontroller-Typ wurde die MCS51Familie gewählt, da hierin ein gewisser Industriestandard besteht, die Controller seit 25 Jahren unverändert hergestellt werden, eine Vielzahl von verschiedenen spezialisierten Typen gibt und auch Literatur und Programmiersoftware in großer Zahl vorhanden ist. Vorwort: Diese Beschreibung soll nicht als Einstiegskurs zur MicrocontrollerProgrammierung verstanden werden. Hierfür gibt es zahlreiche, sowohl nationale als auch internationale Literatur. Auch gibt es im Internet sehr gute Tutorials zu diesem Thema. Als Begleitbuch sei jedoch [1] besonders empfohlen, das der Autor auch stets als Handbuch bei der Controllerprogrammierung benutzt. Doch warum nun noch ein weiteres Experimentierboard für Microcontroller? – Nun angeregt wurde ich durch die Beschreibung eines solchen in [2]. Es bietet die nötigste Peripherie, um die Arbeitsweise des Controllers anzuzeigen, jedoch ein Punkt ist besonders unbefriedigend: Die beschriebene Platine lässt leider keine Programmierung des Controllers zu. Es ist nach wie vor ein zusätzliches Programmiergerät erforderlich. Diese Tatsache mag jedoch gerade Neueinsteiger abschrecken, sich mit Mikrocontrollern zu beschäftigen. Aus diesem Grunde, wurde das nachfolgende Microcontroller-Board entwickelt. Es bietet den Vorteil, den Microcontroller, der von nun an nur noch „µC“ genannt wird, sowohl zu programmieren, im Weiteren nur noch „brennen“ genannt, als auch gemäß seiner Programmierung zu betreiben, im nachfolgenden nur noch „runnen“ genannt. Spezifikation: Das Board weist die folgenden Eigenschaften auf: - Spannungsversorgung +5 VDC für den µC und die übrige Peripherie. - Spannungsversorgung aus einer beliebigen Quelle bis 15 VAC. - Resetschaltung für den µC. - Oszillatorschaltung für den µC. - 32 Leuchtdioden zur Anzeige der Portzustände (L-sensitive), Gruppen zu je 8 LEDs abschaltbar über DIP-Schalter. - 4 Mini-Taster, entprellt, als Eingabeeinheit. - Alle Ports, sowie die Speicherzugriffspins sind über eine Buchsenleiste herausgeführt. - Die Buchsenleiste erlaubt es, beliebige Erweiterungsmodule anzuschließen. - RS232-Schnittstelle mit Pegelwandler. - Schalter zur Programmierung über RS232. - 10-polige Stiftleiste zum Brennen mit dem Pony-Prog-Adapter. - 10-polige Stiftleiste zum Brennen mit dem Atmel ISP-Adapter. - Brennen von µC mittels der Software PonyProg [3]. - Brennen von µC mittels der Software FLIP [4]. - Brennen von µC mittels der Software Flash Magic [5]. - Brennen von µC mittels der Software AT89ISP [6]. - Brennen der µC über RS232 mittels der obigen Programme (nur ISP-fähige Controller, nicht mittels AT89ISP). - Runnen aller 8051-kompatiblen µC mit integriertem RAM und ROM im 40poligen DIP-Gehäuse. - Runnen und Brennen (ISP) von Controllern in anderen Gehäusen mittels geeigneter Adapter möglich. - Runnen der 803x-Controller mittels Zusatzplatine für RAM/ROM/Adressdecoder möglich. Konkret können folgende µC gebrannt werden (Angaben der Hersteller, nicht erprobt): Software PonyProg FLIP Flash Magic AT89ISP ISP-µC AT89S8252; AT89S53 AT89C5122 , AT89C5131 , AT89C5132 , AT89C51CC03 , AT89C51ED2 , AT89C51IC2 , AT89C51ID2 , AT89C51RB2 , AT89C51RC2 , AT89C51RD2 , AT89C51SND1 , T85C5121 , T89C5115 , T89C5121 , T89C51AC2 , T89C51CC01 , T89C51CC02 , T89C51RB2 , T89C51RC2 , T89C51RD2 P89C51RB+; P89C51RC+; P89C51RD+; P89C51RB2Hxx; P89C51RC2Hxx; P89C51RD2Hxx; P89C660; P89C662; P89C664; P89C668; P89C669 (MX core); PXAG39; PXAG49; P89C51RA2xx; P89C51RB2xx; P89C51RC2xx; P89C51RD2xx; P89C60X2; P89C61X2;P89LV51RD2; P89V51RD2; P89LPC901 (requires ICP to ISP bridge); P89LPC902 (requires ICP to ISP bridge); P89LPC903 (requires ICP to ISP bridge); P89LPC906 (requires ICP to ISP bridge); P89LPC907 (requires ICP to ISP bridge); P89LPC908 (requires ICP to ISP bridge); P89LPC912 (requires ICP to ISP bridge); P89LPC913 (requires ICP to ISP bridge); P89LPC914 (requires ICP to ISP bridge); P89LPC920; P89LPC921; P89LPC922; P89LPC930; P89LPC931; P89LPC932; P89LPC933; P89LPC934; P89LPC935; AT89LS51 , AT89LS52 , AT89LS53 , AT89LS8252 , AT89S51 , AT89S52 , AT89S53 , AT89S8252 Tab. 1: Von den verschiedenen Brennprogrammen unterstützte µC Folgende µC wurden bereits mit dem Board gebrannt und erprobt: z.Zt. keine. Software PonyProg FLIP Flash Magic AT89ISP Tab. 2: Mit dem Board gebrannte µC Erprobte ISP-µC Schaltung: Die Ansprüche an so ein Board sind durch seine Vielfältigkeit sehr hoch, darum erfordert das Schaltungsdesign besondere Sorgfalt und Überlegung. Das komplette Schaltbild ist im Anhang wiedergeben. Die einzelnen Schaltungsteile werden im Nachfolgenden besprochen. Die Stromversorgung: Bild 1: Schaltbild der Stromversorgung Das Schaltbild der Stromversorgung ist im Bild 1 wiedergegeben. Es ist eine Typische Applikationsschaltung des 7805-Spannungsreglers. Eine Gleich- oder Wechselspannung von 8 bis 15 V wird an der Klemme KL1 eingespeist. Der Gleichrichter sorgt stets für die richtige Polarität. Der Spannungsregler stellt die benötigten 5 VDC zur Verfügung. Die Spannung wird über eine Ringleitung auf der Platine allen Schaltungsteilen zugeführt, dazu gehören unter Anderem der µC, der Pegelwandler, sowie die LEDs. Zur Betriebsspannungskontrolle ist eine weitere LED vorhanden. Außerdem wird die Betriebspannung auch an eine zweipolige Buchsenleiste gelegt und kann so von weiteren Zusatzmodulen abgegriffen werden. Da moderne µC sehr robust sind, und auch der Spannungsregler einen integrierten Überlastschutz hat, wurden keine weiteren Maßnahmen zur Absicherung der Stromversorgung getroffen. Die Oszillatorschaltung: Bild 2: Oszillatorbeschaltung Damit der µC ein Programm ausführen kann, muss er getaktet werden. Der eigentliche Oszillator ist auch bereits in den µC integriert. Es bedarf nur noch weniger externer Bauelemente. Dazu zählt der Quarz und die beiden keramischen Kondensatoren, wie in Bild 2 dargestellt. Vorzugsweise kommt ein Quarz mit einer Grundfrequenz von 12 MHz zum Einsatz; bei vielen µC wird der Maschinentakt durch 12-fache Teilung aus der Quarzfrequenz abgeleitet. Damit ergibt sich ein Maschinentakt von 1 MHz. Auch bei der ISP- Programmierung hat die Oszillatorschaltung eine wichtige Funktion, da hieraus unter anderem der Takt zum Flaschen des ROMs generiert wird als auch die Baudrate für die serielle Kommunikation. Für ein erfolgreiches Brennen muss die Quarzfrequenz dem Brennprogramm bekannt sein und ist vom User richtig anzugeben. Die Resetschaltung: Bild 3: Resetschaltung Damit der µC nach Einschalten der Betriebsspannung sein Programm korrekt ausführt, müssen bestimmte, definierte Zustände in der Speicherorganisation hergestellt werden. Dazu dient der Einschaltreset. Er wird durch die RC-Kombination im Bild 3 erzeugt, in der Art, dass nach Anlegen der Betriebsspannung, der Reset-Pin des µC (Pin 9) für eine bestimmte Zeit (meist zwei Maschinenzyklen) an die Betriebsspannung gelegt wird. Im Betrieb des µC wird der Reset-Pin nach Masse gezogen und gehalten. Zur Auslösung eines manuellen Resets dient der Taster, damit kann das Programm abgebrochen und von neuem begonnen werden. Der Reset-Pin hat auch eine wichtige Funktion bei einigen Arten der ISP-Programmierung. Dies ist jedoch nicht Gegenstand dieses Abschnitts und wird an gesonderter Stelle behandelt. Das Bussystem: Bild 4: Bussystem des µC Bild 5: Herausführung des Bussystems Sämtliche Ports P0.0 bis P3.7 sind an ein Bussystem angekoppelt (Bild 4). Ferner sind auch die Speicherzugriffspins EA, ALE und PSEN einbezogen. Das Bussystem ist an einer 32poligen Buchsenleiste in fortlaufender Nummerierung herausgeführt (Bild 5). Ebenfalls sind die Speicherzugriffspins an einer 3-poligen Buchse herausgeführt. Damit kann mit einer Erweiterungskarte, die einfach auf das Experimentierboard gesteckt wird, Anschluss zu allen erforderlichen Signalen hergestellt werden. Eine besondere Herausforderung war es, den Port 2 beim erstellen des Layouts zu entflechten, da dessen Zählweise entgegen der der übrigen Ports ist. Der Pin EA ist standardmäßig gegen Betriebsspannung gezogen und führt zu einem Zugriff auf das interne ROM des µC. Beim Anschluss an Masse erfolgt ein Zugriff auf den externen Programmspeicher, der sich jedoch auf einer geeigneten Erweiterungskarte befinden muss. Die Peripherie: Bild 6: Ausgabeeinheit Bild 7: Eingabeeinheit Um das Geschehen auf den Ports und den korrekten Programmablauf zu verfolge sind alle Ports über das Bussystem mit einer Eingabeeinheit verbunden. Es handelt sich um insgesamt 32 Leuchtdioden, die in Gruppen zu je 8 LEDs zusammengefasst sind (Bild 6). Es sind LowCurrent-LEDs, die eine Stromaufnahme von nur ca. 10% der gewöhnlichen aufweisen. Je eine Gruppe besitzt ein Widerstandsnetzwerk als Vorwiderstände und kann über einen DIPSchalter abgeschaltet werden. Die LEDs sind „low-sensitive“, d.h. sie signalisieren einen LOW-Pegel am entsprechenden Port. Wird eine Erweiterungskarte benutzt, empfiehlt es sich, die LEDs abzuschalten um eine Überlastung des µC und Fehlfunktionen des Programms zu vermeiden. Zur Eingabe von Informationen in den µC dienen vier Taster (Bild 7). Diese sind mit Kondensatoren entprellt und über das Bussystem den Ports P2.0 bist P2.3 zugeführt. Die Taster schalten nach Masse, der Pegel am entsprechenden Port muss also auf „HIGH“ gelegt werden. Bei einer Tasterbetätigung kommt es zu einem Aufleuchten der jeweiligen LED, sofern die Gruppe für den Port 2 nicht abgeschaltet wurde. Die serielle Schnittstelle: Bild 8: Serielle Schnittstelle Zur seriellen Kommunikation ist eine Schnittstelle nach RS232-Standard vorhanden. Es handelt sich um den weit bewährten Pegelwandler MAX232. Dieser hat einen integrierten DC-DC-Wandler um die Spannungen des RS232-Pegels zu erzeugen. Die Kommunikation zwischen µC und MAX232 erfolgt mit TTL-Pegel über die Ports P3.1 und P3.2. Zur Verbindung mit dem PC steht eine 9-polige SUB-D Buchse zur Verfügung (Bild 8). Die Verbindung erfolgt über eine serielle 1:1 Verbindungsleitung (nicht crossover!). Die Programmiermöglichkeiten: Bild 9: Programmierinterface über die serielle Schnittstelle Bild 10: Programmierinterface für den PonyProg-Adapter Bild 11: Programmierinterface für das Atmel ISP-Cable Zum Brennen von ISP-fähigen µC bietet das Board insgesamt vier verschiedene Möglichkeiten. Zum einen mit dem sehr vielseitigen Brennprogramm PonyProg [3] und einem entsprechenden Adapter-Kabel, dem so genannten Base-Board [7]. Der 10-polige Stecker wird einfach mit der Stiftleiste K8 auf dem µC-Board verbunden (Bild 10) und alle anderen Einstellungen gehen von der Software aus. K8 stellt alle nötigen Verbindungen zur Betriebsspannung und Masse her, sowie zu den fürs Brennen nötigen Signalen MISO, MOSI, SCK und RST. Ähnlich bequem geschieht das Brennen mit dem Programm AT89ISP [6] und dem Adapterkabel AT89ISP Programmer Cable [8]. Dieses Kabel wird auf die 10-polige Stiftleise K11 aufgesteckt (Bild 11). Die restliche Programmierung geschieht über die Software. Eine Besonderheit dieses Boards ist es jedoch, auch ohne irgendwelche Adapter µC zu brennen. Die notwendige Schaltung hierfür stützt sich auf dem seriellen Port und ist in Bild 9 dargestellt. Die ISP-Programmierung basiert darauf, dass im Reset-Zustand bestimmte Ports mit den entsprechenden Befehls-Sequenzen geladen werden. Das Brennen über die serielle Schnittstelle ist mit den Programmen PonyProg, Flip und Flash Magic möglich. Zur auswahl des jeweiligen Brennprogramms dient der Schalter S1. Zur Auswahl zwischen Run-Betrieb und Brennen dient der Schalter S2. Während PonyProg über MISO, MOSI, SCK und RST brennt, so geschieht das Brennen mittels Flip und Flash Magic „echt“ seriell also über RXD/TXD. Beine Programme erhalten also ein und die selbe Schalterstellung, währen die andere PonyProg vorbehalten bleibt. Nach dem nun also die Schaltungsgrundlagen des Boards erwähnt worden waren, kann es mit dem Aufbau losgehen. Der Schaltplan als auch das Leiterplatten-Layout wurden mit der leistungsfähigen Elektronik-CAD-Software Target erstellt [9]. Aufbau des Boards: Herstellung der Platine: Das Verfahren zur Platinenherstellung sollte wohl einem HobbyBastler bekannt sein; es werden darum nur die einzelnen Schritte stichwortartig erwähnt. Layout ausdrucken: Das Platinenlayout ist im Anhang beigefügt, es weist die richtige Größe auf, da es aus dem Target-Programm als Post-Script exportiert wurde. Beim Ausdruck ist darauf zu achten, dass keine Seitenanpassung vorgenommen wird, das Layout also mit 100%igem Maßstab ausgedruckt wird. Platine belichten: Beim Belichten ist die Folie so auf die mit Photolack beschichtete Platine zu legen, dass sich Drucktinte und Photolack direkt einander berühren. Die Schrift auf dem Layout muss also lesbar sein (nicht spiegelverkehrt!). Entwickeln: Die belichtete Platine ist gemäß dem üblichen Verfahren zu entwickeln. Ätzen: Die entwickelte Platine ist gemäß dem üblichen Verfahren zu ätzen. Bohren: Die geätzte Platine ist nun zu Bohren. Dabei werden alle Bohrungen, die der Aufnahme von Bauteilanschlüssen dienen, zuerst mit 0,5 mm vorgebohrt. Bei Bedarf können sie dann auf 0,8 oder 1 mm aufgeweitet werden. Die Bohrungen, die der Aufnahe von Befestigungsschrauben dienen, können gleich mit 3 mm gebohrt werden. Über die Lage dieser Bohrungen gibt der nachfolgenden Bestückungsplan Auskunft (Bild 12). Bestücken der Platine: Beim Bestücken der Platine ist die folgende Vorgehensweise zu befolgen. Nachdem die Bauelemente eines Bestückungsdurchgangs alle platziert sind, können sie verlötet und die überstehenden Anschlüsse mit einem Seitenschneider abgeschnitten werden, so dass keine Beschädigung an der Lötstelle oder der Leiterbahn stattfindet (scharfen Seitenschneider verwenden). Zum Verlöten eignet sich zweckmäßigerweise 0,7 mm Lötdraht und ein temperaturgeregelter 30 bis 48 Watt-Lötkolben mit schlanker Spitze. Bewährt hat sich beim Autor das Lötzinn LC 60SW26 (S-Sn60Pb40) der Firma Cynel [10], es kann auch noch bei hohen Temperaturen sehr gut verarbeitet werden und ermöglich so eine rasche Arbeitsweise. Bild 12: Bestückungsplan der Platine Der Bestückungsplan ist im Bild 12 dargestellt, die Bauteilliste in Tabelle 3. Widerstände: R1 R2; R3; R7 R5 R6 RN6; RN9; RN10; RN11 Kondensatoren: C1; C2 C10; C9 C4; C11 C13; C14; C15; C16; C17 C3 C5; C6 C7; C8 Halbleiter: D1; D2 D56 - D59; D60 D87 D6 GL1 IC1 IC2 IC3 T1 8,2K 4,7K 150 Ohm 6,8K Widerstandsnetzwerk, 9-Pin, 1,5 kOhm 33 pF 0,01µF 220 µF 0,1 µF 10 µF 22 µF 1 µF Z-Diode 5,1 V LED, 3 mm, Low-current, rot LED, 3 mm, klar, blau B280C1000_DIL AT89C52 MAX232 7805CT BC547C Sonstige: S10; S11 S3 S4-S8 GEH1 Kippschalter, 2-polig, gewinklet, print DIL-4-Codierschalter Mini-Impuls-Taster Kühlkörper 13 K1 K10 K11 K2 - K5 K6 K8 KL1 SUB-D-9POL-BU-LI-K1X3 Buchsenleiste K2X5 Stiftleiste K1X8 Buchsenleiste K1X2 Buchsenleiste K2X5 Stiftleiste KLEMME 2POL Q1 BR1 – BR41 12MHZ Grundton 0-Ohm-Widerstände IC-Fassung: 8; 16; 40-polig Wärmeleitpaste; Isolierbuchse 3 mm; Glimmerscheibe TO220; Schraube M3*16 mm, Mutter M3. Gewindebolzen M3*10 mm. 12 Stück Tabelle 3: Bauteilliste Vorgehensweise beim Bestücken: - Drahtbrücke unter dem Controller setzen: - IC-Fassungen einlöten, DIL8 für den Codierschalter: - Dioden D1; D2 einlöten: - Brücken BR1 bis BR41 als 0-Ohm-Widerstände setzen (rot markiert!): Widerstände R1 – R3 und R5 bis R7 einlöten (grün markiert!): - Brückengleichrichter GL 1 einlöten. - Taster S4 –S8 einlöten: - Kondensatoren C1; C2 einlöten. Kondensatoren C9; C10 einlöten. Kondensatoren C13 – C17 einlöten. Kondensatoren C3; C5 – C8 einlöten. Kondensatoren C4; C11 einlöten. - Klemmen K8; K11 einlöten. Klemme KL1 einlöten. Buchsenleisten einlöten. Transistor T1 einlöten. - - Leuchtdioden einlöten (33 Stück, auf gleichmäßigen Abstand achten!) (rot markiert!). Widerstandsnetzwerke einlöten (grün markiert!). - Quarz einlöten. SUB-D-Buchse (rot markiert!) einsetzen, festschrauben (grün markiert) und anlöten. Kippschalter einlöten. - Codierschalter in Fassung setzen. - Spannungsregler montieren: Anschlüsse abwinkeln und durch Kühlkörper führen; Glimmerscheibe dünn mit Wärmeleitpaste bestreichen und zwischen legen und mit Isolierbuchse und M3-Schraube und Mutter an der Platine festschrauben. Anschlüsse verlöten. - Sichtprüfung auf kalte Lötstellen und Lötzinnspritzer. - Funktionstest: Betriebsspannung anlegen. Stromaufnahme messen. Kontroll-LED muss leuchten. Betriebsspannung in den IC-Fassungen messen, muss 5 V betragen! Taster betätigen, LEDs müssen aufleuchten. Betriebsspannung wegnehmen. - ICs einsetzen. Schaltung ist bereit. Ein bereits gebranntes Programm wird nach Einschalten ausgeführt. Zum Brennen: Nachdem nun also der ganze Hardwareaufwand erledigt ist, sollen noch einige Hinweise zum Brennen und der eigentlichen Programmierung folgen. Hat man eine bereits assemblierte *.hex oder *.bin-Datei, also ein maschinenausführbares Programm, so muss diese in den µC übertragen werden. Je nach dem für welchen Controllertyp entschieden hat, kommt als Brennprogramm [3] bis [6] in Frage. Zur Programmeinrichtung und Bedienung ist die jeweilige Online-Hilfe heranzuziehen. Das Board ist über ein serielles 1:1 Kabel mit dem PC zu verbinden und mit S1 ist das jeweilige Brennprogramm auszuwählen. Mit S2 wird der µC in den Programmiermodus geschaltet und das Brennen kann mittels der Software gestartet werden. Geschieht das Brennen über eine der 10-poligen Buchsen, so ist die Stellung der Schalter belanglos, S2 sollte jedoch in Stellung „Run“ sein um Fehlfunktionen während des Brennens zu vermeiden. Zum Programmieren: Bisher wurde unter Programmierung das Übertragen eines maschinenlesbaren Befehlssatzes in den ROM des µC verstanden. Hierfür wurde statt dessen auch „Brennen“ gesagt, in Anlehnung an das historische Brennen von EPROMS oder gar OTP-Roms. Unter Programmierung soll nun das eigentliche Erstellen eines Programmlistings verstanden werden. Also das schreiben eines Quelltextes, der sich statt der eigentlichen Maschinenbefehle so genannter Mnemonics bedient, also Abkürzungen für die eigentliche Operation. Aufgabe der Programme [3] bis [6] ist es lediglich, ein bereits assembliertes Programm in den ROM des µC zu übertragen. Zum Erstellen von Assemblerprogrammen bedarf es weiterer Software, zweckmäßigerweise eines Editors und eines Assemblers. In heutigen Zeiten verwendet man komplette Entwicklungsumgebungen, die Editor, Debugger und Assembler in einem leistungsfähigen Paket vereinen. Als Beispiele solcher Entwicklungsumgebungen seien der AS51 V4 genannt, der einen sehr bequemen Editor besitzt sowie weitere umfangreiche Zusatztools. Er ist über [11] zu beziehen, sowie auch als CD-Beilage zu [12] und neueren Auflagen von [1]. Zu erwähnen seien auch die Vorgängerversionen zu [11], nämlich die Version 2 des AS51, die ebenfalls über [12] zu beziehen ist. Ein Bugfix ist über [13] zu beziehen. Ein leistungsfähiger Simulator/Debugger ist der MCS51-Simulator, zu beziehen über [14]. Die beschriebenen Software-Pakete sind für private Nutzung kostenlos, eine allgemeine Übersicht und weitere Infos gibt es unter [15]. Eine weitere sehr leistungsfähige Entwicklungsumgebung ist das Batronix Prog-Studio, es bietet einen bequemen Editor mit Sythax-Highlighting, Debugger und Assembler sowie die Möglichkeit, EPROMS und µC mittels eigener Programmiergeräte zu brennen. Eine DemoVersion ist über [16] zu beziehen. Eine weitere, sehr umfangreiche IDE ist das Riegel Reads51. Es ist über [17] zu beziehen. Infos über die einzelnen Controllertypen liefern die Datenblätter der jeweiligen Hersteller. Als größter Anbieter von µC sei stellvertretend Atmel genannt [18] [19]. Ein Forum zur allgemeinen Elektronik und Fragen über Microcontroller ist unter [20] zu erreichen. Support speziell zu diesem Experimentierboard bietet der Autor unter [21]. Literatur- und Quellenverzeichnis: [1] Roth, Andreas, Das Mikrocontroller Kochbuch, IWT Verlag, Bonn 1989 – 1997 [2] Schoch, Dieter, DF1TY, Einfache Experimente durch passende Platine, CQ DL 3/2004, S. 156 ff., DARC-Verlag [3] http://www.lancos.com/prog.html [4] http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2767 [5] http://www.esacademy.com/software/flashmagic/ [6] http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2877 [7] http://www.lancos.com/siprogsch.html [8] http://www.atmel.com/dyn/resources/prod_documents/doc3310.pdf [9] http://www.ibfriedrich.com/ [10] http://www.cynel.com.pl/en_index.html [11] http://www.controllertechnik.de/software.html [12] Roth, Andreas, Das Mikrocontroller-Applikations-Kochbuch, mitp-Verlag, Bonn 1998 – 2002 [13] http://www.controllertechnik.de/software/assemblerv23.html [14] http://www.controllertechnik.de/software/simulatorv2.html [15] http://www.controllertechnik.de/index.html [16] http://www.batronix.com/elektronik/downloads/assembler.shtml [17] http://www.rigelcorp.com/8051soft.htm [18] http://www.atmel.com/ [19] http://www.atmel.com/products/8051/ [20] http://www.progforum.com/ [21] http://hamradioboard.de/thread.php?threadid=513&boardid=10&sid= Haftungsausschluss: Der Autor übernimmt keine Gewähr für die Funktion des beschriebenen Projekts oder Teilen davon. Insbesondere übernimmt er keinerlei Haftung für eventuelle, aus dem Gebrauch resultierende Folgeschäden. Copyright © Dieses Dokument ist geistiges Eigentum des Autors. Sämtliche Markennamen und Handelsbezeichnungen sind Eigentum ihrer jeweiligen Inhaber. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutz werden dürften. MCS-51 ist Handelsname der Firma Intel Corporation. Alle übrigen Rechte verbleiben beim Autor. MÖGE ES DER VERBREITUNG VON MICROCONTROLLERN DIENEN