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

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

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

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

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

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

Codifica dei numeri negativi

Codifica dei numeri negativi E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

Materiale di approfondimento: numeri interi relativi in complemento a uno

Materiale di approfondimento: numeri interi relativi in complemento a uno Materiale di approfondimento: numeri interi relativi in complemento a uno Federico Cerutti AA. 2011/2012 Modulo di Elementi di Informatica e Programmazione http://apollo.ing.unibs.it/fip/ 2011 Federico

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori" slide a cura di Salvatore Orlando & Marta Simeoni " Architettura degli Elaboratori 1 Interi unsigned in base 2" Si utilizza un

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Progetti reali con ARDUINO

Progetti reali con ARDUINO Progetti reali con ARDUINO Introduzione alla scheda Arduino (parte 2ª) ver. Classe 3BN (elettronica) marzo 22 Giorgio Carpignano I.I.S. Primo LEVI - TORINO Il menù per oggi Lettura dei pulsanti Comunicazione

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Lab 02 Tipi semplici in C Obiettivo dell esercitazione Acquistare familiarità con i tipi di dato semplici supportati

Dettagli

GENERALITA SUI CONVERTITORI DAC E ADC CONVERTITORI DIGITALE-ANALOGICO DAC

GENERALITA SUI CONVERTITORI DAC E ADC CONVERTITORI DIGITALE-ANALOGICO DAC I.T.I. Modesto PANETTI A R I ia Re David, 86-8-54.54. - 75 ARI Fax 8-54.64.3 Internet http://www.itispanetti.it email : ATF5C@istruzione.it Tesina sviluppata dall alunno Antonio Gonnella della classe 5

Dettagli

CALCOLATORI ELETTRONICI 15 aprile 2014

CALCOLATORI ELETTRONICI 15 aprile 2014 CALCOLATORI ELETTRONICI 15 aprile 2014 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1 Di seguito è riportato lo schema di una ALU a 32 bit in grado

Dettagli

Procedura corretta per mappare con ECM Titanium

Procedura corretta per mappare con ECM Titanium Procedura corretta per mappare con ECM Titanium Introduzione: In questo documento troverete tutte le informazioni utili per mappare correttamente con il software ECM Titanium, partendo dalla lettura del

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Altri cifrari a blocchi

