1 Istruzioni Assembler

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "1 Istruzioni Assembler"

Transcript

1 Codici Assembler 1 Istruzioni Assembler Sono riportate le istruzioni assembler più comuni utilizzate nella programmazione del microcontrollore 16F628A: Caricamento e spostamento dati: MOVLW n W = n MOVWF reg (reg) = W MOVF reg,d d = (reg) SWAPF reg,d d = swap nibbles (reg) CLRF reg (reg) = 0 CLRW W = 0 Istruzioni aritmetiche: ADDLW n W = W + n ADDWF reg,d d = W + (reg) SUBLW n W = n - W SUBWF reg,d d = (reg) - W INCF reg,d d = (reg) + 1 DECF reg,d d = (reg) - 1 Istruzioni logiche: ANDLW n W = W AND n ANDWF reg,d d = W AND (reg) IORLW n W = W OR n IORWF reg,d d = W OR (reg) XORLW n W = W XOR n XORWF reg,d d = W XOR (reg) COMF reg,d d = NOT (reg) Rotazioni e set/reset di singoli bit: RLF reg,d d = rlf (reg) RRF reg,d d = rrf (reg) BCF reg,b Bit b di (reg) = 0 BSF reg,b Bit b di (reg) = 1 Istruzioni di controllo sistema: CLRWDT SLEEP NOP Azzera watch dog timer Standby mode Nessuna operazione Controllo flusso e salti: 1

2 BTFSC reg,b Skip se bit b di (reg) = 0 BTFSS reg,b Skip se bit b di (reg) = 1 INCFSZ reg,d d = (reg) + 1 Skip se d = 0 DECFSZ reg,d d = (reg) - 1 Skip se d = 0 GOTO addr Salto all indirizzo addr CALL addr Chiamata di subroutine Ritorno da subroutine RETLW n Ritorno da subr.con valore in W RETFIE Ritorno da interrupt 2 Operazioni aritmetiche complesse Di seguito sono riportati i codici Assembler appositamente scritti, ad eccezione della divisione a 16 bit, che permettono la creazione di operazione aritmetiche complesse. Queste sono state utilizzate all interno del programma completo (vedi 3) per calcolare ad ogni pressione dei tasti UP e DOWN il nuovo valore da caricare all interno del registro TMR Sottrazione a 16 bit ;[H,L]=[H,L]-[Hc,Lc] SOT16b movf Lc,W subwf L movf Hc,W btfss STAT,0 incfsz Hc,W subwf H 2.2 Moltiplicazione per 10 di un numero a 16 bit Indicando con X il moltiplicando a 16 bit, con Y il moltiplicatore e con C il fattore si ha: = [ 7 ] 15 Z = X Y = [L x, H x ] L y = a i 2 i + a i 2 i [ a i 2 i i=0 i=0 i=8 7 b j 2 j = j=0 [ 7 ] 15 = a i 2 i + a i 2 i ( ) = i=0 i=8 [ ] a i 2 ]+ i 2 3 a i 2 i a i 2 i = [L c, H c ] i=0 In binario la moltiplicazione per una potenza di due corrisponde alla traslazione dei bit del moltiplicando di un numero di step pari all esponente della potenza nella direzione da quello meno significativo al più significativo. Di seguito è riportato il codice che, per mezzo dell istruzione rlf, implementa quanto formulato: i=8 i=8 2

3 ;10*[H,L]=[Hc,Lc] mol10_16b clrf La clrf Ha clrf Lb clrf Hb clrf Lc clrf Hc clrf Lha clrf Lhb bc STAT,0 ;H*2^1 rlf H, W movwf Ha ;H*2^3 rlf H, W movwf Hb rlf Hb, F rlf Hb, W addwf Ha, W ;W=Ha+W=Ha+Hb movwf Hc ;L*2^1 rlf L, W movwf La bsf Lha,0 ;non incrementi perchè è un roll-->bsf! ;L*2^3 rlf L, W movwf Lb bsf Lhb,2 rlf Lb, F bsf Lhb,1 rlf Lb, F bsf Lhb,0 movf Lha, W addwf Lhb, W movwf Lh movf Lb, W addwf La, W movwf Lc incf Lh, F movf Lh, W addwf Hc, F 3

