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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 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 su singolo chip, nato come evoluzione alternativa al Microprocessore (una tipologia di processore elettronico che si contraddistingue per essere interamente costituita da uno o più circuiti integrati) ed utilizzato generalmente in sistemi embedded, ovvero per applicazioni specifiche (special purpose) di controllo digitale. Esempio di un microcontrollore: Come si nota, tra gli ingressi sono presenti Vdd e Vss, l alimentazione positiva e negativa: il dispositivo lavora tra questi due valori.

2 112 Esempio di un diagramma a blocchi PIC16F873 AND PIC16F876 BLOCK DIAGRAM : La parte su cui ci soffermeremo è quella delle Porte (a destra, in particolare PORT A e B): Ogni canale può essere configurato sia come ingresso sia come uscita in base al livello logico del bit associato. Ogni porta con 8 canali necessiterà di 3 bit (2 3 =8).

3 113 L organizzazione del microprocessore La memoria del controllore è divisa in due parti: - la memoria dati, al cui interno si definiscono le variabili del programma (input, output ) - la memoria programma, al cui interno si scrivono le istruzioni vere e proprie per il funzionamento del microprocessore. Come indicato dal disegno la prima riga (indirizzo 0000h) si occupa del RESET del programma. L indirizzo 0004h è quello a cui puntare per gestire gli INTERRUPT del programma. Dall indirizzo 0005h parte il cuore programma. Ci sono diverse pagine di memoria programma all interno della scheda in silicio del microprocessore; la prima, chiamata pagina zero, va dall indirizzo 0005h al 07FFh, e così per le altre come illustrato qui accanto, fino a 1FFFh, per un totale di 2 11 bit per ogni pagina. Nel corso non ci occuperemo del RESET e degli INTERRUPT del programma.

4 114 Area di Memoria Dati: La tabella di seguito mostra l organizzazione dei registri e i corrispettivi indirizzi: ATTENZIONE! La memoria dati non contiene il codice del programma ma le variabili utilizzate. Lo STATUS è un registro molto importante soprattutto l indirizzamento, riceve dati dalla ALU (Arithmetic Logic Unit): il registro W a sua volta riceve i dati in uscita dalla ALU, e funziona da registro di appoggio per ogni operazione. Quando vogliamo leggere o scrivere dei bit sulla porta interroghiamo i registri PORT A, B o C. In base ai registri TRIS A, B o C capisco se il canale è settato come canale di ingresso o uscita.

5 La memoria dati per definire le variabili parte dall indirizzo 20h nel Bank 0, dall indirizzo A0h nel Bank 1, e così dicendo per i Bank 2 e 3, visibili nella parte inferiore di ogni colonna (Bank) della tabella sopra riportata. Avendo 4 Bank saranno necessari 4 bit per l indirizzamento necessario. Inoltre ciascuna area di memoria è divisa in 8 bit, e ogni bit può assumere il valore zero, che equivale a dire che in un unica memoria posso legare 8 sensori o informazioni (che prendono valori 0/1). 2 8 = 256 quindi si possono rappresentare i numeri decimali da 0 a 255. Si può puntare anche al singolo bit di un indirizzo, quindi al singolo bit di una specifica variabile o di un registro, ricordando che il primo bit in realtà è il numero 0 e così via È necessario specificare e indirizzare l area di memoria al banco corrispettivo quando si fanno operazioni sulle variabili (il microcontrollore è naturalmente settato sul Bank 0). Per fare ciò bisogna settare in maniera opportuna i valori di RP0 e RP1 del registro STATUS:

6 116

7 117 Blocchi base della programmazione Il disegno a fianco è un esempio di un diagramma a blocchi. Mettere a 1 un bit del registro TRISA (che si trova nel Bank 1) significa settare la corrispondente PORTA pin come INPUT. Settando a 0 lo specifico bit significa settare che il canale corrispondente sarà un OUTPUT In questo modo si inizializza il sistema. L inizializzazione deve essere collocata all inizio del codice. Riportiamo ora un set di istruzioni che poi vedremo nello specifico.

8 118 Set di istruzioni (da pag.137, Datasheet base PIC 16F876) GOTO k Salta le istruzioni successive e va direttamente alla parte di programma chiamata k. Utile per instaurare cicli. NOP Nessuna operazione. CALL k Chiama la routine k, che quindi viene eseguita. MOVLW k con 0 k 255 Sposta (muove) il valore numerico k in W. W è un registro a diposizione per il trasferimento delle variabili. È possibile scrivere il numero k in esadecimale oppure direttamente la sequenza dei bit booleani da caricare tra apici scrivendo: MOVLW b xxxxxxxx MOVWF f Sposta (muove) il contenuto di W nel registro f. MOVF BCF BSF CLRF CLRW f,d Sposta il contenuto del registro f in d. Se d=0 allora sposta il contenuto nel registro W, se d=1 allora sposta il contenuto nel registro f stesso. f,b Imposta a zero (clear) il bit n-esimo (b) del registro f. f,b Imposta a uno (set) il bit n-esimo (b) del registro f. f Resetta (imposta a zero) tutti i bit del registro f. Resetta (imposta a zero) tutti i bit del registrow.

9 119 ADDLW ADDWF SUBLW SUBWF DECF INCF COMF RLF k Somma il contenuto del registro W al valore k. W=W+k È possibile scrivere il numero k in esadecimale oppure direttamente la sequenza dei bit booleani da caricare tra apici scrivendo: ADDLW b xxxxxxxx f,d Somma il contenuto del registro W a quello del registro f. Se d=0 allora il risultato viene salvato nel registro W, se d=1 allora il risultato viene salvato nel registro f stesso. k Sottrae il contenuto del registro W al valore k. W=k-W È possibile scrivere il numero k in esadecimale oppure direttamente la sequenza dei bit booleani da caricare tra apici scrivendo: SUBLW b xxxxxxxx f,d Sottrae il contenuto del registro W a quello del registro f. Se d=0 allora il risultato viene salvato nel registro W, se d=1 allora il risultato viene salvato nel registro f stesso. f,d Decrementa il registro f (f-1). Se d=0 allora il risultato viene salvato nel registro W, se d=1 allora il risultato viene salvato nel registro f stesso. f,d Incrementa il registro f (f+1). Se d=0 allora il risultato viene salvato nel registro W, se d=1 allora il risultato viene salvato nel registro f stesso. f,d Esegue il negato del registro f, cioè pone i bit che sono a zero come uno e viceversa. Se d=0 allora il risultato viene salvato nel registro W, se d=1 allora il risultato viene salvato nel registro f stesso. f,d Ruota il contenuto del registro f a sinistra di una posizione. Il bit 7 diventa il bit c del registro STATUS, e questo a sua volta diventa il bit 0 del registro f. Se d=0 allora il risultato viene salvato nel registro W, se d=1 allora il risultato viene salvato nel registro f stesso.

