Timer und Interrupt Beispiel 12F675

Ich habe mal eine .asm Datei erstellt, in der Beispiele für die Einstellung des Timer0, Timer1 und Interrupt durch Timer0 aufgeführt sind. Diesmal ist auch die Konfiguration mit im Code angegeben.

Download 12F675_2.zip

Das Programm macht folgendes:

In der Hauptroutine blinkt LED5. Interrupt Timer0 wird eingeschaltet und LED1 durch den Interrupt eingeschaltet. Danach wird der Interrupt wieder deaktiviert, LED1 gelöscht und das Ganze beginnt von vorne.

Die LED Nummerierung bezieht sich auf meine Erweiterung des Low Pin Count Boardes.

Einfache Erweiterung des Lowpincount Boards

 

 

 

 

 

Nachtrag:

Hier ein kurzes Video zur Funktion!

 

PIC 12F67X und der OSCCAL Wert

Ergänzung zum Thema PIC 12F675:

Einige PIC’s (wie auch der 12F675) können mit ihrem internen Oszillator betrieben werden. Da dieser recht große Toleranzen aufweist, wurde für jeden PIC ab Werk ein Kalibirierwert ermittelt. Dieser Wert liegt in der letzten Speicherzelle des Programmspeichers (0x3FF) und sollte beim Start in das Osccal Register geschrieben werden. In meinem Beispielprogramm ist das missverständlich beschrieben, die Teile, die in der Initialisierung das OSCCAL Register betreffen am besten löschen wenn man damit keine Erfahrung hat. (Ich habe diese Zeilen eigentlich nur zu Experimenten eingefügt und übersehen :oops: )

Weiterlesen

Quick & Dirty – simple Schaltung für PIC 12F675

Grundsätzlich: Dies ist keine Schaltung, die ich als professionell einstufen würde, es ist wirklich eine ‚Quick & Dirty‘ Lösung – auch wenn einige davon bei mir seit Jahren funktionieren.

Da der PIC 12F675 (und andere) recht anspruchslos ist, kann man ihn mit einem Minimum an Bauteilen zum Leben erwecken.

Ich habe mal eine kleine  und schnell zu bauende Lösung gesucht, um eine LED an einer 12V Rollerbatterie zum Blinken zu bringen. Dazu reichten incl. LED und µController sieben Bauteile. Klar hätte auch eine Blink LED gereicht, hatte ich aber gerade nicht da und es sollte später auch noch etwas an Elektronik dazukommen, zusätzlich war mir die Blinkfrequenz einer käuflichen Blink LED zu gering.

Also habe ich mit Bauteilen aus der Kramkiste folgendes aufgebaut:

12f675_Quick_&_Dirty

Es gibt natürlich bei so einer improvisierten Lösung auch einiges zu beachten! Also bitte weiterlesen!

 

 

 

  • Der max. Strom wird durch R1 bestimmt, mehr kann aus dem PIC nicht heraus kommen
  • R1 ist so zu berechnen, das die Z-Diode nicht überlastet wird
  • Bei zu hoher Last an D1/R1 kann das Ganze zu warm werden
  • Wenn nur C1 verwendet wird, MUSS die Betriebsspannung sauber und halbwegs stabil sein, ansonsten noch ’nen kleinen Elko einsetzen!
  •  Ist das eine Schaltung, die man durch was besseres ersetzen sollte :-)

 

 

PIC Programmieren mit MPLAB (Teil 2) und PIC 12F675

Ich habe mal eine Assembler Datei erstellt, die ein Programm für einen einfachen Blinker erzeugt.  Eine auf der Uniplatine angeschlossene LED blinkt an Port GP2 (+-/ O3) im ungefähr 0,5 Sekundentakt. Die .asm Datei wird (wie in MPLAB Teil 1 beschrieben) sinnvollerweise in ein Projekt eingebunden.

Die Einstellungen des PIC (die configuration Bits) sind in diesem Beispiel NICHT im Programm festgelegt, das muss in MPLAB mit „Configure -> Configuration Bits“ manuell festgelegt werden.

 

 

 

 

 

