Programació en mpasm del PIC 16F690

Referència Trucs Perifèrics   Recursos CITCEA
Tutorial Exemples Projectes   Inici

El programari MPLAB X IDE

Emprarem el programari MPLAB X IDE per preparar el programa en assemblador i enviar-lo al microcontrolador. Podeu trobar la darrera versió del programari al web de Microchip on anirem a la pestanya downloads i baixarem i instal·larem la darrera versió per al nostre sistema operatiu. En cas que us calgui baixar una versió anterior, les podreu trobar en aquesta pàgina.

Important: Aquest web està basat en l'assemblador mpasm que està implementat en les versions anteriors a la 5.40 de l'MPLAB X IDE i, per tant, és recomanable treballar amb la versió 5.35.

Un cop instal·lat el programa, veurem una finestra similar a la de la figura següent:

Pantalla inicial

Per preparar un programa, picarem sobre la icona New Project per crear un projecte nou. Ens sortirà una pantalla com la següent:

Choose Project

Al requadre central triarem Microchip Embedded i al de la dreta Standalone Project. Picarem a Next i passarem a la següent pantalla:

Select Device

En aquesta pantalla, on diu Device, triarem el nostre microcontrolador (PIC 16F690). Picant a Next i passarem a la pantalla següent:

Select Header

En principi, deixarem el valor None. A la pantalla següent ens demana que triem el gravador:

Select Tool
Select Tool
Select Tool
Select Tool

Podem fer servir tres gravadors diferents, PICkit 2, PICkit 3 i PICkit 4. Si tenim el gravador connectat a l'ordinador, veurem que el detecta i el podem triar. Ens dona un número de referència que podria ser útil si tinguéssim més d'un gravador connectat al mateix temps. Si en aquest punt no tenim el gravador connectat, no passa res. Marquem un d'ells i seguim ja que més endavant podrem triar-lo.

A la següent pantalla ens demana que triem el compilador. Com treballarem en assemblador, triarem mpasm:

Select Compiler

A la darrera pantalla ens demana el nom del projecte i el directori on el volem guardar:

Project Name

Per evitar problemes posteriors, cal que la ruta del directori triat sigui curta i que els noms dels fitxers i carpetes siguin curts i no tinguin espais en blanc (per exemple C:\PIC\programes\).

Per crear el nostre programa, anem al menú lateral i piquem sobre Source Files amb el botó dret:

New File

Triem Other i s'obrirà una finestra per triar el tipus:

New File

Triem AssemblyFile.asm i s'obrirà una finestra per triar el nom:

New File

Un cop fet això, se'ns obrirà la finestra on podrem editar el nostre programa. En la figura següent hi ha l'exemple EL. Els exemples que trobareu en aquest web han estat preparats de manera que poden ser copiats de la pàgina web i enganxats directament al MPLAB X IDE.

Exemple EL

Un cop tenim llest el programa, podem picar a la icona Build Project que ens generarà el codi màquina. Un cop fet això, ens hem d'assegurar que el resultat és BUILD SUCCEEDED (ho veurem la finestra de baix a la dreta). En cas contrari cal solucionar el problema i tornar-ho a provar.

Important: En la finestra de l'MPLAB X podem tenir-hi més d'un projecte i dins del projecte hi podem tenir més d'un fitxer de programa. Quan li diem que ho enviï al microcontrolador, s'enviarà el projecte marcat com a Main Project, és a dir aquell que té el nom en negreta. És indiferent quin tinguem obert a la finestra de la dreta o quin estigui marcat en vídeo invers. De la mateixa manera, si un projecte té més d'un fitxer de programa s'enviaran tots al microcontrolador. Cal ser molt curosos amb això si no es volen tenir resultats inesperats. Una manera alternativa és fer els fitxers de programa amb un altre editor i tenir un únic projecte amb un únic fitxer a l'MPLAB X de manera que en cada moment n'esborrem el contingut i enganxem el que realment volem enviar. Cadascú pot triar la manera que li sigui més còmoda.

Quan ja tenim el codi màquina, podem fer:

View Program Memory

I se'ns obrirà una finestra on veurem el nostre programa en codi màquina i també en ensamblador però amb tots els paràmetres en forma numèrica hexadecimal:

Program Memory

El nostre programa va de les línies 1 a 5 (adreces 0 a 4). A la quarta columna veiem les nostres instruccions en codi màquina hexadecimal. A la cinquena columna veiem les nostres etiquetes i altres etiquetes que es crea el compilador. Observem que a les fileres 6 i 7 hi ha unes instruccions que no hem posat nosaltres i que el compilador afegeix al final per prevenir problemes en cas que el programa estigui malament. A totes les fileres següents hi trobem el valor 3FFF que és el que tenen les posicions de la memòria de programa que no estan programades.

Quan ja tenim el programa en codi màquina, és el moment d'enviar-lo al microcontrolador. Si no ho havíem fet abans, cal triar el dispositiu programador. Per triar-lo, picarem amb el botó dret sobre el nom del projecte i marcarem Properties.

Properties

Se'ns obrirà una finestra nova on podrem triar-lo:

Conf.

Abans de tancar aquesta finestra, ens posem sobre PICkit 2, PICkit 3 o PICkit 4 per ajustar les propietats:

PICkit 2
PICkit 3
PICkit 4

L'estat de la casella Use target power always depèn de com alimentem la placa. Si nosaltres alimentem la placa des del PICkit 2 cal que estigui desmarcada. Si, en canvi, alimentem externament la placa mentre la programem, caldrà activar aquesta casella. En el cas del PICkit 3 o PICkit 4 cal marcar Power target circuit from PICkit3 (o PICkit 4) si no fem servir alimentació externa.

Si fem servir PICkit 2 també ens cal que estigui activat 3-State on 'Release from Reset', si no és així el polsador de la placa potser no funcioni.

Un cop tancada aquesta finestra, programarem el microcontrolador picant a la icona Program Device. Si tot va bé, ens programarà el microcontrolador i el posarà en marxa per poder veure el resultat. Si el nostre programa no hagués estat compilat a codi màquina, amb aquesta icona podríem haver fet les tres operacions (compilar, programar i posar en marxa) amb un sol botó.

Un cop ja hem enviat el programa, aquest es queda a la memòria del microcontrolador i es conserva encara que desconnectem l'alimentació. Si alimentem la placa amb una font d'alimentació externa, el programa que tingui gravat s'iniciarà des del començament.

Alguns cops el MPLAB X IDE ens diu que no pot programar. La majoria de cops això s'arregla tancant el programa i tornant-lo a obrir.

Quan vulgueu fer el vostre segon programa teniu dues opcions. La primera és sobrescriure l'antic. A mi em sembla la més pràctica per a petits programes d'aprenentatge ja que així es recorda de les configuracions. Jo em guardo els programes de prova en un fitxer a part (de text, per exemple) i quan els vull fer servir els copio i els enganxo sobre el fitxer que ja tinc creat amb MPLAB X IDE. L'altra possibilitat és crear cada cop un projecte nou cada vegada. En aquest cas és convenient eliminar-los del menú lateral de navegació quan ja no els necessitem.

Cal tenir present que si creem més d'un fitxer de programa dins el mateix projecte els compilarà tots junts i els intentarà executar al mateix temps. Això és útil quan una part del programa (per exemple una funció) està en un fitxer separat (com en el cas de l'exemple ST).

També podeu consultar la guia d'usuari del MPLAB X IDE al web de Microchip.

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.