10 120 RRF BTFSS BTFSC DECFSZ INCFSZ RETLW f,d Ruota il contenuto del registro f a destra di una posizione. il bit 0 del registro f diventa il bit c del registro STATUS e questo a sua volta diventa il bit 7 del registro f. Se d=0 allora il risultato viene salvato nel registro W, se d=1 allora il risultato viene salvato nel registro f stesso. f, b Esegue il test sul bit n-esimo (b) del registro f e salta (skip) l istruzione successiva se questo vale uno (set). f, b Esegue il test sul bit n-esimo (b) del registro f e salta (skip) l istruzione successiva se questo vale zero (clear). f,d Decrementa il registro f (f-1) e salta l istruzione successiva se il risultato è zero. Se d=0 allora il risultato viene salvato nel registro W, se d=1 allora il risultato viene salvato nel registro f stesso. f,d Incrementa il registro f (f+1) e salta l istruzione successiva se il risultato è zero. Se d=0 allora il risultato viene salvato nel registro W, se d=1 allora il risultato viene salvato nel registro f stesso. k Restituisce al registro W il numero K.

11 121 Esempio di Programma: Somma I commenti all interno del programma vanno scritti preceduti da un punto e virgola ( ; ) ad esempio: ; PROGRAMMA PIC 16F876. Il primo blocco è standard: ; BLOCCO INTESTAZIONE ;Esprime che tipo di controllore si utilizza e importa il file di configurazione dei registri più importanti del PIC relativo. LIST p=16f876 #INCLUDE P16F876.INC ; BLOCCO CONFIGURATION BIT ; In questo caso legge la sequenza dei numeri come booleani (b ). ; La sequenza di numeri riportata significa che il codice non è protetto ed è possibile effettuare ; modifiche come è giusto che sia in fase di programmazione. ; Ovviamente sono possibili altre sequenze che indicano gradi diversi di protezione del codice ; mettere a 1 o a 0 determinati bit, settando quindi i registri corrispondenti, significa far ; funzionare il PIC in un certo modo: CONFIG b ; Infatti se i bit sottolineati fossero stati 11 allora il codice non sarebbe protetto e sarebbe stato scaricabile, come descritto in CP1 e CP0:

12 122 ; CPD protegge l area di memoria EEPROM. ; DEFINIZIONE DELLE VARIABILI ; In questo blocco si dichiarano le variabili utilizzate nel programma e si assegna ad ognuna un ; indirizzo di memoria. ; Si vuole memorizzare il risultato al primo indirizzo di memoria utile del bank 0, 0x20h, che ; ricordiamo essere lungo un byte, ossia otto bit: RIS equ 0x20h ; variabile RIS memorizzata al primo indirizzo di memoria utile del bank 0. A equ 0x21h ; variabile A memorizzata al secondo indirizzo di memoria utile del bank 0. B equ 0x22h ; variabile B memorizzata al terzo indirizzo di memoria utile del bank 0. ; ATTENZIONE: i dati devono essere memorizzate nei registri a partire dall indirizzo 0x20h. ; Le variabili sono formate all inizio da otto bit a 0; è come se si avessero otto variabili booleane: ; è possibile settare o leggere ogni singolo bit, indicandolo (ad esempio il bit 3) con RIS.3. ; La variabile B quindi è memorizzata all indirizzo 0x21h, ossia 8 bit dopo l indirizzo 0x20h

13 ; INIZIO PROGRAMMA org 0x00h ; L istruzione ORG significa che l istruzione della riga seguente viene ; memorizzata/allocata fisicamente nella memoria programma che va da 0 ; a 7FFh (pagina 0). Essa non occupa memoria del programma. goto INIZIO ; L istruzione GOTO fa saltare il programma direttamente al blocco ; chiamato. org 0x04h nop org 0x05h ; L istruzione NOP (no operation) non esegue alcuna operazione, anche se ; l indirizzo 0x04h servirebbe per gestire gli interrupt. In questo modo il ; programma non sarà mai lanciato in questa cella di memoria: non vi ; sarà alcun interrupt. ; A partire dalla cella 0x05h inizia il codice vero e proprio del programma. INIZIO ; INIZIALIZZAZIONE REGISTRI E VARIABILI ; Il blocco INIZIO viene chiamato e quindi eseguito solo una volta all apertura del ; programma. Al suo interno vengono configurati registri e variabili tramite delle call. call INIZIALIZZA ; L istruzione CALL chiama la routine di inizializzazione, la cui ; etichetta INIZIALIZZA è riportata in fondo al programma, al di fuori ; del MAIN. Terminata la routine l esecuzione torna all indirizzo ; successivo al comando call (si veda pagina successiva). 123 MAIN ; In questo caso questa etichetta non è strettamente necessaria ; CICLO PRINCIPALE DEL PROGRAMMA ; Da qui in poi iniziano le istruzioni del programma vero e proprio. ; Abbiamo che A=5 e B=7, vogliamo sommare A+B. Non possiamo sommarli direttamente. ; Tramite le operazioni di movf, addlw e addwf vediamo ora come è possibile: movf A,0 addwf B,0 movwf RIS : : END ; Porta A in W ; Porta W+B in W ; Porta W in RIS INIZIALIZZA ; In questa routine vengono settate o resettate le variabili di cui si necessita durante il programma. ; Ipotizziamo di voler settare A=5 e B=7, e di pulire RIS che conterrà il risultato. clrf RIS ; (Clear f) Inizializza la variabile RIS a 0: è una reset di un intera variabile di otto bit clrf A clrf B

14 124 bcf RIS,0 bcf RIS,1 bcf RIS,7 OPPURE Per resettare una variabile, bit per bit: ; (Beat Clear f) Resetta il bit zero della variabile RIS ; Resetta il bit uno della variabile RIS ; Resetta il bit sette della variabile RIS bsf A,0 ; (Beat Set f) setta a uno il bit zero della variabile A, bsf A,2 ; il bit due è settato: in questo modo si avrà A= , che corrisponde al ; valore 5 bsf B,0 bsf B,1 bsf B,2 ; In questo modo si avrà B= che corrisponde al valore 7 OPPURE Per inserire un valore numerico nelle variabili: movlw 0x05h ; (Move Literal to W) sposta (muove) il valore numerico in W. ; W è un registro a diposizione per il trasferimento delle variabili. ; Si usa anche per spostarsi da una bancata all altra. ; 0x05h indica che il valore 5 è in esadecimale. movwf A ; (Move W to F) sposta il valore numerico in W, in A. movlw 0x07h movwf B INOLTRE movf A, d ; (Move f) Sposta il contenuto del registro A in questo modo: ; Se d=0 allora sposta il contenuto di f nel registro W, se d=1 allora sposta il ; contenuto nel registro f stesso, utile per testare il registro. clrw ; Infine Clear W pulisce il registro W. : : RETURN ; Rimanda l esecuzione del codice alla riga successiva alla call della routine di ; inizializzazione Cambio di bank Come precedentemente accennato quando si lavora su variabili o registri salvati in bancate diverse dalla zero, bisogna specificare lo spostamento. I bit che specificano in quale banco ci si trova sono il bit 5 (RP0) e 6 (RP1) del registro STATUS (che si trova in ogni bank). Ecco di seguito le combinazioni di questi bit che si riferiscono alle varie bancate.

