Architettura Harvard: il PIC possiede memorie separate per i dati e le istruzioni.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Architettura Harvard: il PIC possiede memorie separate per i dati e le istruzioni."

Transcript

1 Il PIC 16F84 Introduzione Il 16F84 è un microcontrollore RISC a 8 bit della Microchip estremamente versatile e semplice da utilizzare. E' possibile controllare led, rele', motori e attuatori in genere oppure controllare lo stato di sensori esterni. E' molto utilizzato anche come manipolatore e generatore/ricevitore di segnali (radiocomandi, lettore di schede magnetiche e/o simcard etc...). Prima di poter utilizzare il PIC occorre programmarlo; cio' richiede l'inserimento del programma compilato anella memoria interna. Il programma invece viene realizzato e compilato con l'ausilio di un normale computer casalingo. Una volta programmato ed acceso, il PIC inizia ad eseguire il programma e, se previsto, a comunicare opportunamente con il mondo esterno tramite i suoi 13 piedini di ingresso/uscita. Il microcontrollore è anche molto economico (un singolo pezzo può venire a costare intorno ai 7 euro, mentre se presi in stock si arriva anche a 50 centesimi l'uno) il che lo rende adatto anche per l'elettronica amatoriale. In foto si mostra un PIC 16F84 nel classico package DIL a 18 piedini. Caratteristiche Architettura Harvard: il PIC possiede memorie separate per i dati e le istruzioni. Memoria FLASH per le istruzioni da 1 K (1024 istruzioni) programmabile con l'ausilio di un computer esterno. Questa memoria supporta fino ad un massimo di 1000 cicli di cancellazione/scrittura. Memoria RAM dei dati da 90 bytes, dei quali 22 utilizzati per i registri interni di sistema (SFR = Special Function Registers) e i restanti 68 come registri utente liberi (GPR = General Purpose Register) Frequenza di clock massima: 10MHz (20MHz per la versione 16F84A) Un set di appena 35 istruzioni. Grazie al sistema di pipelining ogni

2 istruzione viene eseguita in un singolo ciclo macchina (4 colpi di clock) eccetto le istruzioni di salto che richiedono 2 cicli macchina (8 colpi di clock). Ad esempio, con un oscillatore esterno da 4MHz è richiesto 1 microsecondo per l'esecuzione di una istruzione non di salto e 2 microsecondi per quelle di salto (condizionato o non). Memoria EEPROM interna da 64 bytes. Questa memoria può essere programmata via software dal PIC stesso e sopporta fino ad un massimo di 1 milione di cicli di cancellazione/scrittura. Tale memoria non può essere utilizzata come RAM aggiuntiva per via della sua lentezza (20 ms in scrittura) e l'accesso seriale (non e' mappata nello spazio degli indirizzi direttamente raggiungibili dalla CPU e viene letta/scritta solo tramite l'ausiliio di alcuni dei registri speciali SFR) Stack a 8 livelli (Lo stack è implementato in una memoria a parte non visibile da programma e quindi non occupa lo spazio della RAM) Timer interno a 8 bit Watch-dog interno 2 porte di I/O (porta A a 5 bit e porta B a 8 bit) per un totale di 13 piedini di ingresso/uscita. Ogni linea può essere programmata indipendentemente dalle altre come linea di ingresso o linea di uscita. Possono sembrare poche ma va sempre ricordato che il microcontrollore è alloggiato in un DIL a soli 18 piedini! 4 diverse possibilità di interrupt (esterno tramite piedino apposito, del timer, esterno dovuto al cambio di stato dei piedini di I/O, interno di completamento della fase di scrittura della EEPROM) Opzione di protezione del codice. Settando questa opzione viene impedito ogni tentativo di lettura della memoria FLASH d programma. Tensione di alimentazione da 2 a 6 volt. Tensione di programmazione da 12 a 14 volt. Piedinatura Come detto prima il PIC possiede 18 piedini. 13 di questi sono adibiti all'i/o in logica TTL: questo significa che i valori booleani sono rappresentati dalle tensioni 0V e +5V rispettivamente per lo 0 e 1 logico. I rimanenti piedini vengono impiegati per il reset, l'alimentazione e per l'oscillatore esterno che fornisce il clock al PIC stesso. Come si vede in figura alcuni piedini hanno una duplice funzione (ad esempio il piedino numero 3 porta la dicitura RA4 e T0CKl) anche se di default vale la prima (il piedino numero 3 e' di default RA4). Le funzioni secondarie verranno spiegate piu' avanti.

3 Ecco l'elenco dei piedini e delle loro funzioni: RA0, RA1, RA2, RA3, RA4 - Sono i 5 piedini della porta A (tale porta e' a 5 bit). I piedini possono essere configurati indipendentemente come linee di ingresso o di uscita. Quando un piedino e' impostato come linea di uscita, presentera' una tensione di 0V o 5V a seconda che il PIC abbia associato uno 0 o 1 logico al piedino stesso, tramite apposite istruzioni. Quando e' impostato come ingresso, il PIC potra' ricevere un valore booleano leggendo il livello di tensione fornito al piedino in questione. Se il livello e' maggiore di 2V verra' letto un 1 logico, se inferiore a 0.8V verra' letto lo 0 logico. Applicando una tensione compresa tra 0.8 e 2V il risultato e' impredicibile. RB0, RB1, RB2, RB3, RB4, RB5, RB6, RB7 - Sono gli 8 piedini della porta B. Valgono le considerazioni viste per quelli della porta A. GND - Riferimento di massa VDD - Tensione di alimentazione. Deve essere compresa tra 2 e 6V. Di norma e' 5V. OSC1 e OSC2 - A questi piedini deve essere collegato l'oscillatore che fornisce il clock al sistema. Per alcuni tipi di oscillatori sono necessari tutti e due i piedini, per altri serve solo OSC1 e quindi OSC2 puo' essere lasciato scollegato. #MCLR - Piedino di reset, detto anche MasterCLeaR. L'attivazione del piedino produce un reset del PIC, cioe' il sistema riparte da capo con l'esecuzione del programma interno, come quando viene appena acceso. Questo piedino e' l'unico ad essere attivo basso, cio' significa che solo portandolo a massa si provoca il reset del PIC; durante il funzionamento normale il piedino deve essere mantenuto a livello logico alto tramite apposita resistenza limitatrice di corrente. Il piedino #MCLR Per funzionare correttamente il PIC ha bisogno di tenere alto il livello logico

