INTRODUZIONE AI PICmicro

Slides:



Advertisements
Presentazioni simili
Ing. Pasquale Zambrotta
Advertisements

INGRESSI E USCITE.
La struttura fisica e logica di un elaboratore
IL MICROCONTROLLORE ST6
Algoritmi e Programmazione
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
IL MICROCONTROLLORE PIC16F84A
DAL MICROPROCESSORE AI SISTEMI EMBEDDED Informatica per lAutomazione II (Informatica B o II) Anno accademico 2008/2009 Prof. Giuseppe Mastronardi Ing.
PLC PCD1 della SAIA-Burgess
MICROCONTROLLORI Di Tiziano Ragazzi.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
Caratteri e stringhe di caratteri
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Flip-flop e Registri.
Struttura dei sistemi operativi (panoramica)
Il livello Microarchitetturale
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.
Convertitore A/D e circuito S/H
Il Linguaggio Macchina
Unità Didattica 2 I Linguaggi di Programmazione
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
ARCHITETTURA DEL CALCOLATORE
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
La macchina di von Neumann
La macchina di von Neumann
L’Architettura del Sistema di Elaborazione
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Architettura dell’elaboratore
Il Calcolatore Elettronico
ELETTRONICA DIGITALE (II Parte)
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
Introduzione al linguaggio assemby del microprocessore a parte
I vettore interruzioni
Architettura del calcolatore
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VII Il compilatore e le sue opzioni Programmazione di Calcolatori: il compilatore e le sue.
PROGETTO DI UN CIRCUITO PER L'ALIMENTAZIONE E LA PROTEZIONE
Introduzione al linguaggio assembly del microprocessore a parte
Sistemi di elaborazione e trasmissione delle informazioni
Unità centrale di processo
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Assembly2 Gestione dei ritardi.
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
PIC16F84A (seconda lezione). VARIABILI E COSTANTI.
Architettura di una CPU
Architettura del calcolatore
Progettato e realizzato Da Daniele Scaringi 5AET
WATCHDOG TIMER E’ un oscillatore interno al  C, ma indipendente dal resto dei circuiti, il cui scopo è quello di rilevare eventuali blocchi della CPU.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Gestione dei dispositivi di I/O:
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
OSCILLATORE E’ un circuito elettronico che genera forme d'onda senza avere un segnale di ingresso. Nel Microcontrollore gli impulsi generati dall'oscillatore.
Architettura di un calcolatore e linguaggio macchina.
L’esecuzione dei programmi
Vediamo com'è fatto internamente un microcontrollore PIC, quali dispositivi contiene e come interagiscono tra loro. Nella figura seguente viene riprodotto.
sul Microcontrollore 16F84
UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA Dispositivi per il.
Il software Claudia Raibulet
Informatica e Informatica di Base
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Ing. Saverio De.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Il modello di Von Neumann
Introduzione ai Microcontrollori Una prima definizione I microcontrollori sono utilizzati per gestire segnali in ingresso (input utente o da sensori),
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Il BUS è un elemento fondamentale dei computer che ha lo scopo di collegare elettricamente i dispositivi, le periferiche e le memorie con il microprocessore,
Transcript della presentazione:

INTRODUZIONE AI PICmicro I Pic micro sono dei Circuiti Integrati della famiglia dei microcontrollori prodotti dalla MICROCHIP TECHNOLOGY INC.

MICROCONTROLLORE Legge segnali ai suoi ingressi (sensori,pulsanti,…etc.) Processa,eleabora tali segnali (dati) Pilota dispositivi collegati alle sue uscite (led,display,lcd,motori,..etc.)

PIC16F84 E’ il microcontrollore di cui ci occuperemo. Si presenta in un package DIP a 18 pin.

PIC1684 Si presenta come in fig.

DISPOSITIVI INTERNI AD UN MICRO CPU (Central Processor Unit) unità centrale di elaborazione,interpreta le istruzioni del programma EEPROM (Electrical Erase Programmable Read Only Memory)memoria programmabile a solo lettura,è il luogo ove viene memorizzato il programma. LINEE I/O, linee di ingresso e di uscita,per pilotare disp. Esterni o ricevere segnali da sensori,pulsanti,..etc. RAM (Random Access Memory) ovvero memoria ad accesso casuale.Utilizzata per memorizz. Le variabili del programma. CLOCK, BUS, CONTATORI (TIMER),..etc.

PIEDINATURA DEL PIC16F84