15 La maniera più veloce ed efficace per spostarsi di bank è quindi, ogni qualvolta si renda necessario, usare le istruzioni BCF e/o BSF per specificare il valore dei bit. Per esempio nel passaggio dal banco 0 al banco 1 si può scrivere: BCF f,b Imposta a zero (clear) il bit n-esimo (b) del registro f. 125 BSF f,b Imposta a uno (set) il bit n-esimo (b) del registro f. BSF STATUS, RP0 ; (Bit Set f) RP0=1 BCF STATUS, RP1 ; (Bit Clear f) RP1=0 In alternativa ma del tutto equivalente : BSF STATUS, 5 ; RP0=1 BCF STATUS, 6 ; RP1=0 Si ricorda che nel caso in cui si vogliano risparmiare righe nella programmazione, ad esempio partendo dal banco 0 e volendo passare al banco 1 non è utile scrivere l istruzione BCF STATUS, 6 o la medesima BCF STATUS, RP1. Poiché il valore di RP1 rimane lo stesso nel passaggio di bancata, si può scrivere comunque l istruzione per maggiore chiarezza nella lettura ma mettendola come commento (;). In questa maniera la riga utilizzata non viene conteggiata nella lunghezza effettiva del programma. Configurazione delle porte I/O Prendiamo in considerazione le porte I/O A e B del PIC 16F876, che sono salvate come PORT A o PORT B ai rispettivi indirizzi 05h e 06h nel bank 0. La porta A ha a disposizione 6 ingressi o uscite (6 bit), da RA0 a RA5, la porta B ne ha 8 che vanno da RB0 a RB7 (8 bit). Nel caso della porta A gli ultimi due bit, dato che come abbiamo visto sono comunque 8 in totale, sono inutili. Per configurare le porte (A o B) si fa riferimento ai registri TRIS A o TRIS B, che si trovano invece agli indirizzi 85h e 86h del bank 1. Se si vuole configurare un ingresso o input si deve settare il valore logico del bit corrispondente a 1, se si vuole configurare un uscita o output si deve settare il valore logico del bit corrispondente a 0.

16 126 Esempio di Programma: Sottrazione ; RA0 INPUT: 0 (somma) 7+5 se è 0 eseguo una somma ; 1 (sottrazione) 7-5 se è 1 eseguo una sottrazione ; A 7h ; B 5h ; RIS 8bit ;Nella porta A, PORTA, RA0 è ingresso ;Nella porta B, PORTB, sono tutte uscite ; BLOCCO INTESTAZIONE LIST p=16f876 #INCLUDE P16F876.INC ; BLOCCO CONFIGURATION BIT CONFIG b ; DEFINIZIONE DELLE VARIABILI RIS equ 0x20h A equ 0x21h B equ 0x22h ; INIZIO PROGRAMMA org 0x00h goto INIZIO org 0x04h nop INIZIO ; INIZIALIZZAZIONE REGISTRI E VARIABILI call INIZIALIZZA CICLO

17 ; CICLO PRINCIPALE DEL PROGRAMMA PORTA movf PORTA, 0 ; PORTA viene caricato in W. btfss W, 0 ; (Bit Test f, Skip if Set) esegue il test sul bit n-esimo (0 in questo caso) del ; registro W: salta (skippa) l istruzione successiva se questo vale uno (ossia è ; settato). ; Questa istruzione è la duale di btfsc (Bit Test, Skip if Clear). goto SOMMA ; se il primo bit di W è 1 dobbiamo eseguire la sottrazione, quindi questo ; comando viene saltato, e si entra direttamente nella lable SOTTRAZIONE. ; Se invece il primo bit è 0 dobbiamo eseguire una somma, il comando goto ; viene eseguito e viene eseguita la SOMMA. SOTTRAZIONE movf B,0 ; B in W subwf A,0 ; A-W in W movwf RIS ; W in RIS goto CICLO 127 SOMMA movf A,0 addwf B,0 movwf RIS goto CICLO END ; A in W ; W+B in W ; W in RIS INIZIALIZZA clrf RIS clrf A clrf B movlw 0x07h movwf A movlw 0x05h movwf B ; Dobbiamo ora configurare il microprocessore, in modo tale che RA2 sia un INPUT e RBi OUTPUT ; per fare ciò è necessario usare i due bit che settano il bank di memoria a cui accedere. Per poi ; poter lavorare sui nostri dati è necessario tornare in bank 0. Questi bit sono contenuti in STATUS bsf STATUS, RP0 ; RP0=1 consente di accedere al bank 1 di memoria. bsf TRISA,0 ; RA0 è un INPUT, infatti è =1 (se avessi voluto configurare RA2 come ; input invece avrei dovuto scrivere bsf TRISA, 2, poiché 2 in binario è ; 10: il secondo bit è 1) bcf STATUS, RP1 ; RP1=0 clrf TRISB ; tutte le porte in uscita a B sono OUTPUT, infatti sono settate a 0 bcf STATUS, RP0 ; RP0=0 garantisce il ritorno a bank zero. RETURN

18 Esempio di Programma ; Adesso rifacciamo lo stesso programma usando alcune maschere di configurazione e il comando ; and. Inoltre schermiamo il valore della scelta memorizzandola in un apposita area di memoria. 128 LIST p=16f876 #INCLUDE P16F876.INC CONFIGURATION BIT: Config b Alfa equ 0x20 h Beta equ 0x21 h Risultato equ 0x22 h And equ 0x23 h Choice equ 0x24 h org 0x00 h Goto MAIN org 0x04 nop Goto READPORT org 0x06 MAIN: Goto VARSET END VARSET: CLRF Risultato Movf 0x07 h Movwf Alfa Movlw 0x05 h Movwf Beta Movlw 0x01 h Movwf And Goto PORTCONFIG PORTCONFIG: Bsf Status, RP0 Bsf Status TRISA,0 Clrf TRISB Goto READPORT READPORT: Movf PORT A, 0 Andwf And, 0 Movwf Choice

19 129 Goto CICLO CICLO: Movf Choice, 0 Btfss W,0 Call SOMMA Movf Choice, 0 Btfsc W,0 Call SOTTRAZIONE Goto READPORT SOMMA : Movf Alfa, W Addwf Beta, 0 Movwf Risultato Return SOTTRAZIONE : Movf Alfa, W Subwf Beta, 0 Movwf Risultato Return