In MPLAB wird die Konfiguration so beim Brennen festgelegt, bei anderen Programmiergeräten muss dies über das jeweilige Programm geschehen!

 

 

 

Bitte beachten, das der Vorwiderstand für die LED (bei Originalschaltung irgendwas um 300 Ohm) noch zusätzlich eingesetzt werden muss!

Ich werde dieses Programm hier nach und nach ‚zerlegen‘ und erläutern, falls Bedarf besteht. Es sind Kommentare im Programm eingefügt, da diese aber natürlich hauptsächlich als eigene Gedankenstütze gedacht waren, könnte es gut sein, das jemand anderes da doch Probleme bekommt :-D ;-)

Downloads:

12F675.asm (ungepackt)

12F675.zip (ZIP gepackt)

 Zurück zu Teil 1

 




reichelt elektronik – Elektronik und PC-Technik



 

PIC Programmieren mit MPLAB (Teil 1)

Vorweg:

Wer sich näher mit dem Programmieren von Microchip PIC Microcontrollern beschäftigen möchte, dem sei die Homepage von SPRUT an’s Herz gelegt! So viele Details wie er im Laufe der Zeit beschrieben hat, kann ich gar nicht nachreichen.

In den Beiträgen zu MPLAB werde ich schrittweise versuchen, einen einfachen Weg aufzuzeigen, mit dem man mit dieser Programmier IDE erfolgreich arbeiten kann. Mir ist bewußt, daß diese IDE noch mehr zu bieten hat als vielleicht manchmal beschreiben, ich denke aber, daß es gerade zu Beginn nicht allzutief in die Materie gehen muß soll. In diesem Beitrag beziehe ich mich auf die MPLAB Version 8.1! Mit der neuen X Version habe ich noch keine Erfahrung, ggf. reiche ich das nach, ich bin aktuell aus Weiterlesen

Projekt Unischaltung für PIC 12F675

Bei kleineren Aufgaben greife ich sehr oft auf einen PIC 12F675 zurück. Er bietet 5 I/O Ports von denen einige sogar als AD Wandler arbeiten können. Wenn nicht gerade ein LCD Display oder ähnliches angesteuert werden sollen, reicht sein Funktionsumfang meist aus, zumal er nur so um 1,20-1,50€ kostet. Mit dieser Schaltung habe ich u.a. schon Modellbauservos, Faller Car System Stoppspulennachbauten, alle möglichen Lichteffekte und vieles mehr aufgebaut. Wer sich irgendwas aus meinen Projekten zu nutze machen möchte, kann davon ausgehen, daß dies die Beschaltung ist. Wenn nicht, weise ich natürlich darauf hin.

Unischaltung PIC 12F675

Die Schaltung bietet 3 Openkollektor Ausgänge und 2 Eingänge mit externem Pullup Widerstand. Die Eingänge können natürlich auch als Ausgänge genutzt werden, dann einfach die Pullup’s weglassen und den Imax des PIC beachten. Für einzelne Leuchtdioden hat es bisher allemal gereicht.

Die Schaltung ist absolut unkritisch. Solange man sich an die Pinbelegung des Controllers hält (um eben kompatibel zur Software zu bleiben), kann man so ziemlich alles ändern. Ich gehe an dieser Stelle mal davon aus, daß Kenntnisse zum Thema Transistor, U/R/I und Co vorhanden sind. Wenn es an der Stelle doch Fragen gibt bitte melden, ich versuche dann mal ein kleines ‚How to…‘ aufzubauen. Das steht eigentlich eh auf dem Plan… irgendwann :-D Die Funktionsbeschreibung der Schaltung reiche ich aber noch nach!

Folgendes sollte aber beachtet werden:

  • Die Schaltung bietet kein ICSP, es muss extern programmiert werden
  • Viel mehr als 5,5V sollte man dem PIC nicht zumuten, besser weniger (3-5V haben bei mir immer funktioniert.
  • R1 muss mit ca. 10-20k vorhanden sein damit der PIC arbeitet (Masse auf Pin 4 löst einen Reset aus!)
  • C4 sollte als Stützkondensator vorhanden sein