Descrizione dei pin del PIC16F84 RA2 è una linea di I/O programmabile in ingresso o in uscita. CORRISPONDE AL BIT 2 DELLA PORTA A. RA3 è una linea di I/O programmabile in ingresso o in uscita. CORRISPONDE AL BIT 3 DELLA PORTA A. RA4 / RTCC è un pin multifunzione che può essere programm. Come normale linea di I/O oppure come linea di clock in ingresso verso il contatore TMR0 se programm. Come linea I/O corrisponde al bit 4 della porta A.Diversamente dalle altre linee di I/O,quando funziona come uscita ,lavora a collettore aperto.

MCLR/VPP In condizioni di normale funzionamento svolge le funzioni di Master Clear ovvero di RESET ed è attivo a livello 0.Quando il PIC deve essere programmato viene usato come ingressso per la tensione di programmazione VPP. VSS è il pin a cui va collegato il negativo della tensione di alimentazione (massa). RB0 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 0 DELLA PORTA B. RB1 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 1 DELLA PORTA B. RB2 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 2 DELLA PORTA B.

RB3 è una linea di I/O programmabile in ingresso o uscita dall’utente RB3 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 3 DELLA PORTA B. RB4 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 4 DELLA PORTA B. RB5 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 5 DELLA PORTA B. RB6 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 6 DELLA PORTA B. RB7 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 7 DELLA PORTA B. VDD è il terminale positivo dell’alimentazione (+5V) OSC2/CLKOUT è un pin di connessione nel caso venga utilizzato un quarzo per generare il clock.E’ l’uscita del clock nel caso venga applicato un oscillatore RC o un oscill. Esterno.

OSC1/CLKIN è un pin di connessione nel caso venga utilizzato un quarzo o un circuito RC per generare il clock.E’ l’ingresso del clock nel caso venga utilizzato un oscillatore esterno. RA0 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 0 DELLA PORTA A. RA1 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 1 DELLA PORTA A.

ARCHITETTURA INTERNA DI UN PIC16F84

LA ALU La ALU ovvero unità aritmetica e logica è la componente più complessa del pic in quanto contiene tutta la circuteria che svolge le funzioni di calcolo. La ALU è presente in tutti i microprocessori e da essa dipende direttamente la potenza di calcolo.

LA PROGRAM MEMORY E’ una memoria di tipo EEPROM,ed utilizzata dal pic per tenere memorizzato il programma da esguire. La sua capacità di memorizzazione è di 1024 locazioni ,ognuna in grado di contenere un opcode di 14 bit. Il programma più complesso che potremo realizzare non potrà essere più lungo di 1024 istruzioni.

MEMORIA RAM DEL PIC16F84 Le prime 12 locazioni della pagina 0 (da 00H a 0BH) e della pagina 1 (da 80H a 8BH) sono riservate ai registri speciali usati per il funzionamento del pic e non possono essere usati per altri scopi. Le 68 locazioni in pagina 0 indirizzate da 0CH a 4FH possono essere utilizzate liberamente dai nostri programmi per memorizzare variabili,contatori,ecc..

MAPPATURA DELLA RAM DEL PIC16F84 00h Indirect address indirect address 80h 01h TMR0 OPTION 81h 02H PCL 82h 03h STATUS 83h 04h FSR 84h 05h PORTA TRISA 85h 06h PORTB TRISB 86h 07h   87h 08h EEDATA EECON 88h 09h EEADR 89h 0Ah PCLATH 8Ah 0Bh INTCON 8Bh 0Ch REGISTRI DI USO  MAPPATO IN PAG. 0 8Ch GENERALE 4Fh CFh 50h D0h 7Fh FFh Bank 0 Bank 1 -Registri con funzioni speciali--

IL REGISTER FILE E’ un insieme di locazioni di memoria RAM, ove è possibile leggere e modificare il contenuto, senza l’ausilio di programmatori esterni e direttamente dal programma in esecuzione sul PICmicro.

L’ACCUMULATORE O REGISTRO W E’ direttamente connesso alla ALU. E’ una locazione di memoria ad 8 bit E’ utilizzato spessissimo nei programmi per PIC.

Le porte A e B Il pic16F84 dispone di 13 linee di I/O organizzate in due porte denominate PORTA A e PORTA B. La porta A dispone di 5 linee configurabili sia in ingressi che in uscite,indicate con RA0,RA1,RA2,RA3 ed RA4.

La porta B dispone di 8 linee configurabili sia come ingressi che come uscite,identificate con RB0,RB1,RB2,RB3,RB4,RB5,RB6 ed RB7.

REGISTRI PER LA GESTIONE DELLE PORTE Per la gestione delle linee di I/O da programma,il pic dispone di due registri interni per ogni porta denominati TRISA e PORTA per la porta A e TRISB e PORTB per la porta B. I registri TRISA e TRISB,determinano il funzionamento in ingresso o in uscita di ogni singola linea,i registri PORTA e PORTB determinano lo stato delle linee in uscita o riportano lo stato delle linee in ingresso.