Altri cifrari a blocchi Altri cifrari a blocchi Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci RC2 [1989] IDEA (International

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame.

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. 1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. (a) Da quanti bit è costituito l indirizzo logico? (b) Da quanti bit

Dettagli

Architettura dei Calcolatori

Architettura dei Calcolatori Architettura dei Calcolatori Sistema di memoria parte prima Ing. dell Automazione A.A. 2011/12 Gabriele Cecchetti Sistema di memoria parte prima Sommario: Banco di registri Generalità sulla memoria Tecnologie

Dettagli

Guida rapida all uso di ECM Titanium

Guida rapida all uso di ECM Titanium Guida rapida all uso di ECM Titanium Introduzione Questa guida contiene una spiegazione semplificata del funzionamento del software per Chiputilizzare al meglio il Tuning ECM Titanium ed include tutte

Dettagli

IL SAMPLE AND HOLD UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto di Fondamenti di Automatica. PROF.: M. Lazzaroni

IL SAMPLE AND HOLD UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto di Fondamenti di Automatica. PROF.: M. Lazzaroni UNIVERSITÀ DEGLI STUDI DI MILANO FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica IL SAMPLE AND HOLD Progetto di Fondamenti di Automatica PROF.: M. Lazzaroni Anno Accademico

Dettagli

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense Linguaggio del calcolatore Circuiti e reti combinatorie ppendice + dispense Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e nche per esprimere concetti complessi

Dettagli

LA NOTAZIONE SCIENTIFICA

LA NOTAZIONE SCIENTIFICA LA NOTAZIONE SCIENTIFICA Definizioni Ricordiamo, a proposito delle potenze del, che = =.000 =.000.000.000.000 ovvero n è uguale ad seguito da n zeri. Nel caso di potenze con esponente negativo ricordiamo

Dettagli

Rappresentazione numeri in virgola mobile

Rappresentazione numeri in virgola mobile Rappresentazione numeri in virgola mobile Un numero non intero può essere rappresentato in infiniti modi quando utilizziamo la notazione esponenziale: Es. 34.5 = 0.345 10 2 = 0.0345 10 3 = 345 10-1 Questo

Dettagli

Programmazione di un dispositivo 1to4INTGEN

Programmazione di un dispositivo 1to4INTGEN Programmazione di un dispositivo 1to4INTGEN Realizzazione di un sistema timesharing Materiale didattico a cura di: Prof. A. Mazzeo Ing. L. Romano Ing. L. Coppolino Ing. A. Cilardo Dipartimento di Informatica

Dettagli

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

PD32. Esercitazione sull interfacciamento con un dispositivo di IO

PD32. Esercitazione sull interfacciamento con un dispositivo di IO PD32 Esercitazione sull interfacciamento con un dispositivo di IO Domanda #5 14/09/2000 Si dispone di un PD32 per effettuare il collaudo di un circuito integrato combinatorio con 5 ingressi e una uscita,

Dettagli

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo: ALGORITMI 1 a Parte di Ippolito Perlasca Algoritmo: Insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema (De Mauro) Procedimento che consente di ottenere

Dettagli

Una scuola vuole monitorare la potenza elettrica continua di un pannello fotovoltaico

Una scuola vuole monitorare la potenza elettrica continua di un pannello fotovoltaico ESAME DI STATO PER ISTITUTI PROFESSIONALI Corso di Ordinamento Indirizzo: Tecnico delle industrie elettroniche Tema di: Elettronica, telecomunicazioni ed applicazioni Gaetano D Antona Il tema proposto

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Controllare un nastro trasportatore fischertechnik con Arduino

Controllare un nastro trasportatore fischertechnik con Arduino TITOLO ESPERIENZA: Controllare un nastro trasportatore fischertechnik con Arduino PRODOTTI UTILIZZATI: OBIETTIVO: AUTORE: RINGRAZIAMENTI: Interfacciare e controllare un modello di nastro trasportatore

Dettagli

TRACER218 MODULO DATALOGGER RS485 MODBUS SPECIFICA PRELIMINARE

TRACER218 MODULO DATALOGGER RS485 MODBUS SPECIFICA PRELIMINARE TRACER218 MODULO DATALOGGER RS485 MODBUS SPECIFICA PRELIMINARE V.00 AGOSTO 2012 CARATTERISTICHE TECNICHE Il modulo TRACER218 485 è un dispositivo con porta di comunicazione RS485 basata su protocollo MODBUS

Dettagli

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test Prefazione, Contenuto Parte 1: Sviluppo di programmi Parte 2: Uso e test SIMATIC Parte 3: Descrizione del linguaggio Programmazione di blocchi Appendici Glossario, Indice analitico Manuale Numero di ordinazione

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Lab. 1 - Introduzione a Matlab

Lab. 1 - Introduzione a Matlab Lab. 1 - Introduzione a Matlab Alcune informazioni su Matlab Matlab è uno strumento per il calcolo scientifico utilizzabile a più livelli, dalla calcolatrice tascabile, alla simulazione ed analisi di sistemi

Dettagli

L OSCILLOSCOPIO. L oscilloscopio è il più utile e versatile strumento di misura per il test delle apparecchiature e dei

L OSCILLOSCOPIO. L oscilloscopio è il più utile e versatile strumento di misura per il test delle apparecchiature e dei L OSCILLOSCOPIO L oscilloscopio è il più utile e versatile strumento di misura per il test delle apparecchiature e dei circuiti elettronici. Nel suo uso abituale esso ci consente di vedere le forme d onda

Dettagli

Controllori a Logica Programmabile. Cos è un PLC? Cenni storici. Cenni storici. Cenni storici. Definizione dallo Standard IEC 61131

Controllori a Logica Programmabile. Cos è un PLC? Cenni storici. Cenni storici. Cenni storici. Definizione dallo Standard IEC 61131 Controllori a Logica mabile Nella presente lezione vedremo le caratteristiche principali del controllore a logica programmabile (in inglese, mable Logic Controller, o PLC). In particolare, ci soffermeremo

Dettagli

Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project

Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project NB: E necessario: adoperare la sintassi più evoluta per le direttive di precompilazione 1, usando come contenitore

Dettagli

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE 1. EQUAZIONI Definizione: un equazione è un uguaglianza tra due espressioni letterali (cioè in cui compaiono numeri, lettere

Dettagli

Floating Point N = M BE. Notazione in virgola mobile. base. esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1.

Floating Point N = M BE. Notazione in virgola mobile. base. esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1. Floating Point Notazione in virgola mobile N = M BE mantissa base esponente esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1.6273 102 forma normalizzata: la mantissa ha una sola cifra

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Linguaggio C: introduzione Il linguaggio C è un linguaggio general purpose sviluppato nel 1972 da Dennis Ritchie per scrivere il sistema operativo UNIX ed alcune applicazioni per un PDP-11. Il linguaggio

Dettagli

ESTRAZIONE DI RADICE

ESTRAZIONE DI RADICE ESTRAZIONE DI RADICE La radice è l operazione inversa dell elevamento a potenza. L esponente della potenza è l indice della radice che può essere: quadrata (); cubica (); quarta (4); ecc. La base della

Dettagli

Serduino - SERRA CON ARDUINO

Serduino - SERRA CON ARDUINO Serduino - SERRA CON ARDUINO 1 Componenti Facchini Riccardo (responsabile parte hardware) Guglielmetti Andrea (responsabile parte software) Laurenti Lorenzo (progettazione hardware) Rigolli Andrea (reparto

Dettagli

Fondamenti di Informatica 300 ed oltre esercizi di teoria

Fondamenti di Informatica 300 ed oltre esercizi di teoria Fondamenti di Informatica 300 ed oltre esercizi di teoria Fulvio Corno Antonio Lioy Politecnico di Torino Dip. di Automatica e Informatica v. 4.02 01/09/2009 Indice 1 Introduzione 2 1.1 Nota metodologica........................................

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Sepam Serie 20: note per la regolazione da tastierino frontale o da software SFT2841 secondo norma CEI 0-16

Sepam Serie 20: note per la regolazione da tastierino frontale o da software SFT2841 secondo norma CEI 0-16 Sepam Serie 20: note per la regolazione da tastierino frontale o da software SFT2841 secondo norma CEI 0-16 Sepam Serie 20: note per la regolazione da tastierino frontale o da software SFT2841 secondo

Dettagli

Quando troncare uno sviluppo in serie di Taylor

Quando troncare uno sviluppo in serie di Taylor Quando troncare uno sviluppo in serie di Taylor Marco Robutti October 13, 2014 Lo sviluppo in serie di Taylor di una funzione è uno strumento matematico davvero molto utile, e viene spesso utilizzato in

Dettagli

METODO PER LA STESURA DI PROGRAMMI PER IL CENTRO DI LAVORO CNC

METODO PER LA STESURA DI PROGRAMMI PER IL CENTRO DI LAVORO CNC METODO PER LA STESURA DI PROGRAMMI PER IL CENTRO DI LAVORO CNC Riferimento al linguaggio di programmazione STANDARD ISO 6983 con integrazioni specifiche per il Controllo FANUC M21. RG - Settembre 2008

Dettagli

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT Introduzione Un file batch è un file di testo di tipo ASCII che contiene una sequenza di comandi DOS. I file batch devono avere estensione.bat I comandi DOS all interno dei programmi batch sono eseguiti

Dettagli

SCUOLA PRIMARIA DI MONTE VIDON COMBATTE CLASSE V INS. VIRGILI MARIA LETIZIA

SCUOLA PRIMARIA DI MONTE VIDON COMBATTE CLASSE V INS. VIRGILI MARIA LETIZIA SCUOLA PRIMARIA DI MONTE VIDON COMBATTE CLASSE V INS. VIRGILI MARIA LETIZIA Regoli di Nepero Moltiplicazioni In tabella Moltiplicazione a gelosia Moltiplicazioni Con i numeri arabi Regoli di Genaille Moltiplicazione

Dettagli

ITCG Cattaneo via Matilde di canossa n.3 - Castelnovo ne' Monti (RE) SEZIONE I.T.I. - Corso di Fisica - prof. Massimo Manvilli

ITCG Cattaneo via Matilde di canossa n.3 - Castelnovo ne' Monti (RE) SEZIONE I.T.I. - Corso di Fisica - prof. Massimo Manvilli ITCG C. CATTANEO via Matilde di Canossa n.3 - Castelnovo ne' Monti (Reggio Emilia) Costruzione del grafico di una funzione con Microsoft Excel Supponiamo di aver costruito la tabella riportata in figura

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Così come le macchine meccaniche trasformano

Così come le macchine meccaniche trasformano DENTRO LA SCATOLA Rubrica a cura di Fabio A. Schreiber Il Consiglio Scientifico della rivista ha pensato di attuare un iniziativa culturalmente utile presentando in ogni numero di Mondo Digitale un argomento

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

FUNZIONI AVANZATE DI EXCEL

FUNZIONI AVANZATE DI EXCEL FUNZIONI AVANZATE DI EXCEL Inserire una funzione dalla barra dei menu Clicca sulla scheda "Formule" e clicca su "Fx" (Inserisci Funzione). Dalla finestra di dialogo "Inserisci Funzione" clicca sulla categoria

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Le system call: fork(), wait(), exit()

Le system call: fork(), wait(), exit() Le system call: fork(), wait(), exit() Di seguito viene mostrato un programma che fa uso di puntatori a funzione, nel quale si mette in evidenza il loro utilizzo. Programma A1 #include int add(a,b,c)

Dettagli

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1 LATCH E FLIPFLOP. I latch ed i flipflop sono gli elementi fondamentali per la realizzazione di sistemi sequenziali. In entrambi i circuiti la temporizzazione è affidata ad un opportuno segnale di cadenza

Dettagli

In base alla formula di torneo adottata i tornei possono pertanto prevedere lo svolgimento di una o più partite.

In base alla formula di torneo adottata i tornei possono pertanto prevedere lo svolgimento di una o più partite. Formule di gioco La successione di mani necessarie per l eliminazione del penultimo giocatore o per la determinazione dei giocatori che accedono ad un turno successivo costituisce una partita. In base

Dettagli

IL LINGUAGGIO C++ Configurazione di Dev-C++

IL LINGUAGGIO C++ Configurazione di Dev-C++ IL LINGUAGGIO C++ Note sull'uso di DevC++ Requisiti di sistema per Dev-C++ - Sistema operativo Microsoft Windows 95, 98, Millenium Edition, NT 4, 2000 o XP - RAM: 8 Mb (consigliati almeno 32 Mb) - CPU:

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2010

CALCOLATORI ELETTRONICI 29 giugno 2010 CALCOLATORI ELETTRONICI 29 giugno 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si disegni lo schema di un flip-flop master-slave S-R sensibile ai fronti di salita e

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri

Dettagli

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN per Expert NANO 2ZN Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie Expert NANO 2ZN Nome documento: MODBUS-RTU_NANO_2ZN_01-12_ITA Software installato: NANO_2ZN.hex

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Guida alle FM 35x. Siemens S.p.A. I IA AS PLC

Guida alle FM 35x. Siemens S.p.A. I IA AS PLC . Guida alle FM 35x. 1 ... 1 Guida alle FM 35x.... 1 Tipologie d Encoder... 4 Acquisizione degli encoder con S7-300 e S7-400.... 4 Conteggio e misura.... 6 Modalità di conteggio... 6 Posizionamento con

Dettagli

I componenti di un Sistema di elaborazione. CPU (central process unit)

I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) La C.P.U. è il dispositivo che esegue materialmente gli ALGORITMI.

Dettagli

Trattamento aria Regolatore di pressione proporzionale. Serie 1700

Trattamento aria Regolatore di pressione proporzionale. Serie 1700 Trattamento aria Serie 7 Serie 7 Trattamento aria Trattamento aria Serie 7 Serie 7 Trattamento aria +24VDC VDC OUTPUT MICROPROCESS. E P IN EXH OUT Trattamento aria Serie 7 Serie 7 Trattamento aria 7 Trattamento

Dettagli

Accesso all Area di Lavoro

Accesso all Area di Lavoro Accesso all Area di Lavoro Una volta che l Utente ha attivato le sue credenziali d accesso Username e Password può effettuare il login e quindi avere accesso alla propria Area di Lavoro. Gli apparirà la

Dettagli

Appunti sull uso di matlab - I

Appunti sull uso di matlab - I Appunti sull uso di matlab - I. Inizializazione di vettori.. Inizializazione di matrici.. Usare gli indici per richiamare gli elementi di un vettore o una matrice.. Richiedere le dimensioni di una matrice

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

Manuale di installazione e d uso

Manuale di installazione e d uso Manuale di installazione e d uso 1 Indice Installazione del POS pag. 2 Funzionalità di Base - POS Sagem - Accesso Operatore pag. 2 - Leggere una Card/braccialetto Cliente con il lettore di prossimità TeliumPass

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

STRUTTURE (O COSTRUTTI) DI CONTROLLO

STRUTTURE (O COSTRUTTI) DI CONTROLLO Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni

Dettagli

STUDIO DI UNA FUNZIONE

STUDIO DI UNA FUNZIONE STUDIO DI UNA FUNZIONE OBIETTIVO: Data l equazione Y = f(x) di una funzione a variabili reali (X R e Y R), studiare l andamento del suo grafico. PROCEDIMENTO 1. STUDIO DEL DOMINIO (CAMPO DI ESISTENZA)

Dettagli

Determinare la grandezza della sottorete

Determinare la grandezza della sottorete Determinare la grandezza della sottorete Ogni rete IP possiede due indirizzi non assegnabili direttamente agli host l indirizzo della rete a cui appartiene e l'indirizzo di broadcast. Quando si creano

Dettagli

Trasmissione Seriale e Parallela. Interfacce di Comunicazione. Esempio di Decodifica del Segnale. Ricezione e Decodifica. Prof.

Trasmissione Seriale e Parallela. Interfacce di Comunicazione. Esempio di Decodifica del Segnale. Ricezione e Decodifica. Prof. Interfacce di Comunicazione Università degli studi di Salerno Laurea in Informatica I semestre 03/04 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ 2 Trasmissione

Dettagli

Import Dati Release 4.0

Import Dati Release 4.0 Piattaforma Applicativa Gestionale Import Dati Release 4.0 COPYRIGHT 2000-2005 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati.questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Elettronica I Grandezze elettriche e unità di misura

Elettronica I Grandezze elettriche e unità di misura Elettronica I Grandezze elettriche e unità di misura Valentino Liberali Dipartimento di Tecnologie dell Informazione Università di Milano, 26013 Crema e-mail: liberali@dti.unimi.it http://www.dti.unimi.it/

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli