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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 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 di processore include "P16F84.INC" Definizioni di registri interni Risultato equ 0x10 Determina la posizione del risultato Vettore di Reset Salva il vettore di interrupt Inizio movlw 0x05 Carica il 1 addo in W addlw 0x07 Somma il 2º addo movwf Risultato Memorizza il risultato Stop nop Metti breakpoint di arresto nop Fine del programma principale

2 ESEMPIO 1.2 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione Tre valori A,B e C supponiamo siano stati precedentemente memorizzati. Si desidera risolvere la seguente equazione: (A+B)-C List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Dato_A equ 0x10 Determina la posizione del dato A Dato_B equ 0x11 Determina la posizione del dato B Dato_C equ 0x12 Determina la posizione del dato C Risultato equ 0x13 Determina la posizione del risultato Vettore di Reset Salva il vettore di interrupt Inizio movf Dato_A,W Carica il 1 addo addwf Dato_B,W Somma il 2º addo movwf Risultato Memorizza risultato parziale movf Dato_C,W Carica il sottrao subwf Risultato,F Sottrai dal minuo e memorizza Stop nop Metti breakpoint di arresto nop Fine del programa principale

3 ESEMPIO 1.3 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione Sommare due numeri, A e B, di 16 bits ciascuno. List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Dato_A_L equ 0x10 Dato_A_H equ 0x11 Dato_B_L equ 0x12 Dato_B_H equ 0x13 Risultato_L equ 0x14 Risultato_H equ 0x15 Determina la posizione del dato A (basso) Determina la posizione del dato A (alto) Determina la posizione del dato B (basso) Determina la posizione del dato B (alto) Determina la posizione del risultato (basso) Determina la posizione del risultato (alto) Vettore di Reset Salva il vettore di interrupt Inizio movf Dato_A_L,W Carica meno peso del dato A addwf Dato_B_L,W Somma meno peso del dato B movwf Risultato_L Memorizza il risultato movf Dato_A_H,W Carica più peso del dato A btfsc STATUS,C C'è stato trasporto anteriore?? addlw 1 Si, aggiungi 1 all'accumulatore addwf Dato_B_H,W Somma più peso del dato B movwf Risultato_H Conserva il risultato Stop nop Metti breakpoint di arresto nop Fine del programma principale