4 del piedino di reset (#MCLR). Ogni volta che si desidera resettare il PIC occorrera' invece portare a massa tale piedino. Ecco un semplice circuito di pull-up standard da interfacciare al piedino #MCLR del microcontrollore: solo due resistenze ed un interruttore. Durante il funzionamento normale, cioe' ad interruttore aperto, il piedino #MCLR e' in stato logico alto (circa VDD Volt). Premendo l'interruttore si porta momentaneamente a massa il piedino, scatenando il reset del PIC. La resistenza da 100 ohm limita la corrente nel piedino stesso quando il pulsante e' premuto. Come si vedra' anche negli esempi questo circuito e' praticamente sempre presente. Oscillatore esterno L'oscillatore esterno fornisce il clock al microcontrollore, permettendone cosi' il corretto funzionamento. Il PIC 16F84 accetta clock con frequenza fino a 10MHz (il modello 16F84A fino a 20MHz). In ogni caso il PIC impiega 4 colpi di clock per istruzione (8 nel caso di istruzioni di salto). Esistono 4 tipi di oscillatori: XT,RC,LS e HS XT Utilizza un cristallo di quarzo da collegare ad entrambi i piedini OSC1/CLKIN e OSC2. Le frequenze supportate dipendono dal quarzo stesso nel range di valori da 100KHz e 20MHz. Questo tipo di oscillatore e' estremamente preciso ed affidabile e quindi quello piu' utilizzato.

5 RC E' un'oscillatore molto semplice, composto da una restistenza ed un condensatore, da collegare al piedino OSC1/CLKIN. Il piedino OSC2 puo' essere lasciato scollegato, oppure puo' essere utilizzato per prelevare un segnale ad onda quadra di frequenza pari alla quarta parte di quella di clock, cioe' la frequenza di esecuzione delle istruzioni (una istruzione richiede 4 colpi di clock). Il consumo di corrente e' ridotto al minimo ma l'oscillatore e' poco preciso e tende a variare la frequenza in funzione della temperatura e tensione di alimentazione. Si raggiungono basse frequenze (da 80Hz fino a 625KHz): ad esempio, con una resistenza da 10K e un condensatore da 220pF si raggiungono gli 80KHz. Per programmi che richiedono una esecuzione lenta conviene installare un oscillatore XT e poi aggiungere istruzioni di ritardo, piuttosto che abbassare la frequenza del PIC con un oscillatore RC. LP e HS Utilizzano un risonatore ceramico rispettivamente per basse ed alte frequenze di clock. Tutti e due i tipi sono abbastanza precisi, il primo tende a consumare poco mentre il secondo molto di piu', per via delle elevate frequenze raggiunte. Durante la fase di programmazione del PIC andra' specificato quale dei 4 tipi di oscillatore e' stato utilizzato. In questo modo i piedini 15 e 16 del PIC (OSC1/CLKIN e OSC2/CLKOUT) si configureranno in modo opportuno per ricevere il segnale da quello specifico tipo di oscillatore.

6 Struttura interna In figura viene riportata a grandi linee la struttura interna del PIC. In alto a sinistra e' la memoria delle istruzioni da 1024 posizioni. In alto al centro la RAM principale, chiamata anche RAM File Register da 68 byte (cioe' 68 registri). A destra di questa e' la memoria EEPROM da 64 byte. La memoria delle istruzioni viene indirizzata da uno specifico puntatore detto Program Counter. Tale registro permette di recuperare in sequenza le istruzioni del programma e di portarle nell'instruction register. Sebbene bastino 10 bit per indirizzare la memoria istruzioni (2^10 = 1024) il Program Counter e' a 13 bit perche' il modello 16F84 (come il 16F84A) fa parte di una famiglia di PIC piu' estesa che contempla anche memorie di dimensioni maggiori: i progettisti tendono a ridurre le differenze tra le varie versioni dei PIC per minimizzare i costi di produzione. L'istruzione viene poi inserita nell'instruction register (di 14 bit) e poi decodificata ed eseguita. Il Program Counter viene incrementato di uno (oppure di una altra quantita' se e' previsto un salto). Il microcontrollore possiede un solo registro esterno alla memoria RAM, il registro W (Work). Questo registro entra in gioco durante le operazioni booleane, aritmetiche o di movimentazione dei dati. Ad esempio, per copiare un byte da una posizione di memoria ad un altra occorrono due istruzioni macchina: la prima legge la posizione di memoria desiderata e ne trasferisce il contenuto (il byte) nel registro W, la seconda trasferisce il contenuto di W nella posizione di memoria di destinazione. Le operazioni booleane o aritmetiche prevedono sempre e solo due operandi, il primo e' W, il secondo e' un locazione di memoria RAM (cioe' un registro del File Register); si puo' scegliere se piazzare il risultato dell'operazione in W (e quindi sovrascrivere il primo operando), o nella stessa locazione di memoria (sovrascrivendo il secondo operando). Le porte di I/O (porta A e porta B) sono mappate in RAM, cio' significa che si puo' leggere e scrivere nelle porte semplicemente leggendo e scrivendo nelle relative locazioni in RAM. Ad esempio, una scrittura di un byte nella locazione di memoria collegata alla porta B causa la configurazione opportuna dei segnali di tensione nei piedini della porta B (RB0,RB1,RB2... RB7), viceversa una lettura traduce in un byte la configurazione attuale delle tensioni applicate sui piedini di tale porta. Ovviamente un piedino di I/O non puo' essere simultaneamente di input e di putput: occorre decidere all'inizio la "direzione" dei piedini per tutte e 13 le linee e cio' si risolve ancora una volta scrivendo in determinate posizioni di memoria RAM. Piu' avanti si chiariranno tutti questi meccanismi con esempi in assembler.

7 Memoria RAM/FLASH/EEPROM La memoria dati (memoria RAM) La memoria RAM del PIC 16F84 ha una dimensione di 90 byte, 22 byte per i SFR (Special Function Register) e i restanti 68 byte per i 68 GPR (General Purpose Register). Ogni registro occupa sempre ed esattamente un byte. Gli SFR sono registri che controllano il funzionamento e le periferiche del microcontrollore (ad esempio, e' qui che sono mappate le porte A e B): tali registri non possono quindi essere utilizzati come memoria RAM per i programmi utente ma semplicemente fungono da pannello di controllo per l'intero microcontrollore. I GPR sono invece 68 registri liberi a disposizione dell'utente. Le aree di memoria colorate in azzurro non sono implementate; qualsiasi lettura in queste locazioni ritorna sempre con valore zero, mentre le scritture non hanno effetto.

8

9 La memoria RAM e' suddivisa in due banchi distinti (banco 0 e banco 1). Per poter accedere ad un registro e' quindi necessario specificare sia l'indirizzo di memoria che il banco. Ad esempio, all'indirizzo 01h e banco 0 abbiamo TMR0, mentre all'indirizzo 06h e banco 1 abbiamo TRIS B. Alcuni registri sono "copiati" in entrambi i banchi; cio' significa che per accede a quel registro e' sufficiente specificarne l'indirizzo di memoria, non importa quale banco sia abilitato in quel momento. Ad esempio, per accedere al registro PCL possiamo portarci all'indirizzo 02h e banco 0, ma anche all'indirizzo 02h e banco 1. I registri di questo tipo sono: Indirect addr., PCL, STATUS, FSR, PCLATH, INTCON e tutti e 68 i registri GPR. I registri SFR Come appare poco evidente dalla composizione della memoria RAM, i registri SFR sono solo 16 (sembrerebbero 22 scartando le 2 sole aree in azzurro, ma ovviamente quelli mappati in ambedue i banchi contano sempre per uno solo, quindi sono effettivamente 16!). Eccoli elencati e suddivisi in gruppi: Registri SFR di controllo del PIC INDF TMR0 OPTION_REG PCL STATUS FSR PCLATH INTCON Registri SFR per le porte di I/O PORT_A TRIS_A PORT_B TRIS_B Registri SFR per l'utilizzo della memoria EEPROM interna EEDATA EECON1 EEADR EECON2 Tutti i registri verranno analizzati nel corso del tutorial e nelle rispettive sezioni. Ad esempio, i registri per l'utilizzo delle memoria EEPROM sono approfonditi nella sezione "Utilizzo della memoria EEPROM". I registri piu' trasversali, cioe' che riguardano e toccano piu' argomenti diversi, vengono approfonditi all'occorrenza. I registri GPR

10 I registri GPR, come detto in precedenza, sono tutti quelli che vanno dall'indirizzo di memoria 0Ch a 4Fh inclusi. Sono 68 ed ognuno di essi e' mappato in entrambi i banchi RAM. La memoria di programma (memoria FLASH) I programmi inseriti nel PIC vengono registrati in questa memoria. La memoria contiene esattamente 1024 locazioni (da 0000h fino a 03FFh) ed ogni locazione puo' contenere una sola istruzione (le istruzioni del PIC 16F84 sono a 14 bit, quindi ogni locazione memorizza esattamente 14bit). Per questo motivo un programma deve necessariamente essere costituito da un massimo di 1024 istruzioni. La memoria istruzioni non e' accessibile da programma, cioe' non e' possibile indirizzarne lo spazio di memoria come per la memoria RAM; a livello utente (livello di programmazione) e' possibile dimenticarsi completamente dell'esistenza di questa memoria. Una volta acceso (o resettato), il microcontrollore inizia ad eseguire il

11 programma a partire dalla locazione 0000h, detta anche "vettore di reset", per poi proseguire con le istruzioni successive. Esiste pero' una locazione speciale, cioe' l'indirizzo 0004h, che assolve ad un compito speciale; ogni qualvolta si verifica un interrupt (secondo le modalita' descritte che si vedranno in seguito) il PIC salta immediatamente a questa locazione. In questo modo, se si desidera creare una routine di gestione delle interruzioni occorre farla cominciare da questa precisa locazione (0004h) in modo tale che essa verra' eseguita non appena si verifichera' un interrupt. Ovviamente prima della locazione 0004h occorrera' inserire un salto incondizionato per poter "oltrepassare" la routine di gestione delle interruzioni: di solito il salto e' inserito proprio in prima posizione, cioe' in 0000h, cosiche' il microcontrollore, una volta accesso o resettato, passera' immediatamente ad eseguire il salto e quindi si posizionera' alla locazione opportuna scelta dal programmatore. In figura si mostra graficamente il concetto di salto al vettore di interrupt: Senza approfondire troppo, l'ultima istruzione della routine di gestione delle interruzioni dovra' essere un RETFIE per poter ritornare ad eseguire il programma da dove era stato interrotto, ma tutto questo verra' approfondito alla sezione relativa agli interrupt. Ovviamente se non e' prevista alcuna gestione di interrupt e quindi non c'e' alcuna routine di servizio delle interruzioni tutto il discorso puo' essere anche trascurato.

