GUIA DE MPLAB (Sistemes Electrònics) -...

14
GUIA DE MPLAB (Sistemes Electrònics) Dr. Oscar López Lapeña Octubre 2006

Transcript of GUIA DE MPLAB (Sistemes Electrònics) -...

GUIA DE MPLAB (Sistemes Electrònics)

Dr. Oscar López Lapeña Octubre 2006

1. INTRODUCCIÓ – OBJECTIUS

Aquesta guia mostra mitjançant un exemple senzill la utilització del MPLAB 6.6 i

del PROTEUS per a la programació i posterior simulació d’un microcontrolador

integrat en un sistema electrònic.

L’exemple tractat es mostra en la figura 1 i té com objectiu encendre o apagar

un LED en funció de l’estat d’un interruptor. Podeu trobar en el MOODLE

aquest projecte amb el nom “Ejem_PuertosES”.

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

OSC1/CLKIN9

OSC2/CLKOUT10

RC1/T1OSI/CCP212

RC2/CCP113

RC3/SCK/SCL14

RB7/PGD28

RB6/PGC27

RB526

RB4 25RB3/PGM 24

RB223

RB122

RB0/INT21

RC7/RX/DT18

RC6/TX/CK17

RC5/SDO 16RC4/SDI/SDA 15

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI 11

MCLR/Vpp/THV1

U1

PIC16F873

D1LED-RED

R1330

X14Mhz

C1

22pF

C2

22pF

R21k

V2

V2

Figura 1. Sistema electrònic proposat com exemple.

GUIA D’UTILITZACIÓ DEL MPLAB

2. METODOLOGIA

A continuació es descriu les pautes que s’han de seguir per la creació d’un

projecte i la seva simulació tant en MPLAB com en PROTEUS.

2.1. CREACIÓ D’UN PROJECTE EN MPLAB.

Per començar obrirem el programa MPLAB IDE i veurem com apareix una

pantalla amb l’escriptori d’aquest entorn de programació.

La forma més fàcil de crear un projecte és mitjançant el PROJECT WIZARD.

Per executar aquesta aplicació seleccionarem del menú Project>Project Wizard

Aquesta eina ens permet crear un projecte seguint quatre passos.

Primer Pas: Seleccionarem el microcontrolador amb el qual volem fer el

projecte.

Segon Pas: Triem el llenguatge de programació e indiquem on estan els

programes per fer la compilació, el linkat i les libreries. Si la direcció

d’algun d’aquests programes és incorrectes s’indica amb una creu

vermella.

Tercer pas: Indiquem el nom del projecte i la seva ubicació.

Quart pas: Afegim tots els fitxers que són propis del projecte.

Concretament, hauríem d’afegir:

o “16F873.lkr”: Aquest fitxer indica al compilador com està

estructurada la memòria de programa i de dades del

microcontrolador.

o “P16f873.inc”: Aquest fitxer identifica mitjançant directives “EQU”

el nom de cadascun dels registre especials amb las seva direcció

de memòria. D’aquesta forma es facilita la programació i

interpretació del codi per part del programador.

També podem afegir els fitxers amb el codi del programa (.asm o .c ),

llibreries i altres fitxers que hagin de formar part del projecte.

Una cop completats els quatre passos es crearà un arbre amb els diferents

fitxers del projecte. Utilitzant els botons del ratolí podem editar, esborrar i afegir

un nou fitxer.

Seleccionant en el menú File>New crearem un fitxer ASCII on escriurem el

programa ensamblador. Aquest fitxer ho anomenarem “Prueba.asm” i tindrà el

següent text:

; ***************************************************

; PROGRAMA Demostració Ports E/S - VERSIO INICIAL ; uC : PIC16F873

; Tasca : Control pulsador-led ; El microcontrolador ha d'encendre el led

; quan s'activi el pulsador.

; SISTEMES ELECTRÒNICS -EPSC UPC

; ***************************************************

#include <p16f873.inc>

; a). SECCIÓ CODI RESET

ORG 00H

GOTO INICI

ORG 05H

; b). INICIALITZACIÓ - CONFIGURACIÓ

INICI:

BCF STATUS, RP1 ; RP1 <= '0'

BSF STATUS, RP0 ; RP0 <= '1' . Selecció Bank 1

MOVLW B'00000010'

MOVWF TRISB ; Configuració dels pins del PORT B:

; RB1 : Entrada ; RB0, RB2..RB7 : Sortida

BCF STATUS, RP0 ; RP0 <= '0' . Selecció Bank 0

CLRF PORTB ; Els pins configurats com a sortida es posen a '0'

; c). PROGRAMA PRINCIPAL

DESPULSAT:

BCF PORTB,0 ; Port B0 a '0' -> Apaga LED

TORNAR:

BTFSS PORTB,1 ; Salta si el botó està pulsat

GOTO DESPULSAT

BSF PORTB,0 ; Port B0 a '1' -> Encen LED

GOTO TORNAR

END

Un cop gravat el fitxer, ho afegirem al projecte.

Finalment, s’indica el mode de treballar del microcontrolador determinat el seu