4 2.3 Divisione intera 16 bit senza segno Il presente codice non è stato steso dal sottoscritto ma prelevato dal sito http: //stor.altervista.org/pic/div/div.htm. <<Il procedimento consiste nell allineare le cifre del divisore a sinistra sotto il dividendo, effettuare una sottrazione per vedere se il divisore e maggiore del dividendo, segnarsi uno 0 nel caso in cui lo sia e un 1 nel caso in cui non lo sia, dopo di che shiftare il divisore a destra di una posizione e ripetere l operazione. Gli 0 e gli 1 che si ottengono come risultato della sottrazione si aggiungono mano a mano sulla destra del quoziente facendolo scorrere verso sinistra. Essendo una divisione a 16 bit occorre usare una coppia di registri da 8 bit anziche uno solo. Queste coppie sono chiamate QH:QL per il quoziente, VH:VL per il divisore ecc... L unico registro a 8 bit singolo che rimane e il contatore di ciclo per le sottrazioni, infatti al massimo verranno eseguite 16 sottrazioni.>> ;----- Divisione 16 bit intera senza segno ; QH:QL=DH:DL/VH:VL DH:DL=resto ; IN: DH:DL=dividendo VH:VL=divisore ; OUT: QH:QL=quoziente DH:DL=resto ; CL = contatore di ciclo FL = salvataggio flag DIV16 CLRF QH ;Azzera quoziente CLRF QL CLRF CL ;Azzera contatore di ciclo DIV16_2 INCF CL,F ;CL=CL+1 BTFSC VH,7 ;Se bit 7 di VH=0 skip GOTO DIV16_3 ;altrimenti vai a DIV16_3 BCF STAT,0 ;Azzera carry RLF VL,F ;Ruota divisore a sinistra RLF VH,F GOTO DIV16_2 ;Vai a DIV16_2 DIV16_3 CALL SUB16 ;Chiama sottraz. DH:DL-VH:VL RLF QL,F ;Ruota carry a destra nel quoziente RLF QH,F BTFSS QL,0 ;Se non overflow skip CALL RESTORING ;altrimenti chiama somma DH:DL+VH:VL BCF STAT,0 ;Azzera carry RRF VH,F ;Ruota divisore a destra RRF VL,F DECFSZ CL,F ;Decrementa contat.ciclo, skip se 0 GOTO DIV16_3 ;altrimenti vai a DIV16_3 ;Fine subroutine SUB16 BSF FL,4 ;Imposta a 1 il bit 4 di FL MOVF VL,W ;W=parte bassa divisore SUBWF DL,F ;ao sottrae a parte bassa dividendo BTFSC STAT,0 ;Se overflow skip GOTO SUB16_2 ;altrimenti vai a SUB16_2 MOVLW 1 SUBWF DH,F ;Sottrae 1 a parte alta dividendo SWAPF STAT,W ;Salva i flag in FL MOVWF FL SUB16_2 MOVF VH,W ;W=parte alta divisore SUBWF DH,F ;la sottrae a parte alta dividendo BTFSS FL,4 ;Controlla bit 4 di FL, se 1 skip BCF STAT,0 ;altrimenti resetta carry 4

5 RESTORING MOVF VL,W ;W=parte bassa divisore ADDWF DL,F ;la somma a parte bassa dividendo BTFSC STAT,0 ;Se non overflow skip INCF DH,F ;altrimenti incrementa parte alta dividendo MOVF VH,W ;W=parte alta divisore ADDWF DH,F ;la somma a parte alta dividendo 3 Codice progetto oscillatore Di seguito è riportato l intero codice Assembly per il progetto di un oscillatore variabile da 0.1 a 5.0 Hz a passi di 0.1 Hz. TITLE fout_var_4mhzinterno list F=INHX8M,P=16F628A config b ; ;RB0=square(2*pi*fout*t) RB1=square(2*pi*fout*t+pi) ; PCLATH EQU 0AH TMR0 EQU 01H ; Real Time Clock Counter TMR1L EQU 0EH TMR1H EQU 0FH STAT EQU 03H ; Registro di stato PORTA EQU 05H ; Porta A PORTB EQU 06H ; Porta B INTCON EQU 0BH ; Registro abilitazione interrupt TR_A EQU 85H ; Tris A TR_B EQU 86H ; Tris B OPTIO EQU 81H ; Registro OPTION CMCON EQU 1FH ; Reg comparatori PCON EQU 8EH ; Registro Power Control (contiene f_intosc) PIE1 EQU 8CH ; PIR1 EQU 0CH ; T1CON EQU 10H ; PCL EQU 02H ; Program counter WTEMP EQU 20H ; Buffer per salvataggio W in interrupt STATEM EQU 21H ; Buffer per salvataggio STAT in interrupt REGUP EQU 34H ; Ritardo REGDN EQU 36H INDS EQU 31H ; Indice sinistro INDD EQU 32H ; Indice destro KL EQU 33H ; K=fosctmr1/(2*pretmr1) KH EQU 35H ; K=fosctmr1/(2*pretmr1) F10 EQU 4BH QH EQU 38H ; QL EQU 39H DH EQU 3AH ; DL EQU 3BH ; VH EQU 3CH ; VL EQU 3DH ; CL EQU 3EH FL EQU 3FH L H EQU 40h EQU 41h 5