4 ESEMPIO 1.4 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione Sottrarre due numeri, A - B, di 16 bits ciascuno. Anche se questo esercizio è simile al precedente, è da notare che, il contenuto dell' accumulatore agisce come sottrao e, l'operando, come minuo. Ugualmente è da notare che il flag CARRY va interpretato in modo opposto a come va fatto con la somma (a "0" c'è trasporto). List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Dato_A_L equ 0x10 Dato_A_H equ 0x11 Dato_B_L equ 0x12 Dato_B_H equ 0x13 Risultato_L equ 0x14 Risultato_H equ 0x15 Determina la posizione del dato A (basso) Determina la posizione del dato A (alto) Determina la posizione del dato B (basso) Determina la posizione del dato B (alto) Determina la posizione del risultato (basso) Determina la posizione del risultato (alto) Vettore di Reset Salva il vettore di interrupt Inizio movf Dato_B_L,W Carica meno peso del dato B (sottrao) subwf Dato_A_L,W Sottrai meno peso del dato A (minuo) movwf Risultato_L Memorizza il risultato movf Dato_B_H,W Carica più peso del dato B (sottrao) btfss STATUS,C C'è stato trasporto(carry = 0) anteriore?? addlw 1 Sì, aggiungi 1 all'accumulatore (sottrao) subwf Dato_A_H,W Sottrai più peso del dato A (minuo) movwf Risultato_H Conserva il risultato Stop nop Metti breakpoint d'arresto nop Fine del programma principale

5 ESEMPIO 1.5 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione Memorizzare il modello 33 in 15 posizioni contigue della memoria di dati, iniziando dall'indirizzo 0x10 List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Contatore equ 0x0c Contatore interno Prima equ 0x10 Posizione iniziale Vettore di Reset Salva il vettore di interrupt Inizio movlw.15 movwf Contatore Carica il contatore con 15 (in decimale) movlw Prima movwf FSR Orienta il puntatore con indirizzo iniziale movlw 0x33 Carica modello da memorizzare Loop movwf INDF Memorizza modello in pos. indicata da FSR incf FSR,F Aumenta il puntatore FSR decfsz Contatore,F Diminuisci contatore fino ad arrivare a 0 goto Loop Contatore non è 0 Stop nop Metti breakpoint d'arresto nop Fine del programma principale

6 ESEMPIO 1.6 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione Il programma paragona due numeri A e B. Se A=B, il risultato è 0. Se A > B, il risultato è A-B. Se A < B il resultato è A+B Si noti che, non avo istruzioni di paragone, questo è realizzato mediante sottrazioni. List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Dato_A equ 0x10 Variabile del dato A Dato_B equ 0x11 Variabile del dato B Risultato equ 0x12 Variabile per il risultato Vettore di Reset Salva il vettore di interrupt Inizio movf Dato_B,W Carica il dato B subwf Dato_A,W Sottrai/paragona a dato A btfsc STATUS,Z Sono uguali (Z=1)?? goto A_uguale_B Sì btfsc STATUS,C No. A maggiore di B (C=0)?? goto A_mayor_B Sì A_minor_B movf Dato_A,W No, A è minore di B addwf Dato_B,W Somma A più B movwf Risultato Conserva il risultato goto Stop A_mayor_B movwf Risultato goto Stop A_uguale_B clrf Risultato Azzera il risultato Stop nop Metti breakpoint d'arresto nop Fine del programma principale

7 ESEMPIO 1.7 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione Il programma realizza una temporizzazione di 0.5 secondi. Si presume una frequenza di lavoro del PIC di 4 MHz, per cui il TMR0 cambia ogni 1 us (4Tosc=1uS ). Il TMR0 viene caricato con (il suo complemento, 7) e si seleziona un prescaler di 8. La temporizzazione così ottenuta è di 1990 us. Se questa si ripete 250 volte, si ottiene una temporizzazione totale intorno ai uS List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Contatore equ 0x10 Variabile per il contatore Vettore di Reset Salva il vettore di interrupt Inizio bsf STATUS,RP0 Seleziona banco dati 1 movlw b' ' movwf OPTION_REG Configura prescaler di 8 assegnato al TMR0 bcf STATUS,RP0 Seleziona banco dati 0 movlw.250 movwf Contatore Attiva la variabile contatore Loop1 clrf INTCON Disconnetti flag del TMR0 e interrupt movlw.7 movwf TMR0 Carica il TMR0 con complemento di 250 Loop2 btfss INTCON,T0IF Fine del TMR0 (flag T0IF=1)?? goto Loop2 No, aspettare decfsz Contatore,F Sì. Ripetere tante volte quante ne indica il contatore goto Loop1 Stop nop Metti breakpoint di arresto nop Fine del programma principale

8 ESEMPIO 1.8 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione Questo esempio realizza il prodotto di due numeri di 8 bits generando un risultato di 16 bits. Il programma impiega lo stesso meccanismo di realizzazione di un prodotto su carta. Si noti che il programma viene eseguito sempre nello stesso intervallo di tempo, qualunque siano gli operandi. List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni cblock 0x10 Inizio di definizione di variabili Moltiplicando Moltiplicatore Risultato_H Risultato_L Estatus_Temp Contatore c Variabile per il moltiplicando Variabile per il moltiplicatore Parte alta del risultato Parte bassa del risultato Reg. di stato temporale Variabile con numero di volte per eseguire operazioni Fine delle definizioni Vettore di Reset Salva il vettore di interrupt Inizio Loop clrf Risultato_H clrf Risultato_L Metti a 0000 il risultato iniziale movlw 0x08 movwf Contatore Avvia il contatore con 8 bcf STATUS,C Cancella il carry movf Moltiplicando,W Carica il moltiplicando btfsc Moltiplicatore,0 E' 1 il bit di minor peso del moltiplicatore?? addwf Risultato_H,F Sì, si somma il moltiplicando rrf Risultato_H,F rrf Risultato_L,F Spostamento a destra del risultato Ruota a destra il moltiplicatore senza che si modifichi il flag Carry Ruota_sen_Carry movf STATUS,W movwf Estatus_Temp Salva provvisoriamente il carry rrf Moltiplicatore,F Sposta a destra il moltiplicatore movf Estatus_Temp,W movwf STATUS Recupera il carry originale decfsz goto Loop Contatore,F Ripeti il loop 8 volte Stop nop Metti breakpoint d'arresto nop Fine del programma principale

9 ESEMPIO 1.9 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione Converti il valore binario presente in posizione 0x10 in BCD. Il risultato va depositato nelle variabili Buffer_H e Buffer_L. List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Binario equ 0x10 Valore binario iniziale Buffer_H equ 0x11 Parte alta del risultato Buffer_L equ 0x12 Parte bassa del risultato Temp_1 equ 0x13 Registro temporale Vettore di Reset Salva il vettore di interrupt Inizio movf Binario,W Carica il valore binario iniziale clrf Buffer_L clrf Buffer_H Attiva registri di lavoro BIN_BCD_1 addlw 0xf6 Sottrai 10 mediante somma di complemento a 2. btfss STATUS,C C'è Carry? goto BIN_BCD_3 NO. movwf Temp_1 SI.Conservare nel registro temporale. incf Buffer_L,F Aumentare byte basso, conservarlo e inviare... movf Buffer_L,W..copia al ==> W... xorlw b' '..0ah xor W. btfss STATUS,Z Buffer_L è uguale a 10?? goto BIN_BCD_2 NO. clrf Buffer_L SI. Metti Buffer_L a 0 incf Buffer_H,F Incrementare Buffer_H BIN_BCD_2 movf Temp_1,W Recuperare il dato. goto BIN_BCD_1 Continuare l'operazione. BIN_BCD_3 addlw H'0A' TEMPO + 0Ah swapf Buffer_L,F <3:0> <==> <7:4> y ==> Buffer_L iorwf Buffer_L,F W OR Buffer_L ==> Buffer_L Stop nop Metti breakpoint d'arresto nop Fine del programma principale

10 ESEMPIO 1.10 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione Converti il valore binario presente in posizione 0x10, compreso tra 0 e 9, nel suo equivalente in codice GRAY Questo esempio cerca di abituare l'utente all'utilizzo di tabelle List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Bcd equ 0x10 Valore BCD iniziale Gray equ 0x11 Valore ottenuto in codice GRAY Vettore di Reset Salva il vettore di interrupt Tabel addwf PCL,F Calcola spostamento sulla tabella retlw b' ' Codice GRAY della cifra 0 retlw b' ' Codice GRAY della cifra 1 retlw b' ' Codice GRAY della cifra 2 retlw b' ' Codice GRAY della cifra 3 retlw b' ' Codice GRAY della cifra 4 retlw b' ' Codice GRAY della cifra 5 retlw b' ' Codice GRAY della cifra 6 retlw b' ' Codice GRAY della cifra 7 retlw b' ' Codice GRAY della cifra 8 retlw b' ' Codice GRAY della cifra 9 Inizio movf Bcd,W Carica il valore BCD originale call Tabel Converti in GRAY movwf Gray Conserva il risultato Stop nop Metti breakpoint di arresto nop Fine del programma principale

11 ESEMPIO 2.11 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer Il Display a 7 segmenti del MicroPIC Trainer Sul display a catodo comune connesso alla porta B, si vuole visualizzare lo stato logico "0" o "1" dell'interruttore RA0. Mediante l'interruttore RA1 si attiva o no il punto decimale. List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Vettore di Reset Salva il vettore di interrupt Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA Porta A si configura come entrata bcf STATUS,RP0 Seleziona banco 0 Loop clrwdt Aggiorna il WDT btfsc PORTA,0 Controlla RA0 goto RA0_es_1 E'livello "1" movlw b' ' movwf PORTB Visualizza la cifra 0 goto Test_RA1 RA0_es_1 movlw b' ' movwf PORTB Visualizza la cifra 1 Test_RA1 btfsc PORTA,1 Controlla RA1 goto RA1_es_1 E' a "1" bcf PORTB,7 Disconnetti punto decimale goto Loop RA1_es_1: bsf PORTB,7 Attiva punto decimale goto Loop Fine del programma principale

12 ESEMPIO 2.12 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer Il Display a 7 segmenti del MicroPIC Trainer. Decodificatore hex. a 7 segmenti. Mediante i quattro interruttori RA0-RA3 si introduce un valore esadecimale di 4 bits che deve essere visualizzato sul display del MicroPIC Trainer List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Vettore di Reset Salva il vettore di interrupt ********************************************************************************** Tabella: Questa procedura converte il codice binario presente nei 4 bits di minor peso del reg. W nel suo equivalente a 7 segmenti. Il codice a 7 segmenti ritorna anche nel reg. W Tabella: addwf PCL,F Spostamento sulla tabella retlw b' ' Cifra 0 retlw b' ' Cifra 1 retlw b' ' Cifra 2 retlw b' ' Cifra 3 retlw b' ' Cifra 4 retlw b' ' Cifra 5 retlw b' ' Cifra 6 retlw b' ' Cifra 7 retlw b' ' Cifra 8 retlw b' ' Cifra 9 retlw b' ' Cifra A retlw b' ' Cifra b retlw b' ' Cifra C retlw b' ' Cifra d retlw b' ' Cifra E retlw b' ' Cifra F Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA Porta A si configura come entrata bcf STATUS,RP0 Seleziona banco 0 Loop clrwdt Aggiornare il WDT movf PORTA,W andlw b' ' Leggi il codice di RA0-RA3 call Tabella Converti in 7 segmenti movwf PORTB Visualizza sul display goto Loop Fine del programma principale

13 ESEMPIO 2.13 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer Contatore UP/DOWN binario Sugli 8 leds di uscita connessi alla porta B verrà visualizzato, in binario, il numero di impulsi applicati dall'entrata RA0. RA1 determina se il conto è ascente (a "1") o discente List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Vettore di Reset Salva il vettore di interrupt ******************************************************************************** Delay_20_ms: Questa procedura di temporizzazione ha per oggetto di eliminare l'"effetto rimbalzo" delle periferiche elettromeccaniche. Realizza un delay di 20 ms. Se il PIC lavora a una frequenza di 4MHz, il TMR0 cambia ogni us. Se vogliamo tempori- zzare us (20 ms) con un prescaler di 128, il TMR0 dovrà contare 156 eventi (156 * 128). Il valore 156 equivale a 9c hex. e poiché il TMR0 è ascedente bisognerà caricare il suo complemento a 1 (63 hex.). Delay_20_ms: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0x63 Complemento hex. di 156 movwf TMR0 carica il TMR0 Delay_20_ms_1 clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0?? goto Delay_20_ms_1 Ancora no bcf INTCON,T0IF Adesso sì, rimettere il flag return Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA Porta A si configura come entrata movlw b' ' movwf OPTION_REG Prescaler di 128 per il TMR0 bcf STATUS,RP0 Seleziona banco 0 Loop clrwdt Aggiornare il WDT btfss PORTA,0 Aumento del segnale RA0? goto Loop No call Delay_20_ms Elimina rimbalzi Loop_2 clrwdt Aggiornare il WDT btfsc PORTA,0 Diminuzione di RA0 (impulsi)?? goto Loop_2 No call Delay_20_ms C'è stato impulso, eliminare rimbalzi btfss PORTA,1 RA1 = 1 goto Down No, conto discente Up incf PORTB,F Conto ascente

14 goto Loop Down decf PORTB,F Conto discente goto Loop Fine del programma principale

15 ESEMPIO 2.14 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer Contatore UP/DOWN decimale di una cifra Sul display a 7 segmenti connessi alla porta B verrà visualizzato il numero di impulsi applicati dall'entrata RA0. RA1 determina se il conto è ascente (a "1") o discente List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Contatore equ 0x0c Variabile del contatore Vettore di Reset Salva il vettore di interrupt ********************************************************************************** Tabella: Questa procedura converte il codice BCD presente nei 4 bits di minore peso del reg. W nel suo equivalente a 7 segmenti. Il codice a 7 segmenti ritorna anche nel reg. W Tabella: addwf PCL,F Spostamento sulla tabella retlw b' ' Cifra 0 retlw b' ' Cifra 1 retlw b' ' Cifra 2 retlw b' ' Cifra 3 retlw b' ' Cifra 4 retlw b' ' Cifra 5 retlw b' ' Cifra 6 retlw b' ' Cifra 7 retlw b' ' Cifra 8 retlw b' ' Cifra 9 ********************************************************************************* Delay_20_ms: Questa procedura di temporizzazione ha per scopo di eliminare l'"effetto rimbalzo" delle periferiche elettromeccaniche. Realizza un delay di 20 ms. Se il PIC lavora a una frequenza di 4MHz, il TMR0 cambia ogni us. Se desideriamo tempori- zzare us (20 ms) con un prescaler di 128, il TMR0 dovrà contare 156 eventi (156 * 128). >Il valore 156 equivale a 9c hex. e poiché il TMR0 è ascente bisognerà caricare il suo complemento a 1 (63 hex.). Delay_20_ms: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0x63 Complemento hex. di 156 movwf TMR0 carica il TMR0 Delay_20_ms_1 clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0?? goto Delay_20_ms_1 Ancora no bcf INTCON,T0IF Adesso sì, rimettere il flag return Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA Porta A si configura come entrata

16 movlw b' ' movwf OPTION_REG Prescaler di 128 per il TMR0 bcf STATUS,RP0 Seleziona banco 0 clrf Contatore Mettere a 0 del contatore Loop movf Contatore,W call Tabella Converti BCD in 7 segmenti movwf PORTB Visualizza il valore del contatore Wait_0 clrwdt Aggiornare il WDT btfss PORTA,0 Aumento del segnale RA0? goto Wait_0 No call Delay_20_ms Elimina rimbalzi Wait_1 clrwdt Aggiornare il WDT btfsc PORTA,0 Diminuzione di RA0 (impulso)?? goto Wait_1 No call Delay_20_ms C'è stato impulso, eliminare rimbalzi btfss PORTA,1 RA1 = 1 goto Down No, conto discente Up Down incf Contatore,F Aumenta contatore movlw.10 subwf Contatore,W btfss STATUS,Z E' maggiore di 9?? goto Loop No clrf Contatore Sì, mettere a 0 il contatore goto Loop decf Contatore,F Diminuisci il contatore movlw 0xff subwf Contatore,W btfss STATUS,Z E' minore di 0?? goto Loop No movlw 0x09 movwf Contatore Sì, mettere a 9 il contatore goto Loop Fine del programma principale

17 ESEMPIO 2.15 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer Generazione di onde quadrate di differenti frequenze variando il valore del TMR0 La linea di uscita RB0 cambierà stato a una frequenza determinata dal valore introdotto mediante i 3 interruttori RA0-RA2: RA2 RA1 RA0 Frequenza Periodo Semiperiodo KHz KHz 1000 us 500 us KHz 500 us 250 us KHz 333 us 166 us KHz 250 us 125 us KHz 200 us 100 us KHz 166 us 83 us KHz 143 us 71 us Nel trattamento di interrupt che provocherà l'overflow del TMR0, si può notare come vengono salvati il W e il registro di stato, per recuperarli posteriormente. E' ciò che si chiama "salvare il contesto" List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Valore equ 0x0c Variabile di frequenza W_Temp equ 0x0d W temporale Status_Temp equ 0x0e Registro di stato temporale org 0x04 goto Interrupt Vettore di Reset Vettore di interrupt ********************************************************************************* Tabella: questa procedura restituisce il valore da caricare nel TMR0 secondo la frequenza selez- ionata. Parto da una frequenza generale di 4 MHz, il TMR0 cambia ogni 1 us. Si seleziona un preescaler di 4. Il valore da caricare in TMR0 si ottiene divido il semiperiodo della frequenza desiderata con il prescaler. Al valore ottenuto si sottrae 2 per motivi di sincronismo interno del PIC, si converte in hex. e si comple- menta. Tabel.: addwf PCL,F Calcola spostamento della tabella retlw 0x00 0 KHz retlw 0x86 1 KHz retlw 0xc5 2 KHz retlw 0xda 3 KHz retlw 0xe4 4 KHz retlw 0xea 5 KHz retlw 0xee 6 KHz retlw 0xf1 7 KHz Interrupt movwf W_Temp swapf STATUS,W Salva il W

18 movwf Status_Temp Salva il registro di stato movf Valore,W movwf TMR0 Ricarica il TMR0 bcf INTCON,T0IF Disattiva il flag TMR0 movlw b' ' xorwf PORTB,F Fai oscillare RB0 swapf Status_Temp,W movwf STATUS Recupera il registro di stato swapf W_Temp,F swapf W_Temp,W Recupera il registro W retfie Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA Porta A si configura come entrata movlw b' ' movwf OPTION_REG Prescaler di 4 per il TMR0 bcf STATUS,RP0 Seleziona banco 0 movlw b' ' movwf INTCON Interrupt TMR0 abilitato Loop clrwdt Aggiornare il WDT movf PORTA,W andlw b' ' btfss STATUS,Z RA0-RA2 = 0?? goto Uscita_On No, uscita di frequenza bcf INTCON,GIE Sì, interrupt OFF, frequenza OFF goto Loop Uscita_On call Tabella Determina valore da caricare in TMR0 movwf Valor Carica la variabile bsf INTCON,GIE Interrupt ON goto Loop Fine del programma principale

19 ESEMPIO 2.16 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer Generazione di numeri aleatori Ogni volta che si applica un impulso attraverso RA0, si genera un numero binario aleatorio di 8 bits che verrà visualizzato sugli 8 leds connessi nella porta B, per 3 secondi. Tra le differenti tecniche, quella utilizzata per ottenere il numero, consiste nel catturare il valore del TMR0 in un determinato momento. List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Numero equ 0x0c Numero aleatorio Delay_Cont equ 0x0d Contatore di intervalli Vettore di Reset Salva vettore di interrupt ********************************************************************************* Delay_20_ms: Questa procedura di temporizzazione ha per scopo di eliminare l'"effetto rimbalzo" delle periferiche elettromeccaniche. Realizza un delay di 20 ms. Se il PIC lavora a una frequenza di 4MHz, il TMR0 cambia ogni us. Se vogliamo tempori- zzare us (20 ms) con un prescaler di 256, il TMR0 dovrà contare 78 eventi (78 * 256). Il valore 78 equivale a 0x4e hex. e poiché il TMR0 è ascente bisognerà caricare il suo complemento a 1 (0xb1 hex.). Delay_20_ms: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0xb1 Complemento hex. de 78 movwf TMR0 carica il TMR0 Delay_20_ms_1 clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0?? goto Delay_20_ms_1 Ancora no return ********************************************************************************* Delay_var: Questa procedura a scopo generico realizza una temporizzazione variabile tra 50 ms e 12.8". Si impiega un prescaler di 256 e il TMR0 viene caricato con 195. La velocità di lavoro è di 4Mhz e quindi il TMR0 incrementa ogni us. In questo modo, il TMR0 deve contare 195 eventi che, con un preescaler di 128 fa un intervallo totale di us/50 ms (195 * 256). Il valore 195 va espresso in Hex. (c3) e poiché il TMR0 è ascente bisognerà caricare il suo complemento (3C hex.) Tale intervallo di 50 ms si ripete tante volte quante ne indica la variabile "Delay_cont", è per questo che il delay minimo è di 50 ms ("Delay_cont=1) e il massimo di 12.8" (Delay_cont=255). Delay_var: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0x3c Complemento hex. de 195 movwf TMR0 carica il TMR0 Intervallo clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0??

20 goto Intervallo Ancora no decfsz Delay_Cont,F Diminusci contatore di intervalli goto Delay_var Ripeti l'intervallo di 50 ms return Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA Porta A si configura come entrata movlw b' ' movwf OPTION_REG Prescaler di 256 per il TMR0 bcf STATUS,RP0 Seleziona banco 0 Loop clrwdt Aggiornare il WDT btfss PORTA,0 Attivato RA0?? goto Loop Ancora No movf TMR0,W Adesso sì. movwf Numero Cattura il valore del TMR0 (Nº aleatorio) call Delay_20_ms Elimina rimbalzi RA0_1 clrwdt Aggiorna il WDT btfsc PORTA,0 Disattivato RA0?? goto RA0_1 Ancora no movf Numero,W E' stato prodotto un impulso in RA0, si legge movwf PORTB il valore catturato del TMR0 (Nº aleatorio) e si toglie con i leds della PORTA B movlw d'60' movwf Delay_Cont Introduci variabile di temporizzazione call Delay_var Temporizza 3 secondi clrf PORTB Disconetti le uscite goto Loop Fine del programma principale

21 ESEMPIO 2.17 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer Generazione di numeri aleatori. Il dado elettronico Si tratta di generare un numero aleatorio tra 1 e 6. Quando RA0 è a "1", sul display a 7 segmenti connesso alla porta B, si visualizzano in forma sequeziale i numeri dall'1 al 6, con intervalli di 0.05". Quando RA0 passa a livello "0", si visualizza il numero aleatorio ottenuto in un tempo di 3". Poi il display si spegne e la sequenza si ripete. List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Numero equ 0x0c Numero aleatorio Delay_Cont equ 0x0d Contatore di intervalli Temporale equ 0x0e Variabile temporale Vettore di Reset Salva vettore di interrupt ********************************************************************************** Tabella: Questa procedura converte il codice binario presente nei 4 bits di minor peso del reg. W nel suo equivalente a 7 segmenti. Il codice a 7 segmenti ritorna anche nel reg. W Tabella: addwf PCL,F Spostamento sulla tabella retlw b' ' Cifra 0 retlw b' ' Cifra 1 retlw b' ' Cifra 2 retlw b' ' Cifra 3 retlw b' ' Cifra 4 retlw b' ' Cifra 5 retlw b' ' Cifra 6 ********************************************************************************* Delay_20_ms: Questa procedura di temporizzazione ha per scopo di eliminare l'"effetto rimbalzo" delle periferiche elettromeccaniche. Realizza un delay di 20 ms. Se il PIC lavora a una frequenza di 4MHz, il TMR0 cambia ogni us. Se vogliamo tempori- zzare us (20 ms) con un prescaler di 256, i TMR0 dovrà contare 78 eventi (78 * 256). Il valore 78 equivale a 0x4e hex. e poiché il TMR0 è ascente bisognerà caricare il suo complemento a 1 (0xb1 hex.). Delay_20_ms: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0xb1 Complemento hex. de 78 movwf TMR0 carica il TMR0 Delay_20_ms_1 clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0?? goto Delay_20_ms_1 Ancora no return ********************************************************************************* Delay_var: Questa pocedura a scopo generale realizza una temporizzazione variabile tra 50 ms e 12.8". Si impiega un prescaler di 256 e il TMR0 viene caricato con 195. La velocità di lavoro è di 4Mhz e quindi il TMR0 aumenta ogni us. In

22 questo modo, il TMR0 deve contare 195 eventi che, con un preescaler di 128 fa un intervallo totale di us/50 ms (195 * 256). Il valore 195 deve essere espresso in Hex. (c3) e poichè il TMR0 è ascente bisognerà caricare il suo complemento (3C hex.) Tale intervallo di 50 ms si ripete tante volte quante ne indica la variabile "Delay_cont", è per questo che il delay minimo è di 50 ms ("Delay_cont=1) e il massimo di 12.8" (Delay_cont=255). Delay_var: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0x3c Complemento hex. de 195 movwf TMR0 carica il TMR0 Intervallo clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0?? goto Intervallo Ancora no decfsz Delay_Cont,F Diminuisci contatore di intervalli goto Delay_var Ripeti l'intervallo di 50 ms return Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA Porta A si configura come entrata movlw b' ' movwf OPTION_REG Prescaler di 256 per il TMR0 bcf STATUS,RP0 Seleziona banco 0 Loop clrwdt Aggiornare il WDT btfss PORTA,0 Attivato RA0?? goto Loop Ancora No movf TMR0,W Adesso sì. movwf Numero Cattura il valore del TMR0 (Nº aleatorio) call Delay_20_ms Elimina rimbalzi Il numero aleatorio viene, mediante sottrazioni consecutive, diviso in 6. In questo modo l'ultimo resto sarà tra 0 e 5 che verrà incrementato di una unità affinché si abbia defini- tivamente un numero tra 1 e 6 Dividi: movlw d'6' subwf Numero,W Sottrai 6 al numero aleatorio movwf Numero conservalo sublw d'5' btfss STATUS,C Guarda se è minore de 5 goto Dividi No incf Numero,F Il numero è tra 1 e 6 Questa procedura di istruzioni ha per scopo di mostrare sul display i numeri dall'1 al 6 a intervalli di 0.05" per dare una sensazione di movimento del dado. Tale movimento viene mantenuto mentre RA0 é a "1". Andando a "0" si presenta il numero aleatorio precedentemente catturato dal TMR0 Dado: movlw d'6' movwf Temporale Avvia il contatore del dado RA0_1 clrwdt Aggiornamento del WDT btfss PORTA,0 Guarda se RA0 è a 1 goto Uscita No, visualizza l'aleatorio movf Temporale,W Numero da visualizzare call Tabella Conversione in BCD movwf PORTB Visualizza sul display movlw d'1'

23 movwf Delay_Cont Variabile di temporizzazione call Delay_var temporizza 0.05" decfsz Temporale,F Numero seguente goto RA0_1 goto Dado call Delay_20_ms Elimina rimbalzi Uscita: movf Numero,W Ripri l'aleatorio call Tabella Lo converte in 7 segmenti movwf PORTB Uscita sul Display movlw d'60' movwf Delay_Cont avvia variabile di temporizzazione call Delay_var Temporizza 3" clrf PORTB Disconnetti l'uscita goto Loop Fine del programma principale

24 ESEMPIO 2.18 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer Il TMR0 come contatore di eventi esterni Un sensore optoelettronico connesso a RA4 genera un impulso ogni volta che un oggetto si iterpone tra l'emissore e il recettore di luce. Il TMR0 si incarica di contarli a seconda del valore del prescaler. Tale valore si aggiusta mediante 3 interruttori (RA0-RA2) connessi alla Porta A, essoci così 8 pre-divisioni: I2 I1 I0 Divisione : : : : : : : :256 Il conteggio è visualizzato in binario sui leds collegato alla Porta B e deve essere moltiplicato per il valore del prescaler selezionato, per determinare il numero totale di impulsi. Il contatore si riassetta metto RA3 a "1". Va tenuto conto del "effetto rimbalzo" che si produce nell'interruttore RA4 del MicroPIC Trainer. List p=16f84 Tipo di processore include "P16F84.INC" Definizioni de registri interni Vettore di Reset Salva vettore di interrupt Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA Porta A si configura come entrata movlw b' ' movwf OPTION_REG TMR0 contatore sensibile al discente di RA4 bcf STATUS,RP0 Seleziona banco 0 Loop clrf TMR0 Mettere a 0 il contatore Loop1: clrwdt Aggiorna il WDT btfsc PORTA,3 Controlla se I3 è attivo (RESET) goto Loop Sì Conto arrestato e settaggio a 0 movf PORTA,W No, leggere I2-I0 per formare il nuovo valore andlw b' ' del prescaler bsf STATUS,RP0 Seleziona pagina 1 iorwf OPTION_REG,F Aggiorna il nuovo valore del prescaler bcf STATUS,RP0 Seleziona pagina 0 movf TMR0,W Leggi il valore del contatore movwf PORTB Uscita ai leds goto Loop1 Fine del programma principale

25

26 ESEMPIO 2.19 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer La memoria EEPROM di dati.la macchina "SUO TURNO" Si tratta di simulare il funzionamento delle macchine tipo "SUO TURNO" comuni in molteplici attività. Sul display verrà visualizzato il numero del turno attuale. Questo aumenta a ogni impulso applicato da RA0. Nella memoria EEPROM del PIC16F84 si immagazzina l'ultimo numero visualizzato, in modo che, davanti a una mancanza di alimentazione (p.e.), si ripra il conto dall' ultimo numero. Se si inizia utilizzando il sistema per la prima volta, si visualizza lo 0 List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Contatore equ 0x0c Variabile per il contatore Vettore di Reset Salva vettore di interrupt **************************************************************************************** EE_Write: Registra un byte nella EEPROM di dati. L'indirizzo sarà quello contenuto in EEADR e il dato si suppone sia stato precedentemente messo in EEDATA EE_Write bsf STATUS,RP0 Seleziona banco 1 bsf EECON1,WREN Permesso di scrittura movlw b' ' movwf EECON2 movlw b' ' movwf EECON2 Sequenza stabilita da Microchip bsf EECON1,WR Ordine di scrittura bcf EECON1,WREN Disconnetti permesso di scrittura Wait btfss EECON1,EEIF Controllare flag di fine di scrittura goto Wait bcf EECON1,EEIF Rimettere flag di fine di scrittura bcf STATUS,RP0 Selezione banco 0 return ************************************************************************************** EE_Read: Leggere un byte dalla EEPROM. Il registro EEADR deve essere caricato con l'indiriz- zo da leggere. In EEDATA apparirà il dato letto. EE_Read bsf STATUS,RP0 Selezione di banco 1 bsf EECON1,RD Ordine di lettura bcf STATUS,RP0 Selezione di banco 0 return ********************************************************************************** Tabella: Questa procedura converte il codice BCD presente nei 4 bits di minor peso del reg. W nel suo equivalente a 7 segmenti. Il codice a 7 segmenti ritorna anche nel reg. W

27 Tabella: addwf PCL,F Spostamento sulla tabella retlw b' ' Cifra 0 retlw b' ' Cifra 1 retlw b' ' Cifra 2 retlw b' ' Cifra 3 retlw b' ' Cifra 4 retlw b' ' Cifra 5 retlw b' ' Cifra 6 retlw b' ' Cifra 7 retlw b' ' Cifra 8 retlw b' ' Cifra 9 ********************************************************************************* Delay_20_ms: Questa procedura di temporizzazione ha per scopo di eliminare l'"effetto rimbalzo" delle periferiche elettromeccaniche. Realizza un delay di 20 ms. Se il PIC lavora a una frequenza di 4MHz, il TMR0 cambia ogni us. Se vogliamo tempori- zzare us (20 ms) con un prescaler di 128, il TMR0 dovrà contare 156 eventi (156 * 128). Il valore 156 equivale a 9c hex. e poiché il TMR0 è ascente bisognerà caricare il suo complemento a 1 (63 hex.). Delay_20_ms: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0x63 Complemento hex. de 156 movwf TMR0 carica il TMR0 Delay_20_ms_1 clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0?? goto Delay_20_ms_1 Ancora no bcf INTCON,T0IF Adesso sì, rimettere il flag return Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA Porta A si configura come entrata movlw b' ' movwf OPTION_REG Prescaler di 128 per il TMR0 bcf STATUS,RP0 Seleziona banco 0 Ini_0 Ini_1 clrf EEADR Seleziona indirizzo 00 di EEPROM call EE_Read Leggi byte dalla EEPROM movlw 0x09 subwf EEDATA,W btfsc STATUS,C Maggiore di 9?? goto Ini_0 Sì, mettere a 0 il contatore goto Ini_1 No clrf Contatore Mettere a 0 il contatore goto Loop movf EEDATA,W movwf Contatore Avviare contatore Loop movf Contatore,W call Tabella movwf PORTB Converti contatore a 7 segmenti Visualizza sul display Wait_0 clrwdt Aggiorna il WDT btfss PORTA,0 RA0 è a "1"?? goto Wait_0 No, aspettare call Delay_20_ms Eliminare rimbalzi Wait_1 clrwdt Aggiornare il WDT

28 btfsc PORTA,0 RA0 è a "0"?? goto Wait_1 No, aspettare call Delay_20_ms Eliminare rimbalzi. C'è stata un impulso incf Contatore,F Aumenta contatore movlw.10 subwf Contatore,W btfsc STATUS,Z Contatore maggiore di 9?? clrf Contatore Sì, ritorno a 00 movf Contatore,W movwf EEDATA call EE_Write Registra il nuovo valore del contatore nella EEPROM goto Loop Fine del programma principale

29 ESEMPIO 2.20 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer L'uso dello schermo LCD Questo esempio vuole introdurci all'utilizzo dello schermo LCD, per visualizzare differenti messaggi (p.e. Ciao). Va ricordato che le linee RA0-RA2 agiscono ora come uscita di segnali di controllo verso l'lcd. Esso connesse ai propri interruttori nel MicroPIC Trainer, questi devono essere permanentemente a livello logico "1". List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Lcd_var equ 0x0c Variabili (2) delle procedure di utilizzo dell'lcd Vettore di Reset Salva vettore di interrupt include "LCD_Cxx.inc" Include le procedure di utilizzo dell'lcd Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA RA0-RA2 uscite, RA3-RA4 entrate bcf STATUS,RP0 Seleziona banco 0 call LCD_INI movlw b' ' call LCD_REG Sequenza di inizio dell'lcd Invia istruzione: LCD ON, Cursore ON e blink ON movlw 'C' call LCD_DATO Visualizza C movlw 'i' call LCD_DATO Visualizza i movlw 'a' call LCD_DATO Visualizza a movlw 'o' call LCD_DATO Visualizza o movlw ' ' call LCD_DATO Visualizza bianco Loop sleep Messa in Standby goto Loop Ritorno in standby Fine del programma principale

30 ESEMPIO 2.21 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer L'uso dello schermo LCD Questo esempio vuole introdurci all'utilizzo dello schermo LCD, per visualizzare differenti messaggi. Va ricordato che le linee RA0-RA2 agiscono ora come uscita di segnali di controllo verso l'lcd. Esso connesse ai propri interruttori nel MicroPIC Trainer, questi devono essere permanentemente a livello logico "1". List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Lcd_var equ 0x0c Variabili (2) delle procedure d'uso dell'lcd Delay_Cont equ 0x0e Variabile per la temporizzazione Temporal_1 equ 0x0f Variabile temporale Temporal_2 equ 0x10 Variabile temporale Vettore di Reset Salva vettore di interrupt include "LCD_Cxx.inc" Include le procedure d'uso dell'lcd **************************************************************************************** ** A seconda del valore contenuto nel registro W, si restituisce il carattere da visualizzare Tabella_Messaggi movwf PCL Calcola lo spostamento sulla tabella Mess_0 equ $ Mess_0 punta al primo carattere del messaggio 0 retlw 'C' retlw 'i' retlw 'a' retlw 'o' retlw 0x00 Ultimo carattere del messaggio 0 Mess_1 equ $ Mess_1 punta al primo carattere del messaggio 1 retlw 'H' retlw 'e' retlw 'l' retlw 'l' retlw 'o' retlw 0x00 Ultimo carattere del messaggio 1 ********************************************************************************* Delay_var: Questa procedura a scopo generale realizza una temporizzazione variabile tra 50 ms e 12.8". Si impiega un prescaler di 256 e il TMR0 viene caricato con 195. La velocità di lavoro è di 4Mhz e quindi il TMR0 aumenta ogni us. In questo modo, il TMR0 deve contare 195 eventi che, con un prescaler di 256 fa un intervallo totale di us/50 ms (195 * 256). Il valore 195 deve essere espresso in Hex. (c3) e poiché il TMR0 è ascente bisognerà caricare il suo complemento (3C hex.)

31 Tale intervallo di 50 ms si ripete tante volte quante ne indica la variabile "Delay_cont", è per questo che il delay minimo è di 50 ms ("Delay_cont=1) e il massimo di 12.8" (Delay_cont=255). Delay_var: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0x3c Complemento hex. di 195 movwf TMR0 Carica il TMR0 Intervallo clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0?? goto Intervallo Ancora no decfsz Delay_Cont,F Diminuisci contatore di intervalli goto Delay_var Ripeti l'intervallo di 50 ms return ************************************************************************************* Messaggio: Questa procedura visualizza sull'lcd il messaggio il cui inizio è indicato nell'accumulatore. La fine di un messaggio si determina mediante il codice 0x00 Messagg movwf Temporal_1 Salva posizione della tabella Messagg_1 movf Temporal_1,W Recupera posizione della tabella call Tabella_Messaggi Cerca carattere di uscita movwf Temporal_2 Mantieni il carattere movf Temporal_2,F btfss STATUS,Z Guarda se è l'ultimo goto No_è_ultimo return No_è_ultimo call LCD_DATO Visualizza sull'lcd incf Temporal_1,F Carattere succesivo goto Messagg_1 ********************************************************************************** Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come usicta movlw b' ' movwf TRISA RA0-RA2 uscite, RA3-RA4 entrate movlw b' ' movwf OPTION_REG Prescaler di 256 per il TMR0 bcf STATUS,RP0 Seleziona banco 0 call LCD_INI movlw b' ' call LCD_REG Sequenza di inizio dell'lcd Invia istruzione: LCD ON, Cursore OFF e blink OFF Loop posizione) posizione) movlw b' ' call LCD_REG Cancella LCD e Home (collocare cursore in 1ª movlw Mess_0 call Messagg Visualizza il messaggio 0 movlw.20 movwf Delay_Cont call Delay_var Temporizza 2 secondi movlw b' ' call LCD_REG Cancella LCD e Home (collocare cursore in 1ª movlw Mess_1 call Messagg Visualizza il messaggio 1 movlw.20 movwf Delay_Cont call Delay_var Temporizza 2 secondi goto Loop

32 Fine del programma principale

33 ESEMPIO 2.22 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer L'uso dello schermo LCD, ancora più messaggi. Questo esempio vuole introdurci all'utilizzo dello schermo LCD, per visualizzare differenti messaggi. Va ricordato che le linee RA0-RA2 agiscono ora come uscita di segnali di controllo verso l'lcd. Esso connesse con i propri interruttori nel MicroPIC Trainer, questi devono essere permanentemente a livello logico "1". List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Lcd_var equ 0x0c Variabili (2) delle procedure di utilizzo dell'lcd Delay_Cont equ 0x0e Variabile per la temporizzazione Temporal_1 equ 0x0f Variabile temporale Temporal_2 equ 0x10 Variabile temporale Vettore di Reset Salva vettore di interrupt include "LCD_Cxx.inc" Include le procedure di utilizzo dell'lcd **************************************************************************************** ** Secondo il valore contenuto nel registro W, si restituisce il carattere da visualizzare Tabel_Messaggi movwf PCL Calcola lo spostamento sulla tabella *********************************************************************************** La direttiva dt genera tante istruzioni retlw quanti bytes o caratteri contiene Mess_0 equ $ Mess_0 punta al primo carattere del messaggio 0 dt "Microsystems",0x00 Mess_1 equ $ Mess_1 punta al primo carattere del messaggio 1 dt "Engineering",0x00 Mess_2 equ $ Mess_2 punta al primo carattere del messaggio 2 dt "Gral. Concha 39",0x00 Mess_3 equ $ Mess_3 punta al primo carattere del messaggio 3 dt "48012 Bilbao",0x00 ********************************************************************************* Delay_var: Questa procedura di scopo generale realizza una temporizzazione variabile tra 50 ms e 12.8". Si impiega un prescaler di 256 e il TMR0 viene caricato con 195. La velocità di lavoro è di 4Mhz e quindi il TMR0 aummenta ogni us. In questo modo, il TMR0 deve contare 195 eventi che, con un prescaler di 256 fa un intervallo totale di us/50 ms (195 * 256). Il valore 195 deve essere espresso in Hex. (c3) e poiché il TMR0 è ascente bisognerà caricare il suo complemento (3C hex.) Tale intervallo di 50 ms si ripete tante volte quante ne indica la variabile "Delay_cont", è per questo che il delay minimo è di 0 ms ("Delay_cont=1) e il massimo di 12.8"

34 (Delay_cont=255). Delay_var: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0x3c Complemento hex. di 195 movwf TMR0 carica il TMR0 Intervallo clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0?? goto Intervallo Ancora no decfsz Delay_Cont,F Diminuisci contatore di intervalli goto Delay_var Ripeti l'intervallo di 50 ms return ************************************************************************************* Messaggio: Questa procedura visualizza sull'lcd il messaggio il cui inizio è indicato nell'accumulatore. La fine di un messaggio si determina mediante il codice 0x00 Messagg movwf Temporal_1 Salva posizione della tabella Messagg_1 movf Temporal_1,W Recupera posizione della tabella call Tabel_Messaggi Cerca carattere di uscita movwf Temporal_2 Mantieni il carattere movf Temporal_2,F btfss STATUS,Z Guarda se è l'ultimo goto No_è_ultimo return No_è_ultimo call LCD_DATO Visualizza sull'lcd incf Temporal_1,F Carattere successivo goto Messagg_1 ********************************************************************************** Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA RA0-RA2 uscite, RA3-RA4 entrate movlw b' ' movwf OPTION_REG Prescaler di 256 per il TMR0 bcf STATUS,RP0 Seleziona banco 0 call LCD_INI movlw b' ' call LCD_REG Sequenza di inizio dell'lcd Invia istruzione: LCD ON, Cursore OFF e blink OFF Loop posizione) posizione) movlw b' ' call LCD_REG Cancella LCD e Home (collocare cursore in 1ª movlw Mess_0 call Messagg Visualizza il messaggio 0 movlw b' ' call LCD_REG Colloca cursore in 2ª fila dell'lcd movlw Mess_1 call Messagg Visualizza messaggio 1 movlw.40 movwf Delay_Cont call Delay_var Temporizza 4 secondi movlw b' ' call LCD_REG Cancella LCD e Home (collocare cursore in 1ª movlw Mess_2 call Messagg Visualizza il messaggio 2 movlw b' ' call LCD_REG Colloca cursore in 2ª fila dell'lcd movlw Mess_3

35 call Messagg Visualizza il messaggio 3 movlw.40 movwf Delay_Cont call Delay_var Temporizza 4 secondi goto Loop Fine del programma principale

36 ESEMPIO 2.23 Autore: Mikel Etxebarria (c) Microsystems Engineering (Bilbao) Esempio per simulazione e/o MicroPIC Trainer L'uso dello schermo LCD. Un semplice generatore di messaggi. Questo esempio vuole realizzare un generatore di messaggi per l'lcd. Con RA4 a "1", il sistema è nel modo di programmazione. In questo modo il messaggio è registrato nella EEPROM di dati. Con RA4 a "0" entriamo nel modo di riproduzione. Il messaggio registrato nella EEPROM viene visualizzato sull'lcd. Quando l'interruttore RA3 è a livello "1", nella posizione attuale del cursore appaio- no sequenzialmente i distinti caratteri disponibili. Mettolo a "0" si sele- ziona l'attuale e si registra nella EEPROM. Ritornando di nuovo a "1" si seleziona il se- guente carattere. Va ricordato che le linee RA0-RA2 ora agiscono come uscita di segnali di controllo verso l'lcd. Esso connesse ai propri interruttori nel MicroPIC Trainer, questi devono essere permanentemente a livello logico "1". List p=16f84 Tipo di processore include "P16F84.INC" Definizioni di registri interni Lcd_var equ 0x0c Variabili (2) delle procedure d'uso dell'lcd Delay_Cont equ 0x0e Variabile per la temporizzazione Temporale_1 equ 0x0f Variabile temporale Temporale_2 equ 0x10 Variabile temporale Cur_Pos equ 0x11 Posizione del cursore Vettore di Reset Salva vettore di interrupt include "LCD_Cxx.inc" Include le procedure d'uso dell'lcd ********************************************************************************* Delay_20_ms: Questa procedura di temporizzazione ha per scopo di eliminare l'"effetto rimbalzo" delle periferiche elettromeccaniche. Realizza un delay di 20 ms. Se il PIC lavora a una frequenza di 4MHz, il TMR0 cambia ogni us. Se vogliamo temporiz- zare us (20 ms) con un prescaler di 128, il TMR0 dovrà contare 156 eventi (156 * 128). Il valore 156 equivale a 9c hex. e poiché il TMR0 è ascedente bisognerà caricare il suo complemento a 1 (63 hex.). Delay_20_ms: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0x63 Complemento hex. di 156 movwf TMR0 carica il TMR0 Delay_20_ms_1 clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0?? goto Delay_20_ms_1 Ancora no bcf INTCON,T0IF Adesso sì, rimettere il flag return ********************************************************************************* Delay_var: Questa procedura a scopo generico realizza una temporizzazione variabile tra 50 ms e 12.8". Si impiega un prescaler di 256 e il TMR0 viene caricato con 195. La velocità di lavoro è di 4Mhz e quindi il TMR0 aumenta ogni us. In questo modo, il TMR0 deve contare 195 eventi che, con un prescaler di 256 fa un

37 intervallo totale di us/50 ms (195 * 256). Il valore 195 deve essere espresso in Hex. (c3) e poiché il TMR0 è ascente bisognerà caricare il suo complemento (3C hex.) Tale intervallo di 50 ms si ripete tante volte quante ne indica la variabile "Delay_cont", è per questo che il delay minimo è di 50 ms ("Delay_cont=1) e il massimo di 12.8" (Delay_cont=255). Delay_var: bcf INTCON,T0IF Disconnetti il flag di overflow movlw 0x3c Complemento hex. di 195 movwf TMR0 carica il TMR0 Intervallo clrwdt Aggiornare il WDT btfss INTCON,T0IF Overflow del TMR0?? goto Intervallo Ancora no decfsz Delay_Cont,F Diminuisci contatore di intervalli goto Delay_var Ripeti l'intervallo di 50 ms return **************************************************************************************** EE_Write: Registra un byte nella EEPROM di dati. L'indirizzo sarà quello contenuto in EEADR e il dato si suppone sia stato precedentemente messo in EEDATA EE_Write bsf STATUS,RP0 Seleziona banco 1 bsf EECON1,WREN Permesso di scrittura movlw b' ' movwf EECON2 movlw b' ' movwf EECON2 Sequenza stabilita da Microchip bsf EECON1,WR Ordine di scrittura bcf EECON1,WREN Disconnetti permesso di scrittura Wait btfss EECON1,EEIF Testare flag di fine scrittura goto Wait bcf EECON1,EEIF Rimettere flag di fine scrittura bcf STATUS,RP0 Seleziona banco 0 return ************************************************************************************** EE_Read: Leggere un byte della EEPROM. Si suppone che il registro EEADR sia caricato con l'indiriz- zo da leggere. In EEDATA apparirà il dato letto. EE_Read bsf STATUS,RP0 Selezione di banco 1 bsf EECON1,RD Ordine di lettura bcf STATUS,RP0 Selezione di banco 0 return ********************************************************************************** Inizio clrf PORTB Cancella i latch di uscita bsf STATUS,RP0 Seleziona banco 1 clrf TRISB Porta B si configura come uscita movlw b' ' movwf TRISA RA0-RA2 uscite, RA3-RA4 entrate movlw b' ' movwf OPTION_REG Prescaler di 256 per il TMR0 bcf STATUS,RP0 Seleziona banco 0 movlw 0x80 movwf Cur_Pos Posizione iniziale del cursore call LCD_INI Sequenza di inizio dell'lcd movlw b' ' call LCD_REG Cancella LCD e Home movlw b' '

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

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

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

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

Dettagli

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

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

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

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

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

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

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

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

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

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

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

CORSO di AUTOMAZIONE INDUSTRIALE

CORSO di AUTOMAZIONE INDUSTRIALE CORSO di AUTOMAZIONE INDUSTRIALE (cod. 8469-21029) APPELLO del 22 Giugno 2011 Prof. Andrea Cataldo Soluzioni Esercizio 1 (Domande generali) 1.a) Controllo Logico Dire se il seguente programma SFC è sintatticamente

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

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

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

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

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

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

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

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

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

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S La programmazione dei PIC.

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S La programmazione dei PIC. Corso introduttivo sui microcontrollori A. S. 2007 2008 La programmazione dei PIC Nicola Amoroso namoroso@mrscuole.net NA L3 1 Il software per il PIC Come per qualsiasi sistema a microprocessore, anche

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

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

PIC Esempi - LED. Per i primi esempi viene utilizzato soltanto un LED sulla porta B (PortB), successivamente si utilizzano più LED.

PIC Esempi - LED. Per i primi esempi viene utilizzato soltanto un LED sulla porta B (PortB), successivamente si utilizzano più LED. PIC Esempi - LED Per i primi esempi viene utilizzato soltanto un LED sulla porta B (PortB), successivamente si utilizzano più LED. 1.1 Questo semplice programma esegue uno switch ripetutamente su tutti

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

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

Applicazioni dei microcontrollori PIC

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

Dettagli

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

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

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

Controllo di un asse

Controllo di un asse ITIS M. PLANCK ( LANCENIGO DI VILLORBA TV) CORSO SERALE ( Classe 5 /STE ) Area di progetto anno scolastico 2006/2007 Allievo: Crema Claudio Tutor : Prof. Italo Zaniol Controllo di un asse Indice: Descrizione

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

APPUNTI DI ASM PER PIC

APPUNTI DI ASM PER PIC APPUNTI DI ASM PER PIC Prefazione: questi sono gli appunti di un profano che ha iniziato a studiarsi l asm per pic senza avere nessuno o quasi conoscenza pregressa, mi scuso pertanto di eventuali imprecisioni

Dettagli

4. Operazioni aritmetiche con i numeri binari

4. Operazioni aritmetiche con i numeri binari I Numeri Binari 4. Operazioni aritmetiche con i numeri binari Contare con i numeri binari Prima di vedere quali operazioni possiamo effettuare con i numeri binari, iniziamo ad imparare a contare in binario:

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

ITIS M. PLANCK ( LANCENIGO DI VILLORBA TV)

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

Dettagli

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

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

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, 7155 2 = 1, 431 0, 431 2 = 0, 862 0, 896 2 = 1, 792 0, 724 2 = 1, 448 0, 448 2 = 0, 896

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, 7155 2 = 1, 431 0, 431 2 = 0, 862 0, 896 2 = 1, 792 0, 724 2 = 1, 448 0, 448 2 = 0, 896 2 Esercizio 2.2 La rappresentazione esadecimale prevede 16 configurazioni corrispondenti a 4 bit. Il contenuto di una parola di 16 bit può essere rappresentato direttamente con 4 digit esadecimali, sostituendo

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

GESTIONE DEI TEMPI CON IL TIMER1 DEL PIC16F876

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

Dettagli

Lezione 3. Sommario. Le operazioni aritmetiche binarie. L aritmetica binaria. La somma La sottrazione La moltiplicazione

Lezione 3. Sommario. Le operazioni aritmetiche binarie. L aritmetica binaria. La somma La sottrazione La moltiplicazione Lezione 3 Le operazioni aritmetiche binarie Sommario L aritmetica binaria La somma La sottrazione La moltiplicazione 1 Definizione Si indica con il termine bit più significativo il bit più a sinistra,

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

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno Parte II Indice Operazioni aritmetiche tra valori rappresentati in binario puro somma sottrazione Rappresentazione di numeri con segno modulo e segno complemento a 2 esercizi Operazioni aritmetiche tra

Dettagli

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE La base del sistema decimale è 10 I simboli del sistema decimale sono: 0 1 2 3 4 5 6 7 8 9 Il sistema di numerazione decimale è un sistema posizionale. L aggettivo

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

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Misure di frequenza e di tempo

Misure di frequenza e di tempo Misure di frequenza e di tempo - 1 Misure di frequenza e di tempo 1 - Contatori universali Schemi e circuiti di riferimento Per la misura di frequenza e di intervalli di tempo vengono diffusamente impiegati

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

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

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

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

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

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

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

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

Dettagli

BARRIERA DI MISURA METRON GESTIONE LINEA SERIALE RS-485 www.reer.it

BARRIERA DI MISURA METRON GESTIONE LINEA SERIALE RS-485 www.reer.it BARRIERA DI MISURA METRON GESTIONE LINEA SERIALE RS-485 www.reer.it 2 8540641 Rev.1-11 Aprile 2008 BARRIERA DI MISURA METRON GESTIONE LINEA SERIALE RS-485 SOMMARIO Gestione linea seriale...5 Modalità linea

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

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

Maurizio Del Corso Tiziano Galizia. Conoscere ed usare. Progettare con i microcontrollori PIC in modo facile e veloce

Maurizio Del Corso Tiziano Galizia. Conoscere ed usare. Progettare con i microcontrollori PIC in modo facile e veloce Maurizio Del Corso Tiziano Galizia Conoscere ed usare PICmicro Progettare con i microcontrollori PIC in modo facile e veloce Titolo: Conoscere ed usare PICmicro Prima Edizione - Marzo 2005 ISBN 88-901665-0-9

Dettagli

PROGRAMMA DI SISTEMI TERZA AET 2014/2015

PROGRAMMA DI SISTEMI TERZA AET 2014/2015 PROGRAMMA DI SISTEMI TERZA AET 2014/2015 Docente: Gamerra Giuseppe, Porta Giovanni Testo : manuali originali dello Z80, appunti in classe, dispense sulla intranet, simulatore OSHONSOFT A) Non sono state

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

DATAPROCESS INDUSTRIA S.p.A. INDICE 1. CONFIGURAZIONE DEL VISORE 1 2. ACCENSIONE DELLO STRUMENTO 1 3. OPERAZIONI DI PESATURA 2

DATAPROCESS INDUSTRIA S.p.A. INDICE 1. CONFIGURAZIONE DEL VISORE 1 2. ACCENSIONE DELLO STRUMENTO 1 3. OPERAZIONI DI PESATURA 2 Indice INDICE 1. CONFIGURAZIONE DEL VISORE 1 2. ACCENSIONE DELLO STRUMENTO 1 3. OPERAZIONI DI PESATURA 2 3.1. PESATURA SEMPLICE 2 3.2. TARA SEMIAUTOMATICA 2 3.3. BLOCCO DELLA TARA 3 4. TASTIERA 3 5. INTERFACCIA

Dettagli

APPUNTI DI ELETTRONICA DIGITALE

APPUNTI DI ELETTRONICA DIGITALE APPUNTI DI ELETTRONICA DIGITALE ITIS MARCONI-GORGONZOLA docente :dott.ing. Paolo Beghelli pag.1/24 Indice 1.ELETTRONICA DIGITALE 4 1.1 Generalità 4 1.2 Sistema di numerazione binario 4 1.3 Operazioni con

Dettagli

MULTIPLEXER 4 CANALI CON FUNZIONAMENTO DUPLEX E VIDEO A COLORI AXECD4X

MULTIPLEXER 4 CANALI CON FUNZIONAMENTO DUPLEX E VIDEO A COLORI AXECD4X MULTIPLEXER 4 CANALI CON FUNZIONAMENTO DUPLEX E VIDEO A COLORI AXECD4X MANUALE D INSTALLAZIONE LEGGERE ATTENTAMENTE IL PRESENTE MANUALE PRIMA DI METTERE IN FUNZIONE L'APPARECCHIATURA. INDICE Caratteristiche

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

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

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

Dettagli

Uno dei metodi più utilizzati e

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

Dettagli

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 In questo documento vengono illustrate brevemente le operazioni aritmetiche salienti e quelle logiche ad esse strettamente collegate.

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

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti

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

Dettagli

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

Sistemi di Numerazione

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

Dettagli

2.12 Esercizi risolti

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

Dettagli

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

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

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

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

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

L'informazione e la sua codifica

L'informazione e la sua codifica L'informazione e la sua codifica Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Informatica e telecomunicazione Cos è l informatica informatica? lo studio sistematico degli

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

Sistemi di Numerazione Binaria NB.1

Sistemi di Numerazione Binaria NB.1 Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

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

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

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

Dettagli

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

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

Dettagli

Architettura degli elaboratori (A)

Architettura degli elaboratori (A) Laurea in Informatica a.a. 2010-2011 Laboratorio del corso di Architettura degli elaboratori (A) Modulo 1: l Architettura dell 8086 Valeria Carofiglio Linguaggi a vari livelli e loro relazioni Programma

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

SISTEMI DI NUMERAZIONE

SISTEMI DI NUMERAZIONE Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica SISTEMI DI NUMERAZIONE Come nei calcolatori sono rappresentati i numeri Numeri I numeri rappresentano

Dettagli

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

PROVA INTRACORSO TRACCIA A Pagina 1 di 6 PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento

Dettagli

I Sistemi di numerazione e la rappresentazione dei dati

I Sistemi di numerazione e la rappresentazione dei dati I Sistemi di numerazione e la rappresentazione dei dati LA RAPPRESENTAZIONE DELLE INFORMAZIONI (1) Per utilizzare un computer è necessario rappresentare in qualche modo le informazioni da elaborare e il

Dettagli

la scienza della rappresentazione e della elaborazione dell informazione

la scienza della rappresentazione e della elaborazione dell informazione Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione

Dettagli

La somma. Esempio: Il prodotto. Esempio:

La somma. Esempio: Il prodotto. Esempio: La somma L algoritmo della operazione di somma non cambia qualunque sia la base considerata. Naturalmente, le regole da imparare nel caso di una base b sono relative alle sole b 2 posssibili combinazioni

Dettagli

IL CODICE BINARIO. Il codice binario. Codifica posizionale. Aritmetica binaria

IL CODICE BINARIO. Il codice binario. Codifica posizionale. Aritmetica binaria IL CODICE BINARIO Il codice binario Codifica posizionale Aritmetica binaria www.stoianov.it 1 CODIFICA DI BASE La voce si distribuisce con onde di frequenze 20-20.000 Hz La luce sta nel ordine di 500.000.000.000.000

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