registre de configuració. Seleccioneu Configure>Configuration Bits.

Els bits d’aquest registre estan dividits en les següents categories:

Oscillator: Indica quin tipus de rellotge es farà servir.

o RC: Resistor/Capacitor.

o HS: High Speed Crystal Resonator (8-20 MHz).

o XT: Crystal/Resonator (100kHz-4MHz).

o LP: Low Power Crystal (32kHz-200kHz)

Watchdog Timer: Gos guardià. La seva funció és reiniciar el sistema

quan s’ha bloquejat. És un temporitzador que reinicia el sistema quan es

desborda. Mitjançant la instrucció CLRWDT es pot posar a zero

periòdicament en el programa evitant el desbordament.

Power up Timer: Estableix un temps d’espera per estabilitzar la tensió

d’alimentació.

Brown Out Detect: Reinica el sistema quan la tensió d’alimentació cau

per sota de 4V.

Low Voltage Program: Permet la programació del microcontrolador via

ICSP.

Flash Program Write: Impedeix canviar les dades de la memòria de

programa quan no està funcionant en mode de programació.

Data EE Read Protect: Impedeix llegir la memòria de dades

externament.

Code Protect: Impedeix llegir la memòria de programa per evitar còpies.

2.2. SIMULACIÓ EN MPLAB.

Una vegada creat el projecte podem veure el funcionament del programa

mitjançant simulació. Indicarem al MPLAB que utilitzarem l’eina de simulació

MPLAB SIM seleccionant en el menú Debugger>Select Tool>MPLAB SIM.

Degut a la seva incompatibilitat amb qualsevol eina de programació haurem de

seleccionar Programmer>Select Programmer>None.

Compilarem el programa seleccionant Project>Build All en el menú. Si no hi ha

cap error en la compilació es mostrarà una pantalla amb el programa on

s’indica la propera instrucció a executar pel simulador.

En el menú Debugger es troben els modes d’executar les instruccions utilitzant

el simulador. Podem fer una simulació pas a pas utilitzant les opcions Step into

i Step over, execució automàtica mitjançant les opcions Run i Animate, o

reiniciar el microcontrolador mitjançant Reset>Processor Reset.

Podem crear punts de parada polsant dues vegades en el botó esquerre del

ratolí. Aquests punts indicaran al simulador on s’ha d’aturar quan s’executa en

mode automàtic.

2.3. VISUALITZAR LES DADES DE LA MEMÒRIA.

L’objectiu final de qualsevol programa consisteix en modificar el valor de certs

registres de la memòria o dels ports del microcontrolador. Per tant, observarem

el seu comportament a partir de com canvien aquests valors. El MPLAB

disposa en el menú View d’unes eines per visualitzar la memòria de programa i

de dades, els registres especials, la memòria EEPROM i la pila.

Desplegueu cadascuna d’aquestes eines i interpreteu la informació que donen.

A mode d’exemple, veiem com utilitzar l’opció View>Watch per visualitzar el

valor del registre TRISB.

Si polsem amb el botó dret del ratolí sobre aquest registre, opció Properties,

podem canviar el format com es visualitza el seu valor.

Podem veure el valor de qualsevol direcció de la memòria de dades polsant

dues vegades amb el botó esquerre del ratolí sota la columna Address.

Indicarem la direcció del registre en hexadecimal.

2.4. CREACIÓ D’ESTIMULS.

El microcontrolador haurà de canviar el seu comportament segons com siguin

els estímuls del seu entorn. Serà per tant necessari observar el comportament

del programa enfront a diferents estímuls.

Existeix una eina en Debugger>Stimulus Controller per variar les condicions

dels ports d’entrada del microcontrolador, és a dir, per variar les condicions del

seu entorn. Utilitzeu-la per canviar el valor del PORTB1 corresponent a la

connexió amb el polsador del circuit. Observeu el comportament de la

simulació segons com sigui l’estat d’aquest port.

2.5. INTRODUIR EL PROGRAMA EN UNA SIMULACIÓ EN PROTEUS.

Un cop simulat i depurat el programa en el simulador del MPLAB, podem veure

com actua amb la resta del circuit mitjançant PROTEUS.

Per introduir el programa fet amb el MPLAB en la simulació de PROTEUS hem

d’editar el paràmetres de configuració del PIC polsant amb el botó dret del ratolí

un cop seleccionat aquest component. En aquest menú hem de completar els

següents camps:

Program File: Indicarem el nom del fitxer .cof que s’ha generat durant la

compilació del programa en MPLAB.

Processor Clock Frequency: Indicarem la freqüència de treball del

microcontrolador.

Program Configuration Word: Indicarem el valor de la paraula de

configuració. Podem determinar aquest valor a partir del menú

Configure>Configuration Bits en el MPLAB.

A partir del menú Debug podem fer servir les mateixes eines de simulació que

fèiem amb el MPLAB. Observeu que un cop hem fet córrer la simulació i hem

provocat una pausa, podem veure el codi de programa i les dades en qualsevol

direcció de la memòria.