PIC

Ende der achtziger Jahre wurde der PIC- Controller von der Firma Microchip auf den Markt gebracht. Diese unterscheiden sich von den "Standard-Controllern" von Intel im Wesentlichen dadurch, dass das auszuführende Programm im Chip selbst untergebracht werden muss. Das hat den Vorteil, dass Pins und Kosten für den externen Speicher entfallen, der Chip jedoch mit einem speziellen Gerät programmiert werden muss.

Die ersten Typen kamen aus der 16C5X - Reihe (Base Line), die zwischenzeitlich entwickelten "Brüder" PIC16C6X, -7X und -8X sind wesentlich komfortabler und werden als Mid-Range bezeichnet. Zusätzlich zu den PIC16 - Klassen gibt es noch die High-End-Klasse mit den PIC17C4X - µControllern, welche in den letzten Jahren an Bedeutung gewonnen haben.

Eine Übersicht mit den Leistungsmerkmalen der einzelnen Mitglieder der Familie finden Sie hier (die neusten Typen fehlen).

Datenblätter PIC16F8X

PIC16F84

PIC16F84Die Vorteile der PIC16 Controller-Familie liegen in der einfachen Architektur, dem kleinen, aber gut durchdachten Befehlssatz, der hohen Geschwindigkeit, der sehr kostengünstigen OTP (One Time Programmable) Bausteine und der preiswerten Entwicklungswerkzeuge. Während die Datenbreite 8 Bit beträgt, bestehen die Programmworte aus 12 bzw. 14 Bit. Damit passen alle Befehle zusammen mit ihren Argumenten in ein Wort. Der PIC16F84 enthält:

  • 13 I/Os

  • einen integrierten Watchdog-Timer (führt periodischen Sytemreset aus)

  • einen integrierten 8-Bit Timer \Zähler mit einstellbarem Teiler

  • einen 8-Level Stack (Stapelspeicher)

  • einen RAM mit 68 Byte freier Kapazität

  • ein Daten-EEPROM mit 64 Bytes Speicher

  • Möglichkeiten zum Power on Reset (POR) und Stromsparmode (Sleep)

  • einen 14-Bit Befehlskern

  • integriertes EEprom mit 1024 Worten Kapazität

  • Datenerhalt bis 40 Jahre, auch ohne Pufferung

  • Niedrige Stromaufnahme - da CMOS-Technologie

  • 1000 - 1'000'000-fache Beschreibmöglichkeit (hierzu findet man in der Literatur leider verschiedene Aussagen)

  • Betriebspannungen von 2-6V sind möglich

Entwicklungsumgebung MPLAB

Als Entwicklungsumgebung wird die kostenlose Entwicklungsumgebung MPLAB von Microchip verwendet. Mit ihr kann man Programme im Assemblercode entwickeln. Der Befehlssatz des PIC umfasst 40 Befehle. Das Resultat ist dann ein HEX-File, das den fertigen Code enthält. Mit dem Programmer 'PICStart Plus' kann der PIC direkt aus der Entwicklungsumgebung heraus programmiert werden.

  1. Laden Sie sich die neuste Version von MPLAB hier herunter.

  2. Entpacken Sie die heruntergeladene Datei und führen Sie die ausführbare EXE-Datei aus.

  3. Folgen Sie den Installationsanweisungen des Installers.

Assembler-Programmierung des PIC

Ein Projekt mit MPLAB erstellen

  • MPLAB beinhaltet einen Texteditor einen Assembler und Grundeinstellungen für jeden Prozessortyp (include-Dateien). Nach dem Start von MPLAB legt man über "Project" - "New ..." zunächst ein neues Projekt an. Danach erstellt man mit "File" - "New" und "File" - "Save as" eine Assemblerdatei mit der Dateierweiterung ".ASM". Mit dem Menüpunkt "Project" - "Add Files to Project" kann man dem Projekt nun die Assemblerdatei zuordnen. Der Menüpunkt "Projekt" - "Make" startet den Assembler und wenn im Programm keine Syntaxfehler enthalten sind, schreibt MPLAB eine ".HEX"-Datei in der das fertige Programm enthalten ist.

Flashprogrammierung

  • Brenner korrekt anschliessen, Speisung, COM1 oder COM2

  • Mit dem Menüpunkt "Programmer" - "Settings..." - "Communications" COM1 oder COM2 auswählen

  • Mit dem Menüpunkt "Programmer" - "Select Programmer" PICSTART Plus auswählen

  • Mit dem Menüpunkt "Programmer" - "Enable Programmer" den PICSTART Plus anwählen

  • Optionen richtig setzen

    Vor dem Brennen müssen wir einige Optionen richtig setzen. Diese Optionen sind im Configuration Word (siehe Datenblatt PIC16F84, p38-39) gespeichert und können nur während der Programmierung gewählt werden. Das Configuration Word ist nicht im Benutzerspeicherbereich enthalten. Wir wählen für unsere Übungen, wenn nichts anderes vorgegeben ist, die folgenden Optionen unter dem Menüpunkt "Configure" - "Coonfiguration Bits..."

    • Watchdog Timer off

    • Power-up Timer off

    • Code Protection off

  • Mit dem Menüpunkt "Programmer" - "Program" den PIC programmieren

Programmierung des PIC in C

  • Installation des PICCLite ANSI-C Compiler

    • Laden Sie unter http://www.htsoft.com/ den PICCLite Compiler herunter oder installieren Sie die lokale Kopie (Version 8.05).

    • Doppelklick auf die heruntergeladene Exe-Datei und einfach den Installationsanweisungen folgen

    • Neustarten des Systems

  • Ein Projekt mit MPLAB erstellen

    • Nach dem Start von MPLAB legt man über "Project" - "New ..." zunächst ein neues Projekt an. Danach erstellt man mit "File" - "New" und "File" - "Save as" eine C-Quellcode -Datei mit der Dateierweiterung ".c".

    • Mit dem Menüpunkt "Projekt"-"Select Language Toolsuite" den High Tech PICC Toolsuite auswählen

    • Mit dem Menüpunkt "Project" - "Add Files to Project" kann man dem Projekt nun die C-Quellcode -Datei zuordnen.

    • Mit dem Menüpunkt " Configure" - "Select Device..." den gewünschten PIC-Typ auswählen (Hier im NTB: 16F84A)

    • Der Menüpunkt "Projekt" - "Make" startet den PICCLite Compiler und wenn im Programm keine Syntaxfehler enthalten sind, schreibt MPLAB eine HEX-Datei in der das fertige Programm enthalten ist.

  • Die Flashprogrammierung wird im Abschnitt „Assembler-Programmierung des PIC“ beschrieben.

Das Benutzerhandbuch für den PICCLite ANSI C Compiler finden Sie hier.

Beachte: Falls Sie Probleme beim kompilieren haben, schauen Sie nach, ob Sie Ihre Umgebungsvariabel HTL_PIC auf C:\PICCLITE gesetzt haben. Öffnen Sie dazu ein cmd-Fenster und geben Sie set HTL_PIC=C:\PICCLITE ein. Als Alternative können Sie auch diese Umgebungsvariabel ganz entfernen.