20 130 Configurazione del temporizzatore Per programmi in cui sia necessario temporizzare delle fasi il PIC P P16F876 possiede un registro di 8 bit che è usato come contatore con un range di 256 numeri contabili. Poiché nel nostro PIC l incremento di questo contatore interno avviene ogni 0.4 µs, al massimo sfruttando questo contatore è possibile temporizzare al massimo circa 0.1 ms, poiché 255x0.4x 10-3 è il lasso di tempo massimo che mi separa dall overflow ( e quindi dal limite di conteggio). Il registro che si occupa del temporizzatore è il TMR0 a cui noi possiamo accedere si trova nel bank2 all indirizzo 101h. Come gli altri registri ha a disposizione 8 bit, cioè 256 numeri che vanno dallo 0 al 255. Quando il registro va in overflow, cioè supera il valore massimo, il bit di overflow stesso viene memorizzato nel bit TOIF (il numero 2) del registro INTCON che si trova all indirizzo 102h. Tra il contatore interno del sistema ed il registro a cui noi possiamo accedere è innestato il prescaler, che sostanzialmente è un demoltiplicatore di frequenza realizzato con tecnologia flip flop j-k. Lo scopo del blocco è permettere di impostare un rapporto tale che ogni incremento del TMR0 avvenga ogni x volte l incremento del contatore interno, con x = 2/4/8/16/32/64/128/256 Il registro che gestisce il prescaler è l OPTION_REG. Ad ogni combinazione dei primi tre bit di questo registro (PS0 PS1 PS2) corrisponde un rapporto del prescaler:

21 131 Ad esempio 1:256 indica che ci vogliono 256 colpi di contatore interno affinché il TMR0 incrementi di 1 il suo valore. In questa maniera il tempo totale che è possibile temporizzare si alza sino ad un massimo di 0.4x255x256=65280μs. In caso di temporizzazioni di durata ancora maggiore l unica soluzione è effettuare n cicli di temporizzazione, ricordandosi di aggiungere la variabile, ad esempio N-CICLI, nella dichiarazione delle variabili. Il prescaler va ovviamente scelto secondo la massimizzazione del tempo richiesto, ovvero cercando di avvicinarsi il più possibile al valore dato. Ad esempio, se volessimo temporizzare 0,01s procederemmo come segue. 0,01s=10000μs Se usassimo un prescaler 1:256 allora 10000μs/256=39,065 incrementi che approssimerò a 39. Dovremo quindi precaricare il TMR0 a = 216 (D8) in modo che dopo circa 10000μs (per la precisione dopo 39x256=9984μs) esso darà l overflow. Il nostro PIC ha frequenza 20MHz, ossia periodo 50ns (P=1/f). l operazione di incremento del contatore richiede otto passaggi a livello hardware, il che significa che deve usare un tempo pari a 8 colpi del clock, quindi 50ns*8=400ns=0,4μs.

22 132 Esempio 1 Se volessimo temporizzare un intervallo di tempo di 100 ms SCELTA DEL PRESCALER: poiché l intervallo di tempo da misurare è grande, proviamo a vedere cosa succede usando il prescaler massimo Settando il prescaler a 1:256, otterremmo che il TMR0 raggiunge l overflow dopo 255*256*0.4, 65280*0,4μs=26112μs=26,112ms, che nel nostro caso non sono sufficienti a temporizzare i 100ms. è quindi necessario eseguire più volte il conteggio. È necessario conteggiare in totale in ogni blocco da 25 ms = operazioni. A che. prescaler corrisponde il blocco? Basta fare il rapporto tra il numero di operazioni necessarie e il numero di operazioni eseguibili dal contatore interno, cioè = questo rapporto indica quale taglia deve avere i prescaler, sempre approssimando per ridurre l errore. In questo caso è necessario scegliere il prescaler da 256. Si nota che 100ms/26,112ms=3,8 per cui occorrerebbero quasi 4 cicli, ma con 4 cicli temporizzeremmo 26,112ms*4=104ms,quindi troppo tempo. Bisogna quindi trovare un giusto equilibrio tra prescaler e settaggio del registro TMR0. Ogni volta che si sposta di un unità il settaggio del TMR0 significa perdere 256*0,4μs=102,4μs. IMPOSTARE TMR0 Possiamo calcolare quante operazioni deve eseguire il contatore usando il rapporto tra le operazioni totali da fare e la taglia del prescaler, = ; quindi devo eseguire solo 244 delle 255 operazioni possibili. Settiamo quindi a il prescaler, cioè a 11 ( 0x0B) in esadecimale Infine troviamo 244*256=62720*0,4=24,98 ms

23 133 La routine quindi sarà: Call DEF_VARIABILI Call CONFIG Call DELAY_100ms DEF_VARIABILI CONT equ 0x25 ; n di cicli RETURN CONFIG bsf STATUS, RP0 ; ci spostiamo sul Bank1 bsf OPTION_REG, PS0 ; configuro il prescaler a 256, ossia PS0, PS1, PS2=1: 111=256 bsf OPTION_REG, PS1 bsf OPTION_REG, PS2 bcf STATUS, RP0 ; ci spostiamo sul Bank0 RETURN DELAY_100ms movlw 0x04 ; 4 in W movwf CONT ; W in CONT CICLO_EXT bcf INTCON, T0IF ; resetto il bit che legato al TMR0 ;

24 134 movwf 0x0B movwf TMR0 CICLO btfss INTCON, T0IF goto CICLO decfsz CONT, 1 goto CICLO_EXT RETURN ; 11 in W (B=11 in esa) ; W in TMR0 ; finché T0IF non è =1 allora ripeto il ciclo, quando =0 skippa la ; prossima istruzione ; (Decrement f, Skip if 0) l 1 serve per rimettere il contenuto il CONT Se cambiasse il tempo da considerare, è sufficiente riconfigurare la variabile CONT ed eventualmente il registro INTCON. Ad esempio se il tempo da considerare fosse 57ms, allora, essendo un ciclo lungo 26,112ms, servirebbero 3 cicli, per un totale di 78,336, troppo oltre. Quindi dividiamo 57ms/3=19ms/0,4=47500μs. L ideale è avere un prescaler minimo e avvicinarsi poi col TRM0. TRM0 ha al massimo 255 battiti /255=186 di prescaler. Quindi non potrei settare il prescaler a 128, quindi per forza prescaler settato a 256: 47500/256=185,54, quindi TMR0= =69=45h, per 3 cicli. Codice Gray Binario Decimale Codice Gray Il codice Gray è un codice implementato al fine di ridurre il numero di bit che cambiano tra il passaggio di un valore e l altro, in modo da minimizzare il tempo di errore dovuto alla lettura del dato in fase di transizione. Data la sua struttura è molto complesso da riconvertire in binario, quindi è molto più pratico salvare in memoria i numeri già codificati sfruttando le operazioni di salto.