Ognuno dei bit contenuti nei registri menzionati corrisponde univocamente ad una linea di I/O. Ad esempio il bit 0 del registro PORTA e del registro TRISA corrispondono alla linea RA0,il bit 1 alla linea RA1 e cosi via.Questi se posti a 1 configurano la linea corrispondente come ingresso,se posti a 0 configurano la corrispondente linea come uscita.

Schema delle linee RA0,RA1,RA2 e RA3

Schema della linea RA4

Schema delle linee RB0,RB1,RB2,RB3

Schema delle linee RB4.RB5,RB6,RB7

LINGUAGGIO ASSEMBLER Ogni istruzione è rappresentata da un codice operativo (opcode) composto da 14 bit. Viene memorizzata in una locazione di memoria programma. Esempio di opcode: 00 0001 0000 0000 (rappr. Binaria) 0x100 (rappr. Esadec)

Questi codici,privi di significato per un essere umano,sono gli unici che il pic è in grado di capire. Per convenzione si associa,ad ogni opcode,una breve sigla mnemonica che aiuta a ricordare la funzione svolta da ogni istruzione. L’opcode 0x100 di prima effettua l’azzeramento de registro W che in inglese viene indicato con la frase CLEAR W REGISTER,che abbreviata diventa CLRW

Altre sigle mnemoniche definiscono tutte le istruzioni che il PICmicro è in grado di eseguire L’insieme di queste sigle e le regole per ordinarle per formare un programma completo viene chiamato LINGUAGGIO ASSEMBLER.

Per scrivere un programma in assembler occorre: conoscere le istruzioni,per il pic che si vuole usare Disporre di un elaboratore di testo con cui scrivere il programma. Il file di testo ottenuto si chiama source o sorgente assember.

L’ASSEMBLATORE E’ un programma che traduce il nostro sorgente assembler nella giusta sequenza di istruzioni in formato binario che il pic è in grado di capire.

SCHEMA DI FLUSSO DELLE OPERAZIONI E DEI FILE GENERATI NECESSARI PER OTTENERE UN PICmicro PROGRAMMATO

La prima operazione la scrittura del sorgente assembler e la sua memorizzazione in un file di testo con l’estensione .ASM Durante la compilazione ,l’assemblatore genera una serie di file con il nome identico al source,ma con estensione diversa. .HEX è il file contenente gli opcode da inserire all’interno del pic. .LST è un file di testo in cui è riportato l’intero source assembler e la corrispondente traduzione in opcode. .ERR contiene la lista degli errori di compilazione riscontrati ed il numero di linea all’interno del source assembler in cui sono stati rilevati.

Primo programma in assembler PROCESSOR 16F84 btfsc PORTB,LED RADIX DEC Goto setTozero INCLUDE “P16F84.INC” bsf PORTB,LED LED EQU 0 goto MainLoop ORG 0CH SetTozero COUNT RES 2 bcf PORTB,LED ORG 00H goto MainLoop Bsf STATUS,RP0 Movlw 00011111B Delay Movwf TRISA clrf Count Movlw B’11111110’ clrf Count+1 Movwf TRISB DelayLoop Bcf STATUS,RP0 decfsz Count,1 Bsf PORTB,LED goto DelayLoop mainLoop decfsz Count+1,1 Call Delay goto DelayLoop retlw 0 END

IL CONTATORE TMR0 ED IL PRESCALER Il registro TMR0 è un contatore. Esso viene incrementato ogni 4 cicli macchina. E’ programmabile direttamente dall’hardware del PIC. Raggiunto il valore max pari a 255 esso viene azzerato automaticamente.

La frequenza di conteggio è direttamente proporzionale alla freq La frequenza di conteggio è direttamente proporzionale alla freq. del clock applicata al chip. Tale freq. può essere modificata programmando opportunatamente alcuni bit di configurazione.

Catena di blocchi interni al pic che determinano il funzionamento del TMR0

DESCRIZIONE DEI VARI BLOCCHI blocchi FOSC/4 e TOCK1:sorgenti di segnale per il contatore. Fosc/4 è un segnale generato internamente al pic dal clock ed è pari alla freq. di clock divisa per 4. TOCK1 è segnale generato da un eventuale circuito estero ed applicato al pin TOCK1 (pin 3) del pic16F84.

I blocchi TOCS e PSA sono 2 commutatori di segnale sulla cui uscita viene presentato uno dei due segnali d’ingresso in base al valore dei bit TOCS e PSA del registro OPTION. Il PRESCALER è un divisore di frequenza programmabile a 8 bit,si usa nel caso in cui la freq. di conteggio inviata al TMR0 sia troppo elevata. Configurando in modo opportuno i bit PS0,PS1 e PS2 del registro OPTION secondo la seguente tabella :