6 La EQU 42h Ha EQU 43h Lb EQU 44h Hb EQU 45h Lc EQU 46h Hc EQU 47h Lha EQU 48h Lhb EQU 49h Lh EQU 4Ah CALC EQU 4Bh T1LAP EQU 4Ch T1HAP EQU 4Dh #define UP PORTA,5 ; Pulsante UP #define DN PORTB,3 ; Pulsante DOWN #define DISPSX PORTB,5 ; Abilitazione display 1 #define DISPDX PORTB,2 ; Abilitazione display 2 ; Def costanti display catodo comune ZERO EQU 0CFH ; Codifica numero 0: UNO EQU 088H ; Codifica numero 1: DUE EQU 0D6H ; Codifica numero 2: TRE EQU 0DCH ; Codifica numero 3: QUATTR EQU 099H ; Codifica numero 4: NC CINQUE EQU 05DH ; Codifica numero 5: SEI EQU 05FH ; Codifica numero 6: SETTE EQU 0C8H ; Codifica numero 7: OTTO EQU 0DFH ; Codifica numero 8: NOVE EQU 0DDH ; Codifica numero 9: ; ; ORG 0 goto START ;Reset vector nop nop nop movwf WTEMP swapf STAT,W movwf STATEM btfss PIR1,0 ; Interrupt da overflow TMR1? se si skip goto endin ; movlw b ; Carica W xorwf PORTB,1 ; PORTB=XOR(PORTB,W) ; ricavo TMR1 bcf PIR1,0 ; Clear flag TMR1IF endin swapf STATEM,w movwf STAT swapf WTEMP,f swapf WTEMP,w retfie ;----- Sottraz 16bit [H,L]=[H,L]-[Hc,Lc] SOT16b movf Lc,W subwf L movf Hc,W btfss STAT,0 incfsz Hc,W 6

7 subwf H ;----- Divisione 16 bit intera senza segno ; QH:QL=DH:DL/VH:VL DH:DL=resto ; IN: DH:DL=dividendo VH:VL=divisore ; OUT: QH:QL=quoziente DH:DL=resto ; CL = contatore di ciclo FL = salvataggio flag DIV16 CLRF QH ;Azzera quoziente CLRF QL CLRF CL ;Azzera contatore di ciclo DIV16_2 INCF CL,F ;CL=CL+1 BTFSC VH,7 ;Se bit 7 di VH=0 skip GOTO DIV16_3 ;altrimenti vai a DIV16_3 BCF STAT,0 ;Azzera carry RLF VL,F ;Ruota divisore a sinistra RLF VH,F GOTO DIV16_2 ;Vai a DIV16_2 DIV16_3 CALL SUB16 ;Chiama sottraz. DH:DL-VH:VL RLF QL,F ;Ruota carry a destra nel quoziente RLF QH,F BTFSS QL,0 ;Se non overflow skip CALL RESTORING ;altrimenti chiama somma DH:DL+VH:VL BCF STAT,0 ;Azzera carry RRF VH,F ;Ruota divisore a destra RRF VL,F DECFSZ CL,F ;Decrementa contat.ciclo, skip se 0 GOTO DIV16_3 ;altrimenti vai a DIV16_3 ;Fine subroutine SUB16 BSF FL,4 ;Imposta a 1 il bit 4 di FL MOVF VL,W ;W=parte bassa divisore SUBWF DL,F ;ao sottrae a parte bassa dividendo BTFSC STAT,0 ;Se overflow skip GOTO SUB16_2 ;altrimenti vai a SUB16_2 MOVLW 1 SUBWF DH,F ;Sottrae 1 a parte alta dividendo SWAPF STAT,W ;Salva i flag in FL MOVWF FL SUB16_2 MOVF VH,W ;W=parte alta divisore SUBWF DH,F ;la sottrae a parte alta dividendo BTFSS FL,4 ;Controlla bit 4 di FL, se 1 skip BCF STAT,0 ;altrimenti resetta carry RESTORING MOVF VL,W ;W=parte bassa divisore ADDWF DL,F ;la somma a parte bassa dividendo BTFSC STAT,0 ;Se non overflow skip INCF DH,F ;altrimenti incrementa parte alta dividendo MOVF VH,W ;W=parte alta divisore ADDWF DH,F ;la somma a parte alta dividendo ; Moltiplicazione 10*16bit 10*[H,L]=[Hc,Lc] mol10_16b clrf La clrf Ha clrf Lb clrf Hb clrf Lc 7

8 clrf Hc clrf Lha clrf Lhb ;H*2^1 rlf H, W movwf Ha ;H*2^3 rlf H, W movwf Hb rlf Hb, F rlf Hb, W addwf Ha, W ;W=Ha+W=Ha+Hb movwf Hc ;L*2^1 rlf L, W movwf La bsf Lha,0 ;non incrementi perchè è un roll-->bsf! ;L*2^3 rlf L, W movwf Lb bsf Lhb,2 rlf Lb, F bsf Lhb,1 rlf Lb, F bsf Lhb,0 movf Lha, W addwf Lhb, W movwf Lh movf Lb, W addwf La, W movwf Lc incf Lh, F movf Lh, W addwf Hc, F ;----RICAVO TMR TM1 btfss CALC,0 goto NOCALC movf INDS,W ; W=INDS movwf L ; L=INDS clrf H ; H=0 call mol10_16b movf Lc,W ; W=Lc addwf INDD, W ; W=Lc+INDD=INDS*10+INDD movwf F10 ; F10=W=INDS*10+INDD movf KL,W ;faccio Q=K/F10 8

