Der Chip

Der PIC 16C84 (inzwischen PIC 16F84) der Firma Microchip ist einer der populärsten Controller. Der Preis ist auf 10-12 DM zurückgegangen, einschlägige Elektronikzeitschriften bringen Anwendungen für diesen Chip in fast jeder Ausgabe.

Der Controller besitzt ein 1024 Bytes großen Programmspeicher, der als EEPROM ausgelegt ist und einen 64 Byte großen Daten-EEPROM-Speicher. Diese EEPROMs machen ihn für Entwickler kleiner Projekte so beliebt. Das Überschreiben von Programmen - vor allem in der Entwicklungsphase immer und immer wieder notwendig - geschieht durch Anlegen einer Programmierspannung von 12 - 15 V. Für manche Anwendungen sind 1024 Byte Speicherplatz zu wenig und manchmal wünschte man sich auch ein paar mehr als nur 13 bidirektionale IO-Pins. Die wesentliche Einschränkung ist jedoch der herkömmliche Preis für einen sogenannten Programmer. Das ist ein Gerät, daß ein fertiges Programm in den PIC "brennt". Im Handel sind solche Geräte ab 300 DM zu haben. Andere preiswertere Geräte haben den Nachteil, daß man nicht "in-line" programmieren kann. Beim seriellen Programmieren des PICs werden nämlich zwei IO-Pins PortB/6 und PortB/7) als Daten- bzw. Clockleitung verwendet. Überträgt man Programmdaten vom PC zum PIC, so können diese beiden Leitungen nicht für IO-Zwecke verwendet werden, solange sie mit dem PC verbunden sind. Man müßte also entweder den PIC aus dem Programmer nehmen und in die Anwendung stecken oder mittels Schaltern bzw. Jumpern den PC abtrennen.

Wir haben mit unserem Programmer das Problem derart gelöst, daß zwei software-gesteuerte elektronische Schalter (74HCT4066) den PIC während des Brennens mit dem PC verbinden. Ist der Brennvorgang beendet, werden die IO-Leitungen B6 und B7 mittels der Schalter vom PC freigeschaltet und stehen der Anwendung zur Verfügung. Die Kosten für diesen Programmer liegen bei etwa 50 DM (inklusive eines PICs und des Verbindungskabels zwischen PC und Programmer). Die Platine für den Programmer ist einseitig mit nur zwei Drahtbrücken auf der Bestückungsseite und kann in jeder Hobbywerkstatt auch von ungeübten Personen hergestellt werden. Die IO-Leitungen sind herausgeführt. Man kann mit einem Pfostenverbinder Anwendungen (Leuchtdioden, Schalter, Lautsprecher, Anzeigen und natürlich auch komplexere Anwendungen) anschließen. Die mitgelieferten Programme laufen unter DOS und haben folgende Aufgaben:

Der Programmer und die Software wurden an verschiedenen PCS getestet und lief immer zufriedenstellend. Von der Firma Mikrosoft kann man kostenlos einen Assembler (mpasm.exe) und einen Simulator-Debugger (mpsim.exe) herunterladen

Ein weiterer Vorteil des 16C84 gerade für Anfänger im Assemblerprogrammieren ist sein überschaubarer Befehlssatz, dessen 36 Befehle man in ihrer Wirkung sofort versteht. Diese RISC-Struktur wird im folgenden noch ausführlicher beschrieben. Der 16C84-Assembler-Kurs führt schrittweise in die Technik der Assembler-Programmierung ein.. Dabei werden die Assembler-Befehle nicht systematisch (arithmetische Befehle, Bit-orientierte Befehle etc.) abgehandelt, sondern eher in der Reihenfolge, wie sie für bestimmte Projekte benötigt werden. Die Projekte werden immer anspruchsvoller (Lauflichter, Zähler, Musikausgaben, Frequenzmesser usw. ) und damit auch die Programmiertechniken: Direktes und relatives Adressieren, Ablegen von Datentabellen, Interrupt-Programmierung usw. sind Techniken, die man auch bei anderen komplexeren Prozessoren findet. Bei jeder Anwendung, die neue hardwaremäßige Anforderungen stellt, werden die elektronischen Bauteile beschrieben und ggf. Schaltpläne und Platinenlayouts mitgeliefert