CONFIGURAZIONE PRESCALER

In base al valore dei bit TOCS e PSA del registro option si hanno le seguenti modalità di funzionamento :TOCS=1 E PSA=1

TOCS=0 E PSA=0

Funzionamento con prescaler TOCS=0 e PSA=0

Il bit TOSE La presenza della porta logica XOR,all’ingresso TOCK1 del pic,consente di determinare,tramite il bit TOSE del registro OPTION,se il contatore TMR0 deve essere incrementato in corrispondenza del fronte di discesa (TOSE=1) o del fronte di salita (TOSE=0)

GLI INTERRUPT E’ un evento esterno,che interrompe momentaneamente il programma principale per eseguire una porzione di programma specializzata nella gestione dell’evento verificatosi e riprendere l’esecuzione del programma principale.

TIPI DI EVENTO E BIT DI ABILITAZIONE Tipi di eventi: Cambiamento di stato sul pin RB0 Fine conteggio del registro TMR0 Cambiamento di stato sui pin da RB4 a RB7 Fine scrittura su una locazione EEPROM.

Bit di abilitazione (registro INTCON): INTE (bit4):se viene messo a 1 viene abilitato l’interrupt del primo evento TOIE (bit5):se viene messo a 1 viene abilitato l’interrupt del secondo evento. RBIE(bit3):se viene messo a 1 viene abilitato il terzo evento. EEIE(bit6):se viene messo a 1 viene abilitato l’interrupt del quarto evento.

NOTA BENE: ESISTE INOLTRE UN BIT DI ABILITAZIONE GENERALE DEGLI INTERRUPT CHE DEVE ESSERE MESSO A 1 ,OVVERO IL BIT GIE (GLOBAL INTERRUPT ENEBLE BIT) POSTO SUL BIT 7 DEL REGISTRO INTCON.

INTERRUPT FLAGS Dato che qualunqe interrupt genera una chiamata alla locazione 04H,nel registro INTCON sono presenti dei flag che indicano quale è l’evento che ha generato l’interrupt,vediamoli: INTF(bit 1) se vale 1 l’interrupt è stato generato dal cambiamento di stato sul pin RB0 TOIF(bit 2) se vale 1 l’interrupt è stato generato al termine del conteggio del TMR0. RBIF(bit 0) se vale 1 l’interrupt è stato generato dal cambiamento di stato sui pin da RB4 a RB7. Se nessuno dei tre bit vale 1 allora l’interrupt è stato generato sul fine scrittura nella EEPROM.

IL POWER DOWN MODE E’un particolare stato di funzionamento del PICmicro utilizzato per ridurre il consumo di corrente nei momenti in cui il pic non è utilizzato perché in attesa di un evento esterno. Per esempio un telecomando per apricancello o per TV rimane inattivo fino a quando qualcuno non preme un tasto.Appena premuto il tasto il pic effettua una breve trasmissione e poi si rimette di nuovo nello stato di attesa. Quindi l’effettivo utilizzo del pic è limitato a pochi ms. Per evitare di consumare inutilmente l’energia della pila è possibile spegnere buona parte dei circuiti interni al pic e riaccenderli solo in corrispondenza di un evento esterno.

L’istruzione SLEEP Viene utilizzata per mettere il pic in power down mode e ridurre di conseguenza la corrente che passerà da circa 2 mA (a 5V con clock da 4MHz) a circa 2 uA,ovvero 1000 volte di meno! Per entrare in Power Down Mode basta inserire l’istruzione SLEEP in un punto qualsiasi del nostro programma.

IL WATCH DOG TIMER (WDT) Il WDT è in pratica un oscillatore interno al pic ,ma completamente indipendente dal resto della circuiteria,il cui scopo è quello di rilevare eventuali blocchi della CPU del micro e resettare il pic per riprendere la normale esecuzione del programma. L’istruzione per attivare il WDT è CLRWDT (clear Watch Dog Timer),la quale azzera ad intervalli regolari il WDT non consentendogli di finire il conteggio.Se il pic non effettua tale istruzione prima del termine del conteggio allora si desume che il programma si sia bloccato per qualche motivo e si effettua il reset del pic.

Scrittura e lettura dati da EEPROM Per accedere all EEprom vengono utilizzati i seguenti registri: EEAADR Serve ad indirizzare una delle 64 locazioni. EEDATA è il registro usato per inviare un byte alla EEPROM EECON 1 e EECON2 sono 2 registri di controllo usati nelle operazioni di scrittura e di lettura.