PIC microcontroller tutorial

Gepost door Bastiaan Steenbergen op donderdag 4 december 2003

Software

In deze tutorial gebruiken we assembler taal. Ik heb hiervoor gekozen omdat deze taal dicht bij de hardware staat. Zo is makkelijker te begrijpen hoe het geheel werkt en zo zijn simpele programma's te schrijven. Naarmate de programma's complexer worden kan worden gekozen voor C++ of een andere hogere programmeertaal. Om een programma in assemblertaal te schrijven hebben we het gratis ter beschikking gestelde programma MPLAB v5.70 van Microchip nodig. Dit is te downloaden op de site van Microchip. MPLAB is hier op onze site te vinden.

Het is een zeer goed programma, wat vele opties bevat. Zo kun je je programma in assembler taal schrijven en vervolgens assembleren. Maar ook nog eens simuleren om te analyseren of het wel correct werkt wat je hebt geschreven. We zullen je duidelijk maken hoe je een programma kunt schrijven, assembleren en vervolgens testen.

Assembler programma editten

Zoals ook in sommige andere programma's dien je te werken met projecten. Daarvoor maken we eerst een nieuw project aan. Dit doe je als volgt.
Kies voor "Project" in de menubalk gevolgt door "New Project�". Blader nu naar de directory waar je de files wilt hebben. Kies nu een filenaam voor je project en druk vervolgens op "OK". Check of er als "Language Tool Suite" voor Mircochip is gekozen, zoniet wijzig dit dan even.
Kies naast Development Mode voor "Change".

Development Mode veranderen

Nu kom je in het "Development Mode" scherm.
Kies in het tabblad "Tools", voor MPLAB-SIM Simulator.
En kies als "Processor:" de PIC16F84A.

De goede processor kiezen

Ga vervolgens naar het tabblad "Clock".
Stel het "Oscillator Type:" in op "XT".
Vink eerst het vakje MHz aan, zodat je erna bij "Desired Frequency:" 4.000 in kunt vullen.
De andere tabbladen blijven ongewijzigd. Als dit is voltooid kun je op "OK" drukken. Er worden een aantal meldingen gedaan maar die kunnen worden genegeerd.
En er kan net zolang voor "OK" worden gekozen totdat het normale lege programmaveld zichtbaar is.

De clockinstellingen

Kies in de menubalk voor "File" -> "New". Er wordt nu een leeg veld aangemaakt waarin het programma kan worden getypt.
We slaan dit direct weer even op, zodat we straks deze handelingen niet meer hoeven uit te voeren. Kies voor "File" -> "Save As�". Blader nu naar dezelfde directory waar eerder de projectfile was opgeslagen. En kies dezelfde naam voor de file, echter nu gevolgt door ".asm".
Dus als er voor de projectfile was gekozen voor "led.pjt" dan noemen we dit filetje "led.asm".
We kunnen, omdat de .asm file is aangemaakt deze koppelen aan het project. Dit gaat als volgt.
Kies voor "Project" in de menubalk. Klik vervolgens op "Edit Project".
Klik in het scherm wat verschijnt op "Add Node�", en kies voor het .asm filetje wat we net hebben opgeslagen. Nu dit klaar is kunnen we weer terug door "OK" te kiezen.
Vanaf nu weet het programma dat het led.asm filetje moet worden geassembleerd naar led.hex en dat het een onderdeel is van het project.

Nu kan het programma worden geschreven in het grote lege witte veld. Zodra het programma is afgerond, moet het worden gecontroleerd en worden geassembleerd.
Kies voor "Project" -> "Make Project".

Typen van programma

Hieronder zie je een screenshot van het proces tijdens het assembleren:

Het assembleren

Zodra er geen errors zijn, wordt er een hex-file aangemaakt. Dit is het filetje dat uiteindelijk in de PIC moet worden geladen. Zijn er wel errors gevonden dan worden deze weergegeven in een ander scherm wat je precies verteld waar de fouten zitten en wat er fout is.

Fouten tijdens het assembleren

Dit overzicht is een soort logfile. Je ziet dat er eerst wordt begonnen met het builden. En dan gebeuren er dingen tijdens het compilen/assembleren van, in dit voorbeeld verzend.asm.
Er is een warning opgetreden. Dit betekend dat er iets niet helemaal goed en dus je programma niet zal doen wat je verwacht, maar dat de .hex file wel kan worden gemaakt. Ook zie je dat erna een error wordt gevonden. Tussen de haakjes staat op welke regel de code staat waar die fout is gevonden en helemaal aan het einde van de regel vindt je informatie over de foutsoort. In dit geval had ik een opcode (dat is een instructie) gebruikt die niet bestond. Doordat er een error is opgetreden kan de hex file niet worden aangemaakt. En zul je dus eerst die fout moeten oplossen. Aan het einde wordt daarom verteld dat het builden mislukt is.

Simuleren

Met dit programma kun je ook jouw eigen programma simuleren. Je kunt dit doen door instructie voor instructie je programma uit te voeren en in de gaten houden door te kijken naar wat er gebeurt met de geheugens en waardes die de µC berekent. Voorlopig gaan we hier echter nog niet op in.