9 movwf DL ;QH:QL=DH:DL/VH:VL movf KH,W movwf DH movf F10,W movwf VL clrf VH call DIV16 ; [QH,QL]=Q movf QL,W ; faccio Q*10...W=QL movwf L ; L=QL movf QH,W ; W=QH movwf H ; H=QH call mol10_16b ; [Hc,Lc]=Q*10 movlw b ; TMR1max=65535 movwf L ; in realtà sarebbe ma movlw b ; dovrei rappresentarlo a 17bit movwf H ; call SOT16b ; [H,L]=tmr1max-k*10/f10 movf L,W ; W=L movwf TMR1L ; movwf T1LAP movf H,W ; W=H movwf TMR1H ; movwf T1HAP bcf CALC,0 goto ENDCAL NOCALC movf T1LAP,W ; W=L movwf TMR1L ; movf T1HAP,W ; W=H movwf TMR1H ; ENDCAL ; display DISP addwf PCL,1 ; Sommo w al program counter retlw ZERO ; Visualizza 0 retlw UNO ; Visualizza 1 retlw DUE ; Visualizza 2 retlw TRE ; Visualizza 3 retlw QUATTR ; Visualizza 4 retlw CINQUE ; Visualizza 5 retlw SEI ; Visualizza 6 retlw SETTE ; Visualizza 7 retlw OTTO ; Visualizza 8 retlw NOVE ; Visualizza 9 ; subroutine gestione multiplexer VISSX bcf DISPDX ; Disabilita disp dx movf INDS,0 ; W=IND call DISP ; movwf PORTA ; bsf DISPSX ; Abilita disp sx return VISDX bcf DISPSX ; Disabilita disp sx movf INDD,0 ; W=IND call DISP ; Numero dx su porta B movwf PORTA ; bsf DISPDX ; Abilita disp dx 9

10 return ; ; ritardo DELA10 ; btfsc UP ; Testo stato UP per pressione bsf REGUP,0 ; btfss UP ; Testo stato UP per rilascio bcf REGUP,1 ; btfsc DN ; Testo stato DN per pressione bsf REGDN,0 ; btfss DN ; Testo stato DN per rilascio bcf REGDN,1 ; btfss INTCON,2 ; goto DELA10 ; movlw.255 ; movwf TMR0 ; bcf INTCON,2 return ; Ritorna dopo la CALL ; ; START PROGRAM ; START bcf STAT,5 ; banco 0 movlw b ; Disabilita comparatori e abilita I/O movwf CMCON ; movlw b ; osc ext pretmr1=4 e non sincronizzo movwf T1CON ; bsf STAT,5 ; banco 1 bsf PIE1,0 ; enables TMR1 interr overflow bsf PCON,3 ; f_intosc=4mhz movlw b ; RA5 in movwf TR_A ; movlw b ; movwf TR_B ; movlw b ; Prescaler 1:256 movwf OPTIO ; Copia W in OPTION (INTDG=0)(Rpull_up enable) bcf STAT,5 ; banco 0 movlw b ; k=32768/(2*pretmr1)=4096= movwf KL ; movlw b ; movwf KH ; movlw.0 ; movwf INDS ; movlw.1 ; movwf INDD ; bsf CALC,0 clrf PORTA ; RA=0 movlw b ; RB0=0 RB1=1 (pilotano braccetto) movwf PORTB ; movlw b ; GIE=1 interr da perif movwf INTCON ; movlw.217 movwf TMR0 bcf INTCON,2 10

11 ; main program MAIN bcf REGUP,0 ; Clear memoria P2 pressione bsf REGUP,1 ; Clear memoria P2 rilascio bcf REGDN,0 ; Clear memoria P2 pressione bsf REGDN,1 ; Clear memoria P2 rilascio call VISSX call DELA10 ; Subroutine ritardo 10mS call VISDX call DELA10 btfss REGUP,0 ; Testo UP per pressione goto GOUP ; Vai alla routine GOUP btfsc REGUP,1 ; Testo UP per rilascio bcf REGUP,2 ; Resetta memoria incremento effettuato btfss REGDN,0 ; Testo UP per pressione goto GODN ; Vai alla routine GODN btfsc REGDN,1 ; Testo UP per rilascio bcf REGDN,2 ; Resetta memoria decremento effettuato goto MAIN ; GOUP btfsc REGUP,2 ; goto MAIN ; bsf REGUP,2 ; Setto memoria toggle movlw.5 subwf INDS,0 ; W=INDS-5 btfss STAT,0 ;If INDS=5 skip goto GOUP2 movlw.0 ; movwf INDS ; movlw.1 ; movwf INDD ; bsf CALC,0 ; goto MAIN GOUP2 movlw.9 subwf INDD,0 ; W=INDD-9 btfss STAT,0 ; If INDD=9 skip goto GOUP3 incf INDS,F ; incrementa INDS movlw.0 ; movwf INDD ; bsf CALC,0 ; goto MAIN GOUP3 incf INDD,F bsf CALC,0 ; goto MAIN GODN btfsc REGDN,2 ; goto MAIN ; bsf REGDN,2 ; Setto memoria toggle movf INDS,0 ; W=INDS sublw 0 ; W=0-INDS ; Se INDS>0-->[C]=0 Se INDS<=0-->[C]=1 goto GODN2 movf INDD,0 ; W=INDD 11

