Architettura Harvard: il PIC possiede memorie separate per i dati e le istruzioni.
|
|
- Ortensia Cosentino
- 7 anni fa
- Visualizzazioni
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 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'
DettagliI 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
DettagliApplicazioni 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
DettagliPilotare 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
DettagliLezione 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
Dettagli8 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
DettagliCorso 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
DettagliIntroduzione 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
DettagliLezione 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
DettagliComponenti 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
DettagliComponenti 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
DettagliLezione 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
DettagliComponenti 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
DettagliGestione 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:
DettagliDavide 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
DettagliProgrammazione 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,
DettagliProgetto 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
DettagliAPPUNTI 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
DettagliArchitettura 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
DettagliIl µ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
DettagliSistemi 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
DettagliIl 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
DettagliProgrammazione 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
DettagliArchitettura 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
DettagliFagor 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
Dettagliprogettare 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
DettagliArchitettura 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
DettagliCircuito 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
DettagliSISTEMA 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
DettagliIl 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
DettagliLezione 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
DettagliAll 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
DettagliCapitolo 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
DettagliArchitettura 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à
DettagliRelè 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
DettagliDISPOSITIVO 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à
DettagliIl 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
DettagliFar 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
DettagliCom è 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
DettagliArchitettura 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
DettagliCorso 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
DettagliProgramma 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
DettagliARCHITETTURA 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
DettagliISA 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),
DettagliContact 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
DettagliCiclo 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
DettagliIl 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
DettagliInternetworking 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
DettagliComponenti 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
DettagliPROGRAMMAZIONE 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
DettagliGESTIONE 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
DettagliArchitettura 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
DettagliG 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
DettagliFREQUENZIMETRO 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
DettagliMacchina 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
DettagliNel 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
DettagliMemorie 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:
DettagliModulo 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
DettagliCapitolo 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
DettagliNicola 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
DettagliSistemi 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
Dettaglimendiante 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
DettagliI 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.
DettagliCONTATORE/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
DettagliIl 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
DettagliM1410 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
DettagliPhoneTime. 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
DettagliUNA 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
DettagliLezione 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
DettagliVogliamo 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
DettagliManuale 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
DettagliEsercitazione 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
DettagliL 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
DettagliIl 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
DettagliCapitolo 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
DettagliIntroduzione 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
DettagliNicola 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
DettagliMicrocontrollori. 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
DettagliGli 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;
DettagliElettronica 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
DettagliWorkshop 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
Dettaglisenza 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
DettagliIl 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
DettagliModulo 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
DettagliLogica 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
DettagliPOTENZIOMETRO 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
DettagliMacchine 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
DettagliQualche 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
DettagliLa 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
DettagliSet 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
DettagliContatore 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
DettagliLaurTec. 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
DettagliStruttura 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
DettagliIl 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
DettagliCorso 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
DettagliSch 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
DettagliMANUALE 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:
DettagliAssembly. 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
DettagliM 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
DettagliEFA 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