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

MICROCONTROLLORE PIC16F84A

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

Dettagli

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

CIRCUITO DI TEST E SOFTWARE UTILIZZATI

CIRCUITO DI TEST E SOFTWARE UTILIZZATI CIRCUITO DI TEST E SOFTWARE UTILIZZATI Circuito di Test Nello schema elettrico di figura A è rappresentato un circuito, realizzabile anche senza l ausilio di un circuito stampato, che consente di testare

Dettagli

Esercizi di verifica del debito formativo:

Esercizi di verifica del debito formativo: Esercizi di verifica del debito formativo: Disegnare il diagramma e scrivere la tabella delle transizioni di stato degli automi sequenziali a stati finiti che rappresentano il comportamento dei seguenti

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

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

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

PUNTATORE LASER AUTOMATICO CON COMANDO VIA ETHERNET

PUNTATORE LASER AUTOMATICO CON COMANDO VIA ETHERNET Canzian Sara Liberali Marco 5AT A.S.2007/2008 PUNTATORE LASER AUTOMATICO CON COMANDO VIA ETHERNET Questo sistema permette di posizionare una luce laser in una determinata posizione data dalle coordinate

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

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

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

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

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

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

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

PROCESSOR 16F84A. ;configurazione FUSES: oscillatore XT, WDT disabilitato PWRT abilitato, CP disabilitato config 0x3FF1

PROCESSOR 16F84A. ;configurazione FUSES: oscillatore XT, WDT disabilitato PWRT abilitato, CP disabilitato config 0x3FF1 ---- ; Programma per ROBOT MDB3F2004-05 Evolution ; Autore: MICCI Antonello copyright 2005 ---- ------------------------- ;Piedino RA0 ingresso fotocellula dx livello basso rilevazione ostacolo ;Piedino

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

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

Microcontrollori PIC Teoria, Esperimenti, Esercizi HARDWARE DEL PIC SOFTWARE DEL PIC MPLAB MEMORIA PORTE-IO TIMER DISPLAY AUDIO ADC INTERRUPT EEPROM

Microcontrollori PIC Teoria, Esperimenti, Esercizi HARDWARE DEL PIC SOFTWARE DEL PIC MPLAB MEMORIA PORTE-IO TIMER DISPLAY AUDIO ADC INTERRUPT EEPROM Microcontrollori PIC Teoria, Esperimenti, Esercizi HARDWARE DEL PIC SOFTWARE DEL PIC MPLAB MEMORIA PORTE-IO TIMER DISPLAY AUDIO ADC INTERRUPT EEPROM HARDWARE DEL PIC Il PIC6F684 (PIC=Peripheral Interface

Dettagli

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

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

Dettagli

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

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

Dettagli

09-05-07. Introduzione ai microcontrollori PIC

09-05-07. Introduzione ai microcontrollori PIC 09-05-07 Introduzione ai microcontrollori PIC Daniele Beninato: Nicola Trivellin: beninato@dei.unipd.it trive1@tin.it Che cosa è un microcontrollore? Un microcontrollore è un sistema a microprocessore

Dettagli

A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON0... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON...

A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON0... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON... A/D CON PIC 16F877 Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON... 7 ESEMPIO 1... 7 ADCON1... 8 ADFM... 8 PGF3, PGF1 E PGF0... 9 ESEMPIO

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

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

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

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

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

ESERCIZI NEL LINGUAGGIO ASSEMBLATIVO DEL MICROCONTROLLORE PIC 16F84

ESERCIZI NEL LINGUAGGIO ASSEMBLATIVO DEL MICROCONTROLLORE PIC 16F84 ESERCIZI NEL LINGUAGGIO ASSEMBLATIVO DEL MICROCONTROLLORE PIC 16F84 1 ) Calcolare in binario e convertire in decimale il contenuto del registro W dopo l esecuzione delle seguenti istruzioni: MOVLW 150

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

DISPLAY LCD HD44780U(LCD-II)

DISPLAY LCD HD44780U(LCD-II) DISPLAY LCD HD44780U(LCD-II) 1. Descrizione 1.1 Introduzione Molti dispositivi a microcontrollore usano un visualizzatore (display) LCD per mostrare delle informazioni, uno dei tipi più usati può mostrare

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

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. 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

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