12 sublw 0 ; W=0-INDD btfss STAT,0 ; Se INDD>0-->[C]=0 Se INDD<=0-->[C]=1 goto GODN3 decf INDS,F movlw.9 ; movwf INDD ; bsf CALC,0 ; goto MAIN GODN2 movf INDD,0 ; W=INDD sublw.1 ; W=0-INDS btfss STAT,0 ; Se INDS>1-->[C]=0 Se INDS<=1-->[C]=1 goto GODN3 movlw.5 ; movwf INDS ; movlw.0 ; movwf INDD ; bsf CALC,0 ; goto MAIN GODN3 decf INDD,F ; bsf CALC,0 ; goto MAIN END ;

PIC Set istruzioni. Sintassi Descrizione Microchip Operazione equivalente Effetto su STATUS

PIC Set istruzioni. Sintassi Descrizione Microchip Operazione equivalente Effetto su STATUS PIC Set istruzioni Questo è il set completo delle istruzioni dei Microchip PIC: Sintassi Descrizione Microchip Operazione equivalente Effetto su STATUS ADDLW k Add Literal and W W = W + k C, DC, Z ADDWF

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

; Registro abilitazione interrupt TR_A EQU 85H ; Tris A TR_B EQU 86H ; Tris B

; Registro abilitazione interrupt TR_A EQU 85H ; Tris A TR_B EQU 86H ; Tris B Lezione 3 Poichè al termine della seconda lezione ci siamo lasciati con un piccolo compito da svolgere, vediamo subito come potevamo implementare un led lampeggiante con frequenza di 2Hz, ovvero un secondo

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

Lezione 6 L'hardware dedicato.

Lezione 6 L'hardware dedicato. Lezione 6 Come già anticipato nelle prime lezioni, il PIC16C84 non solo ha la memoria di programma in tecnologia EEPROM, ma possiede anche 64 registri da 8 bit di identica struttura. Questo vuol dire che,

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

NOZIONI BASE DI ASSEMBLER PER PIC16C84