25 135 Gray equ 0x20 ;in questa cella è salvato il risultato della conversione in codice Gray Movf PORTB,W Call TABEL Movwf Gray TABEL addwf PCL,1 ; (Add W and F) aggiunge PCL a W e mette il risultato in W se 0 e in F se 1 ; dopodichè salta alla riga di codice interessata: retlw b ; mette in W e poi ritorna, come un return. È fondamentale che retlw b ; l operazione integri il return in modo che non esista sfasamento tra retlw b ; tra i valori ritornati ed il valore di PCL ; Poiché W contiene il numero ricevuto dalla porta B, sommandolo a PCL retlw b ; selezioniamo esattamente il numero convertito in codice Gray CONFIG bsf, STATUS, RP0 bcf STATUS, RP1 movlw b movwf TRISB bcf STATUS, RP0 RETURN ; questa routine serve al settare le porte di input ed output e settare le porte ; B in modo che siano porte di output

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

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

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

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

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

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

List p=16f84 ;Tipo di processore include "P16F84.INC" ;Definizioni di registri interni. goto Inizio

List p=16f84 ;Tipo di processore include P16F84.INC ;Definizioni di registri interni. goto Inizio ESEMPIO 1.1 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione Sommare due valori immediati (p.e. 5+7) il risultato va depositato nella posizione 0x10 List p=16f84 Tipo

Dettagli

Introduzione. Corso di Informatica Applicata. Università degli studi di Cassino

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

Dettagli

ESERCIZI SUI SISTEMI DI NUMERAZIONE

