MPLAB è una ambiente di sviluppo integrato (IDE) per scrivere i programmi per il PIC, compilarli, testarli, correggerli e trasferirli infine nel microcontrollore.
Si può scaricare il programma MPLAB versione 8.92 dal questo link ricavato dal sito della Micrichip.
Con questa versione si possono scrivere programmi in C e in assembly. Per scrivere i programmi in linguaggio C è necessario selezionare in MPLAB il compilatore C della HI-TECH.
Installazione
Lanciare il setup.
Post-Installazione (utilizzo come User su windows XP)
Per rendere il programma utilizzabile come user (senza diritti di admin - solo per aula laboratorio)
1. L'admin deve garantire all'user di poter leggere ed eseguire i file della cartella dei file di MpLab e del Hi-Tech compiler..
Per XP, utilizzare Pannello di Controllo-Strumenti di amministrazione-Gestione Computer
Selezionare nelle cartelle Utenti e Gruppi locali, poi Users, poi l'utente non admin a cui si vuole dare i diritti,
segliere la cartella "Membro di", cliccare su Aggiungi-Avanzate-Trova-Power Users-OK-OK.
2. L'user deve anche avere i permessi nel registro.L'admin esporta il registro di MPLAB IDE:
Click su Start-Esegui, si scrive REGEDIT, si seleziona OK, nell'editor del registro si cerca la voce HKEY_CURRENT_USER\Software\Microchip\MPLAB IDE
Si esporte la voce con File-Esporta, si seleziona una cartella visibile dall'user, si scrive un nome, si seleziona Salva.
Si accede con l'user, doppio click sul file esportato dal registro.
Creazione progetto
Si lancia MPLAB e si crea un nuovo progetto con i seguenti comandi:
Project - Project Wizard
Avanti
Selezione tipo di PIC
Avanti
Selezione come Active toolsuite del compilatore C: HI-TECH Universal ToolSuite
Avanti
Inserire il nome della cartella dove si vuole sviluppare il progetto con
Browse (per esempio "MpLab" sul Desktop)
Inserire nome del progetto (per esempio "Robot.mcp")
Avanti
Avanti
Fine
Per creare il file main.c si utilizzano i seguenti comandi:
File - New
Si scrive il programa e poi si salva con il nome main.c
Si aggiunge al progetto con i comandi
Project
Add files to Project
Registro di configurazione
Si deve anche programmare il registro di configurazione con i comandi: Configure - Configuration Bits
Nella finestra che appare occorre settare (per il PIC16F84):
- XT, HS o LP come Oscillator selection
- "WDT Disabled" per disabilitare il Watch Dog (un timer interno indipendente dal clock)
- "Power-up Timer is disabled" per disabilitare il Power-up Timer (il timer interno da 72 ms che attiva un ritardo dall'accensione all'inizio del funzionamento)
- "Code protection disabled" per disabilitare il blocco della lettura del codice
Le specifiche del registro di configurazione sono nelle funzioni speciali del PIC.
Compilazione progetto
Al termine della scrittura del programma nella finestra si è pronti per compilare il progetto, per farlo andiamo su Project - Build.
Questo comando traduce il file in C in un file eseguibile in formato HEX (esadecimale). Apparirà una finestra (Output) nella quale verrà indicato se la traduzione è andata a buon fine. "Build Successful!" è il messaggio che indica la corretta traduzione (nessun errore). In caso di errori è possibile fare doppio click sul messaggio d’errore nella finestra di Output ed automaticamente verrà mostrato il codice in C esattamente alla linea dove si è incontrato l’errore.
Esempio
Si può provare un semplice programma che accende un led:
#include<pic.h>
main(void)
{
TRISB = 0x00; // set PortB as out
PORTB = 0b00000010; // set PortB bit1 = 1
}
Simulatore
Il simulatore è una parte dell’ambiente MPLAB il quale permette di avere una visione globale sul comportamento del programma per un determinato microcontrollore permettendo di verificare che il comportamento dello stesso sia corretto. Permette inoltre di comprendere meglio il comportamento del microcontrollore.
Tramite il simulatore si può monitorare il valore corrente delle variabili utilizzate, dei registri e lo stato delle porte a livello di pin.
Se si ha a che fare con un programma semplice, la simulazione non è così importante poichè portare il valore sul pin della porta B non è poi così difficile da realizzare. Diversamente si rivela uno strumento indispensabile nel caso di programmi più complessi che contengano per esempio dei timer o delle operazioni matematiche.
La simulazione, così come indicato dal nome, simula il lavoro di un microcontrollore.
Il simulatore esegue il programma linea per linea ed evidenzia i valori dei registri e variabili del microcontrollore. Dopo aver scritto il programma è buona norma simulare le reazioni del sistema utilizzando il programma, e successivamente far girare l’applicazione in un sistema reale.
Per aprire il simulatore: Debugger - Select Tool - MPLAB SIM.
La prima cosa da fare è il reset del microcontrollore mediante il comando Debugger - Reset - Processore Reset o con il tasto F6 o cliccando sulla icona di reset. Verrà evidenziata in verde la prima linea del grogramma, e il program counter PCL verrà resettato a zero.
Può essere visto nella finestra dei registri con i comandi View - Special Functions Registers. Questa finestra è una delle principali caratteristiche del simulatore: l’abilità di visualizzare lo stato dei registri all’interno del microcontrollore.
Un'altra finestra che può essere aperta è quella che mostra la RAM: View - File Regsiters. Inoltre se il programma contiene delle variabili può essere interessante monitorarle.
A ciascuna variabile viene assegnata una finestra (Watch Windows) cliccando su View - Watch.
Quando tutte le variabili e registri di nostro interesse sono visibili, si può iniziare la simulazione. Possiamo impartire il comando Step Into oppure Step Over, a seconda se si voglia entrare o meno nei sottoprogrammi. I medesimi comandi possono essere impartiti da tastiera mediante i tasti F7 o F8. Nella finestra Special Functions Registers, si può osservare come il registro W riceva il valore 00 e lo trasferisca a TRISB. Cliccando nuovamente F7, si può osservare come il registro W riceva il valore 02 e lo trasferisca a PORTB.
Secondo esempio
#include "pic.h"
void SetPort(void)
{
RP0=1;
TRISA = 0x00;
TRISB = 0xFF;
OPTION_REG = 0x80;
RP0=0;
PORTA = 0xFF;
}
void main()
{
SetPort();
while (1)
{
PORTA=PORTB;
}
}
Simulazione ingressi
Per simulare un cambio del livello logico sui piedini configurati come ingressi si apre l'interfaccio Debugger-Stimulus -New Workbook.
Per impostare un cambio di livello logico sul piedino RB0 si clicca nella colonna Asynch si seleziona il piedino RB0 e si seleziona Set High nella successiva colonna Action. Si scende di una riga, si seleziona il piedino RB0 e si seleziona Set Low.
Utilizzando il simulatore con F7 (Step into) si può osservare il cambiamento del valore di RB0 nella finestra Special Functions Registers.
Altre informazioni
Problema lancio da utenze senza diritti di amministratore
Cercare 11.1 Launch Issues su
PIKCKIT
Per programmare il PIC ci sono due modi:
1) programmare il PIC inserendolo nello zoccolo del programmatore (questo sistema comporta un usura dei pin che possono spezzarsi a lungo o medio termine)
2) usare il programmatore collegandolo al PIC tramite lo schema seguente
Altre info su
http://www.piccircuit.com/shop/7-pic-programmer
Per programmare il PIC16F84 occorre lanciare il programma PICKIT2, mentre per altri PIC si può programmare da MPLAB.