12 Il program counter Il microcontrollore tiene traccia dello stato di avanzamento del programma grazie ad uno specifico puntatore, il program counter. Nel caso del 16F84, il program counter e' un puntatore a 13 bit che indica l'istruzione corrente da eseguire (solo i primi 10 bit dell program counter vengono utilizzati, per un totale di 2^10 = 1024 locazioni indirizzabili). Al reset del pic il program counter vale 0 (prima istruzione in cima alla memoria di programma), successivamente, per ogni istruzione eseguita, esso viene incrementato di uno. Le istruzioni di salto (condizionato o no) modificano esplicitamente il program counter quando sono eseguite, imponendo un salto opportuno nel normale flusso di esecuzione del programma. Gli 8 bit meno significativi del program counter sono accessibili in lettura e scrittura dal registro PCL, quindi da tale registro e' possibile sia modificare gli 8 bit meno significativi del program counter che leggerne lo stato. Il registro PCL viene costantemente aggiornato e rispecchia sempre lo stato dei 8 bit meno significativi del program counter. Per i restanti 2 bit del program counter il discorso e' differente: tali bit sono nascosti e non sono visibili all'utente, ma possono essere modificati andando a cambiare i due bit meno significativi del registro PCLATH. PCLATH non viene mai aggiornato e quindi il suo stato non corrisponde a quello dei 2 bit piu' significativi del program counter. La figura mostra come sono relazionati i registri PCL e PCLATH con il program counter: In definitiva, durante il funzionamento normale del microcontrollore (esecuzione delle istruzioni, salti condizionati, salti incondizionati, chiamate a funzione etc..) il program counter viene aggiornato correttamente e non occorre preoccuparsi del suo stato. Occorre invece fare attenzione solo nel caso in cui una istruzione di programma modifichi esplicitamente il registro PCL: ogni volta che una qualche istruzione effettua una scrittura nel registro PCL, il contenuto di tale registro viene posto nei 8 bit meno significativi del program counter come detto in precedenza, ma anche i due bit meno significativi del registro PCLATH vengono copiati nei due bit piu' significativi del program counter (bit 8 e 9). Cio' significa che se una istruzione tenta di incrementare forzatamente il registro PCL di 10 unita' (al fine di effettuare un salto in avanti nel programma di 10 istruzioni senza usare apposite istruzioni di salto) puo' farlo, ma occorre ricordarsi che i due bit meno significativi del registro PCLATH vengono automaticamente copiati nei due bit piu' significativi del program counter. Quindi, ogni volta che ci si appresta a scrivere in PCL, occorre far in modo che lo stato dei bit 0 e 1 di PCLATH corrisponda a quello dei bit 8 e 9 del program counter, pena un salto ad una locazione non desiderata.

13 La EEPROM La EEPROM interna e' una memoria secondaria ad accesso relativamente lento (20ms per un cliclo di lettura o scrittura) di 64 bytes. La EEPROM puo' essere scritta e letta da programma attraverso gli appositi registri SFR ed il suo contenuto permane anche a microcontrollore spento; in effetti la durata massima di ritenzione dei dati puo' arrivare fino a 40 anni. La EEPROM verra' approfondita alla sezione "EEPROM interna". Alcuni registri SFR I registri SFR sono in tutto 22. In questa sezione vengono trattati solo quelli che non sono specifici di una determinata funzione, cioe' i seguenti: STATUS OPTION_REG PCL PCLATH INTCON Essendo utilizzati in maniera trasversale non possono essere inseriti in una particolare sezione del tutorial. Tutti gli altri sono trattati nelle rispettive sezioni di appartenenza. Ad esempio, i registri PORT_A,PORT_B,TRIS_A e TRIS_B vengono trattati alla sezione sull'utilizzo delle porte di I/O perche' questa e' la loro area di competenza. Registro STATUS Locazione di memoria: 0x03 Banco RAM: mappato in entrambi Descrizione dei bit: bit C bit DC Bit di Carry (riporto). Indica se una istruzione aritmetica ha prodotto un overflow oltre il bit piu' significativo (l'ottavo bit). 1 = overflow 0 = nessun overflow Simile al bit C, indica se c'e' stato un overflow oltre il quarto bit. 1 = overflow oltre il quarto bit 0 = overflow oltre il quarto bit

14 bit Z bit #PD bit #TO bit RP0 bit RP1 bit IRP Alcune istruzioni modificano automaticamente questo bit quando il risultato delle stesse e' zero: 0 - il risultato non e' zero 1 - il risultato e' stato zero Insieme a #TO specifica che cosa ha causato il reset precedente Insieme a #PD specifica che cosa ha causato il reset precedente Usato per la selezione del banco RAM: 0 = banco 0 1 = banco 1 Non implementato Non implementato Valore di default al power-on-reset: 00011xxx Valore di default per gli altri reset (#MCLR e Watch dog timer reset): 000qquuu Legenda: x = aleatorio q = dipendente da altri fattori u = rimane come era prima - = non implementato Registro OPTION_REG Locazione di memoria: 0x01 Banco RAM: banco 1 Descrizione dei bit: bit PS0 bit PS1 bit PS2 bit PSA bit T0SE Bit di scelta del rapporto di divisione del prescaler Bit di scelta del rapporto di divisione del prescaler Bit di scelta del rapporto di divisione del prescaler Bit di assegnazione del prescaler 1 - al Watch-Dog 0 - al TIMER0 Modalita' di incremento del TIMER0 quando preleva il segnale dal piedino RA4/T0CKl 1 - falling-edge

15 bit T0CS bit INTDEG bit #RBPU 0 - rising-edge Seleziona la modalita' di funzionamento del TIMER0 1 - modo contatore 0 - modo temporizzatore Decide la modalita' di interrupt per il piedino RB0/INT 1 - rising edge 0 - falling edge Abilita le resistenze interne di pull-up delle linee della porta B (per quelle linee che sono settate in modalita' output) 0 - resistenze abilitate 1 - resistenze disabilitate Valore di default al power-on-reset: Valore di default per gli altri reset (#MCLR e Watch dog timer reset): Legenda: x = aleatorio q = dipendente da altri fattori u = rimane come era prima - = non implementato Registro PCL Locazione di memoria: 0x02 Banco RAM: mappato in entrambi Descrizione dei bit: Il registro mappa gli 8 bit meno significativi del program counter. E' possibile leggere e scrivere tale registro. Valore di default al power-on-reset: Valore di default per gli altri reset (#MCLR e Watch dog timer reset): Legenda: x = aleatorio q = dipendente da altri fattori u = rimane come era prima - = non implementato Registro PCLATH

16 Locazione di memoria: 0x0a Banco RAM: mappato in entrambi Descrizione dei bit: I due bit meno significativi sono messi in corrispondenza dei due bit piu' significativi del program counter. Gli altri bit di PCLATH non sono implementati. E' possibile sia leggere che scrivere. I due bit meno significativi di PCLATH vengono scritti nei due piu' significativi del program counter solo quando una qualche istruzione modifica il registro PCL. Valore di default al power-on-reset: Valore di default per gli altri reset (#MCLR e Watch dog timer reset): Legenda: x = aleatorio q = dipendente da altri fattori u = rimane come era prima - = non implementato Registro INTCON Locazione di memoria: 0x0B Banco RAM: mappato in entrambi Descrizione dei bit: bit RBIF bit INTF bit T0IF bit RBIE Rilevatore di interrupt dai piedini RB4..RB7 1 - C'e' appena stato un interrupt 0 - Non c'e' stato nessun interrupt Rilevatore di interrupt dal piedino INT 1 - C'e' appena stato un interrupt 0 - Non c'e' stato nessun interrupt Rilevatore di interrupt dal timer TMR0 1 - C'e' appena stato un interrupt 0 - Non c'e' stato nessun interrupt Bit di abilitazione dell'interrupt dai piedini RB4..RB7 1 - abilitato