ESERCIZI SUI SISTEMI DI NUMERAZIONE ESERCIZI SUI SISTEMI DI NUMERAZIONE 1 ) Convertire in base 10 i seguenti numeri rappresentati nelle basi indicate: (1000101) 2 [R. 69] (477) 8 [R. 319] (40F) 16 [R. 1039] (5778) 9 [R. 4283] (126) 9 [R.

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

I PIC Partendo da Zero By link_89

I PIC Partendo da Zero By link_89 I PIC Partendo da Zero By link_89 Indice: 1. Introduzione 2. Che cosa serve 3. I più usati 4. I registri 5. Il Primo progetto Introduzione Con questa guida non pretendo di insegnarvi a usare perfettamente

Dettagli

INTRODUZIONE alla PROGRAMMAZIONE di MICROCONTROLLORI

INTRODUZIONE alla PROGRAMMAZIONE di MICROCONTROLLORI LUCIDI LEZIONI SISTEMI ELETTRONICI INDUSTRIALI www.dismi.unimo.it (People Associated Pavan ) www.microchip.com com (Datasheet PIC - DS30292) (Mid Range Family Manual DS33023) Università degli Studi di

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

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

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

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

Università degli studi di Roma La Sapienza. Laboratorio di Automatica

Università degli studi di Roma La Sapienza. Laboratorio di Automatica Università degli studi di Roma La Sapienza DIS Dipartimento di Informatica e Sistemistica Laboratorio di Automatica Implementazione di un controllore PID digitale per il controllo di posizione di un motore

Dettagli

MPLAB - IDE. Introduzione. 1. Benvenuti in MPLAB. Introduzione

MPLAB - IDE. Introduzione. 1. Benvenuti in MPLAB. Introduzione MPLAB - IDE Introduzione 1. Benvenuto in MPLAB 2. Creare un progetto 3. Creare un nuovo file assembler 4. Scrivere un programma 5. Toolbar icons 6. Simulatore MPSIM Introduzione MPLAB è un programma che

Dettagli

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S. 2007 2008. Microprocessori - Microcontrollori. namoroso@mrscuole.net

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S. 2007 2008. Microprocessori - Microcontrollori. namoroso@mrscuole.net Corso introduttivo sui microcontrollori A. S. 2007 2008 Microprocessori - Microcontrollori Nicola Amoroso namoroso@mrscuole.net NA L1 1 Cosa e un microcontrollore? > Un piccolo computer, contenente al

Dettagli

ITIS MAX PLANCK ( Lancenigo di Villorba )

ITIS MAX PLANCK ( Lancenigo di Villorba ) ITIS MAX PLANCK ( Lancenigo di Villorba ) CORSO SERALE ( CLASSE 5^ ZTE ) Area di progetto anno scolastico 2006/2007 Allievi : Enrico De Marchi-Alessio Borin Tutor : Prof. Italo Zaniol GIUOCO DEL BINGO

Dettagli

PERIFERICHE INTELLIGENTI colleghiamo un display LCD

PERIFERICHE INTELLIGENTI colleghiamo un display LCD PERIFERICHE INTELLIGENTI colleghiamo un display LCD Sulla schedina sperimentale che abbiamo costruito c'è un connettore a 14 poli da flat cable per poter collegare un display lcd. I pin di controllo del

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

Introduzione ai PICmicro

Introduzione ai PICmicro www.tanzilli.com Introduzione ai PICmicro I PICmicro sono dei circuiti integrati prodotti dalla Microchip Technology Inc., che appartengono alla categoria dei microcontroller, ovvero quei componenti che

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Programmazione dello Z80

Programmazione dello Z80 Il microprocessore si incarica di: gestire il programma e i suoi dati di eseguire i calcoli richiesti. Le azioni appena elencate rendono necessario che il microprocessore abbia da qualche parte, al suo

Dettagli

Modulo 8. Elettronica Digitale. Contenuti: Obiettivi:

Modulo 8. Elettronica Digitale. Contenuti: Obiettivi: Modulo 8 Elettronica Digitale Contenuti: Introduzione Sistemi di numerazione posizionali Sistema binario Porte logiche fondamentali Porte logiche universali Metodo della forma canonica della somma per

Dettagli

Corso introduttivo sui microcontrollori A. S. 2007 2008. Programmare i PIC in C. Timers Interrupts Prerequisiti: Lezione7 Lezione8.

Corso introduttivo sui microcontrollori A. S. 2007 2008. Programmare i PIC in C. Timers Interrupts Prerequisiti: Lezione7 Lezione8. Corso introduttivo sui microcontrollori A. S. 2007 2008 Programmare i PIC in C Prerequisiti: Lezione7 Lezione8 Nicola Amoroso namoroso@mrscuole.net NA L15 1 Timers - Interrupts I timers e gli Interrupts

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

Progetto di Microcontrollori. Cronotermostato per Caldaia

Progetto di Microcontrollori. Cronotermostato per Caldaia Progetto di Microcontrollori Cronotermostato per Caldaia Obiettivo del Progetto Realizzazione di un dispositivo elettronico capace di gestire l accensione di una caldaia mediante il controllo della temperatura

Dettagli

CORSO SERALE (Classe V/STE)

CORSO SERALE (Classe V/STE) CORSO SERALE (Classe V/STE) Area di progetto anno scolastico 2006/2007 Allievo: Lazzari Matteo Tutor: Prof. Zaniol Italo Termostato controllato tramite modulo GSM IL PROGETTO REALIZZATO 1 Indice Introduzione

Dettagli

1 Organizzazione dell unità in virgola mobile (FPU)

1 Organizzazione dell unità in virgola mobile (FPU) 1 Organizzazione dell unità in virgola mobile (FPU) Il processore può maneggiare anche numeri reali, attraverso un modulo detto Floating-Point Unit (FPU). Storicamente, tale circuiteria è stata inizialmente

Dettagli

Embedded Software Sviluppo di uno Scheduler di base per PIC18. Tutorial. Embedded Software. Sviluppo di uno Scheduler di base per PIC18.

Embedded Software Sviluppo di uno Scheduler di base per PIC18. Tutorial. Embedded Software. Sviluppo di uno Scheduler di base per PIC18. Tutorial Embedded Software Sviluppo di uno Scheduler di base per PIC18 Pagina 1 Sommario 1. INTRODUZIONE... 3 2. COSA CI SERVE?... 3 3. UN PO DI TEORIA... 4 4. DALLA TEORIA ALLA PRATICA... 5 5. IMPLEMENTAZIONE...

Dettagli

I MICROCONTROLLORI PIC (Microchip) PARTE I

I MICROCONTROLLORI PIC (Microchip) PARTE I I MICROCONTROLLORI PIC (Microchip) PARTE I Prof. Angelo Monfroglio Questa dispensa, ad uso degli studenti degli indirizzi Elettronica e Informatica e di tutti i progettisti e studiosi interessati, fornisce

Dettagli

Lezione 16: L architettura LC-3

Lezione 16: L architettura LC-3 Lezione 16: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 15 Maggio 2013 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

introduzione I MICROCONTROLLORI

introduzione I MICROCONTROLLORI introduzione I MICROCONTROLLORI Definizione Un microcontrollore è un dispositivo elettronico programmabile Può svolgere autonomamente diverse funzioni in base al programma in esso implementato Non è la

Dettagli

Lancenigo di Villorba TREVISO CORSO SERALE AREA DI PROGETTO ANNO SCOLASTICO 2006/2007

Lancenigo di Villorba TREVISO CORSO SERALE AREA DI PROGETTO ANNO SCOLASTICO 2006/2007 Lancenigo di Villorba TREVISO CORSO SERALE AREA DI PROGETTO ANNO SCOLASTICO 2006/2007 Allievo: NASATO GIANNI Tutor: prof. ITALO ZANIOL, MARCO FALAVIGNA MACCHINA A CONTROLLO NUMERICO GESTITA DA MICROCONTROLLORE

Dettagli

Sistemi di Elaborazione a Microprocessore 8259. (Controllore Program m abile delle Interruzioni) M. Rebaudengo - M. Sonza Reorda

Sistemi di Elaborazione a Microprocessore 8259. (Controllore Program m abile delle Interruzioni) M. Rebaudengo - M. Sonza Reorda 8259 (Controllore Program m abile delle Interruzioni) M. Rebaudengo - M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica 1 M. Rebaudengo, M. Sonza Reorda Generalità L'8259 è stato progettato

Dettagli

La tecnica DDS. Un generatore di toni DTMF

La tecnica DDS. Un generatore di toni DTMF La tecnica DDS 32 Un generatore di toni DTMF standard con selezione a tastiera è presentato in quest articolo come applicazione della tecnica DDS (Direct Digital Synthesys), mediante un microprocessore.

Dettagli

Capitolo 3 Operazioni di ingresso e uscita

Capitolo 3 Operazioni di ingresso e uscita Capitolo 3 Operazioni di ingresso e uscita 3.1. Per assicurare che i dati siano letti solo una volta. 3.2. Assumendo i registri dell interfaccia dello schermo in Figura 3.3, si può usare il seguente programma:

Dettagli

ITIS M. PLANCK ( LANCENIGO DI VILLORBA TV)

ITIS M. PLANCK ( LANCENIGO DI VILLORBA TV) ITIS M. PLANCK ( LANCENIGO DI VILLORBA TV) CORSO SERALE ( Classe 5 /STE ) Area di progetto anno scolastico 2004/2005 Allievi: Silvio Strafella - Luigi Baù Tutor : Prof. Italo Zaniol Termostato automatico

Dettagli

acquisire informazioni su grandezze analogiche, trasformandole in stringhe di bit

acquisire informazioni su grandezze analogiche, trasformandole in stringhe di bit Convertitori analogico/digitali Un convertitore analogico digitale ha la funzione inversa a quella di un convertitore DAC, poiché il suo scopo è quello di permetter ad un sistema a microprocessore di acquisire

Dettagli

Categorie di sistemi Digitali

Categorie di sistemi Digitali Vivian Marco 3isc AS 2007/08 Categorie di sistemi Digitali A Logica cablata Il comportamento di questi sistemi è legato dalla loro struttura fisica. Se si desidera modificarne il comportamento è necessario

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

Dettagli

LA NUMERAZIONE BINARIA

LA NUMERAZIONE BINARIA LA NUMERAZIONE BINARIA 5 I SISTEMI DI NUMERAZIONE Fin dalla preistoria l uomo ha avuto la necessità di fare calcoli, utilizzando svariati tipi di dispositivi: manuali (mani, bastoncini, sassi, abaco),

Dettagli

Microcontrollore. Ora invece passiamo a spiegare come funzionano i convertitori A/D interni ai microcontrollori

Microcontrollore. Ora invece passiamo a spiegare come funzionano i convertitori A/D interni ai microcontrollori Microcontrollore Il microcontrollore è un sistema a microprocessore completo,integrato in un unico chip, progettato per avere la massima autosufficienza e versatilità. Infatti visto il loro prezzo esiguo,

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

I SISTEMI DI NUMERAZIONE (esercizi svolti)

I SISTEMI DI NUMERAZIONE (esercizi svolti) ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA I SISTEMI DI NUMERAZIONE (esercizi svolti) Prof. G. Ciaschetti Conversione di un numero da binario a decimale Esercizio 1. Convertire in decimale

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

Parte 1. Vettori di bit - AA. 2012/13 1.1

Parte 1. Vettori di bit - AA. 2012/13 1.1 1.1 Parte 1 Vettori di bit 1.2 Notazione posizionale Ogni cifra assume un significato diverso a seconda della posizione in cui si trova Rappresentazione di un numero su n cifre in base b: Posizioni a n

Dettagli

I sistemi di elaborazione

I sistemi di elaborazione 2 I sistemi di elaborazione 2.0 I sistemi di elaborazione c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 2.0 0 2 I sistemi di elaborazione Architettura

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 05 La rappresentazione dell informazione Carla Limongelli Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ La rappresentazione

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

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

DISPLAY REMOTO PILOTATO DALLA SERIALE. LCD_SERv10

DISPLAY REMOTO PILOTATO DALLA SERIALE. LCD_SERv10 DISPLAY REMOTO PILOTATO DALLA SERIALE su CPU18LCD LCD_SERv10 035-693737 1 FUNZIONI del sistema: Il sistema è composto da: 1. una scheda con a bordo ÄÅ Un regolatore 12Vcc / 7Vcc Ä a 5Vcc ÄÇ Un microprocessore

Dettagli

I CONTATORI SINCRONI

I CONTATORI SINCRONI I CONTATORI SINCRONI Premessa I contatori sincroni sono temporizzati in modo tale che tutti i Flip-Flop sono commutato ( triggerati ) nello stesso istante. Ciò si realizza collegando la linea del clock

Dettagli

Il PLC per tutti PRATICA

Il PLC per tutti PRATICA Settima parte: Settembre 2007 I Relays e la gestione dei dati Ottava parte: Ottobre 2007 Utilizzare il modulo Led a 7 segmenti giganti Nona parte: Novembre 2007 Applicazioni con i display a 7 segmenti

Dettagli

Che cos è la barriera luminosa?

Che cos è la barriera luminosa? BARRIERA LUMINOSA Che cos è la barriera luminosa? Pezzi da contare Diodo IR o Laser (emittente) Pezzi contati Direzione del nastro trasportatore FOTODIODO (ricevitore) Direzione del nastro trasportatore

Dettagli

Rappresentazione e Memorizzazione dei Dati

Rappresentazione e Memorizzazione dei Dati Rappresentazione e Memorizzazione dei Dati Giuseppe Nicosia CdL in Matematica (Laurea Triennale) Facoltà di Scienze MM.FF.NN. Università di Catania Bit e loro Memorizzazione Definizioni Algoritmo: una

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

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

L Assembler 8086. Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica

L Assembler 8086. Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica L Assembler 8086 M. Rebaudengo - M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica 1 M. Rebaudengo, M. Sonza Reorda Si suddividono in: istruzioni per il calcolo binario istruzioni

Dettagli

luciano trapa I MICROCONTROLLORI (µc o MCU o microcomputer single chip) ED IL PIC 16 F 877 A

luciano trapa I MICROCONTROLLORI (µc o MCU o microcomputer single chip) ED IL PIC 16 F 877 A 1 luciano trapa I MICROCONTROLLORI (µc o MCU o microcomputer single chip) ED IL PIC 16 F 877 A 2 MICROCONTROLLORE o MCU (Micro Controller Unit) o MICROCOMPUTER SINGLE CHIP 3 PREMESSA Dopo un prima parte

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 3 ISC Esercizi per il recupero del debito formativo: Disegnare il diagramma e scrivere la matrice delle transizioni di stato degli automi a stati finiti che rappresentano

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

90.1 Sistemi di numerazione. 90.1.1 Sistema decimale. 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria

90.1 Sistemi di numerazione. 90.1.1 Sistema decimale. 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria 90.1 Sistemi di numerazione.................................................... 605 90.1.1 Sistema decimale..................................................

Dettagli

APPUNTI FAMIGLIA PIC16F87X SUI MICROCONTROLLORI. prof. Duilio De Marco, prof. Ercole Mitrotta, prof. Giorgio Tombola

APPUNTI FAMIGLIA PIC16F87X SUI MICROCONTROLLORI. prof. Duilio De Marco, prof. Ercole Mitrotta, prof. Giorgio Tombola APPUNTI SUI MICROCONTROLLORI FAMIGLIA PIC16F87X prof. Duilio De Marco, prof. Ercole Mitrotta, prof. Giorgio Tombola 1 Indice generale I MICROCONTROLLORI... 4 La famiglia PIC16F87X... 4 Riassunto caratteristiche

Dettagli

Introduzione ai microcontrollori

Introduzione ai microcontrollori Introduzione ai microcontrollori L elettronica digitale nasce nel 1946 con il primo calcolatore elettronico digitale denominato ENIAC e composto esclusivamente di circuiti a valvole, anche se negli anni

Dettagli

Sistemi di Numerazione

Sistemi di Numerazione Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema

Dettagli

Il sensore ad ultrasuoni

Il sensore ad ultrasuoni Il sensore ad ultrasuoni Caratteristiche elettriche Alimentazione: 5 Vcc Il sensore rileva oggetti da 0 cm fino a 6,45 metri. Tre diverse possibiltà per leggere il dato di uscita del sensore: 1. lettura

Dettagli

FONDAMENTI DI LOGICA DIGITALE 1 DL 3155E20 LOGICA. Blocchi funzionali. Argomenti teorici

FONDAMENTI DI LOGICA DIGITALE 1 DL 3155E20 LOGICA. Blocchi funzionali. Argomenti teorici L1 LOGICA FONDAMENTI DI LOGICA DIGITALE 1 Concetti di logica: teoremi fondamentali dell'algebra booleana Sistema binario Funzioni logiche Descrizione algebrica delle reti logiche e le tavole della verità

Dettagli

IL DSP - Digital Signal Processor

IL DSP - Digital Signal Processor IL DSP - Digital Signal Processor Processore dei segnali digitali 1. Generalità Il Digital Signal Processor (DSP, processore di segnali digitali) è un particolare tipo di microprocessore, ottimizzato per

Dettagli

Codifica binaria dei numeri

Codifica binaria dei numeri Codifica binaria dei numeri Caso più semplice: in modo posizionale (spesso detto codifica binaria tout court) Esempio con numero naturale: con 8 bit 39 = Codifica in virgola fissa dei numeri float: si

Dettagli

Utilizzo I mintermini si usano quando si considererà la funzione di uscita Q come Somma di Prodotti (S. P.) ossia OR di AND.

Utilizzo I mintermini si usano quando si considererà la funzione di uscita Q come Somma di Prodotti (S. P.) ossia OR di AND. IPSI G. Plana Via Parenzo 46, Torino efinizione di Mintermine onsiderata una qualunque riga della tabella di verità in cui la funzione booleana di uscita Q vale, si definisce mintermine il prodotto logico

Dettagli

Indirizzi e-mail a cui far pervenire osservazioni, critiche e suggerimenti atti a migliorare la guida. li.francesco@alice.it carmgigi@alice.

Indirizzi e-mail a cui far pervenire osservazioni, critiche e suggerimenti atti a migliorare la guida. li.francesco@alice.it carmgigi@alice. Indirizzi e-mail a cui far pervenire osservazioni, critiche e suggerimenti atti a migliorare la guida. li.francesco@alice.it carmgigi@alice.it GUIDA ALL USO E ALLA PROGRAMMAZIONE DI UN MICROCONTROLLORE

Dettagli

Corso basilare di programmazione

Corso basilare di programmazione Parte vi Corso basilare di programmazione Introduzione............................................ 947 Programma didattico.................................. 947 Strumenti per la compilazione..........................

Dettagli

Codifica binaria dei numeri relativi

Codifica binaria dei numeri relativi Codifica binaria dei numeri relativi Introduzione All interno di un calcolatore, è possibile utilizzare solo 0 e 1 per codificare qualsiasi informazione. Nel caso dei numeri, non solo il modulo ma anche

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

PICLOCK. Classe 4 EA indirizzo elettronica ed elettrotecnica. Ivancich Stefano. Tecnologie e progettazione di sistemi elettrici ed elettronici

PICLOCK. Classe 4 EA indirizzo elettronica ed elettrotecnica. Ivancich Stefano. Tecnologie e progettazione di sistemi elettrici ed elettronici PICLOCK Classe 4 EA indirizzo elettronica ed elettrotecnica Ivancich Stefano Tecnologie e progettazione di sistemi elettrici ed elettronici Istituto tecnico C. Zuccante Mestre A.S. 2013/2014 progetto n

Dettagli

Le componenti fisiche di un computer: l hardware

Le componenti fisiche di un computer: l hardware Le componenti fisiche di un computer: l hardware In questa sezione ci occuperemo di come è strutturato e come funziona l hardware di un computer. In particolare, nella Sezione ci occuperemo del punto di

Dettagli

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE 1. INTRODUZIONE In questo capitolo viene presentata la struttura, sia interna che esterna, di un microprocessore generico riprendendo i concetti esposti nella

Dettagli

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti Esercitazione Informatica I AA 2012-2013 Nicola Paoletti 4 Gigno 2013 2 Conversioni Effettuare le seguenti conversioni, tenendo conto del numero di bit con cui si rappresenta il numero da convertire/convertito.

Dettagli

Uno dei metodi più utilizzati e

Uno dei metodi più utilizzati e TEORIA MHZ RISORSE SPECIALE PRATICA Quinta parte n 257 - Novembre 2006 Realizzazione di un timer digitale programmabile Sesta parte n 258 - Dicembre 2006 Uso delle interfacce seriali Settima parte n 259

Dettagli

Rappresentazione delle informazioni

Rappresentazione delle informazioni Rappresentazione delle informazioni Abbiamo informazioni (numeri, caratteri, immagini, suoni, video... ) che vogliamo rappresentare (e poter elaborare) in un calcolatore. Per motivi tecnologici un calcolatore

Dettagli

Programmazione di Base Variabili Array Funzioni Strutture di controllo. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Programmazione di Base Variabili Array Funzioni Strutture di controllo. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) Programmazione di Base Variabili Array Funzioni Strutture di controllo Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) 3^ parte Com è fatto Arduino Programmazione da USB Nota: Firmware: Insieme