NOZIONI BASE DI ASSEMBLER PER PIC16C84 NOZIONI BASE DI ASSEMBLER PER PIC16C84 Aggiornato al 09 settembre 2005 Ermes ZANNONI (ermes@zannoni.to.it) (http://www.zannoni.to.it) Indice : 1. Introduzione 2. Cosa è un PIC 3. Achitettura interna 3.1

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

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

Capitolo 5. Realizzazione software

Capitolo 5. Realizzazione software Realizzazione software 5.1 Introduzione ai PIC Elenco istruzioni Sintassi Descrizione Microchip Operazione equivalente ADDLW k Add Literal and W W = W + k ADDWF f,d Add W and f d = W + f (dove d può essere

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

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

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

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

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

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

Realizzazione sistema chopper

Realizzazione sistema chopper Capitolo 1 Realizzazione sistema chopper In questo capitolo viene discussa la progettazione di un sistema chopper stand-alone per le frequenze da 0.1 a 5.0 Hz. Tale realizzazione si è resa necessaria avendo

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

Assembly PIC16F8X. Dispensa di elettronica sull uso del microcontrollore PIC 16F8X

Assembly PIC16F8X. Dispensa di elettronica sull uso del microcontrollore PIC 16F8X Dispensa di elettronica sull uso del microcontrollore PIC 16F8X Anno scolastico 2010/2011 Corso di Sistemi, specializzazione elettronica ITIS Galileo Ferraris Prof. Aniello Celentano L obiettivo della

Dettagli

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

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

Dettagli

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

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

Pilotare un motore passo-passo, in questo caso il modello della Sanyo le cui caratteristiche principali sono quelle di figura1.

Pilotare un motore passo-passo, in questo caso il modello della Sanyo le cui caratteristiche principali sono quelle di figura1. 10. Pilotaggio unipolare di un motore passo-passo Scopo della prova Pilotare un motore passo-passo, in questo caso il modello 103-547-52500 della Sanyo le cui caratteristiche principali sono quelle di

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

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

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

Ripetizioni Materie Scientifiche

Ripetizioni Materie Scientifiche INTRODUZIONE Questo testo vuole fornire alcune nozioni base riguardo alla programmazione in linguaggio macchina dei PIC, i piccoli ed economici microcontrollori prodotti dalla Microchip. Intanto va fatta

Dettagli

Gestione Degli INTERRUPT

Gestione Degli INTERRUPT Gestione Degli INTERRUPT Il PIC 16F876 possiede vari tipi di Interrupt. Si parla di 14 differenti sorgenti di interrupt, ma molto facilmente nella programmazione se ne terranno in considerazione ben pochi:

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

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

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

G&G ESEMPIO1 PROGRAMMAZIONE Progetto FACILEPLC Pag. 1 di 6

G&G ESEMPIO1 PROGRAMMAZIONE Progetto FACILEPLC Pag. 1 di 6 G&G ESEMPIO1 PROGRAMMAZIONE Progetto FACILEPLC Pag. 1 di 6 Alcuni esempi di programmazione nei vari linguaggi di una piccola funzione logica per comprendere la complessità del linguaggio assembler con

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

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

DECODER DTMF CON UN SOLO PIC

DECODER DTMF CON UN SOLO PIC francopic DECODER DTMF CON UN SOLO PIC 13 December 2016 Introduzione Ciao a tutti. Eccomi ancora una volta a parlarvi del pic 16F1705 e delle sue straordinarie capacità, questa volta nelle vesti di decodificatore

Dettagli

LO HAI MAI REALIZZATO CON UN PIC? UN APPROCCIO AI TIMER DEI PICMICRO 1

LO HAI MAI REALIZZATO CON UN PIC? UN APPROCCIO AI TIMER DEI PICMICRO 1 Paolo Rognoni (Paolino) LO HAI MAI REALIZZATO CON UN PIC? UN APPROCCIO AI TIMER DEI PICMICRO 18 March 2010 Sebbene i timer siano dispositivi molto semplici, in relazione a tutte le periferiche disponibili

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

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

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

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S La programmazione dei PIC InterruptS. Corso introduttivo sui microcontrollori A. S. 2007 2008 InterruptS Nicola Amoroso namoroso@mrscuole.net NA L8 1 Interrupts Gli interrupts sono dei componenti software-hardware, interni al microcontrollore,

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

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

CORSO di AUTOMAZIONE INDUSTRIALE

CORSO di AUTOMAZIONE INDUSTRIALE CORSO di AUTOMAZIONE INDUSTRIALE (cod. 8469-21029) APPELLO del 19 Gennaio 2011 Prof. Andrea Cataldo Soluzioni Esercizio 1 (Domande generali) 1.a) Controllo Logico Dato il linguaggio SFC relativo allo standard

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

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

LA CPU INTEL Vantaggi dei programmi Assembly

LA CPU INTEL Vantaggi dei programmi Assembly 1 LA CPU INTEL 8086 Vantaggi dei programmi Assembly L utilizzo del linguaggio Assembly anzichè di un linguaggio ad alto livello (tipo C o Pascal) è talvolta giustificato dalla maggiore efficienza del codice;

Dettagli

FSK Modulation-Demodulation Protocollo di lavoro. Massimo Maiolo & Stefano Camozzi 25 maggio 2006

FSK Modulation-Demodulation Protocollo di lavoro. Massimo Maiolo & Stefano Camozzi 25 maggio 2006 Modulation-Demodulation Protocollo di lavoro Massimo Maiolo & Stefano Camozzi 25 maggio 2006 1 Indice 1 Introduzione 4 1.1 Esecuzione del compito...................... 4 2 Flow-chart 5 2.0.1 modulation.....................

Dettagli

Lanciare MPLAB IDE (Start->Programmi->Mirochip->MPLAB IDE v7.22->mplab IDE):

Lanciare MPLAB IDE (Start->Programmi->Mirochip->MPLAB IDE v7.22->mplab IDE): Lanciare MPLAB IDE (Start->Programmi->Mirochip->MPLAB IDE v7.22->mplab IDE): Creare un nuovo progetto (Project->Project Wizard): Selezionare il dispositivo (PIC16F876A): Selezionare il linguaggio (MPASM

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

SISTEMI Di Alessandro Bicciato - classe 3^ ISE - a.s. 2008/09

SISTEMI Di Alessandro Bicciato - classe 3^ ISE - a.s. 2008/09 SISTEMI Di Alessandro Bicciato - classe 3^ ISE - a.s. 2008/09 Definizione di sistema: Un sistema è un insieme di parti o componenti correlate tra loro in modo tale che tutto l insieme possieda una propria

Dettagli

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

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S La programmazione dei PIC TIMERS. Corso introduttivo sui microcontrollori A. S. 2007 2008 TIMERS Nicola Amoroso namoroso@mrscuole.net NA L7 1 Timers I timer sono precisi contatori, che possono essere configurati per incrementarsi su fronti

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

Davide Gennaretti, Matteo Nicolini

Davide Gennaretti, Matteo Nicolini Seminario sui Microcontrollori Davide Gennaretti, Matteo Nicolini AA 2003-04 II Facoltà di Ingegneria Elettronica Cesena Cosa sono i microcontrollori? Piccoli computer concentrati in un chip Un Datapath

Dettagli

I microcontrollori PIC parte III

I microcontrollori PIC parte III I microcontrollori PIC parte III In questa terza parte parliamo brevemente dell ultima famiglia nata: i potenti PIC32, in particolare il PIC32MX795F512H. Accenniamo anche al nuovo sistema di sviluppo MPLABX

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

ENCODER DTMF CON PIC 16F1705

ENCODER DTMF CON PIC 16F1705 francopic ENCODER DTMF CON PIC 16F1705 18 February 2016 Introduzione La storia continua, ancora un articolo al sapore di pic. Neanche io pensavo di dovermene più occupare ma sbagliavo. E stato un mio caro

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

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale.

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale. Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale. Campo Codice Operativo Campo Operandi K bit n-k bit n bit 1 Istruzione

Dettagli

MICROCONTROLLORI MICROCHIP PIC

MICROCONTROLLORI MICROCHIP PIC MICROCONTROLLORI MICROCHIP PIC Un microcontrollore è un componente elettronico che integra in un unico chip tutti i dispositivi per realizzare un sistema completo programmabile, al suo interno possiamo

Dettagli

Marcia e Arresto di un Motore elettrico

Marcia e Arresto di un Motore elettrico Marcia e Arresto di un Motore elettrico Si vuole realizzare un circuito elettronico gestito da un microcontrollore PIC16F876 che sia in grado di pilotare un motore elettrico AC 220 volt utilizzando i classici

Dettagli

Macchine dedicate e Macchine programmabili

Macchine dedicate e Macchine programmabili Macchine dedicate e Macchine programmabili Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Obiettivo Progettare circuiti

Dettagli

Nel microprocessore 8086 abbiamo una gran quantità di registri

Nel microprocessore 8086 abbiamo una gran quantità di registri I registri del microprocessore 8086 Nel microprocessore 8086 abbiamo una gran quantità di registri AH AL AX 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 B H B L BX 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 C H C L CX 1 0 1 1

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

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Dettagli

Istruzioni assembler Istruzione N Registri

Istruzioni assembler Istruzione N Registri Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e

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

CARATTERI SPECIALI. \n Nuova linea \t Tabulazione orizzontale \b Backspace \f Form feed \r Ritorno carrello \ Virgolette \ Apice \\ Backslash

CARATTERI SPECIALI. \n Nuova linea \t Tabulazione orizzontale \b Backspace \f Form feed \r Ritorno carrello \ Virgolette \ Apice \\ Backslash CARATTERI SPECIALI CODICE SIGNIFICATO \n Nuova linea \t Tabulazione orizzontale \b Backspace \f Form feed \r Ritorno carrello \ Virgolette \ Apice \\ Backslash OPERATORI ARITMETICI - Sottrazione + Addizione

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

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38

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

Assembly. Modello x86

Assembly. Modello x86 Assembly Modello x86 1 Il microprocessore Un MICROPROCESSORE è un circuito integrato dotato di una struttura circuitale in grado di attuare un prefissato SET di ISTRUZIONI 2 Caratteristiche del microprocessore

Dettagli

Firmware Multiplier. Sommario

Firmware Multiplier. Sommario Firmware Multiplier Prof. lberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimenti sul Patterson 5a ed.: B.6 & 3.4 /33 Il moltiplicatore firmware Sommario

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Moltiplicazione e divisione tra numeri interi: algoritmi e circuiti slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Operazioni aritmetiche e logiche Abbiamo visto che le ALU sono in grado

Dettagli

Programmi per la macchina di Mano addizione di due numeri

Programmi per la macchina di Mano addizione di due numeri Programmi per la macchina di Mano addizione di due numeri Indi Codici simbolici esadecimale binario rizzo 000 LDA 004 2004 0010 0000 0000 0100 001 ADD 005 1005 0001 0000 0000 0101 002 STA 006 3006 0011

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

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL 0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL Salvatore Orlando & Marta Simeoni Arch. Elab. - S. Orlando 1 0ROWLSOLFD]LRQHWUDQXPHULLQWHUL Oltre ai circuiti per realizzare somme e sottrazioni di interi, è

Dettagli

Moltiplicazioni e Divisioni. G. Michele Pinna (1)

Moltiplicazioni e Divisioni. G. Michele Pinna (1) Moltiplicazioni e Divisioni G. Michele Pinna (1) moltiplicazione Abbiamo 3 versioni: Alu a 64 bit, due registri a 64 bit ed uno a 32 Alu a 32 bit, un registro a 64 e due a 32 Alu a 32 bit, un registro

Dettagli

CAP 19 APPLICAZIONE TERMINALE DI VISUALIZZAZIONE CON MODULO LCD

CAP 19 APPLICAZIONE TERMINALE DI VISUALIZZAZIONE CON MODULO LCD CAP A APPLICAZIONE TERMINALE DI VISUALIZZAZIONE CON MODULO LCD La tavola mostra lo schema elettrico di un terminale di visualizzazione intelligente. L apparecchiatura può essere realizzata con un qualsiasi

Dettagli

Programmazione in linguaggio assembly per architetture Intel 8088

Programmazione in linguaggio assembly per architetture Intel 8088 Programmazione in linguaggio assembly per architetture Intel 8088 Marco Di Felice 1 Università of Bologna Dipartimento di Scienze dell Informazione Corso di Architettura degli Elaboratori mail: difelice@cs.unibo.it

Dettagli

Lezione 7 ALU: Moltiplicazione e divisione

Lezione 7 ALU: Moltiplicazione e divisione Architettura degli Elaboratori e delle Reti Lezione 7 ALU: Moltiplicazione e divisione F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 1/34 Sommario! Sommatori

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

PROVA DI SISTEMI ELETTRONICI ED AUTOMAZIONE INDIRIZZO: ELETTRONICA E TELECOMUNICAZIONI. Tema n 2 SOLUZIONE PROPOSTA DAL PROF.

PROVA DI SISTEMI ELETTRONICI ED AUTOMAZIONE INDIRIZZO: ELETTRONICA E TELECOMUNICAZIONI. Tema n 2 SOLUZIONE PROPOSTA DAL PROF. EAME DI TATO 2006 ECONDA POVA CITTA POVA DI ITEMI ELETTONICI ED AUTOMAZIONE INDIIZZO: ELETTONICA E TELECOMUNICAZIONI Tema n 2 OLUZIONE POPOTA DAL POF. EGIO BOLOGNINI Osservazioni iniziali ed ipotesi aggiuntive:

Dettagli

TIMER H-M-S CON PIC [2] - IL PROGRAMMA 1

TIMER H-M-S CON PIC [2] - IL PROGRAMMA 1 Davide Bagnoli (DADO91) TIMER H-M-S CON PIC [2] - IL PROGRAMMA 15 January 2013 Eccoci alla seconda puntata. Adesso voglio parlare un po' del programma che fa funzionare il timer che ho progettato, ma prima

Dettagli

OPERAZIONI ARITMETICHE

OPERAZIONI ARITMETICHE OPERAZIONI ARITMETICHE Merker speciali: SM1.0 risultato uguale a zero SM1.1 overflow SM1.2 risultato negativo SM1.3 divisione per zero Tabella riassuntiva (codici operativi in IL) INTERI (16 Bit) DOUBLE

Dettagli

Moltiplicazione e Divisione tra numeri relativi

Moltiplicazione e Divisione tra numeri relativi Moltiplicazione e Divisione tra numeri relativi Salvatore Orlando & Marta Simeoni Arch. Elab.A M. Simeoni 1 Moltiplicazione tra numeri interi Oltre ai circuiti per realizzare somme e sottrazioni di interi,

Dettagli

Moltiplicazione tra numeri interi. Moltiplicazione e Divisione tra numeri relativi. Moltiplicazione: algoritmo carta e penna (base 2)

Moltiplicazione tra numeri interi. Moltiplicazione e Divisione tra numeri relativi. Moltiplicazione: algoritmo carta e penna (base 2) Arch. Elab.A M. Simeoni 1 Moltiplicazione tra numeri interi Moltiplicazione e Divisione tra numeri relativi Salvatore Orlando & Marta Simeoni Oltre ai circuiti per realizzare somme e sottrazioni di interi,

Dettagli

Firmware Multiplier. Sommario

Firmware Multiplier. Sommario Firmware Multiplier Prof. lberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimenti sul Patterson 5a ed.: B.6 & 3.4 /33 Sommario Il moltiplicatore firmware

Dettagli

Remotaggio Caricabatterie NG3

Remotaggio Caricabatterie NG3 SEIA Snc ELETTRONICA Remotaggio Caricabatterie NG3 Remote control (RC162) Attenzione: collegare e scollegare il pannello di comando remoto solo con il caricabatterie spento Utilizzare un cavo pin-to-pin

Dettagli

Circuiti di base e ALU. Lorenzo Dematte

Circuiti di base e ALU. Lorenzo Dematte Circuiti di base e ALU Lorenzo Dematte (dematte@ieee.org) Multiplexer Multiplexer Decodificatore demux CPU ALU: Arithmetic Logic Unit CU: Control Unit Aritmetica con reti logiche I circuiti realizzano

Dettagli

not ah ; ah = F7h (247) perche' il complemento a 1 di 8 ( )

not ah ; ah = F7h (247) perche' il complemento a 1 di 8 ( ) ESERCIZIO 1 Programma di calcoli aritmetici e logici ; locazione origine del seguente codice mov ax,24 ; ax = 24 mov cx,0ah ; cx = 10 div cx ; dx = 4 (resto) e ax = 2 (quoziente) mov al, 4 ; al = 4 mov

Dettagli

Il linguaggio macchina

Il linguaggio macchina Il linguaggio macchina Un istruzione in linguaggio macchina è, sul piano astratto, una tripla strutturata: i = (f, P1, P2) ove: f F insieme dei codici operativi del processore, cioè delle operazioni elementari

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

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

; ; Definizione costanti

; ; Definizione costanti 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 TITLE

Dettagli

LE TABELLE DI LOOKUP azioniamo un motore

LE TABELLE DI LOOKUP azioniamo un motore LE TABELLE DI LOOKUP azioniamo un motore Nella schedina sperimentale che abbiamo costruito c'è una morsettiera a sette poli facente capo all'integrato ULN2004. Questo altro non è che un driver contenente

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

Lezione 6. Lezione 6. Moltiplicatori a look-up table. Moltiplicatori a look-up table. Moltiplicatori veloci. Moltiplicatori a look-up table.

Lezione 6. Lezione 6. Moltiplicatori a look-up table. Moltiplicatori a look-up table. Moltiplicatori veloci. Moltiplicatori a look-up table. Sommario Lezione 6 Moltiplicatori veloci a look-up table Moltiplicatori veloci a matrice Circuiti per aritmetica floating point Simone Buso - Microcontrollori e DSP - Lezione 6 1 Lezione 6 Materiale di

Dettagli