17 bit INTE bit T0IE bit EEIE bit GIE 0 - disabilitato Bit di abilitazione dell'interrupt dal piedino INT 1 - abilitato 0 - disabilitato Bit di abilitazione dell'interrupt dal timer TMR0 1 - abilitato 0 - disabilitato Bit di abilitazione dell'interrupt per completamento della scrittura nella eeprom 1 - abilitato 0 - disabilitato Interruttore generale degli interrupt 0 - Tutti gli interrupt disabilitati 1 - Interrupt potenzialmente attivi (dipende poi dallo stato dei bit di attivazione specifici di ogni interrupt) Valore di default al power-on-reset: x Valore di default per gli altri reset (#MCLR e Watch dog timer reset): u Utilizzare le porte di I/O Le porte di I/O (PORT A e PORT B) Il PIC dispone di 13 linee di I/O, programmabili individualmente come linee di ingresso o uscita. Questi pin sono mappati direttamente nei registri PORT_A e PORT_B. PORT_B controlla i pin RB0,RB1,RB2,RB3,RB4,RB5,RB6 e RB7. PORT_A controlla i pin RA0,RA1,RA2,RA3 e RA4. I tre bit piu' significativi del registro non sono usati (si ricorda che la porta A possiede solo 5 linee) In figura si mostrano i collegamenti logici* tra porte e pin di I/O esterni: * ovviamente la struttura interna reale di "collegamento" e' molto piu' complessa

18 I due registri PORT_A e PORT_B hanno associati i relativi registri di direzione, cioe' TRIS_A e TRIS_B. Questi ultimi due registri sono posizionati nel banco 1 della RAM in corrispondenza dei primi. Ogni bit dei registri TRIS_A e TRIS_B specifica la direzione della relativa linea di I/O. Se il bit vale 1, la corrispondente linea e' di input, se vale 0 e' di output. Ovviamente anche il registro TRIS_A sara' di soli 5 bit; i 3 bit piu' significativi non sono utilizzati. Di default (quindi anche all'accensione del pic) tutti i bit del registro TRIS_A e di TRIS_B sono impostati a 1; cio' significa che tutte le linee RA0...RA3 e RB0..RB7 sono di input. Per modificare la direzione di una linea di I/O e' sufficiente settare opportunamente il bit corrispondente nel registro TRIS_A o TRIS_B, ad esempio utilizzando le istruzioni di set e clear dei bit oppure scrivendo direttamente il byte opportuno con MOVWF. Caratteristiche elettriche

19 Linee porta A Le linee della porta A come detto prima sono 5, associate ai registri PORT_A e TRIS_A. I pin RA0,RA1,RA2 e RA3, quando configurati come output, sono di tipo push-pull, ovverosia possono essere utilizzati sia come "sorgenti" di corrente (drain mode) che come "pozzi" (sink mode), in altre parole sono in grado sia di assorbire corrente dal positivo dell'alimentazione (25mA max), sia di fornirla verso massa (20mA max). In figura si mostrano i collegamenti interni per i pin RA0,RA1,RA2 e RA3: Il pin RA4 e' un caso a parte perche' e' di tipo a collettore aperto (open drain); cio significa che e' possibile utilizzarlo esclusivamente come pozzo di corrente: il suo comportamento equivalente e' come quello di un interruttore che si chiude verso massa. La figura mostra i collegamenti interni relativi alla linea RA4:

20 I pin della porta A impostati come ingressi sono automaticamente configurati come linee in alta impedenza (flottanti); se una di tali linee non viene utilizzata occorre necessariamente collegarla al positivo (VCC) tramite apposita resistenza di pull-up (ad esempio da 10Kohm). Linee porta B La porta B e' composta da 8 linee, RB0,RB1,RB2,RB3,RB4,RB5,RB6 e RB7. Quando una linea B e' impostata come output, valgono le stesse considerazioni viste per le linee RA0,RA1,RA2 e RA3 (modalita' sink/drain e stessi assorbimenti massimi). In modalita' input le linee B possiedono ognuna una resistenza di pull-up interna, non e' quindi necessario inserirla esternamente come accade per le linee A. Tali resistenze interne possono essere abilitate settando a zero il bit #RBPU del registro OPTION_REG (il registro e' collocato nel banco RAM 1, alla locazione 0x01). Di default le resistenze sono disabiltate. Lettura e scrittura La lettura e scrittura delle porte di I/O e' estremamente semplice. Una volta che si siano scelte le direzioni delle linee tramite l'imposizione dei bit dei registri TRIS_A e TRIS_B sara' sufficiente settare opportunamente i bit dei registri di

21 porta (ad esempio con le istruzioni MOV,BCF,BSF etc..) per ottenere le tensioni ai capi dei pin corrispondenti. Ovviamente ha senso imporre lo stato dei bit solo per le linee dichiarate come output. Per acquisire lo stato delle linee di input e' sufficiente andare a leggere lo stato dei relativi bit di porta, con le normali tecniche di lettura dei registri messe a disposizione (istruzioni della famiglia MOV). Una linea di I/O impostata come output presentera' all'esterno (cioe' sul relativo pin) una tensione di +5volt se il bit corrispondente nel registro di porta (PORT_A o PORT_B) e' settato ad 1; 0volt nel caso sia settato a 0. Una linea di I/O impostata come input invece e' l'esatto contrario: se la tensione ai capi del relativo pin e' di circa 5volt, allora il PIC imposta ad 1 il bit corrispondente nel registro di porta. Se la tensione e' nulla, lo setta a 0. Esempi software Esempio: Inizializzare la porta A in modo che RA0 e RA1 siano di output e RA2,RA3 e RA4 di input. STATUS EQU 0x03 PORT_A EQU 0x05 TRIS_A EQU 0x05 BCF STATUS,5 ;selezione del banco RAM 0 CLRF PORT_A ;azzeramento di PORT_A BSF STATUS,5 ;selezione del banco RAM 1 MOVLW 0x1C ;valore di inizializzazione MOVWF TRIS_A ;scrittura del valore in TRIS_A NOTA: 0x1C e' il valore di inizializzazione corretto perche' in binario vale Scrivere tale parola in TRIS_A corrisponde a dichiarare le prime due linee come output (RA0 e RA1) e le restanti tre (RA2 RA3 RA4) come input. Esempio: Supponendo che tutte le linee della porta B siano gia' settate come input, leggere tale porta e salvare il risultato alla locazione 0x20 (un registro GPR). STATUS EQU 0x03 BCF STATUS,5 ;selezione del banco RAM 0 MOVF 0x06,0 ;caricamento del contenuto di PORT_B in W MOVWF 0x20 ;scrive il contenuto di W alla locazione 0x20 Esempio: Supponendo che tutte le linee della porta B siano gia' settate come output, scrivere il contenuto del registro 0x20 su tale porta.

22 STATUS EQU 0x03 PORT_B EQU 0x06 BCF STATUS,5 ;selezione del banco RAM 0 MOVF 0x20,0 ;caricamento del contenuto del registro 0x200 in W MOVWF PORT_B ;scrive il contenuto di W in PORT_B Esempi di collegamento Utilizzare i piedini come output Ecco alcuni esempi di collegamenti al pin RB0 configurato come output. In figura si riporta un collegamento di un led alla linea RB0 del microcontrollore: Pilotare un led con RB0 - source mode La resistenza da 330 ohm limita la corrente nel ramo a circa 15mA. Quando sulla linea RB0 viene imposto un 1 il piedino si porta a VCC Volt ed inizia a fluire una correntee VERSO massa e quindi il led si accende. Quando viene imposto 0 il piedino si porta a massa e la corrente smette di fluire; il led si spenge. Il circuito appena descritto utilizza il piedino RB0 come sorgente ( source) di corrente. Il prossimo schema mostra come utilizzare il piedono RB0 come pozzo (sink) di corrente: Pioltare un led con RB0 - sink mode