Dettagli

Alessandro Pellegrini

Alessandro Pellegrini Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione

Dettagli

Architetture DSP. Capitolo 6

Architetture DSP. Capitolo 6 Capitolo 6 Architetture DSP Un convertitore analogico-digitale (ADC) trasforma un segnale a tempo continuo in una sequenza di bit; viceversa un convertitore digitale-analogico (DAC) trasforma una sequenza

Dettagli

2.12 Esercizi risolti

2.12 Esercizi risolti Codifica dell'informazione 55 Lo standard IEEE prevede cinque cause di eccezione aritmetica: underflow, overflow, divisione per zero, eccezione per inesattezza, e eccezione di invalidità. Le eccezioni

Dettagli

CONTATORI ASINCRONI. Fig. 1

CONTATORI ASINCRONI. Fig. 1 CONTATORI ASINCRONI Consideriamo di utilizzare tre Flip Flop J K secondo lo schema seguente: VCC Fig. 1 Notiamo subito che tuttigli ingressi J K sono collegati alle Vcc cioe allo stato logico 1, questo

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri 1 Da base 2 a base 10 I seguenti esercizi richiedono di convertire in base 10 la medesima stringa binaria codificata rispettivamente

Dettagli

Caso di studio 1: Progetto di un sistema su un chip