In questa puntata scopriremo

In questa puntata scopriremo TEORIA MHZ RISORSE SPECIALE PRATICA Sesta parte n 258 - Dicembre 2006 Uso delle interfacce seriali Settima parte n 259 - Gennaio 2007 Interfacce SPI, I2C e 1-Wire Ottava parte n 260 - Febbraio 2007 Uso

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

I SISTEMI DI NUMERAZIONE

I SISTEMI DI NUMERAZIONE ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA I SISTEMI DI NUMERAZIONE Prof. G. Ciaschetti Fin dall antichità, l uomo ha avuto il bisogno di rappresentare le quantità in modo simbolico. Sono nati

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

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

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

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

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

Esercitazione 2 di verifica

Esercitazione 2 di verifica Architettura degli Elaboratori, 27-8 Esercitazione 2 di verifica Soluzione: mercoledì 24 ottobre Una unità di elaborazione U è così definita: Domanda 1 i) possiede al suo interno due componenti logici

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

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

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

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

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

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

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

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

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione La Codifica dell informazione (parte 1) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente:

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

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono

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

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

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

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

Aritmetica dei Calcolatori 2

Aritmetica dei Calcolatori 2 Laboratorio di Architettura 13 aprile 2012 1 Operazioni bit a bit 2 Rappresentazione binaria con segno 3 Esercitazione Operazioni logiche bit a bit AND OR XOR NOT IN OUT A B A AND B 0 0 0 0 1 0 1 0 0 1

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

Macchine a stati finiti sincrone

Macchine a stati finiti sincrone Macchine a stati finiti sincrone Modulo 6 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Microelettronica e Bioingegneria (EOLAB) Macchine a stati finiti Dall

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

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

CONTROLLO NUMERICO DI UN TORNIO DI TIPO DIDATTICO

CONTROLLO NUMERICO DI UN TORNIO DI TIPO DIDATTICO CONTROLLO NUMERICO DI UN TORNIO DI TIPO DIDATTICO ELETTRONICA E TELECOMUNICAZIONI AREA DI PROGETTO TESINA PLURIDISCIPLINARE ISTITUTO TECNICO INDUSTRIALE STATALE MAX PLANCK o LANCENIGO VILLORBA (TV) CLASSE

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

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

release 3 Il microcontrollore PIC16F877A di Ippolito Perlasca Presentazione

release 3 Il microcontrollore PIC16F877A di Ippolito Perlasca Presentazione release 3 Il microcontrollore PIC16F877A di Ippolito Perlasca Presentazione Questa è una dispensa sul microcontrollore PIC16F877A. Non è completa: manca la descrizione di alcune periferiche, ma le più

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

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

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

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

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

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

Controllo apertura cancelletto con tastiera a matrice

Controllo apertura cancelletto con tastiera a matrice Premessa Controllo apertura cancelletto con tastiera a matrice Prima di cominciare vorrei specificare che presento questo mio lavoro allo scopo di dare uno spunto e/o una base di partenza a coloro i quali

Dettagli

Prof.ssa Paola Vicard

Prof.ssa Paola Vicard Questa nota consiste per la maggior parte nella traduzione (con alcune integrazioni) da Descriptive statistics di J. Shalliker e C. Ricketts, 2000, University of Plymouth Consideriamo come esempio il data

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

P R O G E T T O L A R S A A P P U N T I S U L P. L. C.

P R O G E T T O L A R S A A P P U N T I S U L P. L. C. P R O G E T T O L A R S A A P P U N T I S U L P. L. C. L automazione di un qualunque procedimento industriale si ottiene mediante un insieme d apparecchiature, opportunamente collegate tra loro, in modo

Dettagli

DEDALO. Motori passo-passo Ruota motrice n.1 Ruota motrice n.2. Ruota di snodo. avanti

DEDALO. Motori passo-passo Ruota motrice n.1 Ruota motrice n.2. Ruota di snodo. avanti DEDALO Dedalo è il nome di un progetto nato con l intento di realizzare automa in grado di riconoscere labirinti (creati con strisce di colore nero su pavimenti o cartoncino bianco, aventi incroci perpendicolari)

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli