basic for pic microcontrollers author: nebojsa matic - grix.it for pic microcontrollers...  · web...

157
BASIC for PIC microcontrollers Author: Nebojsa Matic

Upload: vuxuyen

Post on 17-Nov-2018

224 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

BASIC for PIC microcontrollers Author: Nebojsa Matic

Page 2: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

In questo libro potrete trovare:    Esempi pratici di connessione per:Sensori di temperatura, convertitori AD e DA, LCD and LED displays, relè. Ogni esempio risulta dettagliatamente commentato e si accompagna allo schema completo Scrittura di programmiImparare come scrivere il vostro programma, correggere gli errori ed utilizzarlo per l’uso del microcontrollore.Set di istruzioniOgni istruzione è spiegata in dettaglio con degli esempi su come utilizzarli.MicroCode studioCome installarlo, come utilizzarlo.Pacchetto MPLAB Come installarlo, come avviare il primo programma, come collegare Basic e MPLAB etc.

Page 3: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Chapter 1

I FONDAMENTI DI PIC BASIC

Introduction

1.1 BASIC for PIC microcontrollers1.2 PIC microcontrollers1.3 First program written in PIC BASIC1.4 Writing and compilation of a BASIC program1.5 Loading a program into the microcontroller memory 1.6 Running your program1.7 Problem with starting your program (what if it doesn't work)

 

Introduzione

La sempicità con cui i linguaggi di programmazione ad alto livello, comportano nella scrittura dei programmi, ha incoraggiato alcune società ad intraprendere lo sviluppo del linguaggio BASIC. Cosa ne deriva? In primo luogo il tempo che il programmatore deve dedicare alla scrittura è di molto diminuito in relazione al fatto che i comandi BASIC implementano intere problematiche che diversamente sarebbero state risolte attraverso la scrittura di molte istruzioni in assembly. Per evitare confusioni, passiamo ad illustrare il significato di alcuni termini che incontreremo molto spesso.

Linguaggio di programmazione si intende l’insieme di comandi e di regole che caratterizzano un singolo linguaggio. Distinguiamo per questo differenti linguaggi tra cui il BASIC, C,PASCAL etc. Il linguaggio BASIC che compare in letteratura è molto esteso, ma molte delle attenzioni che dedichiamo qui a questo linguaggio, è orientato alla programmazione dei microcontrollori.

Programma consiste nella sequenza di comandi eseguiti dal microcontrollore, l’uno dopo l’altro. La struttura del programma BASIC è spiegata dettagliatamente nel secondo capitolo.

Compilatore BASIC questo programma gira sul PC ed il suo compito è quello di convertire il codice BASIC nel linguaggio di 0 ed 1 comprensibile al microcontrollore. Il processo di traslazione dal BASIC al codice eseguibile HEX è spiegato nella immagine sottostante. Il programma scritto in PIC BASIC e registrato come program.bas è convertito in codice assembler program.asm. Una volta ottenunto il programma in assembler, lo si traduce in programma eseguibile program.hex, che viene ad essere scritto nella memoria del microcontrollore.

Programmatore è una periferica che si assume il compito di trasferire il file HEX dal PC alla memoria del microcontrollore.

Page 4: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

1.1 BASIC for PIC microcontrollers

Come linguaggio di programmazione, il BASIC è stato per molto tempo dagli utenti di PC, ritenuto facile e molto diffuso. Oggi questa fama si è diffusa anche al mondo dei microcontrollori. PIC BASIC rende veloce e relativamente facile scrivere programmi per PIC micro , se confrontato al linguaggio assembly di MPASM. Durante la scrittura dei programmi, il programmatore incontra sempre gli stessi problemi quali quelli di inviare un messaggio, scrivere una variabile su un display LCD o generare un segnale PWM ecc... . Allo scopo di facilitare il compito dei programmatori, PIC-BASIC contiene una serie di comandi che incorporano la soluzione a tutti quei problemi che nella pratica si incontrano maggiormente. Rispetto alla velocità, MPASM presenta pochi vantaggi se confrontati con i vantaggi di PICBASIC, anche se esiste la possibilità di impiegare comandi assembly con comandi in PICBASIC. Di solito si scrivono in assembly quei comandi molto ripetuti o la cui esecuzione risulta critica per il corretto funzionamento del PIC. Nei moderni microcontrollori, come i PIC , l’istruzione viene eseguita utilizzando 4 cicli di clock. Se l’oscillatore del PIC è a 4 MHz (ogni singolo periodo dura 250 ns) e ogni istruzione dura 4 periodi, allora occorreranno 250x4= 1 us per eseguire ogni istruzione. Ogni comando BASIC è in effetti una sequenza di istruzioni assembler ed il tempo di esecuzione di ciascuna istruzione altro non è che la somma dei tempi di esecuzione di ciascuna delle istruzioni assembly contenute all’interno della singola istruzione in PICBASIC.

 

1.2 PIC microcontrollers

La creazione del PIC BASIC è stata seguita dal grandioso successo del BASIC stamp (piccola piastra contenente un PIC16F84 ed una eeprom seriale che compongono l’intero sistema a microcontrollore) con le sue modifiche. Il PIC BASIC rende possibile il fatto che i programmi scritti per i BASIC stamp , possano essere trasferiti nei controllori della famiglia dei PIC16xxx, PIC17Cxxx e PIC18Cxxx che sono elementi della famiglia dei microcontrollori. Grazie a PIC BASIC è possibile scrivere programmi per i PIC delle seguenti famiglie PIC12C67x, PIC14C000, PIC16C55x, PIC16C6x, PIC16C7x, PIC16x84, PIC16C9xx, PIC16F62x, PIC16C87x, PIC17Cxxx e PIC 18Cxxx. Al contrario i programmi scritti in PIC BASIC non possono girare su microcontrollori il cui stack abbia due livelli come per esempio il PIC16C5x (questo implica che con l’uso del comando CALL ogni subroutine non possa richiamarla per più di due volte ??).

Per quei controllori coi quali non ci sono compatibilità per l’uso di PIC BASIC la soluzione è quella di adottare altri microcontrollori compatibili come piedinatura ed aventi un analogo costo. Per esempio al posto del PIC 16C54 o 58 noi possiamo utilizzare i PIC16C554, 558, 620 e 622 compatibili con PIC BASIC.

Page 5: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Al momento, la scelta migliore per lo sviluppo di applicazioni con PIC BASIC, possiamo utilizzare microcontrollori della famiglia : PIC16F87x, PIC16F62X e certamente il famoso PIC16F84. Con questa famiglia di microcontrollori, la memoria programma è creata utilizzando la tecnologia FLASH che prevede una rapida velocità di cancellazione e riprogrammazione unita ad una buona possibilità nel debugging. Con un singolo click di mouse il programma nel microcontrollore può essere cancellato e riprogrammato senza rimuovere il chip dalla periferica. Inoltre il programma scritto nella memoria flash può essere mantenuto anche in assenza di tensione. I microcontrollori della vechcia serie (12C67x, 14C000, 16C55x, 16C6xx, 16C7xx and 16C92x) hanno una memoria programma creata utilizzando la tecnologia EPROM/ROM possono essere programmati una sola volta oppure sono provvisti di una finestra trasparente attraverso la quale è possibile coancellare la memoria mediante esposizione per alcuni minuti ai raggi UV (JW version with EPROM memory). La versione OTP (one time programming) è solitamente più economica ed è solitamente impiegata nella produzione di grandi serie. D’altro canto la memoria FLASH dei microcontrollori della serie PIC16F87x e PIC16F84 contengono anche 64-256 bytes di memoria interna EEPROM che può essere utilizzata per conservare dati ed altri parametri nel momento in cui viene a mancare la tensione. Nel linguaggio PIC BASIC sono previste le istruzioni READ e WRITE che sono utilizzate per la lettura e la scrittura dei dati nelle EEPROM. Per una completa informazione sugli specifici microcontrollori, occorre procurarsi il Data Sheet o il CD della Microchip.

 

Gli esempi di programmi in tutto questo libro possono girare sui microcontrollori PIC16F84 o PIC6F877, ma possono così come sono o con piccole modifiche, girare su ogni microcontrollore PIC.

 

1.3 Primo programma scritto in PIC BASIC

In relazione all’inizio della scrittura di programmi in linguaggio BASIC è necessario essere provvisti di un editor di testi. Per scrivere il codice di programma ogni editor di testo risulta adeguato. Notepad e WordPad possono andar bene. MPLAB e MICROCODEStudio possono andare bene. Le appendici A e B prevedono una breve descrizione di questi ultimi due pacchetti. 

1.4 Scrittura e compilazione di un programma BASIC.

Il primo passo è quello di scrivere il programma con uno degli editor appena elencati. Ogni singolo codice deve essere salvato in un file con estensione .BAS in codice ASCII. Un esempio di codice è dato da BLINK.BAS riportato qui di seguito.

Page 6: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Quando il programma in BASIC risulta finito e salvato con estensione .BAS è necessario a questo punto, avviare il compiatore PIC BASIC. La procedura di compilazione ha luogo in due passi consecutivi.

PASSO1 Il primo passo consiste nel convertire il file .BAS in codice assembler e salvarlo come BLINK.ASM.

PASSO2 Il secondo passo del compilatore è quello di convvertire il file blink.asm nel suo corrispondente eseguibile HEX pronto per essere caricato nella memoria del microcontrollore.

questi due passaggi sono completamente trasparenti all’utente programmatore. Nel caso vengano ad essere presenti errori, la compilazione non va a buon fine. Gli errori devono essere corretti nel file .BAS e ripetuto integralmente il processo di compilazione. Il modo migliore è quello di scrivere e verificare piccole parti del codice, piuttosto che scrivere 1000 o più linee di programma per poi andare a ricercarne gli errori. 

1.5 Caricamento del programma nella memoria del microcontrollore

Quale successo della compilazione del programma da parte di PIC BASIC i seguenti files devono essere creati.

- BLINK.ASM - file assembler - BLINK.LST – listato programma- BLINK.MAC - file con macros- BLINK.HEX – eseguibile da scrivere nella memoria del microcontrollore

Il programma con estensione HEX è quello che deve essere scritto all’interno della memoria del microcontrollore. La periferica di programmazione unita al software installato sul PC è quanto serve per portare a termine questa operazione. La periferica di programmazione è un congegno capace fisicamente di scrivere il file HEX all’interno della memoria del microcontrollore. Il software sul PC legge il file HEX e lo invia al programmatore il quale lo invia alla memoria fisica, nell’esatta collocazione della memoria da

Page 7: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

programmare. PIC BASIC genera il file HEX nel formato 8-bit merged intel hex accettato dalla maggioranza dei software di programmazione. Nella immagine seguente è presente il contenuto del file BLINK.HEX.

Oltre a caricare il programma nella memoria del microcontrollore, la periferica di programmazione assolve il compito di configurare il microcontrollore. Cui fanno parte il tipo di oscillatore, la protezione in lettura della memoria del PIC, l’avvio o l’arresto del timer watchdog ecc... La connessione tra PC , progammatore e mmicrocontrollore è mostrata qui di seguito.

Il software di programmazione è utilizzato esclusivamente per programmare la periferica e non è utilizzabile per la scrittura di codice. Per questo si usa un editor di testo oppure un cosiddetto IDE (Integrated Development Environment) per esempio, quello della Microchip si chiama MPLAB.

1.6 Avviare il vostro programma

Per un corretto funzionamento del microcontrollore, per esempio, per esempio far girare un programma è necessario alimentare il microcontrollore, dotarsi del circuito di reset e dell’oscillatore. Per alimentare il microcontrollore è sufficiente attrezzarsi con un semplice rettificatore a ponte di Gretz ed un circuito con un LM7805 come illustrato qui sotto.

Page 8: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

L’oscillatore per il microcontrollore può essere costituito da un cristallo a 4MHz con due condensatori da 22pF oppure un risonatore ceramico della stessa frequenza (Il risonatore ceramico contiene anch’esso due condensatori ma possiede tre terminali in luogo dei due presenti nel cristallo). La velocità del microcontrollore dipende essenzialmente dalla frequenza di questo oscillatore. Nel corso di questa fase di sviluppo utilizzeremo il circuito di reset implementato nel microcontrollore facendo in modo che il pin MCLR sia connesso alla tensione +5V attraverso una resistenza di 10K. Nel seguito del testo, lo schema con l’ LM7805 che fornisce la tensione stabilizzata a +5V, insieme allo schema che segue, rappresentano il sistema minimo per il funzionamento del microcontrollore PIC.

Configurazione hardware minima per il funzionamento del microcontrollore PIC

Dopo aver alimentato il circuito disposto come nella precedente figura il PIC si avvia ed il LED risulta lampeggiare una volta al secondo. Se il segnale risulta completamente assente, accertarsi che la tensiaone di +5V sia presente ai corrispondenti piedini del microcontrollore PIC.

 

1.7 Problemi con l’avviamento del programma (cause di malfunzionamenti)

I problemi frequenti che impediscono di far lavorare correttamente il PIC è quello di verificare i pochi componenti verificando che i rispettivi valori siano corrispondenti a quelli richiesti e che le connessioni dei

Page 9: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

piedini siano corrispondenti a quelli richiesti. Ci sono alcuni suggerimenti che possono venire in aiuto a tale scopo.

Passo 1. verificare se per caso il pin MCLR è connesso alla tensione di +5V sul circuito di reset o solo alla resistenza da 10K. Se il pin risulta disconnesso il suo livello logico può fluttuare e dar luogo ad un funzionamento incerto, per cui a volte non funziona. Il Chip possiede un circuito di reset per cui la resistenza di "pull-up" sul pin MCLR risulta essere sufficiente.  

Passo 2. Verificare se la connessione col circuito oscillante risulta sicuro. Di solito il circuito a 4 MHz risulta adeguato.

Passo 3. Verificare l’alimentazione. Il microcontrollore PIC consuma poca energia, ma occorre che la sua tensione di alimentazione sia livellata e filtrata adeguatamente. Per evitare che una variazioone pulsante sia presente sulla linea di alimentazione, si introduce un condensatore elettrolitico di elevata capacitù( 470 F) in corrispondenza dell’uscita dell’alimetatore.

Il PIC sovrintende alle funzioni delle periferiche, le quali, a causa dell’assorbimento di energia possono a loro volta essere causa di malfunzionamenti sulla linea di alimentazione. Per questo motivo può accadere di assistere ad un funzionamento del PIC alquanto bizzarro. nche il display a 7 segmenti può essere causa di malfunzionamenti, provocando cadute di tensione. In special modo quando tutti i led risultano accesi (la cifra 8) il circuito di alimentazione non è in grado di supplire alla richiesta di energia, come nel caso della batteria da 9 V, per esempio.

Alcuni PIC presentano dei pin multifunzionali entrata/uscita come nel caso della famiglia dei PIC16C62x (PIC16C620, 621 e 622). I microcontrollori che appartengono a questa famiglia, sono provvisti di comparatori analogici in corrispondenza della porta A. Dopo aver posto questo chip in funzione, la porta A è posta nella modalità analogica per cui non si può determinarne il funzionamento a prori. In maniera analoga, ogni microcontrollore che presenti dei pin ad ingresso analogico, in seguito all’avvio del medesimo, si ritrovano i rispettivi pin settati alla modalità analogica. Se questi pin devono essere utilizzati nella modalità digitale, allora devono essere espressamente settati a tale scopo.

Una delle possibili fonti di problemi, è il quarto piedino della porta A che presenta un comportamento singolare quando utilizzato come uscita (Perchè questo piedino è a collettore aperto in luogo del solito stato bipolare ?). Questo implica che talvolta, pur avendo assegnato ad esso il valore logico zero , questo possa per qualche motivo passare allo stato logico alto, ossia 1. Per costringere il piedino in questione, ad un comportamento corretto, una resistenza di pull-up è posta tra il piedino 4, RA4 e la tensione +5V. Il valore di questa resistenza può essere compresa tra 4.7K e 10K, in dipendenza della corrente necessaria all’ingrasso convenuto. Questo pin ha le medesime funzioni di ogni altro pin utilizzato come ingresso (Ogni pin dopo il reset si presenta come configurato con tutte uscite).

Nel lavoro con i PIC, molti problemi si presentano. Normalmente ci sono molti modi di risolvere uno stesso problema. Un differente punto di vista può condurre alla soluzione con uno stesso sforzo.

Page 10: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Chapter 2

ELEMENTI BASE DEL LINGUAGGIO PIC BASIC

Introduction

2.1 Identifiers2.2 Labels2.3 Constants2.4 Variables2.5 Sequences2.6 Modifiers2.7 Symbols2.8 Direction INCLUDE2.9 Comments2.10 Programming line with more instructions2.11 Transfer of a instruction into another line2.12 Define2.13 DISABLE2.14 ENABLE2.15 ON INTERRUPT2.16 RESUME

 

Introduzione

Il prossimo capitolo descrive gli elementi di base del PIC BASIC e le modalità del suo utilizzo per una scrittura efficiente dei programmi. E’ una capacità quella di scrivere codice leggibile ed insieme maneggevole. Il programma deve essere prima di tutto comprensibile da parte del prgrammatore stesso, oltre che dai colleghi che devono in fasi successive apportare delle modifiche. Nel seguito sarà messo in evidenza un testo scritto in modo chiaro.

Page 11: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Un uso estensivo dei commenti, simboli e label ed altri elementi supportati dal PIC BASIC, possono rendere considerevolmente chiaro e comprensibile il listato, che in un contesto di correzione o espansione da parte di successivi programmatori, possono costituire un aiuto concreto.

Allo scopo di rendere ulteriormente comprensibile il programma è consigliabile suddividere il programma in entità logiche a cui sarà possibile avere accesso mediante l’istruzione goto oppure ad un determinato punto di esso mediante l’istruzione gosub.

Label indica l’inizio di una parte di programma il cui significato è correlato al senso della parte di sottoprogramma in cui risulta posizionata.. Come per l’esempio, la label BLINK sta ad indicare quella parte di programma che determina il lampeggio dei led.

I requisiti che determinano un programma BASIC sono i seguenti:

- Identifiers- Labels- Constants- Variables- Sequences- Modifiers

Page 12: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

- Symbols- Comments- Include- DEFINE- _ (prosecuzione della istruzione nella riga successiva)- On interrupt- Disable- Enable- Resume

A prima vista sembrerebbero molti, ma in realtà pochi di essi vengono ad essere impiegati, tanto che il 90% dei programmi non se ne servono. Per motivi di completezza , comunque, essi verrano ad essere trattati comunque nelle pagine successive.

 

2.1 Identifiers

Gli Identificatori rappresentano dei nomi di alcuni elementi del PIC BASIC. Gli identificatori sono usati nel PIC BASIC per caratterizzare con dei nomi significativi, alcuni elementi. Come identificatori possono essere scelti nomi contenenti qualunque lettera o numero, a patto che questi non inizino mai con un numero. Gli identificatori non fanno distinzione tra lettere maiuscole o minuscole per cui la parola TASTER e la parola Taster sono trattate senza nessuna distinzione. La massima lunghezza di ogni stringa può essere di 32 caratteri.

 

2.2 Labels

Label rappresenta un segno testuale che indica una linea ben precisa o una porzione di programma in in corrispondenza al quale è possibile saltare durante la sua esecuzione. Questi punti rappresentano la possibilità di variazione del flusso di esecuzione da parte del programma stesso. Contrariamente alle vecchie versioni di BASIC non è possibile assegnare come label dei valori numerici.

Page 13: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

2.3 Constants

Name_constants con value_constants

Con questa dichiarazione si assegna ad un nome scelto un valore costante. Per esempio è possibile assegnare alla costante minute il valore costante 60 in modo da collegare i secondi presenti in un minuto. Ovunque scritto, come posizione, il programma interpreta la parola minute nello stesso modo con cui interpreta il valore 60. Ci sono due ragioni ben precise che giustificano tale abitudine nello scrivere i programmi in questo modo. La prima è quella che vuole la lettura del listato con un maggiore significato. Una buona corrispondenza tra i nomi dei valori ed il significato pratico che essi assumono, attribuisce maggiore funzionalità.

La costante può essere scritta indifferentemente in decimale, esadecimale o binario. Il valore decimale può essere scritto senza che sia necessario scrivere alcun prefisso. Il valore esadecimale col segno $ mentre il valore binario col segno % . Per rendere facile la programmazione, ogni lettera viene ad essere convertita nel suo corrispondente ASCII.

. ??The sign constants must be placed into the inverted comas and they contain only one letter as a rule (in adverse case they are string constants). ??

 

Page 14: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

2.4 Variables

Nome_variabile var Tipo_variabile

La variabile detiene il compito di contenere il risultato di una operazione matematica o logica. La variabile viene ad essere memorizzata nella RAM del microcontrollore, ed in tal modo il numero di variabili che può essere utilizzato dipende dalla quantità di memoria RAM a disposizione.

Di conseguenza, dei 36 byte presenti nel microcontrollore, 22 sono riservate per la memorizzazione delle variabili.

La definizione delle variabili viene attuata mediante la parola chiave var nella parte iniziale del programma. PIC BASIC prevede variabili bit, byte e word. Il tipo di variabile viene ad essere deciso in relazione al tipo di dato che essa assume lungo tutto l’arco di funzionamento del programma. Perciò la variabile tipo bit può assumere solo i valori 0 ed 1, quella byte i valori compresi tra 0 e 256, mentre il tipo word da 0 a 65535.

 

 

2.5 Sequences

Nome_sequenza var tipo_elemento [numero di elementi]

La sequenza altro non è che un vettore. La definizione delle sequenze in ordine al tipo avviene in modo simile a quella delle variabili. “Tipo_elemento” rappresenta il tipo di ciascun elemento che compone la sequenza: questo può essere bit, byte o word.

Il numero di elementi di cui si compone la sequenza è dato dal valore numerico presente all’interno delle parentesi quadre [] . Ogni elemento della sequenza è accessibile mediante l’indice. L’indice parte dal valore 0. Quando stabiliamo la dimensione della sequenza, dobbiamo tener conto del numero di locazioni disponibili nella memoria RAM. Nella tabella seguente mette in evidenza il massimo numero di elementi in relazione al tipo di dato.

The size of the sequence

Element of the sequence

Maximal number of elements

BIT 256BYTE 96*

Page 15: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

WORD 48*

* Dipende dal tipo di microcontrollore

Sequence1 var byte[10]    ' una sequenza di 10 elementi tipo

Sequence1 [0] rappresenta il primo elemento della sequenza e sequence1 [9] l’ultimo elemento della sequenza "sequence1".

Sequence2 var byte[8]    ' sequenza di 8 eleemnti tipo byte

Sequence2 [0] rappresenta il primo elemento della sequenza e sequence2 [7] l’ultimo della sequenza "sequence2".

 

2.6 Modifiers

new_name var old_name

Attraverso il modificatore è possibile attribuire un nuovo nome ad una variabile già esistente. Questa direttiva è utilizzata assai raramente ma è giusto menzionarla per completezza. Questa istruzione è definita in modo identico a come avviene per la definizione di una variabile. L’introduzione di una nuova variabile è fatta mediante la parola chiave var.

 

2.7 Symbols

symbol old_name = new_name

Symbols è una funzione che opera allo stesso modo con cui si opera la definizione di variabili. Symbols è stata introdotto per consentire che questi programmi possano essere compatibili con Basic Stamp e non possono essere utilizzati per inserire variabili.

 

2.8 Direction INCLUDE

INCLUDE "nome del file"

Page 16: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

La direttiva INCLUDE serve per introdurre nel codice una porzione di listato BASIC. In questo modo è possibile introdurre porzioni di codice che possono girare in una certa quantità di programmi. l’effetto di questa direttiva è equivalente a quello di copiare l’intero contenuto del file indirizzato dalla direttiva INCLUDE nell’esatta posizione in cui questa risulta scritta.

 

2.9 Comments

' .... Comment.... '

Lungo il programma c’è posto per commenti anche se questi appaiono evidenti. Anche se questo appare come una perdita di tempo questi possono avere in seguito un ruolo cruciale (i commenti non occupano spazio nella memoria del microcontrollore). I commenti possono dare indicazioni su come opera il programma. Commenti come “Set Pin0 to 1” spiega semplicemente la sintazzi ma non puntualizza il suo scopo. Trasmettere a se stessi delle informazioni è molto utile.

All’inizio del programma occorre scrivere cosa si propone di fare il programma, chi è l’autore , dove come e quando è stato scritto. Informazioni quale la revisione possono risultare utili. Ogni riferimento concreto sulla connessione di ogni pin è importante per capire per quale tipo di hardware è stato progettato.

 

2.10 Programmazione di una linea con più istruzioni

Page 17: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Compattezza e visualizzazione ottimale possono essere ottenute raggruppando le istruzioni in modo logico utilizzando ":". In questo modo un blocco di istruzioni pouò essere posizionato su una stessa linea, dal momento che ogni istruzione risulta separata da ":".

B2 = B0B0 = B1B1 = B2

Le tre istruzioni qui sopra possono essere scritte tutte su di una stessa linea:

B2 = B0 : B0 = B1 : B1 = B2

 

2.11 Trasferimento di una istruzione su di un’altra linea

Nel caso in cui una singola istruzione possegga un elevato numero di parametri, tanto da non stare tutta su di una singola linea, è possibile rimandarne la parte rimanente alla riga successiva ponendo il caarttere "_" alla fine della linea. Tipici esempi di istruzione sono lookuo, branch e sound

lookup KeyPress,["1","4","7","*","2","5","8","0","3","6","9","#","N"]

 

2.12 Define

DEFINE valore del parametro

Le istruzioni del linguaggio PIC BASIC hanno alcuni parametri di esecuzione, da cui dipende il modo con cui il comando viene ad essere eseguito. Questi parametri assumono un valore predefinito che appare nella maggiornaza dei casi. La frequenza dell’oscillatore ne è un esempio. Se non diversamente specificato, la frequenza dell’oscillatore è posta per default a 4 MHz. Se l’oscillatore utilizzato ha una frequanza di funzionamento differente, allora occorre specificarla mediante la direttiva DEFINE e sciverla in ogni programma che contiene istruzioni che dipendono dalla frequenza dell’oscillatore. Una di queste è l’istruzione per il trasferimento seriale. Nel caso l’istruzione DEFINE fosse omessa e l’oscillatore utilizzato fosse a 8 MHz invece che a 4 MHz, le istruzioni verrebbero eseguite con una velocità doppia rispetto a quella prevista. Per esempio, se la velocità di trasferimento fosse a 9600 bauds, avverrebbe in realtà a 19200 bauds, utilizzando l’istruzione SERIN. Allo stesso modo fissando un ritardo pari a 1000 invece di 1 secondo se ne avrebbe solo 0.5 . E’ possibile comunque correggere le istruzioni in tal senso. Nel seguito compare un elenco di direttive con le relative indicazioni d’uso.

The use of a direction DEFINE

parameter description instruction on which it acts

I2C_HOLD   1 pause 12C transfer while I2COUT, I2COUT

Page 18: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

the tact is on a low level

I2C_INTERNAL   1internal EEPROM in series 16Cexxx and 12Cxxx of the PIC microcontroller

I2COUT, I2COUT

I2C_SCLOUT   1 serial tact is a bipolar at the place of an open collector I2CWRITE, I2CREAD

I2C_SLOW   1for the tact > BMHz OSC with the devices of a standard velocity

I2CWRITE, I2CREAD

LCD_DREG   PORTD LCD data port LCDOUT, LCDINLCD_DBIT   0 Initial bit of a data 0 or 4 LCDOUT, LCDINLCD_RSREG   PORTD RS (Register select) port LCDOUT, LCDINLCD_RSBIT   4 RS (Register select) pin LCDOUT, LCDINLCD_EREG   PORTD enable port LCDOUT, LCDINLCD_EBIT   3 enable bit LCDOUT, LCDINLCD_RWREG   PORTD read/write port LCDOUT, LCDINLCD_RWBIT   2 read/write bit LCDOUT, LCDINLCD_LINES   2 No of LCD lines LCDOUT, LCDIN

LCD_INSTRUCTIONUS   2000

the time of delay of instruction in microseconds (us)

LCDOUT, LCDIN

LCD_DATAUS   50 the time of delay of data in microseconds LCDOUT, LCDIN

OSC   4tact of the oscillator in MHz: 3(3.58) 4 8 10 12 16 20 25 32 33 40

all instructions of the serial transfer and next pause

OSCCAL_1K   1setting of OSCCAL for PIC12C671/CE673 microcontrollers

 

OSCCAL_2K   1 the number of data bits  

SER2_BITS   8 the slowing of the tact of transfer SHIFTOUT, SHIFTIN

SHIFT_PAUSEUS   50 instruction LFSR in 18Cxxx microcontrollers LFSR

BUTTON_PAUSE   10   BUTTONCHAR_PACING   1000   SEROUT, SERINHSER_BAUD   2400   HSEROUT, HSERIN

Page 19: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

HSER_SPBRG   25   HSEROUT, HSERINHSER_RCSTA   90h   HSEROUT, HSERINHSRE_TXSTA   20h   HSEROUT, HSERINHSER_EVEN   1   HSEROUT, HSERINHSER_ODD   1   HSEROUT, HSERIN

Example:

2.13 DISABLE

DISABLE

Prima di avviare una procedura in cui si impiegano gli interrupts, occorre disabilitarli tutti in modo tale da impedire che possano intervenire durante l’esecuzione del medesimo. L’istruzione DISABLE impedisce l’intervento degli interrupts per cui l’istruzione DISABLE resetta il bit GIE nel registro INTCON.

 

2.14 ENABLE

ENABLE

In una procedura in cui si richiama una procedura con degli interrupts , questi devono essere interdetti nel loro intervento resettando il bit GIE del registro INTCON. Quando la procedura degli interrupt è terminata l’interdizione degli interrupts deve avere termine e questo avviene mediante l’istruzione ENABLE.

 

Page 20: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

2.15 ON INTERRUPT

On interrupt LABEL

Con l’istruzione "On interrupt" è indicata una label alla quale il programma salta quando l’evento previsto accade, i.e. per esempio dalla label dalla quale la routine di interrupts si avvia.

 

2.16 RESUME

RESUME

Ritorna dalla procedura di interruzione al programma principale.

Page 21: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Chapter 3

OPERATORI

Introduction

3.1 Expressions3.2 Instructions3.3 Arithmetical operators

3.3.1 Multiplication3.3.2 Division3.3.3 Shift3.3.4 ABS3.3.5 COS3.3.7 DIG3.3.8 MAX and MIN3.3.9 NCD3.3.10 REV3.3.11 SIN3.3.12 SQR

3.4 Bit operators3.5 The operators of comparison3.6 Logical operators

 

INTRODUZIONE

Il linguaggio PIC BASIC possiede opeatori per assegnare valori, confrontare oggetti ed una moltitudine di altre operazioni. Gli oggetti manipolati da queste operazioni , sono detti operandi. (i quali possono essere variabili o costanti). Gli operatori del linguaggio PIC BASIC devono avere almeno due operandi. Questi servono per creare istruzioni ed espressioni che assiemen alle variabili , alle costanti ed ai commenti compongono il programma.

 3.1 Expressions

Combinazioni di operazioni ed operandi sono chiamate espressioni. Le espressioni danno luogo al calcolo e forniscono un risultato o danno luogo ad altre azioni.

A = B + C' L’espressione che somma il valore delle variabili B e C e memorizza il risultato nella variabile A

Nel calcolo delle espressioni occorre riporre molta attenzione al fatto che il risultato sia compreso nei margini previsti per la variabile di destinazione. Se ciò non dovesse accadere, si verificherebbe un errore di OVERFLOW che evidenzia un errore di calcolo. Se per esempio il valore per A fosse pari a 428 e la variabile A fosse di tipo BYTE avente valori compresi tra 0 e 255 il risultato che si otterrebbe per a sarebbe 172, ovviamente sbagliato.

Page 22: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

3.2 Instructions

Ogni istruzione definisce un compito da eseguire. Di regola, le istruzioni vengono eseguite con lo stesso ordine con cui appaiono scritte nel programma. Comunque, il loro ordine può cambiare se prevede delle ramificazioni, dei salti o intervengono degli interrupts.

IF Time = 60 THEN GOTO Minute

' if A = 23 jump to label Minute

L’istruzione IF...THEN contiene una espressione condizionale Time=60 composta da due operandi, la variabile Time , la costante 60 e l’operatore di confronto (=). L’istruzione in PIC BASIC può distinguersi in istruzione di scelata ,choice (prendere una decisione) ripetizione (loops), salto jump e specifiche istruzioni di accesso alle periferiche del microcontrollore. Ogniuna di queste istruzioni è dettagliatamente spiegata nel capitolo 4.

Gli operatori sono numerosi, ma per il 90% dei programmi da scrivere , risultano necessarie le conoscenze di pochi di essi. E’ sufficiente osservare quanti pochi di essi sono impiegati negli esempi che compaiono nei capitoli 5, 6 e 7.

 

Dal tipo di operazioni che essi assolvono, possono essere classificati nelle seguenti categorie:

- Operatori aritmetici - Operatori sui bit- Operatori di confronto - Operatori logici

 

3.3 Arithmetic operators

Tutti gli operatori aritmetici operano con 16 bit di precisione , senza segno in modo tale da assumere valori compresi tra 0 e 65535. Per raggruppare le operazioni vengono usate le pareti.

A = (B + C) * (D - E)

Nella seguente tabella sono elencate tutte le operaioni supportate.

Operator Description

Operator Description Operator Description

Page 23: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

+ summation ABS absolute value of a number

- subtraction COS cosine of an angle* multiplication DCD bit decoding

** the result is in higher 16 bits DIG value of the digit for a decimal number

*/ the result is in middle 16 bits MAX maximum of a number/ division MIN minimum of a number// remainder NCD priority coding

<< left shift REV bit reversing>> right shift SIN sine of an angle= assignment of value SQR square root of a number

 

3.3.1 Multiplication

Syntax: L0 = W1 * 100L1 = W1 ** W2L2 = W1 */ W2

Description:

PIC BASIC pro non supporta operandi a 32 bit. E’ consuetudine trattare una variabile a 32 bit mediante due variabili a 16 but. Operator '*' reverts lower 16 bits of a 32-bit result. Operator '**' reverts higher 16 bits of a 32-bit result. These two operators can be used in a combined way for computing 16x16 multiplications in order to produce 32-bit results.

Example:

 

Page 24: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

3.3.2 Division

Syntax: W0 = W1 / 100 divisione classicaW2 = W1 // 100 W1 viene diviso per 100 ed il resto della divisione memorizzato in W2.

Description:

As it is the case with multiplication, the operation of division is done over the 16 bit operands. Operator '/' reverts 16-bit integer result while the operator '//' reverts the remainder.

Example:

 

3.3.3 Shift

Syntax: W0 = W0 << 3W0 = W0 >> 1

Description:

L’operatore di shift attua lo scorrimento a destra o a sinistra da 0 a 15 volte. Tutti i bit che si fanno strada dai lati, valgono 0. Entrambi questi operatori agiscono sui bits.

Example:

 

3.3.4 Valore assoluto di un numero

Syntax: B0 = ABS B1

Page 25: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Description:

ABS fornisce il valore assoluto del suo argomento. Se ABS viene applicato ad una variabile tipo BYTE più grande di 127 (set MSB) il risultato è 256. Se ABS viene applicata ad una variabile tipo WORD più grande di 32767 (the bit set is of the biggest weight - MSB) il risultato è 65536.

Example:

 

3.3.5 Coseno di un angolo

Sintassi: B0 = COS B1Descrizione: COS restituisce il valore ad 8 bit del coseno. Il risultato è in

complemento (i.e. compreso nell’intervallo tra -127 e 127). Per questa ragione è necessario utilizzare la tabella lookup per determinare il risultato (la funzione coseno di un angolo in binario varia da 0 a 255 piuttosto che tra 0 e 359 gradi).

Esempio:

 

3.3.6 The decoded bit value

Sintassi: B0 = DCD NDescrizione: DCD fornisce il valore decodificato binario, dell’argomento che deve

Page 26: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

essere compreso tra 0 e 15. Se il valore dell’argomento è zero, il bit posto alla zersima posizione viene posto pari ad 1. Analogamente se l’argomento è pari a 7 allora la settima posizione di B0 viene occupata da un 1. Tutti gli altri posti sono occupati da 0.

Example:

 

3.3.7 DIG Il valore della cifra nella posizione decimale

Sintassi: W = W1 DIG NDescrizione: DIG fornisce il valore della cifra del numero decimale. Il numero

osservato può essere da 0 a 3 dove per 0 si intende la posizione più a destra della cifra, ossia la cifra di peso minore (è utilizzato per lavorare con i display a 7 segmenti per l’estrazione delle cifre da visualizzare).

Esempio:

 

3.3.8 MAX e MIN Massimo e MinimoMaximum and Minimum of a number

Syntax: B0 = B1 MAX 100B0 = B1 MIN 100

Description:

L’operatore MAX e MIN servono per livellare un valore contenuto all’interno di una variabile. Per capirci, se B0 è minore di 100 nella istruzione “B0 = B1 MAX 100” non succede nulla, se vale per esempio 121 esso B0 viene posto a 100. In modo analogo per “B0 = B1 MIN100” se B0 vale 44 viene posto a 100, se B0=120 allora viene lasciato tal quale. La differenza tra gli operatori "bigger then" e "less

Page 27: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

then" da MIN e MAX è che questi si limitano a fare una operazione di confronto.

Example:

 

3.3.9 NCD Codifica di priorità

Syntax: B0 = NCD %01001000B0 = NCD %00001111

Description:

NCD fornisce per un numero binario, la posizione del bit pari ad 1, più significativo. Se l’operando è 0 allora il risultato è 0. Per questo operatore la numerazione posizionale va da 1 a 8.

Example:

 

3.3.10 REV Reverting of the lowest bits of the operand

Syntax: B0 = %10101100 REV 4Description:

REV inverte i bit a partire dal meno significativo per un numero di posizioni pari all’argomento di REV . Nell’esempio l’istruzione indica di invertire i bit relativi alle prime 4 posizioni. Il numero di bit che possono essere invertiti va da 1 a 16.

Page 28: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Example:

 

3.3.11 SIN Seno di un angolo

Syntax: B0 = SIN B1Description:

SIN restituisce il valore ad 8 bit del seno. Il risultato è in complemento (i.e. compreso nell’intervallo tra -127 e 127). Per questa ragione è necessario utilizzare la tabella lookup per determinare il risultato (la funzione coseno di un angolo in binario varia da 0 a 255 piuttosto che tra 0 e 359 gradi).

Example:

 

3.3.12 SQR Square root

Syntax: B0 = SQR W1Description:

SQR restituisce il valore della radice quadrata. Il risultato viene ad essere memorizzato in una variabile di tipo BYTE.

Page 29: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Example:

 

3.4 Operatori sui Bit

Una delle ulteriori importanti capacità di un linguaggio di alto livello è la possibilità di accedere ad operazioni di basso livello per esempio il linguaggio assembler. Gli operatori sui Bit forniscono accesso ai registri ed alla memoria del microcontrollore a livello del singolo Bit. Gli operatori supportati da PIC BASIC sono quelli riportati dalla seguente tabella:

Bit operators

Operator Description

& Logical AND over the bits| Logical OR over the bits^ Logical XOR over the bits~ Logical NOT over the bits&/ Logical NAND over the bits|/ Logical NOR over the bits^/ Logical NXOR over the bits

Il risultato della espressione dipende dagli operandi.

Example1:

B0 = B0 & %00000001

L’istruzione qui sopra estrae il valore del bit più basso nella variabile B0. Quando l’’operazione logica AND viene fatta con un argometo nullo allora tutte le posizioni 1-7 sono poste pari a zero. Nell’esempio sopra, il contenuto di B0 è di tipo byte con il primo bit par ad uno se era 1 e pari a 0 se era 0.

Example2:

B0 = B0 | %00000100

Page 30: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

L’istruzione qui sopra setta il bit 2 nella variabile B0. Quando l’operazione logica "or" lavora con l’unità il risultato è sempre "1" in relazione allo stato corrispondente del bit di B0.

Example 3: ???

B0 = B0 & %00000010

The upper instruction inverts the bit 1 in variable B0. If the bit was "1" then it turns into "0" and vice versa. Gli altri operatori logici sono utilizzati raramente per cui non sono necessarie ulteriori dettagliate spiegazioni.

 

3.5 Le operazioni di confronto

Queste operazioni di confronto danno come risultato dell’operazione tra i due operandi, il risultato vero o falso. Se l’operazione di confronto fornisce come risultato true allora si prosegue con l’esecuzione della corrente istruzione, altrimenti il programma passa all’istruzione successiva. Gli operatori di confronto sono elencati nella sottostante tabella:

Operators of comparison

Operator Description

= or == equal<> or !=| not equal

< less then> bigger then

<= less then or equal>= bigger then or equal

Questi operatori sono quasi sempre utilizzati per esaminare delle condizioni come IF...THEN.

Esempio:

If Seconds = 60 then minutes = minutes + 1Seconds = Seconds + 1

Se la variabile " Seconds" è uguale a 60 la condizione di confronto risulta true e l’istruzione "Minutes=Minutes+1" può essere eseguita. Se diversamente l’espressione risulta not true allora l’istruzione "Seconds=Seconds+1" viene ad essere eseguita.

 

3.6 Operatori logici

Gli operatori logici servono per le operazioni sulle variabili, e possono fornire solo due possibili valori 0 oppure 1. Questi valori possono essere interpretati come se la condizione

Page 31: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

sia pienamente soddisfatta se corrisponde lo stato logico 1 e non verificata se il corrispondente stato logico è pari a "0". Essi sono utilizzati in modo simile agli operatori logici e si accompagnano all’uso della istruzione IF...THEN. a lista degli operatori logici è illustrata nella tabella sottostante.

Logical operators

Operator Description

AND or && Logical ANDOR or || Logical OR

XOR or ^^ Logical XORNOT Logical NOT

NOT AND Logical NANDNOT OR Logical NOR

NOT XOR Logical NXOR

Example1:

If A Or B THEN GOTO Lab

Se la condizione risulta soddisfatta , per esempio se almeno A oppure B vale 1 l’esecuzione del programma salta alla label lab.

Example2:

IF (Seconds>59) And (Minutes>59) THEN Hours=Hours+1

La condizione logica and richiede che entrambe le condizioni riportate tra parentesi siano verificate affinchè possa essere eseguita l’istruzione che segue a then .

Page 32: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Chapter 5

Esempi di programmi per sottosistemi interni al microcontrollore

 

Introduction

5.1 Using the interrupt mechanism5.2 Using the internal AD converter5.3 Using the TMR0 timer5.4 Using the TMR1 timer5.5 Using the PWM subsystem5.6 Using the hardware UART subsystem (RS-232 communication)

 

Introduzione

Ogni microcontrollore risulta supportato internamente da alcuni sottosistemi in esso integrati, questi includono il timer il meccanismo degli interrupts ed il convertitore AD (analogico/digitale). Più potenti microcontrollori possono gestire molti sottosistemi integrati. Alcuni di quelli più frequentemente presenti, li incontreremo in dettaglio in questo capitolo. 

5.1 Utilizzo del meccanismo degli interrupts

Il meccanismo degli interrupts consente al microcontrollore di intervenire immediatamente ad un eventocome : TMR0 contatore overflow, cambio di stato sul pin RB0/INT, dati ricevuti dalla comunicazione seriale, etc. Con grandi microcontrollori il numero degli interrupts è ancora maggiore. Di consueto il microcontrollore esegue il programma principale senza che intervengano delle interruzioni da parte degli interrupts. Quando un interrupts interviene, si stoppa il programma principale e viene ad essere gestito l’interrupts mediante una porzione di codice. Una analisi sulla causa dell’avvenuta interruzione è necessaria da parte del microcontrollore PIC dal momento che esso interviene per ognuna delle cause predette.

Page 33: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Il tasto T è connesso con l’imput esterno dell’interrupt INT (pin RB0/INT) in modo tale che agendo su di esso si verifica un evento INTERRUPT. Per visualizzare l’evento causato all’interrupt , il LED è connesso ai pins RB6 ed RB7. Il led_run , collegato al pin RB7 indica che il programma è in esecuzione, fino a quando il led_ini non segnala l’evento interrupt causato dalla pressione sul tasto T. Le seguenti istruzioni sono state usate nel programma PIC BASIC , che contiene anche la routine di gestione dell’interrupt:

      On Interrupt goto  Address    Definisce il vettore interrupt (indirizzo della routine dell’interrupt)

      Disable                               Disabilita l’interrupt

      Enable                                Abilita l’interrupt

      Resume                              Ritorna al programma principale dopo aver gestito l’evento

Il seguente esempio dimostra l’uso dell’interrupt esterno INT collocato sul pin RB0. Allo stesso tempo il programma fornisce un esempio di come vengono gestite differenti cause di interrupt.

Page 34: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 35: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Il programma che gestisce degli interrupt deve avere una parte principale main loop (program) e delle routines di interrupt. La parte principale del programma lascia il diodo LED_run acceso ed il diodo LED_int spento. Mediante la pressione sul pulsante T si causa l’intervento dell’interrupt ed il microcontrollore si ferma nell’esecuzione del programma principale ed esegue la routine ISR indicata dalla istruzione On interrupt.

All’inizio della routine dell’interrupt è presente l’istruzione Disable. Questa istruzione disabilita l’intervento degli interrupt fino a quando non risulti gestito l’evento intervenuto. La routine ISR analizza in primo luogo l’interrupt verificando i bits (flags) posti ad "1" associati all’istruzione if...then, perchè possono essere differenti le cause di intervento dell’interrupt. Nel nostro caso un interrupt esterno ha luogo  (lo stato del pin RB0/INT cambia) e per quuesto il bit INTF nel registro INTCON è settato per cui il microcontrollore continua l’esecuzione del programma a partire dalla label INTF . La parte di programma che segue la label INTF manipola l’interrupt e resetta lo stato del bit INTF per abilitare nuovamente gli interrupts. In questo caso manipolare l’interrupt esterno INT muta lo stato dei led LED_int e LED_run :  si spegne il led LED_run e avvende il led LED_int per un periodo di mezzo secondo. Dopo INTF risulta resettato ed il programma nel microcontrollore prosegue l’esecuzione del progremma dalla label Exit_ISR dove gli interrupts vengono nuovamente abilitati (istruzione Enable) ed il microcontrollore riprende ad eseguire il programma principale (istruzione Resume).

Perchè utilizzare interrupts dappertutto? In una situazione in cui il microcontrollore deve rispondere ad un evento indipendentemente dal programma, è agevole utilizzare gli interrupt. Può essere che uno dei migliori esempi sia quello relativo alla gestione multiplexing di un display a 7 segmenti. Se il codice di multiplexaggio è una parte di una routine collegata all’interrupt del timer, il programma principale risulta essere molto meno pesante nel girare, dal momento che il refresh del display può avvenire in background rispetto al programma principale.

 

 

 

5.2 Utilizzo del convertitore interno AD

Alcuni microcontrollori possiedono a livello di implementazione, un convertitore analogico-digitale (abbreviazione ADC). Di solito questi tipi di convertitori non eccedono gli 8 o 10 bit di risoluzione ed una sensitività al segnale di 19.5mV con 8 bit di risoluzione e 4.8mV con 10 bit di risoluzione (si assume per default una tensione utilizzata di 5 V).

Semplicemente, la conversione AD utilizza una risoluzione di 8 bit ed una tensione di riferimento di 5 V della tensione di alimentazione, (valore col quale il valore "read" dal pin del microcontrollore viene ad essere comparato). Nel seguente esempio noi misuriamo la tensione sul piedino RA0 che risulta collegato al potenziometro (Immagine sottostante).

 

Page 36: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Il potenziometro fornisce 0V in corrispondenza di un terminale e 5V in corrispondenza dell’altro, affinchè la tensione digitalizzata possa assumere valori compresi da 0 a 255 dal momento che si sta utilizzando una conversione ad 8 bit. Il seguente programma legge la tensione sul pin RA0 e lo visualizza in corrispondenza dei diodi sulla port B. Se nessun diodo risulta acceso, il risultato è zero, mentre se tutti risultano accesi allora risulta un 255.  

Page 37: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Prima di tutto occorre inizializzare adeguatamente due bit di registro : ADCON1 e ADCON0. In seguito è richiesto solo di settare il bit ADCON0.2 che inizializza la conversione e verifica ADCON0.2 per determinare se la conversione risulta terminata. Terminata la conversione il risultato viene ad essere memorizzato in ADRESH e ADRESL da dove possono essere copiati. Il precedente esempio può essere fatto anche utilizzando l’istruzione ADCIN. L’esempio successivo utilizza 10 bit di risoluzione e l’istruzione ADCIN.

 

Page 38: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Per visualizzare tutto il risultato a 10 bit può essere utilizzato un LCD. Lo schema è quello della immagine che segue, oltre ad un appropriato programma.

 

Page 39: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Page 40: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

5.3 Utilizzo del timer TMR0

TMR0 è un timer ad 8 bit che ha un campo di lavoro di 255. Supponendo di utilizzare un oscillatore a 4 MHz, Il periodo di TMR0 può ricadere nell’intervallo 0-256 microsecondi (con una frequenza di 4MHz TMR0 si incrementa di un microsecondo). Se si utilizza il prescaler, allora tale periodo può essere prolungato, perchè il

Page 41: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

prescaler suddivide il clock per un certo rapporto (Il settaggio del prescaler avviene mediante il registro in OPTION_REG).

Il seguente programma illustra l’uso del timer TMR0 per generare un periodo di 1 secondo. Il prescaler è settato a 32, per questo il clock interno è diviso per 32 e TMR0 si incrementa ogni 31 microsecondi. Se TMR0 è inizializzato a 96, l’overflow accade in (256-96)*31 us = 5 ms. Se la variabile "Brojac" si incremento ogni volta che l’interrupt ha luogo, noi possiamo misurare il tempo in accordo con la variabile "Brojac". Se "Brojac" è settata a 200 , il tempo è in totale pari a 200*5 ms = 1 secondo.

Prima della label “Main” nel programma, occorre abilitare l’interrupt TMR0 (bit 2) ed il bit GIE (bit 7) nel registro INTCON che deve essere abilitato.

 

 

Page 42: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

5.4 Using the TMR1 timer

Diversamente da TMR0, TMR1 è a 16 bit e possiede una ampiezza fino a 65536. Supponendo di utilizzare un oscillatore a 4 MHz, Il periodo di tempo misurato da TMR1 ricade in un intervallo compreso tra 0-65536 microsecondi (con una frequenza di 4MHz ,TMR01 incrementa di un microsecondo). Se si utilizza il prescaler, questo periodo può essere prolungato, dal momento che il prescaler divide la velocità del clock per un certo rapporto (il settaggio del prescaler avviene settando il registro T1CON).

Prima del programma principale, TMR1 deve essere abilitato settando il bit a zero nel registroT1CON. Oltre a questo, il primo bit del registro va settato a zero, definendo per questo il clock interno TMR1.

Inoltre T1CON, altri importanti registri per lavorare con TMR1 sono PIR1 e PIE1. Il primo contiene il flag di overflow (il bit zero) e gli altri sono usati per abilitare l’interrupt TMR1 (bit zero).

Quando è abilitato l’interrupt TMR1 ed i suoi flag resettati, quello che resta da fare è abilitare l’interrupt globale (bit 7) e l’interrupt delle periferiche (bit 6) nel registro INTCON.

Il seguente programma illustra l’uso che si fa del registro per generare un periodo di lunghezza di 10 secondi. Il prescaler è settato a 00 per cui non si ha divisione del clock interno e l’overflow interviene ogni 65.536 ms. Se la variabile "Brojac" è incrementata ogni volta interviene l’interrupt, noi possiamo misurare un minuto in accordo con la variabile "Brojac". Se la variabile "Brojac" è settata a 152 il tempo totale diventa di 152*65.536 ms = 9.960 secondi.

 

Page 43: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

5.5 Utilizzo del sottosistema PWM

I microcontrollori della sirie PIC16F87X possiedono uno o due uscite PWM implementate (quelli con 40 pin ne hanno 2, mentre quelli con 28 pin ne hanno 1). Le uscite PWM sono posizionate sui piedini RC1 ed RC2 nel caso dei microcontrollori a 40 pin e sul pin RC2 nel caso dei microcontrollori a 28 pin. Le istruzioni HPWM semplificano enormemente l’uso del PWM. Ci sono solo 3 parametri da settare :

 

PWM Channel :     definisce in che modo il canale PWM è utilizzato;

Page 44: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

"1" definisce il canale (Channel) sul pin RC1, mentre "2"  definisce il cnale sul pin RC2.

Ratio_S_P :         definisce il rapporto tra stato spento ed acceso sul pin. "0" definsce lo stato off (spento) in modo continuo, mentre "255" definisce uno stato continuo di accensione. Tutti i valori compresi in questo intervallo definisce un rapporto consentito tra lo stato ON ed OFF del segnale sul pin. (per esempio "127" comporta un 50% del tempo a 0V ed il restante 50% del tempo a 5V misurati sul pin di uscita).

Frequency :         definisce la frequenza del segnale PWM. Il massimo della frequenza per ogni oscillazione è di 32767Hz.

L’esempio seguente dimostra l’uso del PWM per ottenere una variazione dell’intensità di luce del diodo LED connesso al pin RC1 (canale 0 del PWM). Il parametro di variazione del rapporto ON/OFF subisce una variazione continua nel loop for...next ed assume valori compresi tra 0 e 255, da cui risulta un continuo incremento della intensità luminosa del diodo LED. Dopo aver raggiunto il valore 255, il processo ricomincia nuovamente.

 

 

Page 45: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

5.6 Utilisso del sottosistema hardware UART (comunicazione RS-232)

Un modo semplice per trasferire dati tra un microcontrollore ed un’altra periferica (i.e. un PC oppure un altro microcontrollore) è l’interfaccia di comunicazione RS-232. E’ la comunicazione seriale asincrona a 2 linee (Tx per la trasmissione ed Rx per la ricezione) per il trasferimento dati fino a 10 metri.

Questo esempio espone un modo di trasferire dati tra un microcontrollore ed un PC posti in connessione mediante una linea di interfaccia RS-232 (MAX232) che ha il compito di adattare il livello dei segnali lato microcontrollore (il suo compito è quello di convertire il segnale della RS-232 di +/- 10V al livello TTL di 0-5V e vice versa). Il microcontrollore può riuscire nella comunicazione con la linea seriale RS-232 mediante l’hardware UART (Universal Asynchronous Receiver Transmitter) che è parte integrante dei microcontrollori PIC16F87X.

 

 

l’hardware UART implementa speciali registri per ricevere e trasmettere dati come pure un generatore di BAUD RATE che determina la velocità di trasferimento dati.

Il programma sottostante illustra l’uso dell’hardware seriale per la comunicazione (la comunicazione seriale basata via software può essere indirizzata su ogni coppia di pin del microcontrollore). Il dato ricevuto dal PC viene ad essere memorizzato nella variabile B0 ed inviata indietro al PC come conferma del successo al trasferimento dati. In questo modo è facile verificare se la comunicazione lavora correttamente. Il formato di trasferimento è 8N1 e la velocità di trasferimento è a 2400 baud.

Allo scopo di realizzare la comunicazione, il PC deve essere fornito di un software di comunicazione. Un simile programma è parte di MicroCode studio. Si può avere accesso cliccando su View e poi su Serial Communication Window. Una nuova finestra appare, sulla quale risulta possibile settare i parametri della

Page 46: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

comunicazione. In primo luogo occorre settare la velocità di trasferimento cliccando Baudrate sulla sinistra della finestra (settarla a 2400, dal momento che il microcontrollore risulta settato in questo modo). La porta di comunicazione è scelta tra le 4 disponibili in dipendenza di quella connessa al cavo seriale.

In seguito al settaggio , cliccare Connect per avviare la comnicazione. Scrivete il vostro messaggio e cliccate Send Message – il messaggio è inviato al microcontrollore e ritorno dove viene visualizzato sullo schermo.

 

Page 47: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Chapter 6

ESEMPI CON IL MICROCONTROLLORE PIC16F84

Introduction

6.1 LED diode6.2 Button6.3 Generating sound6.4 Potentiometer6.5 Seven-segment displays6.6 Step motor6.7 Input shift register6.8 Output shift register6.9 Software serial communication6.10 Building light control 

 

Introduzione

Questo capitolo spiega dettagliatamente degli esempi di connessione di un PIC16F84 con delle periferiche esterne e della scrittura di un software adatto in BASIC. Tutti gli esempi contengono lo schema delle connsessioni elettriche il programma con i commenti e le spiegazioni. E’ possibile copiare direttamente gli esempi dal presente testo o scaricarli dal sito www.mikroelektronika.co.yu .

 

6.1 Diodo LED

Uno dei pomponenti più utilizzati in elettronica è senz’altro il diodo LED (LED sta per Light Emitting Diode). Alcuni elementi che caratterizzano i diodi LED sono :  dimensione, forma, colore, tensione di funzionamento(voltaggio del Diodo Ud) e corrente elettrica Id. Il diodo LED può avere forma arrotondata , rettangolare, e triangolare ed inoltre i costruttori possono fornirli della forma richiesta su ordinazione. La dimensione varia da 3 a 12 mm, dimensioni di 3 o 5 mm sono i più comunemente utilizzati. Il colore di emissione può essere rosso, giallo, verde, arancio , blu ecc... La tensione di lavoro varia a seconda del colore: per il rosso è 1.7V , per il verde 2.1V e per quello arancio 2.3 V. Il livello di tensione dipende anche dal fabbricante. Una corrente consueta Id che attraversa il diodo è di 10 mA, anche se può raggiungere al massimo i 25 mA. Un elevato consumo comporta problemi di alimentazione con batteria, per cui si utilizzano diodi aventi correnti di funzionamento basse, dell’ordine di Id= 1-2 mA. Per i diodi di elevata potenza è necessario provvedere ad una corretta connessione allo scopo di evitare che si danneggi.

 

Page 48: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Il polo positivo è connesso all’ANODO (+), mentre la massa è connessa al CATODO (-). Per differenziare i due poli , il catodo è segnalato da una tacca e dal fatto di avere il corrispondente piedino più corto. Il diodo emette luce a condizione che la corrente fluisca nella direzione che va dall’anodo al catodo; diversamente non si ha passaggio di corrente. Una resistenza è collocata in serie al LED ed ha lo scopodi limitare la massima corrente che attraversa il diodo proteggendolo dalla possibilità di danneggiarsi. Il valore della resistenza può essere calcolato mediante la formula che compare nella immagine sopra, dove Ur rappresenta la tensione sul resistore. Per una tensione di 5 V ed una corrente di 10 mA la resistenza necessaria risulta essere di 330 Ώ.

Il diodo LED diode può essere acceso mediante il microcontrollore, attraverso due modalità, qui sotto illustrate. Una è quella di accensione in cui il pin connesso al diodo viene portato alla condizione logica 1 in cui assume un potenziale di 5V, mentre nell’altra il diodo si accende quando la condizione logica del pin cui risulta collegato il LED viene portato alla condizione logica 0 corrispondente a 0 V. La prima soluzione è frequente e la corrente di accensione sia fornita dal microcontrollore. La seconda soluzione è prevista pe diodi aventi una elevata corrente di lavoro.

Page 49: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Il seguente esempio utilizza le istruzioni High, Low e Pause per accendere e spegnere i LED connessi agli 8 piedini della port B, ogni mezzo secondo.

 

 

Page 50: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

6.2 Pulsante

Il pulsante è un componente meccanico che connette o disconnette due punti A e B attraverso un contatto. Come funzione il contatto può risultare normalmente aperto o normalmente chiuso.

 

Premendo su di un pulsante normalmente aperto, i contatti A e B si chiudono, mentre premendo su di un pulsante normalmente chiuso, questo vede aprirsi i propri contatti A e B.

I pulsanti possono essere connessi al microcontrollore in due modi:

Nle primo caso, il pulsante è connesso in modo tale che l’1 logico (+5V) persiste sul pin di input del microcontrollore quando il pulsante non risulta premuto. Il resistore posto tra pulsante e tensione di alimentazione ha il compito di mantenere lo stato logico 1 in caso di tasto non premuto. Questo è necessario per evitare che lo stato di input del pin possa essere interpretato male.

 

 

Page 51: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Quando il pulsante è stato premuto, il pin di input è cortocircuitato a massa (0V). La tensione cade da 0V a 5V. Questo cambiamento è interpretato dal programma come l’evento di azione sul pulsante, eseguendo la parte di programma prevista (per esempio l’accensione di un led). Questo modo di definire lo stato dei pin avviene definendo il ruolo dei resistori come "pull-up", associandoli alla persistenza dello stato logico 1 come livello.

In altri casi, il tasto è connesso in modo tale che il livello logico zero risulti sul pin di input. Ora il resistore si trova tra il pin di input (RA3) ed il livello logico zero (massa), in modo tale che premendo il tasto si conduce il pin di ingresso, al livello logico 1 (ossia + 5V). La tensione si porta perciò da 0V a +5V. Il programma del microcontrollore risente del cambiamenoto ed esegue la parte specifica del programma previsto. Questo modo di definire lo stato logico di un pin è detto “ con resistenza di pull-down”, la cui linea a riposo è forzata al livello logico zero, essendo connessa alla massa.

 

Comunemente, un altro modo di connettere un tasto è mediante l’uso di una resistenza di pull-up, in modo tale che la pressione sul pulsante conduca il pin di ingresso, dallo stato logico 1 allo stato logico 0. La seguente immagine illustra due tasti connessi al microcontrollore, facenti uso delle resistenze di pull-up.

 

Page 52: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Un problema che si verifica con l’uso dei tasti è l’effetto di rimbalzo del contatto nell’istante in cui viene ad essere premuto il tasto. Il rimbalzo è una conseguenza del contatto e dipende grandemente dal tipo di tasto.

Uno dei modi di risolvere il problema del rimbalzo del contatto è fornito dalla seguente parte di codice :

 

 

Premendo il pulsante Button0 si causa il salto all’indirizzo Wait0 dove persiste nel ciclo di loop fino al rilascio del pulsante (questo comporta che il pulsante possa essere parte attiva di una sola azione , nel periodo in cui risulta premuto). Quando il pulsante  Button0 viene rilasciato, il programma continua la sua esecuzione, incrementando di 1 la variabile W, come previsto. Azionando il Button1 si verifica un analogo procedimento, ad eccezione del fatto che in questo caso la variabile W viene ad essere decrementata di una unità.

Un problema si verifica se un interrupt o un’altra causa, determina l’interruzione del programma, per via del fatto che alla pressione dei tasti, il programma possa trovarsi ad eseguire ancora le routines Wait0 o Wait1. Questo può causare problemi nel caso il tasto venga nuovamente premuto.

Nel seguente programma per leggere lo stato dei pulsanti, l’istruzione BASIC Button è utilizzata per eliminare il problema del rimbalzo del contatto.

Il programma legge lo stato dei pulsanti T0 e T1 che sono connessi ai pins pins RA0 e RA1, rispettivamente. Azionando il tasto 0 si esegue la parte di programma che accende il LED connesso al pin RB0. Azionando il tasto 1 si esegue la parte di programma che spegne il LED connesso allo stesso pin. La citata istruzione è tra quelle più complesse del linguaggio di programmazione BASIC. D’altro canto solo pochi argomenti devono essere definiti, come quello per definire il ritardo per la interpretazione dello stato del pulsante (terzo argomento), che devono essere decisi in relazione al tipo di costruzione meccanica del tasto. Fermo restando il fatto che una soluzione largamente auspicabile sia quella che preveda il massimo valore, per l’ultimo parametro citato, dato l’enorme divario tra velocità di esecuzione umana e quello relativo ai tempi di risposta dei microcontrollori.

Page 53: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 54: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

6.3 Generare suoni

Talvolta capita di dover segnalare con suoni, oltre che con metodi visuali mediante accensione di LED. Il seguente esempio indica come generare un segnale sonoro utilizzando un mini speaker ed una istruzione BASIC, Sound.

 

 

I tasti sono connessi ai pin RA0, RA1 e RA2. Premendo uno di questi , si provoca l’esecuzione di una parte di codice che invia un impulso monotono oppure una melodia, allo speaker, connesso al pin RA3. Una serie di istruzioni Sound accompagnate da differenti parametri, da luogo alla esecuzione di vere e proprie melodie.

Nel seguente programma , mediante la pressione sul tasto T0, viene ad essere eseguito un suono monotono sul mini speaker, mentre azionando il tasto T1 e T2 si eseguono due differenti melodie udibili sullo speaker.

 

Page 55: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 56: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

6.4 Potenziometro

Allo scopo di misurare e visualizzare un valore analogio, oltre al microcontrollore occorre avere un convertitore AD. Questa può essere una soluzione dispendiosa se sono richieste delle misure poco precise, come per esempio la misura della tensione su di un potenziometro. Per questa ragione PIC BASIC costituisce l’istruzione POT per essere utilizzata sul microcontrollore senza aver bisogno del convertitore AD.

 

 

Con l’accoppiamento RC costituito da un potenziometro avente una resistenza tipica che varia da 5 a 50 kOhm ed una capacità di 100 nF , sono connessi al piedino RA0. La lettura del potenziometro è basata sul tempo di carica e scarica del condensatore. Misurando su di una scala che va da 0 a 255 se si è in presenza di un convertitore AD ad 8 bit. 

Il seguente programma legge il valore del potenziometro su un intervallo 0-255 e lo visualizza sui LED connessi alla port B.

 

Page 57: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

6.5 Display a 7 segmenti

Uno dei modi più utilizzati per la comunicazione tra microcontrollore e persone è certamente la comunicazione visuale. La forma più semplice è quella costituita dal singolo LED, d’altro ocanto il display a 7 segmenti rappresenta una modalità di comunicazione visuale oltremodo avanzata. Il nome deriva dai 7 diodi (ce n’è un ottavo come punto) adattati per ottenere la rappresentazione delle cifre da 0 a 9. Una rappresentazione del display è presente nella immagine sottostante.

Page 58: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Un display a 7 segmenti ha una forma costruttiva ottimale oltre ad avere una visibilità simile a quella dei LED, possiedono la caratteristica di essere molto diffusi a livello di applicazioni industriali. Essi assolvono a molti requisiti oltre a quello economico. Una semplice applicazione li impiega per la visualizzazione di una grandezza proveniente da sensori. 

 

 

 

Uno dei modi per connettere un display a 7 segmenti è quello rappresentato nell’immagine sopra. Il sistema è disposto in modo tale da avere il catodo comune. Accade che questi segmenti emettano luce quando sono condotti allo stato logico 1 , oltre al fatto che il catodo comune a ciascuna cifra, che è connesso ad un transistor, il quale deve essere posto in conduzione come illustrato in figura. Se il transistor si trova in conduzione ogni segmento che si trova allo stato logico 1 , emette luce, altrimenti, nessun segmento può emettere luce, in relazione allo stato del suo pin.

Page 59: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Se utilizziamo lo schema relativo alla immagine precedente, una delle modalità per realizzare il display in BASIC può essere quello relativo al programma seguente: 

 

Le variabili LEDDisp1 e LEDDisp2 sono attualmente i pin 1 e 2 della port A, a cui le BASI dei transistor T1 e T2 sono connessi. Settare al livello logico 1 questi pin, vuol dire porre in conduzione i transistor, abilitando ogni segmento da quello “a” ad “h”, che con un livello logico 1 o zero su ciascuno , possono emettere luce o meno in relazione allo stato del relativo pin. Se risulta uno stato logico 0 in corrispondenza della base del transistor, esso non risulta in conduzione per cui nessuno dei segmenti relativi al display in esame, ha la possibilità di poter emettere luce, indipendentemente dallo stato logico dei pin ad esso collegati. La cifra decimale è disabilitata nel programma, appena prima della sezione indicata dalla label Main (LEDDisp2=0).

Lo scopo del programma è quello di visualizzare le immagini delle cifre da 0 a 9 sul display della cifra, con una pausa di 0,5 secondi tra loro. Per visualizzare ogni numero la sua maschera deve essere inviata alla port B. Per esempio, se abbiamo bisogno di visualizzare la cifra "1", il segmento “b" e "c" devono essere posti ad 1 ed i restanti a zero. Se, (in accordo con lo schema sopra) il segmento b e c sono connessi con il primo ed il secondo pin della porta B, i valori 0000 e 0110 devono essere settati sulla port B. Questi valori che devono essere settati sulle porte vengono in generale denominate "masks". La maschera per il numero "1" è il valore 0000 0110 oppure $06 (esadecimale). La seguente tabella contiene le corrispondenti maschere relative ai numeri da 0 a 9 :

Digit Seg. h Seg. g Seg. f Seg. e Seg. d Seg. c Seg. b Seg. a HEX

0 0 0 1 1 1 1 1 1 $3F

1 0 0 0 0 0 1 1 0 $06

2 0 1 0 1 1 0 1 1 $5B

Page 60: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

3 0 1 0 0 1 1 1 1 $4F

4 0 1 1 0 0 1 1 0 $66

5 0 1 1 0 1 1 0 1 $6D

6 0 1 1 1 1 1 0 1 $7D

7 0 0 0 0 0 1 1 1 $07

8 0 1 1 1 1 1 1 1 $7F

9 0 1 1 0 1 1 1 1 $6F

 

Il programma utilizza l’istruzione Lookup per applicare una maschera appropriata ad un valore numerico. L’istruzione Lookup lavora in modo veramente semplice – lui immette il carattere dalla sequenza, la sua posizione definita dal valore numerico della cifra( Digit ), nella variabile Mask. Per esempio, Mask può avere valore $5B se la cifra (Digit ) assume valore 2. In questo modo, noi possiamo ottenere una maschera per ogni valore decimale.

Una continua visualizzazione di Mask (PORTB=Mask) per appropriati valori della variabile Digit, con 0,5 secondi di intervallo, produce un effetto di avvicendamento di cifre dallo 0 al 9. 

Un problema che si riscontra in multiplexing avviene quando occorre visualizzare due o più cifre su due o più differenti display. E’ necessario inviare una maschera su di una cifre rapidamente attivando il transistor relativo, successivamente caricare la maschera successiva, attivando il secondo transistor. Occorre che se il primo transistor è in conduzione, il secondo non deve lavorare, per evitare che entrambi i display possano visualizzare lo stesso valore.

Il nuovo programma differisce dal precedente nella conversione valore a 2-cifre a 2 maschere (masks) tali da essere visualizzate in modo tale che l’occhio umano abbia la sensazione che le due figure coesistano simultaneamente, (questa è la ragione per chiamarla "multiplexing" – solo un display alla volta funziona in ogni singolo momento). 

Poniamo il caso di voler visualizzare la cifra 35. In primo luogo occorre separare la cifra in decine ed unità (in questo caso le cifre 3 e 5) e le relative maschere , inviate alla porta. Questa separazione può essere ottenuta mediante l’istruzione Dig. Per esempio, Digit1= W dig 0 Può estrarre una cifra dalla variabile W e memorizzata nella variabile. Se il parametro 0 viene sostituito con 1, la cifra delle decine può essere estratta. Seguendo la stessa logica, il 2 estrae il numero delle centinaia, 3 il numero di migliaia, ecc...

 

Page 61: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Questa parte di programma invia il valore 35 sui due display a 7 segmenti. Il resto del programma è molto simile al programma precedente, ad eccezione del fatto di avere una transizione necessaria per la visualizzazione di una cifra dopo l’altra. Questa transizione poù essere visualizzata quandoLRDDisp1 è portato allo spegnimento ed il display LEDDisp2 è acceso con una nuova maschera. 

Il problema relativo al multiplexing è risolto per adesso , ma il programma non ha l’unico scopo di visualizzare dei valori sul display. E’ comune soluzione quella di impiegare una subroutine al solo scopo di visualizzare certe informazioni. Comunque questo modo di risolvere i problemi di visualizzazione può rendere complicato il modo di scrivere questi programmi. Questa nuova tipologia di problemi può essere risolto passando dalla metodologia del rinfresco delle cifre (parti di programma per la gestione delle maschere e controllare i transistor) alla routine con gli interrupt. Il seguente programma mostra l’uso degli interrupt per il refresh dei display. Il programma principale Main incrementa il valore della variabile W da 0 a 99 e questo valore viene inviato al display. Dopo aver raggiunto il valore di 99 , il contatore ricomincia dall’inizio.

 

Page 62: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 63: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

L’interrupt inizializzato in questo modo genera un interrupt ogni volta che il timer TMR0 cambia il proprio stato da 255 a 0. Ogni volta che l’interrupt ha luogo, l’interrupt della routine va in esecuzione in modo tale che l’occhio umano ha l’impressione che entrambi i display visualizzino simultaneamente le rispettive cifre. Come si evince dal codice, ogni collegamento alla visualizzazione è gestita dalla routine delgli interrupt. Comunque, la porzione di programma che gestisce le maschere da visualizzare, risiede nella subroutine speciale (Gosub Prepare) per rendere la routine degli interrupt la più breve possibile. Un’altra ragione che giustifica questo tipo di organizzazione è quella di creare delle maschere solo nel momento in cui risulta un cambiamento nella variabile W e non tutte le volte che interviene un interrupt.

Lungo il programma principale, il programmatore non si deve preoccupare dell’aggiornamento del display o di qualunque altra cosa che lo riguarda. E’ sufficiente richiamare la subroutine "Preparation" ogni volta che il valore da visualizzare subisce cambiamenti.

Se il valore a 2 cifre non risulta soddisfacente , il seguente passo serve ad aggiungere altre due cifre addizionali. Un programma per realizzare la visualizzazione su 4 cifre a sette segmenti è espresso dal seguente programma. La differenza principale risiede nella parte che si occupa della separazione delle cifre delle unità, delle decine, delle centinaia e delle migliaia.

6.6 Motore passo passo

Di tutti i motori, quello passo passo è il più facile da controllare. La sua maneggevolezza è difficile da negare – tutto quello che c’è da fare è quello di portare la sequenza degli impulsi rettangolari ad un ingresso e quello relativo alla direzione, in un altro ingresso. L’informazione della direzione è semplice e gira a sinistra per un valore logico 1 e a destra per un valore logico 0. Il controllo del motore è altrettanto semplice- ogni impulso rende operativo il motore per un solo singolo passo mentre in mancanza di impulsi, il motore non si avvia. La pausa tra un impulso ed il successivo può essere corto o lungo e definisce la velocità di rotazione. Questa velocità non può essere infinita perchè il motore non è capace di agganciarsi a tutti gli impulsi (la documentazione relativa allo specifico motore passo passo, contiene informazioni a riguardo. L’immagine qui sotto riporta lo schema per la connessione il motore passo passo al microcontrollore con il programma riportato in seguito.

 

Page 64: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 65: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 66: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

6.7 Ingresso allo shift register

Un numero insufficiente di linee di ingresso nel microcontrollore, rappresenta un problema. Piuttosto che operare una scelta relativa ad un costoso modello di microcontrollore, un input a scorrimento di registro 74HC597 può rappresentare una scelta corretta. Per connettere gli ingressi del registro a scorrimento è necessario prendere 4 linee I/O del microcontrollore ed una linea Latch per ogni registro successivo. Questo fornisce 8 linee di ingresso per lo shift register. Il registro di shift trasmette lo stato dei pin di ingresso ad un registro intermedio utilizzando il segnale di Latch. Dopo di questo il segnale Load trasferisce dati dal mid-register al registro di scorrimento, dove è stato inviato a partire dal microcontrollore sulle linee SerialOut e la linea Clk. 

 

Il trasferimento dei dati tra shift registers e microcontrollore è di tipo seriale. Il seguente programma legge lo stato dell’ingresso allo shift registers, li trasferisce nella variabile RxData e poi visualizza il contenuto di RxData sui diodi connessi alla porta B. Per il trasferimento dati tra shift register e microcontrollore, si utilizza l’istruzione SHIFTIN del linguaggio BASIC.

 

Page 67: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

6.8 Uscita sullo shift register

Un numero insufficiente di linee di uscita può rappresentare un problema con i microcontrollori che comandano un numero ridotto di linee I/O, come il PIC16F84. Se, come in questo caso l’uscita dello shift register 74HC595 può essere usato come una espansione. Per connetterlo è necessario prelevare 3 linee di I/O dal microcontrollore, per ottenere 8 linee di uscita addizionali. Il trasferimento dati tra lo shift register ed il microcontrollore è di tipo seriale attraverso le due linee Clk ed A.

 

Page 68: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Quando i dati vengono trasferiti allo shift register, il segnale di Latch lo invia al pin di output. Il seguente programma accende alternativamente i led posti in alto e quelli posti in basso. Per lo scambio di dati tra lo shift register ed il microcontrollore, è utilizzata l’istruzione BASIC SHIFTOUT.

Page 69: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

6.9 Software di comunicazione seriale

Il modo più facile per trasferire dati tra un microcontrollore ed alcune altre periferiche (per esmpio un PC oppure un altro microcontrollore) è attraverso la porta di comunicazione RS-232. Questo tipo di comunicazione fornisce un trasferimento seriale asincrono attraverso due linee (Tx per la trasmissione ed Rx per la ricezione) fino a 10 metri di distanza. In questo esempio, le istruzioni Serin e Serout sono utilizzate per creare il software per la comunicazione seriale. L’interfaccia della RS-232 , il MAX232 , riveste il ruolo di

Page 70: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

adattare il livello del segnale lato microcontrollore, TTL 0-5 Volt , e quello +/- 10 Volt della seriale RS-232 e vice versa. Il formato di trasferimento è di 8 bit, senza parità ed un bit di stop, mentre la velocità di trasferimento è a 2400 bauds.

 

Page 71: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Il programma qui sopra utilizza Serin e Serout come istruzioni per trasmettere e ricevere dati. I dati ricevuti con Serin sono memorizzati nella variabile B0 ed inviati indietro al PC con Serout a conferma del successo della trasmissione. Ogni pin di I/O del microcontrollore può essere utilizzato per tracciare il trasferimento dati.

6.10 Controllo di una luce

Fare un controllo per una luce è molto semplice: la periferica utilizza un microcontrollore di recente tecnologia. Il principio è semplice – premendo l’interruttore si accende la luce per un certo periodo di tempo T. Dopo tale periodo tutte le luci si spengono. La viabile T è definita mediante un ptenziometro. E’ possibile stabilire per quanto tempo rimane accesa la luce dalla lettura del potenziometro.

Page 72: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Page 73: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 74: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Chapter 7

ESEMPI CON IL MICROCONTROLLORE PIC16F877

Introduction

7.1 Keyboard7.2 Driver for seven-segment displays - MAX79127.3 LCD display7.4 Serial EEPROM7.5 RS-4857.6 12-bit A/D converter LTC12907.7 12-bit D/A converter LTC12577.8 16-bit electrical current D/A converter AD4217.9 Real time clock PCF85837.10 Digital thermometer DS1820 

 

Introduzione

Questo capitolo fornisce dettagliati esempi per la connessione del microcontrollore PIC16F877 ai componenti periferici e degli appropriati programmi scritti in BASIC. Tutti gli esempi contengono lo schema delle connessioni elettriche con i programmi con i relativi commenti. Avete il permesso di copiare direttamente i programmi dal presente libro o di scaricarli dal sito Web www.mikroelektronika.co.yu .

 

7.1 Tastiera

In alcuni progetti impegnativi in cui si impiegano un grande numero di tasti, è possibile utilizzarli in connessione a matrice per lasciare libere alcune linee di I/O del microcontrollore. L’esempio seguente include lo schema di connessione della tastiera e del programma che ad esso si accompagna, il quale legge il valore sulla tastiera e lo invia ai led connessi alla porta D.

 

Page 75: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

I tasti chiave sono connessi alle righe ed alle colonne condivise. I resistori da 10K tra i pin di input e la massa definisce lo stato dei tasti quando questi non sono premuti. Questo comporta che sia presente lo stato logico zero sui pin quando questi non risultano premuti. Allo scopo di evitare cortocircuiti tra quando si premono due tasti, si aggiunge una resistenza da 1K ad ogni riga.

La lettura della tastiera è data dalla subroutine "ScanKeys". La tastiera è connessa alla porta B, i suoi pin sono assegnati come input per le righe (RB7, RB6, RB5 e RB4) ed output per le colonne (RB3, RB2 e RB1).

 

Page 76: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 Il programma setta il valore dell’ultima chiave sulla porta D. Se nessun tasto risulta schiacciato tutti i diodi della porta D sono accesi. "*" e "#" sono rappresentati dal valore 10 ed 11.

Il grosso dei compiti è svolto dalla subroutine ScanKey. Setta l’1 logico sulle colonne della tastiera e successivamente richiama la subroutine Row che verifica se una delle 4 chiavi in questa colonna, risuta premuta (la quale è indicata dalla variabile Flag).

Nel caso in cui una delle chiavi della colonna risulti premuto, la variabile KeyPress assume un valore da 0 a 3 (lo zero per la prima riga di questa colonna, 1 per la seconda riga di questa colonna, ecc... ). Richiamando una appropriata tabella Lookup, il vero valore della chiave viene ad essere memorizzato nella variabile Result e successivamente nella variabile OldResult da cui viene visualizzata sulla porta D. Nel caso in cui nessuna chiave risulti premuta, il valore della variabile è 12.

 

Page 77: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 78: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

7.2 Driver per display a 7 segmenti - MAX7912

Se il PIC16F84 o un microcontrollore simile è programmato per lavorare con display a 7 segmenti (in modalità multiplex) può essere chiamato "driver". Se lo completiamo con delle opzioni di comunicazione allora assume il ruolo di driver comleto. Se tutto questo viene ad essere realizzato su singolo chip allora può essere venduto come componente elettronico indipendente.

Domanda "perchè utilizzare un driver e non il multiplexaggio dei display?" è facile spiegarlo attraverso un’altra domanda: "in quale caso noi abbiamo bisogno di un display avente 6 gruppi di 4 cifre?” Vorrei vedere un programmatore alle prese con un problema di multiplexaggio di 4x6=24 cifre. Se il programma in questione è complicato, il tempo necessario alla scrittura ed alle correzioni è molto più dispendioso dell’acquisto di un driver separato.

C’è una grande varietà di driver a disposizione, per cui noi usiamo il MAX7912 in questo esempio. Egli risulta in grado di gestire 8 display con l’opzione di definire l’intensità di luce, un trasferimento dati seriale,richiede un basso numero di pin per il collegamento al microcontrollore. In ogni caso utilizzando il driver si riduce il lavoro con i display a 7 segmenti.

Lavorando con i driver è molto semplice. Ci sono certi registri che prelevano i dati necessari attraverso la comunicazione SPI. Il valore dell’indirizzo è memorizzato nella variabile TxAddr ed il dato è memorizzato in TxData. La Subroutine Send_Data trasferisce indirisso e dato al driver. Prima del primo trasferimento dati, il driver deve essere inizializzato da una subroutine Init_MAX cui si fa richiamo solo all’inizio del programma. Lo schema sottostante mostra lo schema delle connessioni ed un esempio di programma per visualizzare i numeri 12345678 in successione sul display.

 

Page 79: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Page 80: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 81: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

 

7.3 Display LCD

Una delle soluzioni migliori quando una applicazione richiede una qualche visualizzazione di dati è lo "smart" display LCD. La visualizzazione dei dati su questo tipo di display è fatta su dei punti disposti in modo tale da formare linee. La dimensione dei sei singoli segmenti è di 7x5 punti ed ogni riga può contenere 8, 16, 20 o 40 segmenti (elementi cifra). Il display LCD può avere 1, 2 oppure 4 righe. L’LCD può essere connesso al microcontrollore mediante un bas a 8 o 4 bit (4 o 8 linee).

 

 

Oltre a queste linee è presente una linea di controllo E (abilita), R/W (lettura/scrittura) e RS (selettore di registro) per un totale di 7 linee. Il segnale R/W è posto a massa, dal momento che c’è una sola via di comunicazoine verso il display LCD. Qualche display prevede una luce interna che può essere accesa con il pin RD1 attraverso il transistor PNP BC557.

Il seguente programma utilizza l’ istruzione BASIC Lcdout per la visualizzazione del dato sil dispaly LCD. All’inizio del programma DEFINE una direttiva è utilizzata per la configurazione del display LCD.

 

Page 82: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Page 83: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

7.4 Serial EEPROM

I dati (variabili) utilizzati dai microcontrollori sono immagazzinati nella RAM per il tempo in cui il microcontrollore risulta alimentato. Quando si interrompe l’alimentazione il contenuto della RAM risulta perso. Se risulta necessario conservare i dati per un uso successivo, questi devono essere memorizzati in una memoria permanente. Una delle memori e che possono essere usate in questi casi è una memoria seriale EEPROM. EEPROM sta per Electrically Erasable and Programmable Read Only Memory. Seriale sta a significare che la EEPROM utilizza un protocollo seriale (I2C, SPI, microwire) per la comunicazione col microcontrollore. Questo esempio si occupa di una EEPROM della famiglia 24Cxx che utilizza due linee ed il protocollo I2C per la comunicazione con il microcontrollore.

 

 

EEPROM is connected to microcontroller via SCL and SDA lines. SCL line is clock for synchronizing the data sent via SDA line. Frequency for transferring the data via SCL and SDA lines goes up to 1MHz.

BASIC instructions I2CWRITE and I2CREAD make reading and writing data to EEPROM pretty simple. To write or read data from EEPROM it is required to write an address of EEPROM (in this case $A2) and address of data in memory as parameters of instruction. EEPROM address is formed in the following way :

Page 84: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

I2C communication allows connecting multiple devices on one line. Therefore, bits A1 and A0 have an option of assigning addresses to certain I2C devices by connecting the pins A1 and A0 to the ground and +5V  (one I2C line could be EEPROM on address $A2 and, say, real time clock PCF8583 on address $A0). R/W bit of address byte selects the operation of reading or writing data to memory. More detailed data on I2C communication can be found in the technical documentation of any I2C device.

The following program uses the instruction I2CWRITE to write data from variable EE_byteOut to EEPROM, and then uses the instruction I2CREAD to transfer the same data from EEPROM to variable EE_byteIn and display it on port D diodes.

 

Page 85: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Page 86: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

7.5 RS-485

La comunicazione tra due periferiche è facile da realizzare mediante la comunicazione seriale RS232. Persistono comunque delle limitazioni all’uso a questo tipo di comunicazione. Prima di tutto occorre dire che per locale si intende un raggio di 10-150m di distanza. Il secondo svantaggio è quello di poter comunicare con una sola periferica (per esempio solo un mouse può essere connesso ad una porta COM di un PC).

Il Protocollo di comunicazione RS485 supera questo problema rendendo possibile la connessione di un numero superiore a 32 periferiche fino ad un massimo di addirittura 128 con una lunghezza massima di 1500 m. Un esempio di connessione di una connessione RS485 è presente nella immagine sottostante. 

Il ruolo della interfaccia LTC485 è simile a quello che ha il MAX232 quale interfaccia per il protocollo seriale (adattamento del livello). L’utilizzo di un cavo schermato non risulta necessario ma raccomandato per ridurre l’insorgenza di evenruali problemi.

In conclusione la resistenza Rt ha il compito di definire l’impedenza di linea e viene ad essere solitamente dimensionata come valore tra 100-200 ohms. Con linee corte, fino a 300m non risulta necessario cortocircuitare la linea con Rt. La resistenza Rb è disposta allo scopo di evitare errori di lettura quando tutti i dispositivi sono in modalità ricezione. Il valore di queste resistenze deve essere di 680 ohm se queste sono poste su di una singola resistenza o di 4700 ohm se sono previste più di 8 periferiche sulla rete. Il protocollo di comunicazione RS485 è un sistena Half-duplex che utilizza due linee contrassegnate da A e B, per il trasferimento dei dati. L’informazione del dato, sul lato ricevente, di natura binaria o no, è rappresentato dalla differenza di potenziale presente tra le due linee A e B. Se la differenza di potenziale tra le linee A e B supera i 200 mV il valore binari è pari ad 1, mentre se risulta più basso di –200 mV il valore è pari a 0. Questo metodo si dimostra molto efficiente al fine di eliminare la gran parte dei difetti di funzionamento che avvengono sulla linea. Nel momento in cui si avvia la trasmissione sulle due linee, l’organizzazione di trasmissione e ricezione dei dati, l’organizzazione deve essere gestita evitando problemi di interferenza sulla linea. La direzione dei dati, cioè invio o ricezione, è stabilita dagli stati dei piedini RE e DE della linea di interfaccia RS485. Quando RE=0 e DE=1 la linea di interfaccia è settata nel modo ricezione. Quando lo stato si inverte in modo tale che RE=1 e DE=0, la linea di intercomunicazione commuta nel modo trasmissione.

Una delle soluzioni tipiche per la RS485 è la Master/Slave, dove un aperiferica, detta master, assume il controllo in cui le altre periferiche, dette slave, acquisiscono un indirizzo al quale possono essere indirizzate. La comucazione prende avvio dalla periferica master invia lo stesso numero N di Byte a tutte le periferiche Slave, le quali commutano in stato ricezione. Questo numero N di Byte contiene l’indirizzo della periferica

Page 87: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

slave, destinata a ricevere i dati. L’indirizzo, risulta comunemente posizionato all’inizio della sequenza, ed è di 8 bit. Quando le periferiche ricevoni i dati, esse estraggono l’indirizzo e lo confrontano col proprio. La periferica Slave il cui indirizzo concorda con quello ricevuto, invia alla periferica master il proprio indirizzo, a conferma del successo di ricezione dei dati, mentre le altre periferiche slave, commutano allo stato ricezione. La periferica master riceve il citato indirizzo dalla periferica slaved e termina in questo modo il trasferimento dati tra Master e slave. Nel caso la periferica slave non trasmetta il proprio indirizzo entro un determinato intervallo, la periferica master dichiara quella slave in causa, come fuori servizio. Il tempo di ritardo ammesso Time-out va dai 10 ms e 100 ms. L’immagine sottostante rappresenta uno schema descrittivo del formato con cui si presentano i dati scambiati tra le periferiche master e slave.

Un nuovo sistema tratta il PC come sistema master, ed un certo numero di microcontrollori, quali periferiche slave.

 

Page 88: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Nella circostanza in cui sul personal non fosse disponibile l’interfacci RS485, è necessario creare un convertitore RS232-RS485, in modo tale che il microcontroller possa essere connesso direttamente con la linea di interfaccia dell’LTC485. Per la connessione fisica possono essere utilizzati altri integrati oltre all’LTC485, per esempio l’ SN75176 fabbircato dalla Texas Instruments.

Il seguente programma rappresenta un esempio di connessione di un master e un numero, fino ad 8 periferiche slave. Il ruolo di master è assolto dal PC che risulta connesso alla rete mediante un convertitore RS232/RS485. La periferica slave è un PIC 16F877 che risulta connesso alla rete RS485 mediante una intrfaccia LTC485 e ciascuna di queste è indirizzato mediante un unico numero compreso tra 0 e 7. Allo scopo di rendere visibile dal master i dati, dei diodi luminosi sono posti sulla porta PortB di ogni PIC. Nell’esempio il master muta lo stato dei diodi in corrispondenza delle periferiche slave. L’immagine successiva rappresenta un software per PC per la comunicazione con PIC mdiante linea RS485.

Page 89: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Quando il tasto "Send to slave" viene cliccato, il PC invia l’indirizzo "Address of slave device" alla rete RS485 oltre allo stato dei diodi indicato dal campo "Set LED's" (totale di 2 bytes). Tutti i PIC ricevono l’indirizzo e lo stato dei Led, ma solo uno di loro muta veramente loo stato dei led. Questo PIC risponde inviando il proprio indirizzo al PC entro 50 ms a conferma dell’avvenuto ricevimento e determinando la fine del trasferimento dati tra PC (periferica master) e PIC (Periferica slave) . Nel caso in cui il PIC non dovesse rispondere entro 50 ms, il PC potrebbe interpretarlo come se il PIC corrispondente all’indirizzo specificato, non sia presente sulla rete (il trasferimento seriale è asincrono a 9600 bauds). La comunicazione con i PIC è mediata via software, mediante le istruzioni SERIN2 e SEROUT. L’istruzione SERIN2 attende che il dato corrisponda all’indirizzo della periferica slave (in questo caso “1”ASCII). Dopo aver ricevuto l’indirizzo, il dato successivo viene ad essere memorizzato nella variabile B0 ed il proprio contenuto, visualizzato in corrispondenza della porta portB su cui risultano connessi i diodi.

 

Page 90: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

7.6 Convertitore A/D a 12-bit, l’ LTC1290

LTC1290 è un convertitore A/D a 12-bit con accesso seriale. Ha 8 ingressi per cui può misurare 8 differenti segnali ed inviarli al microcontrollore mediante la comunicazione SPI. SPI è l’abbreviazione di Serial Peripheral Device che opera con la formula master-slave.

Il microcontrollore ed il convertitore AD sono connessi mediante 4 linee: MOSI, MISO, SS e SCK. La prima linea si chiama Master Out Slave In ed è utilizzata per le istruzione che il Master invia alla periferica Slave. La seconda linea si occupa della operazione inversa - Master In Slave Out per la ricezione da parte del Master, provenienti dalla periferica Slave. La liea SS (Select Slave) è utilizzata per satabilire quale periferica debba possedere l’indirizzo come Master, dal momento che ci sono diverse periferiche slave connesse alla stessa linea di comunicazione, ma con differenti linee SS. L’ultima linea è nominata Clock ed indica il clock come elemento che consente la comunicazione tra le periferiche master e slave.

I dati sono trasmessi in forma sequenziale binaria attraverso la linea MISO oppure la linea MOSI e la periferica master o quella slave lo legge per mezzo del sincronismo degli impulsi generati da CLK consentendo un sincronismo tra messaggi trasmessi e ricevuti. Benchè appaia complicato, è veramente semplice realizzarlo a livello di codice software.

 

Page 91: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 92: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 93: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

7.7 Convertitore D/A a 12 bit, l’ LTC1257

Un convertitore D/A converte una informazione digitale in una tensione (essi hanno un numero di applicazioni di molto inferiore rispetto ai convertitori A/D). In questo esempio noi utilizziamo l’ LTC1257, che è un convertirore DA a 12-bit con accesso seriale, fabbricato dalla Linear Technology. Un tipo di comunicazione con il convertitore DA è l’SPI, che è stato spiegato nel capitolo seguente. Il programma invia il dato digitale contenente l’informazione del voltaggio desiderato al componente DA che lo trasforma in tensione prelevabile. Possiamo verificare il programma attraverso la misurazione della tensione in corrispondenza del’uscita del convertitore.

 

Page 94: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 95: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

7.8 Convertitore di corrente D/A, l’AD421

Quando parliamo di convertitori DA (analogico/digitali) facciamo solitamente riferimento ai convertitori in tensione. Comunque, esistono i convertitori di corrente – essi semplicemente forniscono una corrente in luogog della tensione. Segnali di corrente sono particolarmente frequenti nelle applicazioni industriali per via della loro affidabilità nel trasferimento delle informazioni. L’intervallo in cui si trovano comunemente le correnti utilizzate per questi scopi è compreso tra 4-20mA. Il limite di valore più basso (4mA) permette il controllo di eventuali interruzioni o malfunzionamenti simili, che sono notificati istantaneamente, per cui contribuiscono alla sicurezza sul trasferimento dei dati (quando la linea si interrompe o si ha un guasto elettronico, il segnale cade a 0 mA segnalando alla supervisione il malfunzionamento che ha avuto luogo). In questo esempio utilizziamo un convertitore DA a 16-bit l’ AD421 costruito dalla Analog Devices. L’esempio è estremamente semplice e provvede a stabilire tre valori: uno basso, uno medio ed uno alto dell’uscita dal convertitore DA mediante 3 trasti.

 

 

Page 96: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 97: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

7.9 Orologio in tempo reale con il clock PCF8583

La conoscenza del tempo (orario) in alcune applicazioni , si dimostra molto importante. Prendiamo ad esempio l’osservazione memereologica dove misuriamo la temperatura, l’umidità e la pressione in accoppiamento alla data – queste informazioni sprovviste di data ed ora precise di quando la misura avviene risulterebbero incomplete. Invece dell’orologio in tempo reale noi potremmo utilizzare il timer interno del microcontrollore per poter creare secondi minuti, ore giorni mesi ed anni. Un altro svantaggio è il ritardo cumulativo che si origina lungo un periodo come un anno. Perfino un chip dedicato a questo speciale compito, (come quello utilizzato in questo esempio) evidenzia un ritardo significativo.

Per questo impiego è molto effiente utilizzare un chip con una propria alimentazione in modo tale che il tempo corrisponde a quello reale. L’accuratezza del PCF8583 è di circa 1 secondo al giorno, per cui la deviazione annuale massima non supera i 6 minuti (la maggiornaza delle applicazioni non richiede una simmile accuratezza).

 

Page 98: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 99: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 100: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

7.10 Termometro digitale con DS1820

L’osservazione della temperatura è una delle osservazioni che si pratica più comunemente. Nonostante alcuni modi di misurare la temperatura (a partire dalla termocoppia PT100 e quelle dei resistori NTC e PTC) un nuovo e facile modo è stato scoperto. Uno di questi nuovi modi è stato presentato dalla compagnia Dalas con il suo nuovo chip, il DS1820. E’ un sensore di temperatura digitale con soli 3 pin. Il vantaggio che presenta, rispetto ai menzionati sensori PT100 e NTC che presentano una uscita in millivolt oppure Ohms (entrambi i segnali devono essere convertiti in valori digitali in mod tale da poter essere maneggiati e visualizzati) per questo il DS1820 possiede l’informazione digitale in gradi Celsius, risolvendo nella pratica il problema analogico. La sua unica limitazione risiede nell’intervallo di lavoro:  -55 C ~ +125 C. La sua precisione è di 0.5 C e l’intervallo tipico per la misurazione è di 200ms che risulta mediamente sufficente, anche in considerazione che una variazione come la temperatura è solitamente un processo lento.

 

 

Page 101: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare
Page 102: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Appendix A

PIC BASIC E MPLAB

Introduction

A.1 Installation of the program / MPLAB A.2 Connection of PIC BASIC and MPLAB A.3 Toolbar

 

Introduzione

MPLAB è un programma Windows che agevola la scrittura e lo sviluppo dei programmi. Il modo migliore per descriverlo è di caratterizzarlo in relazione agli standard che pssiede per la scrittura e lo sviluppo dei programmi. Utilizzando MPLAB è possibile ottenere la scrittura dei programmi essendo agevolati nell’affrontare l’elevato numero di parametri richiesti. Tuttavia, alcuni programmatori preferiscono gli editor tradizionali con compilatori a linea di comando. In ogni caso la scrittura del codice è evidentemente fatta in assistenza di un menu di aiuto. L’abbreviazione di IDE sono le iniziali di Integrated Development Environment.

 

A.1 Installazione del programma MPLAB

 

MPLAB è composto da una serie di diversi componenti

Page 103: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

-         Raggruppamento dei files in uno stesso progetto (Project Manager)

-         La creazione di un programma e la sua elaborazione (Text Editor)

-         Simulatore di codice con il microcontrollore in cui deve girare.

 

D’altro canto esistono dei supporti della Microchips come PICStart Plus i ICD (In Circuit Debugger). Questo testo non ci fa conto , ma lo cita nei termini di una opzione.

 

I requisiti minimi per far girare MPLAB sul PC sono:

 

-         Compatibile PC 486 o superiore

-         Microsoft Windows 3.1x o Windows 95 ed ulteriori recenti versioni di Windows

-         Scheda grafica VGA

-         8MB di memoria (32 MB raccomandati)

-         20MB di spazio sull’hard disk

-         Il mouse

 

Per avviare MPLAB è necessario copiare prima i files da CD all’hard disk del PC. Su ogni finestra è presente il tasto che riporta al passo precedente nella fase di installazione, in modo tale che eventuali errori non comportino problemi. L’installazione fluisce in modo simile a come avviene per le altre installazioni di programmi per Window. Appare prima una finestra di benvenuto e dopo la fine dell’installazione, il programma risulta pronto per essere avviato.

  Passi nella installazione:

1.              Avviamento di Microsoft Windows

Page 104: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

2.              Introdurre il CD della Microchip nel lettore del CD-ROM

3.              Click onto the START in the lower left corner of the screen and choose the RUN option

4.              Click onto the BROWSE and select CD ROM drive for your PC

5.              On the CD ROM find the directory under the name of MPLAB

6.              Click onto the SETUP.EXE and then on the OK button

7.              Click once again on OK button in the RUN window

 

Dopo questi sette passi consecutivi, l’installazione può partire. Le seguenti figure spiegano il significato relativo ai singoli passi relativi al processo di installazione.

 

La videata di BENVENUTOall’inizio della installazione

 

All’inizio della installazione dobbiamo scegliere quali sono i componenti con i quali dovremo lavorare. Se si suppone di non utilizzare dell’hardware originale della Microchip’s come periferica o di emulazione, occorre installare solo l’assembler ed il simulatore.

Page 105: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Selezione dei componenti di sviluppo in ambiente MPLAB

 

La seconda ipotesi è che sia installato un sistema operativo come Windows 95 (oppureuno più recente), in modo tale che in corrispondenza della selezione , lo si faccia per l’assembler per winows e non quello per DOS. Allo stesso modo per la scelta degli altri componenti, occorre farlo per i corrispondenti componenti che non siano quelli adatti per una interfaccia DOS.

Page 106: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Selezione dell’assembler e del sistema operativo

 

Così come normalmente avviene per gli altri programmi, MPLAB deve essere installato in un direttorio definito. Questa opzione può essere scelta come qualunque direttorio presente sull’hard disk del PC. A meno che esistano ragioni specifiche, occorre installare l’applicazione nel direttorio indicato.

Page 107: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Selezione del direttorio di installazione di MPLAB

 

La prossima opzione è prevista per quegli utenti che per qualche motivo posseggono una versione di MPLAB meno recente (differente da quella che si stà installando). Lo scopo è quello di salvare i files che vengono sovrascritti nel corso dell anuova installazione. Nel nostro caso, la risposta NO significa che quella che si sta facendo è la prima.

Page 108: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

L’opzione necessaria per tutti quegli utenti che installano la nuva versione su quella eventualmente presente di MPLAB

 

Il menù di start contiene i collegamenti ai vari programmi installati. E’ necessario lasciare l’opzione tal quale a come è stata indicata in modo che MPLAB possa essere avviata a partire da questo.

Page 109: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Aggiunta di MPLAB nel menù di avvio

 

La locazione citata qui di seguito è relativa ad una parte di MPLAB che non può essere spiegato qui e di scarso interesse per l’utente. Selezionando una opportuna directory, MPLAB può lasciare tutti i files in connessione col linker in questa directory.

Page 110: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Selezione del direttorio files del linker

 

Ogni programma per Windows ha dei files di sistema, solitamente installati nello stesso diretotrio del sistema operativo Windows. In seguito a nemrose installazioni il direttorio di Windows tende a diventare molto grande ed ingombrante. Per questo motivo, alcuni programmi consentono di installare i propri files di sistema nello stesso direttorio in cui risulta installato il programma. MPLAB è uno di questi per cui l’opzione che interessa può essere selezionata nelle opzioni sotto riportate.

Page 111: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Selezione dei files di sistema

 

Il passo successivo è quello di selezionare il tasto NEXT per proseguire con l’installazione

 

Page 112: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Lo schermo prima dell’avvio dell’installazione

 

L’installazione, in se, è breve e la fase di copia dei files può essere seguita nella piccola finestra.

 

L’installazione è in corso

 

Quando l’installazione risulta terminata , due finestre di dialogo sono presenti a schermo –una per l’ultima versione e le correzioni apportate, l’altra di ringraziamento. Se è stato aperto il file Readme.txt è aperto, occorre chiuderlo.

Page 113: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

L’ultima finestra che riguarda la versione e le correzioni apportate al programma

 

Cliccando sul tasto Finish l’installazione è terminata.

 

A.2 Collegamento tra PIC BASIC e MPLAB

Per rendere il lavoro il più agevole possibile per chi abbia già usato un compilatore assembler ed MPLAB, la Microchip ha lasciato l’opzione di utilizzare il suo incorporato oppure quello di un altro produttore. Prima di avviarci a scrivere un programma è necessario intraprendere alcuni adattamenti. Assumiamo il caso, per esempio che MPLAB sia installato nel direttorio: C:\ Program Files \ MPLAB ed il compilatore PIC BASIC Pro in C:\ PBP.

 

Avvia MPLAB e scegli Install Language Tool dal menù Project. La finestra di dialogo dove i corrispondenti settaggi vengono attuati. Infine occorre sulla opzione “browse” e trovare il file PBP.EXE sull’hard disk (in questo caso C: PBP\). Cliccando OK il settaggio di base risulta terminato.

Page 114: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Avvia MPLAB e scegli Install Language Tool dal menù Project.

 

Il passo successivo è nella creazione di un progetto fatto nel modo standard, selezionando New Project dal menù Project assegnando il nome al progetto, per esempio “probe.pjt”. Una attenzione particolare deve essere rivolta alla collocazione del direttorio in cui si va a scrivere il progetto. Il nuovo progetto ed i suoi componenti devono essere collocati nello stesso direttorio di PicBasic Pro! In tal caso, il direttorio è C:/PBP.

 

Creare il progetto, selezinando New Project dal menù Project ed assegnando il nome , per esempio. “probe.pjt”.

 

Cliccando su OK una nuova finestra appare, Edit Project. In Language Tool “microEngeneering Labs” è selezionato (rispondere OK alla prima richiesta). E’, quindi, necessario cliccare su ‘probe [.hex]’ presente nella parte bassa della finestra dove l’opzione Node Properties risulta attivata.

Page 115: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

La finestra Edit Project per la definizione del costruttore. Scegliere “microEngeneering Labs”

 

Lo scopo di questa finestra è quella di definire quale sia il microcontrollore per cui il programma è stato scritto.

Cliccando il tasto Change una finestra per la scelta del microcontrollore, appare. Come opzione, Editor only va lasciato, in assenza di tools della Microchip (questa opzione definisce l’uso di MPLAB come shell per il compilatore PIC Basic).

Cliccando su Node Properties la finestra che appare nella immagine sottostante, appare. Csegliere la versione "PM" nella sezione assembler. Cliccando su OK ritorniamo alla finestra precedente.

Page 116: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Il tasto Add Node è attivo ora, ed attraverso di esso il nome del file con il programma basic risulta assegnato. E’ nel nostro caso, ‘probe.bas’. che in questo caso rappresenta solo l’assegnazione del nome all’interno del progetto. La sua creazione è data nel successivo passo.

 

Page 117: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Finestra per l’assegnazione del nome del programma che stimo scrivendo. L’apertura del file avviene nel passo successivo.

 

Fino ad ora abbiamo difinito il microcontrollore ed il linguaggio di programmazione. Rimane ancora da aprire il file, scrivere il codice e registrarlo con il nome visto nel passo precedente. (proba.bas).

Cliccando su File-> New appare la finestra in cui il programma può essere scritto.

Prima di partire con la scrittura del programma, il file deve essere registrato con il comando File-> Save as, Il nome del file è ovviamente “proba.bas”. La scrittura del codice Basic può ora avere inizio. Il programma che utilizziamo come esempio è veramente semplice e la sua funzione consiste nel far lampeggiare il diodo connesso alla porta B.

 

La finestra in cui può essere scritto il programma in Basic

 

Page 118: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Appena finito di scrivere il programma, cliccando su PROJECT-> Build All si realizza la compilazione del programma. Se non sono presenti errori , il file ottenuto è C:/PBP/probe.hex leggibile all’interno del microcontrollore.

A.3 Toolbar

MPLAB è composto da una serie di parti separate, ogniuna di queste possiede la sua specifica toolbar. In ogni caso, c’è una toolbar che racchiude una sorta di combinazione di tutte le altre , potendo essere considerata come una comune a tutte. Questa toolbar è sufficiente per i nostri scopi per cui andremo a descriverla dettagliatamente. Nella immagine sottostante questa toolbar è descritta per ciascuna delle icone che la compone. In questo testo la toolbar appare separata e libera dal menù principale , mentre nella realtà si trova al di sotto del menu, disposta orizzontalmente lungo tutto lo schermo.

  

Se il menù non risponde, l’icona seguente appare cliccando sulla presente icona. Cliccando nuovamente le toolbar riappaiono. Se si ripete il passaggio per la quarta volta, la stessa toolbar riappare.

Page 119: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Icona per aprire un progetto. Il progetto aperto in questo modo contiene tutti gli elementi necessari al progetto stesso. Icona per salvare il progetto. Il progetto salvato mantiene le impostazioni realitive alle finestre ed a utti gli altri parametri. Quando leggiamo nuovamente il progamma viene ad essere ripristinato alle medesime condizioni di quando è stato salvato. Ricerca d iparti del programma, o parola in un programma quando si è di fronte a programmi molto grandi. Mediante il suo uso possiamo velocemente ritrovare parti di programma, label, macro ecc... Taglio per escludere porzioni di testo. Questa e le successive tre, sono presenti quali componenti standard dei programmi di processamento testi. Fino a quando i programma consisteranno in testo, questi saranno di largo uso. Copiatura di parti di testo. C’è una differenza tra questa e la precedente icona. Con l’operazione di taglio, la parte di testo interessata scompare dallo schermo (e quidi dal programma) ed è copiata successivamente. Ma con l’operazione di copia questo rimane sullo schermo. Quando una parte di testo risulta copiata, questa risulta in una parte della memoria che serve al sistema per il trasferimento dati. Successivamente, cliccando su questa icona, aviene che il testo memoorizzato viene immesso (pasted) dove risulta posizionato il cursore.

Salvataggio del programma (file assembler).

Avvio del programma alla piena velocità. Questo è segnalato dalla presenza del colore giallo come stato della linea. Con questo modo di operare , il simulatore esegue il programma alla piena velocità fino a quando non risulta interrotto cliccando sul tasto che riporta l’icona di traffico di colore rosso. Stop al programma che gira alla piena velocità. Dopo aver cliccato su questa icona, lo stato dell’icona diviene nuovamente grigia, e l’esecuzione del programma può avvenire nella modalità passo passo. Esecuzione del programma in modalità passo passo. Cliccado su questa icona, noi possiamo eseguire il programma , ciascuna istruzione isolatamente, in maniera sequenziale.

Salta requisiti. Dal momento che il simulatore rappresenta una simulazione del mondo reale possiamo intervenire eliminando da esso alcuni requisiti. Questo semplifica il compito quando si prevede di affrontare qualche parametro in una fase successiva. Questa parte della programma riguarda un interesse del solo programmatore.

Resettare il microcontrollore. Cliccando su questa icona, il program counter viene posizionato all’inizio del programma ed il programma può partire. Cliccando su questa icona, possiamo ottenere la finestra con il programma, ma in questo momento rappresenta la memoria in cui possiamo vedere sia le istruzioni che l’indirizzo di memoria in cui esse si trovano. Con ‘aiuto di questa icona, possiamo avere una finestra che riporta il contenuto della RAM del microcontrollore. Cliccando su questa icona, appare la finestra contenente i registri SFR. Dal momento che i registri SFR vengono utilizzati in ogni programma, è raccomandato mantenere questa finestra sempre attiva.

Page 120: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Se il programma contiene delle variabili di cui vogliamo tener traccia (ex. counter), una finestra deve essere aggiunta a quelle presenti, ed è quella ottenuta mediante l’uso della presewnte icona.  Quando degli errori vengono ad essere evidenziati durante la simulazione, il programma viene ad essere corretto. Dal momento che il simulatore utilizza i files HEX come input, dobbiamo convertire il programma nuovamente dopo la correzione, per poterlo trasferire al simulatore. Cliccando su questa icona, tutto il progetto viene tradotto nuovamente in modo tale da ottenere la nuova versione del file HEX per il simulatore.

Page 121: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Appendix B

MicroCODE STUDIO

Introduction

B.1 Installation of the PIC Basic Pro compiler B.2 Installation of a MicroCODE studio B.3 Connecting MicroCODE Studio and PBP compiler B.4 Connecting MicroCODE Studio and the programmer B.5 Code writing and compilation in MicroCODE studio

 

Introduction

Nonostante il fatto che la scrittura del codice può essere fatta con un semplice editor e compilato alla linea di comando, (coloro che hanno programmato in DOS ricordano bene questo tipo di acrobazie) utilizzando un editor speciale per la programmazione, a lungo andare si rivela vantaggioso.

Un simile editor specializzato è chiamato IDE - “Integrated Development Environments”. Utilizzandolo la scrittura del programma diviene oltremodo semplice in modo tale che il programmatore ha la possibilità di visionare quali variabili, label o elementi del programma simili, vengono ad essere utilizzati. Allo stesso tempo , i comandi vengono ad essere indicati col carattere BOLD e di un colore tale da essere meglio intelleggibili. Le opzioni per le chiamate automatiche, unitamente sono a disposizione unitamente a moltre altre agevolazioni. Avere questoe agevolazioni, senza utilizzarle è come se avendo a disposizione un palazzo di 13 piani munito di ascensore, scegliessimo di salirlo utilizzando le sole scale.

 

B.1 Installazione del compilatore PIC Basic Pro

Il primo passo è quello di creare un direttorio in cui il compilatore verrà installato. Facciamo in mod che sia il direttorio C:/PBP. Poi copiamo il file PBP240.EXE in questo direttorio e scompattiamolo (il compilatore è nella forma di archivio autoscompattante) cliccando due volte su di esso. In questo modo il compilatore risulta installato nel direttorio appena detto.

B.2 Installazione di MicroCODE studio

L’installazione ha inizio cliccando doppiamente su MCSTUDIO. Poi, l’installazione prosegue con le impostazioni predefinite. L’installazione comincia con una finestra di

Page 122: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

attenzione, nella quale si richiede di chiudere ogni altro programma n esecuzione. Cliccando sul tasto NEXT l’installazione prosegue.

La prima finestra dopo l’avvio della installazione.E’ necessario cliccare sul tasto Next

 

Il quesito successivo riguarda la richiesta di accettazione delle regole con le quali viene concesso l’uso del programma. Con l’accettazione delle condizioni, premendo su Yes, l’installazione procede. La immagine che segue corrisponde a questa fase dell’installazione.

Page 123: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Il direttorio di installazione è la successiva richiesta. In caso di mancato successo di questa istruzione, l’installazione viene eseguita in C:\ProgramFiles\Mecaniqe.

Scelta del direttorio di installazione.La scelta migliore è quella relativa al direttorio predefinito. Occorre cliccare sul tasto OK per procedere con l’installazione.

Page 124: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

Il nome del direttorio non ha particolare significato per le successive fasi della programmazione. Il fine ultimo è quello di permettere che lo spazio sull’hard disk consenta di installare nello stesso direttorio, sia il programma che i files ad essi associati.

La domanda successiva riguarda il nome del gruppo dei programmi. Il nome suggerito è quello del programma stesso per cui è bene lasciarlo tal quale.

Il nome del gruppo è MicroCodeStudio. Cliccando su Next, l’installazione prosegue

 

Infine, compare la finestra che segnala l’avvenuto successo della installazione.

Page 125: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

B.3 Collegamento tra MicroCODE Studio ed il compilatore PBP

Cliccando su Start-Programs-MicroCode Studio si avvia il MicroCode Studio appena installato e la finestra illustrata qui sotto, appare.

Page 126: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Per collegare MicroCode Studio ed il compilatore PBP occorre aprire una nuova finestra. Questo lo si ottiene cliccando su Options dal menu View. Se il compilatore è già stato installato sull’hard disk, cliccare su Find Automatically in modo tale che il programma possa ricercare il direttorio presente sull’hard disk. Quando il programm atrova il compilatore, sopra il tasto Find Automatically appare l’indirizzo “C:\PBP”.

Page 127: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Collegamento tra MicroCode studio ed il compilatore PBP. Se il compilatore PBP si trova già sull’hard disk è sufficiente cliccare sul tasto Find Automatically ed il programma lo

trova da solo

 

Oltre all’indirizzo del compilatore occorre indicare anche il direttorio dei files INCLUDE. Cliccando su Add il direttorio C:/PBP e C:/PBP/inc vengono aggiunti.

Page 128: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

I files di dati Include sono necessari per il successo della compilazione dei programmi. Cliccando su Add, appare una nuova finestra con il direttorio inc in cui il compilatore è

stato copiato

 

Page 129: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Finestra Options dopo l’avvenuto settaggio dell’indirizzo del compilatore e del direttorio dei files include. Assicurarsi che il direttorio dei files include si trovino effettivamente in

C:\PBP in modo tale che i direttori specificati siano specificati correttamente

 

Questo passo conclude la parte di settaggio riferita al compilatore. MicroCode studio è ora pronto per la lettura dei programmi e la loro compilazione.

 

B.4 Connessione di MicroCODE Studio e del programmatore

Il programmatore che MicroCode ha la possibilità di utilizzare, dipende da come si è attrezzato lo sviluppatore, e questo deve essere un qualche cosa che consente la lettura del programma all’interno del microcontrollore (?). Un difetto stà nel fatto che Microcode studio non prevede un tool e dei settaggi adatti a questo scopo.

 

Page 130: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Il settaggio del programmatore si avvia cliccando su Programmers dopo di che due distinte opzioni appaiono, Una per aggiungere un programmatore alla lista ed un’altra per la sua rimozione. Il programmatore qui utilizzato è tra quelli più economici programmatori di microcontrollori PIC reperibili al momento. Il nome di questo programmatore è ICprog che utilizza i pin della connessione seriale per comunicare col microcontrollore (ulteriori dettagli possono essere reperiti nella speciale appendice contenuta in questo libro).

 

Cliccando su Programmers appare la parte dedicata al settaggio del programmatore

 

Prima si installa il programmatore in un direttorio presente sull’hard disk, e.g. “C:\Programmer”. Cliccando su “Add new Programmer…”, una breve procedura di selezione della collocazione del suo direttorio , comincia.

Il primo passo consiste nello scrivere il nome del programmatore o di ogni altro nome che gli possa rassomigliare. Come per il programmatore Icprog risulta naturale chiamarlo “ICprog”.

Page 131: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

In questa opzione il nome del programmatore viene ad essere scritto. Il nome deve avere attinenza e somiglianza con quanto abbiamo installato

 

Il passo successivo consiste nella scrittura esatta del programmatore. E’ molto importante non compiere nessun errore; altrimenti il programma non è in grado di localizzarlo nell’hard disk. 

In questa opzione, il nome esatto del file eseguibile del programmatore, deve essere indicato.In questo caso è icprog.exe

 

Infine, cliccando su Find Automatically, il programma trova il direttorio che riguarda il programmatore.

Page 132: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Cliccando su Find Automatically il programma trova il percorso del direttorio in cui si trova il programmatore

 

L’opzione di definire parametri addizionali è vista qui di seguito. Tuttavia la trascuriamo in questo caso, dal momento che ne terremo conto solo quando dopo un uso protratto per un lungo periodo ci consente di conservare l’uso dei nome e la conseguente abitudine ad usarli. Le opzioni predefinite sono tali se ripetute sistematicamente e cambiate solo di rado. Cliccando su Finished si trascura questa opzione.

L’opzione di aggiungere dei parametri addizionali al programmatore, non è utilizzato in questa sede; per questo lo si omette cliccando su Finished

 

La finestra Option che deriva dal menù View col set di parametri per il compilatore ed il programmatore, somiglia ora a quella dell’immagine qui sotto riportata. A questo punto ogni settaggio importante di MicroCode Studio è terminato.

Page 133: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

La finestra Option con tutti i parametri per il compilatore ed programmatore

 

Inoltre, il settaggio del compilatore e quello del programmatore sono meno importanti di quelle dell’editor. Fatte queste impostazioni, d’ora in poi non le prenderemo più in considerazione.

 

B.5 Scrittura e compilazione di codice in MicroCODE studio

MicroCode studio appare come la gran parte dei programmi per Windows. Al di sopra dell’area di lavoro, compaiono le linee dei menù, toolbars e la linea per la compilazione ed invio del programma verso il microcontrollore.

Page 134: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

 

La linea del menù contiene tutte le voci standard come sottomenù, come File, Edit, Search, View ed Help.

La toolbar contiene poche icone di cui tuttavia non vengono date dettagliate descrizioni.

Quello che distingue MicroCode studio dagli altri strumenti di sviluppo sono la semplicità e la intelleggibilità. E’ estremamente importante la presenza della zona posta alla sinistra dell’area di lavoro, chiamata Code Explorer. Quando necessario, questa parte di finestra può essere chiusa cliccando su View – Code Explorer… comunque è raccomandato lasciarla attiva , finalizzando il suo uso ai fini di una migliore intelleggibilità ed organizzazione del programma. La scrittura del programma avviene nella finestra a destra. Il processo di scrittura del codice è largamente facilitato dal carattere inspessito con cui vengono ad essere scritti i comandi, e dalla eccellente soluzione per i comandi complicati aventi un grande numero di parametri gestiti attraverso una finestra di pop up in cui vengono riportati tutti i possibili parametri relativi al comando digitato. Cioè, dopo la scrittura del comando, appena si immette lo spazio, appare un frame che contiene i parametri ammessi per quel dato comando.

 

Page 135: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Subito dopo aver scritto il codice, cliccando sull’icona Compile Only (la forma triangolare sul lato destro) si avvia la compilazione del programma. Se si incontra un errore, questo viene riportato in una parte dedicata, sulla parte bassa della finestra. Cliccando sull’errore, il cursore viene ad essere posizionato esattamente sulla linea in cui l’errore si è verificato. Dopo la correzione, il processo di compilazione ha successo.

Se il programmatore è stato configurato, l’icona successiva alla destra di Compile Only può essere utilizzata ed in seguito alla compilazione può essere inviato nel programmatore.

Cliccando sulla icona relativa alla connesione, si apre una finestra per l’esame della connessione seriale col microcontrollore. La finestra di comunicazione seriale ha il compito di permettere il dialogo tra il PC ed il microcontrollore . Un parametro addizionale consente di variare, oltre ai parametri della comunicazione, anche la porta di collegamento, e la relativa velocità.

Page 136: BASIC for PIC microcontrollers Author: Nebojsa Matic - grix.it for PIC microcontrollers...  · Web viewPacchetto MPLAB . Come installarlo, come avviare il primo programma, come collegare

Opzione per esaminare la connessione seriale col microcontrollore