Caso di studio 1: Progetto di un sistema su un chip Caso di studio 1: Progetto di un sistema su un chip 1 Caso di studio 1: Progetto di un sistema su un chip In questo caso di studio Progettazione di un sistema per la realizzazione su un chip FPGA Come

Dettagli

l angolo di Mr A.KEER UNITA

l angolo di Mr A.KEER UNITA l angolo di Mr A.KEER UNITA Aritmetico Logica La rassegna delle macchine combinatorie destinate al supporto delle operazioni aritmetiche non può prescindere dalle ALU, sofisticate macchine plurifunzionali,

Dettagli

Un micro FPGA. skills. come il core ABC. il core ABC sia la suite di sviluppo di AC-

Un micro FPGA. skills. come il core ABC. il core ABC sia la suite di sviluppo di AC- skills di Un micro FPGA che parte dall ABC Quando in molti progetti è necessario unire alla logica programmabile la funzionalità di un piccolo microprocessore le soluzioni semplici come il core ABC possono

Dettagli

STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET

STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET Lo stack STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET Lo stack (tradotto talvolta in italiano con pila o catasta) è un'area di memoria privilegiata, dove il microprocessore può salvare

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16 Un ripasso di aritmetica: Conversione dalla base 1 alla base 16 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base sedici sarà del tipo: c m c m-1... c 1 c (le c i sono cifre

Dettagli

FT536 DISPLAY GIGANTE 3 IN 1: ORA, DATA, TEMPERATURA 1/5 FT536 CARATTERISTICHE E FUNZIONAMENTO

FT536 DISPLAY GIGANTE 3 IN 1: ORA, DATA, TEMPERATURA 1/5 FT536 CARATTERISTICHE E FUNZIONAMENTO DISPLAY GIGANTE 3 IN 1: ORA, DATA, TEMPERATURA Sulla scia dei differenti tipi di display multifunzionali già presentati, ecco un nuovo dispositivo che utilizza i moduli giganti a sette segmenti con led

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica I componenti di un Sistema di elaborazione. Memoria centrale Memorizza : istruzioni dati In forma BINARIA : 10001010101000110101... È costituita da una serie di CHIP disposti su una scheda elettronica

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Codifica di dati e istruzioni. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Codifica di dati e istruzioni. Anno Accademico 2010/2011 Francesco Tortorella Corso di Fondamenti di Informatica Codifica di dati e istruzioni Anno Accademico 2010/2011 Francesco Tortorella La codifica dei dati e delle istruzioni La più piccola unità di informazione memorizzabile

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori Informazione e computer Si può rappresentare l informazione attraverso varie forme: Numeri Testi Suoni Immagini 0001010010100101010 Computer Cerchiamo di capire come tutte queste informazioni possano essere

Dettagli