23 Quando sulla linea RB0 viene imposto un 1 il piedino si porta alla tensione VCC (esattamente come prima) ma il questa volta il led rimane spento perche nonn fluisce corrente. Quando viene imposto uno 0, il piedino si porta a massa ed inizia a scorrere una corrente VERSO di questo, accendendo il led. I led sono dispositivi a bassaa potenza e possonoo essere alimentati direttamente dalle lineee di I/ /O del microcontrollore. Altri dispositivi invece richiedono molta piu' potenza e si rendono necessari appositi stadi driver. Il prossimo schema mostra come azionare una lampada a 220 Volt tramite la linea RB0 del microcontrollore: Attivazione di una lampada a 220 Volt tramite la linea RB0 Quando sul bit RB0 viene posto uno 0, il transistor BC547 rimane interdetto, non scorre alcuna corrente lungo il ramo del rele che quindi non scatta e la lampada rimane spenta. Quando sul bit RB0 viene postoo un 1, il piedino RB0 si porta a VCC Volt ed inizia a scorrere una corrente verso massa, attraverso la base e l'emettitore del BC547; tale corrente e' di piccola entita' (limitata dalla resistenza da 10K) ma sufficientee a portare in conduzione il transistor, che quindi "diventa" un cortocircuito. Inizia a fluire corrente lungo il ramo del rele' che quindi si attiva e chiude il circuito al quale e' collegata la lampada. Utilizzare i piedini come input Per le linee B con resistenze interne di pull-up attivate e' sufficientee tenere scollegata la linea per avere un 1 logico, portarla a massa per ottenere uno 0 logico. Nello schema seguente si setta un bit sulla linea RB0 tramite un semplice interruttore:

24 Schema per impostare lo stato della linea RB0 (resistenze interne di pull-up di pull-up sono disattivate e' attivate!) Se le resistenze interne necessario presentare una tensione di +5 volt per avere un 1 logico o portare a massa per ottenere unno 0 logico, come nello schema seguente: Schema per impostare lo stato della linea RB0 (resistenze interne di pull-up disattivate!) Lo schema precedente e' obbligatorio per gli input delle linee A, per le quali non sono previstee resistenze di pull-upp interne attivabili via software come accade per le B.

MICROCONTROLLORE PIC16F84A

MICROCONTROLLORE PIC16F84A MICROCONTROLLORE PIC16F84A Il microcontrollore pic16f84a, a differenza di un computer normale e' dotato in un unico integrato di tutti gli elementi fondamentali di un computer, che sono la Cpu, unita'

Dettagli

I microcontrollori. In sostanza i pic hanno le seguenti caratteristiche:

I microcontrollori. In sostanza i pic hanno le seguenti caratteristiche: I microcontrollori Con il termine di microcontrollori si intende un sistema integrato simile ad un microprocessore ma contente su un unico chip oltre la CPU, anche la memoria RAM, memoria dati, memoria

Dettagli

Applicazioni dei microcontrollori PIC

Applicazioni dei microcontrollori PIC Applicazioni dei microcontrollori PIC In questa unità vengono esposte le modalità di realizzazione di un circuito hardware con il microcontroller PIC16C84 (o PIC16F84), per la prova dei programmi presentati

Dettagli

Pilotare un motore passo-passo, in questo caso il modello della Sanyo le cui caratteristiche principali sono quelle di figura1.

Pilotare un motore passo-passo, in questo caso il modello della Sanyo le cui caratteristiche principali sono quelle di figura1. 10. Pilotaggio unipolare di un motore passo-passo Scopo della prova Pilotare un motore passo-passo, in questo caso il modello 103-547-52500 della Sanyo le cui caratteristiche principali sono quelle di

Dettagli

Lezione 8. Figura 1. Configurazione del registro INTCON

Lezione 8. Figura 1. Configurazione del registro INTCON Lezione 8 In questa puntata, ci dedicheremo all'impiego dei cosiddetti "interrupt", che tanto incutono temore ai più inesperti. Ma che cosa sono questi interrupt? Come abbiamo già visto, un programma non

Dettagli

8 Microcontrollori PIC

8 Microcontrollori PIC 8 Microcontrollori PIC 8.1 Descrizione generale Un microcontrollore è un dispositivo elettronico che opportunamente programmato è in grado di svolgere diverse funzioni in modo autonomo. Essenzialmente

Dettagli

Corso introduttivo sui microcontrollori. Un sistema tastierino a matrice 4x4 da collegare alla nostra demoboard AnxaPic.

Corso introduttivo sui microcontrollori. Un sistema tastierino a matrice 4x4 da collegare alla nostra demoboard AnxaPic. Corso introduttivo sui microcontrollori Un sistema tastierino a matrice 4x4 da collegare alla nostra demoboard AnxaPic Nicola Amoroso namoroso@mrscuole.net na_16f88_key4x4 1 Colleghiamo un tastierino a

Dettagli

Introduzione al PICmicro 16F877 PIC16F877

Introduzione al PICmicro 16F877 PIC16F877 Introduzione al PICmicro 16F877 I PICmicro (o più brevemente PIC) sono circuiti integrati prodotti dalla Microchip Technology Inc. che implementano microcontrollori (µc), cioè dei componenti che integrano

Dettagli

Lezione 2. Figura 1. Schema del circuito necessario per le prove

Lezione 2. Figura 1. Schema del circuito necessario per le prove Lezione 2 Inizializzazione porte Il primo argomento che tratteremo è la prima operazione da effettuare quando si programma un microcontrollore ovvero settare correttamente le porte ed inizializzare i registri

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Dettagli

Lezione 1 Caratteristiche principali del PIC16C84 L'hardware

Lezione 1 Caratteristiche principali del PIC16C84 L'hardware Lezione 1 Nella prima lezione del corso, cercheremo di comprendere come sia fatto internamente il controller più conosciuto di Microchip, ovvero il PIC16C84 poi evoluto nel PIC16F84. Sebbene i microcontroller

Dettagli

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Dettagli

Gestione Degli INTERRUPT

Gestione Degli INTERRUPT Gestione Degli INTERRUPT Il PIC 16F876 possiede vari tipi di Interrupt. Si parla di 14 differenti sorgenti di interrupt, ma molto facilmente nella programmazione se ne terranno in considerazione ben pochi:

Dettagli

Davide Gennaretti, Matteo Nicolini

Davide Gennaretti, Matteo Nicolini Seminario sui Microcontrollori Davide Gennaretti, Matteo Nicolini AA 2003-04 II Facoltà di Ingegneria Elettronica Cesena Cosa sono i microcontrollori? Piccoli computer concentrati in un chip Un Datapath

Dettagli

Programmazione del microcontrollore PIC 16F84

Programmazione del microcontrollore PIC 16F84 Programmazione del microcontrollore PIC 16F84 2 Indice Capitolo 1: Set di istruzioni del PIC 16F84 1.1 Descrizione sintetica 1.2 Simbologia adottata 1.3 Sintassi 1.4 Descrizione completa Capitolo 2: Variabili,

Dettagli

Progetto 3: Termometro con convertitore A/D

Progetto 3: Termometro con convertitore A/D Progetto 3: Termometro con convertitore A/D Questo progetto dimostra come acquisire un segnale da una sensore di temperatura analogico e visualizzare la temperatura attraverso il collegamento seriale con

Dettagli

APPUNTI SUL PIC16F84

APPUNTI SUL PIC16F84 APPUNTI SUL PIC16F84 Gianluca 'gurutech' Mascolo v0.1 04/04/2004 mailto: gurutech_at_gurutech.it Hackit04 Il PIC16F84 è un microcontrollore a 8-bit dotato di due porte di I/O digitali, una da 5 bit e una

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Il µcontrollore PIC 16F84

Il µcontrollore PIC 16F84 Il µcontrollore PIC 16F84 Microchip Tecnology D. Ch. 1 Il grande successo dei microcontrollori ha indotto tutte le grandi case costrutrici di semiconduttori come la Intel, la Philips Semiconductors, la

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Programmazione dei PLC in linguaggio Ladder

Programmazione dei PLC in linguaggio Ladder Programmazione dei PLC in linguaggio Ladder Prima Parte ITI Alessandro Volta - Sassuolo Anno Scolastico 2009/2010 Linguaggio LADDER (linguaggio a contatti ) Introduzione e concetti fondamentali Il LADDER

Dettagli

Architettura del PIC 18F452

Architettura del PIC 18F452 Controllo Digitale a.a. 2005-2006 Architettura del PIC 18F452 Ing. Federica Pascucci PIC 18F452 Caratteristiche Frequenza operativa: 40 MHz Memorie: Program FLASH memory: 32 KBytes, 16 K-istruzioni memorizzabili

Dettagli

Fagor Automation S. Coop. MANV-I/O. Manuale di installazione e funzionamento. Manual code: Manual version: 0404

Fagor Automation S. Coop. MANV-I/O. Manuale di installazione e funzionamento. Manual code: Manual version: 0404 Fagor Automation S. Coop. MANV-I/O Manuale di installazione e funzionamento Manual code: 14460006 Manual version: 0404 1. OPZIONE: INGRESSI /USCITE (X2) Con questa opzione viene offerto un connettore addizionale

Dettagli

progettare CHIAVE progettare & costruire

progettare CHIAVE progettare & costruire progettare progettare & costruire di NICOLA DE CRESCENZO CHIAVE Vi presentiamo una semplice chiave elettronica, con la quale potrete azionare svariati sistemi, come ad esempio, una elettro-serratura o

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

Circuito logico AND / AND Gate

Circuito logico AND / AND Gate Circuito logico AND / AND Gate Introduzione Lo scopo del progetto è creare un circuito elettrico che rappresenti la tabella di verità della porta logica AND. Il circuito logico preso in analisi restituisce

Dettagli

SISTEMA DI SVILUPPO MC-16

SISTEMA DI SVILUPPO MC-16 SISTEMA DI SVILUPPO MC-16 per microcontrollori PIC16F84 - PIC16F876 o MANUALE DI PROGRAMMAZIONE 2 Il sistema MC-16 contiene: Scheda di sviluppo a microcontrollore con PIC16F84 e PIC16F876. Unità di programmazione

Dettagli

Il Processore. Informatica di Base -- R.Gaeta 27

Il Processore. Informatica di Base -- R.Gaeta 27 Il Processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Lezione 15. L elaboratore Elettronico

Lezione 15. L elaboratore Elettronico Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente

Dettagli

All interno di un ATmega16 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multiplexer

All interno di un ATmega16 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multiplexer All interno di un ATmega6 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multipleer ecc. Inoltre troviamo 3 tipi di memoria: l EEPROM che

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

Dettagli

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità

Dettagli

Relè di alimentazione SPST,10 Pezzi,DC 5V Bobina 7A 240VAC 10A 125VAC/28VDC 5 pin JQC-3F

Relè di alimentazione SPST,10 Pezzi,DC 5V Bobina 7A 240VAC 10A 125VAC/28VDC 5 pin JQC-3F Il relè è un dispositivo elettromeccanico costituito da un avvolgimento e da uno o più contatti meccanici, è utilizzato per operazione di interruzione e commutazione di circuiti elettrici. Normalmente

Dettagli

DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE

DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE Si propone l'uso di un microcontrollore pic16f84 della Microchip. Si acquisiscono i segnali di un encoder con due canali in quadratura con la possibilità

Dettagli

Il Processore: l unità di controllo

Il Processore: l unità di controllo Il Processore: l unità di controllo La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue un ciclo di esecuzione di

Dettagli

Far lampeggiare un led o forse un semaforo?

Far lampeggiare un led o forse un semaforo? Far lampeggiare un led o forse un semaforo? Lezione 1 di Arduino Grazie per le slide a Giacomo Magisano, Duilio Peroni, Michele Maffucci Il circuito Un circuito è un percorso chiuso fatto da conduttore

Dettagli

Com è fatto un computer (seconda puntata) Appunti per le classi 1 A cura del prof. Ing. Mario Catalano

Com è fatto un computer (seconda puntata) Appunti per le classi 1 A cura del prof. Ing. Mario Catalano Com è fatto un computer (seconda puntata) Appunti per le classi 1 A cura del prof. Ing. Mario Catalano A che serve una memoria? Ovviamente, nel computer, come nel cervello umano, serve a conservare le

Dettagli

Architettura dei Microcontrollori Microchip PIC18F

Architettura dei Microcontrollori Microchip PIC18F Architettura dei Microcontrollori Microchip PIC18F A. Romani Elettronica dei Sistemi Digitali L-A Cos è un microcontrollore? Differenza tra Microprocessore e Microcontrollore à Microprocessore: normalmente

Dettagli

Corso di programmazione Arduino DI MALVEZZI DAVIDE

Corso di programmazione Arduino DI MALVEZZI DAVIDE Corso di programmazione Arduino DI MALVEZZI DAVIDE Argomenti Pin digitali e pin analogici Gestione di timer e bottoni Utilizzo della porta seriale Oggetto String Controllo di schermi LCD Utilizzo dell

Dettagli

Programma di simulazione per Arduino

Programma di simulazione per Arduino Programma di simulazione per Arduino Un interessante simulatore di circuiti elettronici che possono impiegare Arduino (ma non solo) si può usare online all indirizzo circuits.io Per utilizzare questo servizio

Dettagli

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore

Dettagli

ISA Input / Output (I/O) Data register Controller

ISA Input / Output (I/O) Data register Controller ISA Input / Output (I/O) Numerose Periferiche di tanti tipi diversi, collegati alla CPU mediante BUS diversi. Solo Input (tastiera, mouse), producono dati che la CPU deve leggere. Solo Output (Schermo),

Dettagli

Contact GSM-5-2. Terminali e Connessioni

Contact GSM-5-2. Terminali e Connessioni Contact GSM-5-2 Terminali e Connessioni Saint Petersburg, 2016 Indice Redundant power supply connection 3 Wired zones connection 4 Touch memory reader connection 8 Wired keypad connection 10 LCD Keypad

Dettagli

Ciclo del Processore. Memoria

Ciclo del Processore. Memoria Ciclo del Nella figura seguente è riportata la rappresentazione semplificata ed essenziale di un computer. RESET Canali Di Ingresso Uscita Uscita Ingressi Fig. 1 Rappresentazione semplificata di un computer

Dettagli

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232 1 Il protocollo RS232 1.1 Introduzione Come noto un dispositivo di interfaccia permette la comunicazione tra la struttura hardware di un calcolatore e uno o più dispositivi esterni. Uno degli obiettivi

Dettagli

Internetworking V a nno

Internetworking V a nno Internetworking V anno Introduzione ad Arduino Introduzione La scheda Arduino nasce nel 2005 dall idea di alcuni giovani ricercatori guidati da Massimo Banzi. Il loro obiettivo era quello di creare una

Dettagli

Componenti di un processore

Componenti di un processore Componenti di un processore Unità di Controllo Bus Interno REGISTRI Program Counter (PC) Registro di Stato (SR) Registro Istruzioni (IR) Registri Generali Unità Aritmetico- Logica Registro Indirizzi Memoria

Dettagli

PROGRAMMAZIONE ASSEMBLER

PROGRAMMAZIONE ASSEMBLER PROGRAMMAZIONE ASSEMBLER Esempio di semplice lampeggiatore a LED 072805 Sistemi Elettronici Dicembre 2006 Ultimo aggiornamento: 11 dicembre 2006 1 OBBIETTIVI 1 Discutere delle metodologie di progetto e

Dettagli

GESTIONE DEI TEMPI CON IL TIMER1 DEL PIC16F876

GESTIONE DEI TEMPI CON IL TIMER1 DEL PIC16F876 GESTIONE DEI TEMPI CON IL TIMER1 DEL PIC16F876 6.0 TIMER1 MODULE The Timer1 module is a 16-bit timer/counter consisting of two 8-bit registers (TMR1H and TMR1L), which are readable and writable. The TMR1

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

G S M C O M M A N D E R Basic

G S M C O M M A N D E R Basic Il GSM COMMANDER BASIC permette la codifica di due diverse modalità di chiusura di un contatto elettrico, attraverso una chiamata telefonica a costo zero al numero della SIM inserita nel modulo. Importante

Dettagli

FREQUENZIMETRO FQ-16S3-800

FREQUENZIMETRO FQ-16S3-800 FREQUENZIMETRO FQ-16S3-800 By Tecnovolt (tecnovolt.altervista.org) MANUALE UTENTE Frequenzimetro FQ-16S3-800 - tecnovolt.altervista.org 1 INDICE 1 - Introduzione pag. 3 2 - Collegamento e prima accensione

Dettagli

Macchina di Riferimento: argomenti

Macchina di Riferimento: argomenti Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura

Dettagli

Nel microprocessore 8086 abbiamo una gran quantità di registri

Nel microprocessore 8086 abbiamo una gran quantità di registri I registri del microprocessore 8086 Nel microprocessore 8086 abbiamo una gran quantità di registri AH AL AX 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 B H B L BX 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 C H C L CX 1 0 1 1

Dettagli

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Tipi di memorie Possono essere classificate in base a varie caratteristiche:

Dettagli

Modulo apriporta. SEzione 6. Scaricabile dal sito nell area Manuali Tecnici. sez. 6. installazione 2.

Modulo apriporta. SEzione 6. Scaricabile dal sito  nell area Manuali Tecnici. sez. 6. installazione 2. SEzione 6 Modulo apriporta con tastiera Scaricabile dal sito www.urmet.com nell area Manuali Tecnici. Caratteristiche tecniche 2 installazione 2 descrizione dei morsetti...3 programmazione 3 impostazione

Dettagli

Capitolo X del Testo Ettore Panella Giuseppe Spalierno Corso di Elettronica 3 Edizioni Cupido MICROCONTROLLORE PIC 16F84

Capitolo X del Testo Ettore Panella Giuseppe Spalierno Corso di Elettronica 3 Edizioni Cupido MICROCONTROLLORE PIC 16F84 Microcontrollore PIC 16F84 1 1. Generalità Capitolo X del Testo Ettore Panella Giuseppe Spalierno Corso di Elettronica 3 Edizioni Cupido MICROCONTROLLORE PIC 16F84 I microcontrollori sono dei circuiti

Dettagli

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S. 2007 2008. Microcontrollori Microchip PIC 8 bit. namoroso@mrscuole.

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S. 2007 2008. Microcontrollori Microchip PIC 8 bit. namoroso@mrscuole. Corso introduttivo sui microcontrollori A. S. 2007 2008 Microcontrollori Microchip PIC 8 bit Nicola Amoroso namoroso@mrscuole.net NA L2 1 Microcontrollori Microchip PIC 8 bit PIC: Peripheral Interface

Dettagli

Sistemi Elettronici #6. Subroutine

Sistemi Elettronici #6. Subroutine Subroutine Una subroutine è un insieme di istruzioni che si adoperano più volte insieme e nella stessa sequenza. Se usiamo l espressione RJMP per chiamare una subroutine all uscita di essa non ho un ritorno

Dettagli

mendiante un ciclo e finché il segnale rimane alto, si valuta il tempo T3 usando il timer del microcontrollore e una variabile di conteggio.

mendiante un ciclo e finché il segnale rimane alto, si valuta il tempo T3 usando il timer del microcontrollore e una variabile di conteggio. Svolgimento (a) Il sensore di temperatura ha un uscita digitale a 9 bit, emettendo un codice binario proporzionale al valore Temp richiesto. Possiamo pensare si tratti di un dispositivo 1-Wire. Un sistema

Dettagli

I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione.

I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione. I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione. Dispensina per gli studenti di Ingegneria Gestionale. A.A.

Dettagli

CONTATORE/TIMER PROGRAMMABILE CTC Z80 1. Piedinatura 2. Struttura interna 4. Modo timer 5. Modo Counter 8. Programmazione del CTC 13

CONTATORE/TIMER PROGRAMMABILE CTC Z80 1. Piedinatura 2. Struttura interna 4. Modo timer 5. Modo Counter 8. Programmazione del CTC 13 CONTATORE/TIMER PROGRAMMABILE CTC Z80 1 Piedinatura 2 Struttura interna 4 Modo timer 5 Modo Counter 8 Programmazione del CTC 13 Gerarchia di priorità delle interruzioni 17 Interfacciamento 17 Contatore/Timer

Dettagli

Il precedente programma è scritto in linguaggio Assembly per Z80. Il programma indicato sopra deve essere tradotto in codice Assembly per PIC

Il precedente programma è scritto in linguaggio Assembly per Z80. Il programma indicato sopra deve essere tradotto in codice Assembly per PIC [LABEL:] CODICE OP1[,OP2][COMMENTO] MNEM LD E,0H PIO EQU 0CH ORG 100H LD E,0 ciclo: IN A,(PIO) LD B,A IN A,(PIO) LD C,A LD A,E ADD A,B SUB C CP 8CH JRZ (ciclo) LD A,1 OUT (PIO),A HALT END Il precedente

Dettagli

M1410 Ingresso/Uscita parallelo

M1410 Ingresso/Uscita parallelo M1410 Ingresso/Uscita parallelo Descrizione tecnica Eiserstraße 5 Telefon 05246/963-0 33415 Verl Telefax 05246/963-149 Data: 12.7.95 Versione : 2.0 pagina 1 di 13 M1410 Ingresso/uscita parallelo Indice

Dettagli

PhoneTime. Introduzione e Installazione...2 Avvio di PhoneTime...3 Impostazioni e configurazione dispositivi...4 Specifiche Tecniche...

PhoneTime. Introduzione e Installazione...2 Avvio di PhoneTime...3 Impostazioni e configurazione dispositivi...4 Specifiche Tecniche... PhoneTime Introduzione e Installazione...2 Avvio di PhoneTime...3 Impostazioni e configurazione dispositivi...4 Specifiche Tecniche...10 Introduzione e Installazione Per utilizzare la nuova procedura di

Dettagli

UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI

UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI 1 Microcontrollori? Molti prodotti utilizzati quotidianamente contengono più intelligenza di quanto ogni utente possa immaginare. Uno studio indica che ogni

Dettagli

Lezione 4. Figura 1. Schema di una tastiera a matrice di 4x4 tasti

Lezione 4. Figura 1. Schema di una tastiera a matrice di 4x4 tasti Lezione 4 Uno degli scogli maggiori per chi inizia a lavorare con i microcontroller, è l'interfacciamento con tastiere a matrice. La cosa potrebbe a prima vista sembrare complessa, ma in realtà è implementabile

Dettagli

Vogliamo far lampeggiare i led collegati come in figura ai bit della porta D del PIC 18F8722 presente sulla demo board in dotazione al laboratorio.

Vogliamo far lampeggiare i led collegati come in figura ai bit della porta D del PIC 18F8722 presente sulla demo board in dotazione al laboratorio. Lampeggio di 8 led Vogliamo far lampeggiare i led collegati come in figura ai bit della porta D del PIC 18F8722 presente sulla demo board in dotazione al laboratorio. Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1

Dettagli

Manuale per la programmazione del PIC 16F84

Manuale per la programmazione del PIC 16F84 Manuale per la programmazione del PIC 16F84 Principi basi per la programmazione Introduzione alla programmazione Strutture basi di programmazione Descrizione del microcontrollore 16F84 Descrizione tecnica

Dettagli

Esercitazione 4: Sintetizzatore di frequenza con PLL

Esercitazione 4: Sintetizzatore di frequenza con PLL Esercitazione 4: Sintetizzatore di frequenza con PLL 1. Informazioni generali 1.1 Scopo dell esercitazione Gli obiettivi di questa esercitazione sono: - Verificare il comportamento di un PLL - Determinare

Dettagli

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti

Dettagli

Il funzionamento interno del timer 555 è determinato dalle tensioni in uscita dei due comparatori che in modo asincrono pilotano il FF S-R.

Il funzionamento interno del timer 555 è determinato dalle tensioni in uscita dei due comparatori che in modo asincrono pilotano il FF S-R. IL TIMER 555 Un primo comparatore riceve una tensione di 2/3V cc sull ingresso invertente (pin 5, V c ), il secondo una tensione di 1/3V cc sull ingresso non invertente. Le uscite dei due comparatori pilotano

Dettagli

Capitolo 5 Struttura di base del processore

Capitolo 5 Struttura di base del processore Capitolo 5 Struttura di base del processore 5.1. Il periodo di clock deve ospitare tutti i ritardi di propagazione più il tempo di impostazione per i registri. a. Minimo periodo di clock = 70 + 600 + 50

Dettagli

Introduzione alle macchine a stati (non definitivo)

Introduzione alle macchine a stati (non definitivo) Introduzione alle macchine a stati (non definitivo) - Introduzione Il modo migliore per affrontare un problema di automazione industriale (anche non particolarmente complesso) consiste nel dividerlo in

Dettagli

Nicola Amoroso. Corso introduttivo sui microcontrollori PIC PWM.

Nicola Amoroso. Corso introduttivo sui microcontrollori PIC PWM. Corso introduttivo sui microcontrollori PIC PWM Generare segnali PWM con il PIC16F877 Tecniche e consigli Nicola Amoroso namoroso@mrscuole.net na_pwm 1 uc Pic PWM Un segnale PWM (Pulse Width Modulation

Dettagli

Microcontrollori. L ultima parte del corso prevede un approfondimento sui microprocessori, in particolare sul PIC 16F876.

Microcontrollori. L ultima parte del corso prevede un approfondimento sui microprocessori, in particolare sul PIC 16F876. 111 Microcontrollori L ultima parte del corso prevede un approfondimento sui microprocessori, in particolare sul PIC 16F876. In elettronica digitale il microcontrollore è un dispositivo elettronico integrato

Dettagli

Gli schemi circuitali impiegati per la realizzazione dei convertitori statici sono molteplici.

Gli schemi circuitali impiegati per la realizzazione dei convertitori statici sono molteplici. Gli schemi circuitali impiegati per la realizzazione dei convertitori statici sono molteplici. Infatti, la struttura del convertitore risulta fortemente influenzata: dal tipo di sorgente primaria di alimentazione;

Dettagli

Elettronica dei Sistemi Programmabili A.A. 2013-2014. Microcontrollori. Introduzione allo sviluppo di progetti

Elettronica dei Sistemi Programmabili A.A. 2013-2014. Microcontrollori. Introduzione allo sviluppo di progetti Elettronica dei Sistemi Programmabili A.A. 2013-2014 Microcontrollori Introduzione allo sviluppo di progetti Premessa Qualunque sistema basato su microcontrollore deve eseguire un codice memorizzato in

Dettagli

Workshop Teachers For Teachers settembre 2013

Workshop Teachers For Teachers settembre 2013 Workshop Teachers For Teachers 23 24 settembre 2013-1 - Scratch for Arduino (S4A) - 2 - Cos'è Arduino? scheda elettronica che può essere programmata per ricevere input da diversi sensori e che può interagire

Dettagli

senza stato una ed una sola

senza stato una ed una sola Reti Combinatorie Un calcolatore è costituito da circuiti digitali (hardware) che provvedono a realizzare fisicamente il calcolo. Tali circuiti digitali possono essere classificati in due classi dette

Dettagli

Il modello di Von Neumann

Il modello di Von Neumann Il modello di Von Neumann Appunti di STA per le classi seconde ind. informatiche Page 1 Il modello architetturale Per modello architetturale, si intende la descrizione delle parti del sistema e la loro

Dettagli

Modulo espansione SMO8 8 uscite relè per centrale S128

Modulo espansione SMO8 8 uscite relè per centrale S128 Modulo espansione SMO8 8 uscite relè per centrale S128 INDICE INTRODUZIONE 1. COLLEGAMENTO ALLA CENTRALE 2. USCITE DI AZIONAMENTO 3. LINEA DI AUTOPROTEZIONE 4. INDIRIZZAMENTO DEL MODULO 5. LED DI SEGNALAZIONE

Dettagli

Logica cablata (wired logic)

Logica cablata (wired logic) Logica cablata (wired logic) Cosa succede quando si collegano in parallelo le uscite di più porte appartenenti alla stessa famiglia logica? Si realizza una ulteriore funzione logica tra le uscite Le porte

Dettagli

POTENZIOMETRO DIGITALE. Manuale d uso PTR PTR2300

POTENZIOMETRO DIGITALE. Manuale d uso PTR PTR2300 POTENZIOMETRO DIGITALE Manuale d uso PTR2000 - PTR2300 Versione 01 Luglio 2012 AITA ELECTRONICS s.a.s. 13823 - STRONA (BIELLA) Via Fontanella Ozino, 17/a TEL.: 015/7427491 FAX.: 015/7427491 www.aitaelectronics.it

Dettagli

Macchine Astratte. Luca Abeni. February 22, 2017

Macchine Astratte. Luca Abeni. February 22, 2017 Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria

Dettagli

Qualche informazione sul microcontrollore PIC

Qualche informazione sul microcontrollore PIC Qualche informazione sul microcontrollore PIC Il Web contiene un ampia quantità di informazioni sui microcontrollori e sulla famiglia PIC in particolare. Accanto ai siti dei produttori hardware e software

Dettagli

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo

Dettagli

Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO

Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO JP pq E un istruzione di salto assoluto incondizionato. Per salto assoluto si intende il fatto che grazie a quest istruzione, il contenuto

Dettagli

Contatore asincrono esadecimale

Contatore asincrono esadecimale Contatore asincrono esadecimale Il contatore asincrono è un circuito composto da un generatore di onde quadre (clock), quattro Flip Flop JK con Preset e Clear attivi a fronte logico basso. Preset, J e

Dettagli

LaurTec. Scheda LED con Pulsanti. Versione N 1.0. Autore : Mauro Laurenti. ID: PJ7004-IT

LaurTec. Scheda LED con Pulsanti. Versione N 1.0. Autore : Mauro Laurenti.   ID: PJ7004-IT Versione N 1.0 LaurTec Scheda LED con Pulsanti Autore : Mauro Laurenti email: info.laurtec@gmail.com ID: PJ7004-IT Copyright 2006 Mauro Laurenti 1/5 INFORMATIVA Come prescritto dall'art. 1, comma 1, della

Dettagli

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU: Struttura e Funzione del Processore Capitolo 12 Struttura CPU Compiti CPU: Prelevare istruzioni Interpretare istruzioni Prelevare dati Elaborare dati Scrivere (memorizzare) dati 1 CPU con bus di sistema

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Corso di Informatica Applicata. Lezione 7. Università degli studi di Cassino

Corso di Informatica Applicata. Lezione 7. Università degli studi di Cassino Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 7 Ing. Saverio De Vito e-mail: saverio.devito@portici.enea.it Tel.: +39

Dettagli

Sch ed e Ser ie RD4 0

Sch ed e Ser ie RD4 0 Sch ed e Ser ie RD4 0 Manuale di installazione ed uso. 1) Configurazione 2) Installazione 3) Utilizzo da MS-DOS 4) Utilizzo da Windows e Windows 95 5) Descrizione delle funzioni delle librerie 6) Registri

Dettagli

MANUALE PER L OPERATORE Versione software: 1.0

MANUALE PER L OPERATORE Versione software: 1.0 Sesto S. Giovanni - 19 Maggio 2004 Div. elettronica DATAFLOW Rev.1.0 SW-HW:DATALINK SOFTWARE PER L ELABORAZIONE DEI SEGNALI RILEVATI DALLA SCHEDA DI ACQUISIZIONE MANUALE PER L OPERATORE Versione software:

Dettagli

Assembly. Modello x86

Assembly. Modello x86 Assembly Modello x86 1 Il microprocessore Un MICROPROCESSORE è un circuito integrato dotato di una struttura circuitale in grado di attuare un prefissato SET di ISTRUZIONI 2 Caratteristiche del microprocessore

Dettagli

M A N U A L E D U S O REGOLATORE DI TENSIONE RTAC ITALIANO

M A N U A L E D U S O REGOLATORE DI TENSIONE RTAC ITALIANO M A N U A L E D U S O REGOLATORE DI TENSIONE RTAC ITALIANO INDICE GENERALE -1- Introduzione pag.2-2- Caratteristiche tecniche pag. 2-3- Montaggio pag. 2-4- Descrizione unità RTAC 01. pag. 3-5- Descrizione

Dettagli

EFA Automazione S.r.l. Serial Bridge 3 - Modbus RTU slave to PICnet (01 ITA).doc pag. 1 / 8

EFA Automazione S.r.l. Serial Bridge 3 - Modbus RTU slave to PICnet (01 ITA).doc pag. 1 / 8 EFA Automazione S.r.l. Serial Bridge 3 - Modbus RTU slave to PICnet (01 ITA).doc pag. 1 / 8 Applicazione Integrazione di reti PICnet mediante l interfacciamento del modulo master (PN MAS dotato di porta

Dettagli