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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

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

2 Il software per il PIC Come per qualsiasi sistema a microprocessore, anche per il PIC è necessario preparare un programma per farlo funzionare. Un programma è costituito da una sequenza di instruzioni, ognuna delle quali identifica univocamente una funzione che il PIC deve svolgere. Ogni istruzione è rappresentata da un codice operativo (in inglese operation code o più brevemente opcode) composto da 14 bit ed è memorizzata in una locazione di memoria dell'area programma. Tale memoria nel PIC16F877 è di tipo EEPROM e dispone di 8192 locazioni ognuna delle quali è in grado di contenere una sola istruzione oppure una coppia istruzione/dato. Questi codici, completamente privi di senso per un essere umano, sono gli unici che il PIC è in grado di capire. Per fortuna esistono alcuni strumenti che consentono di facilitare il compito al programmatore rendendo le istruzioni più comprensibili. NA L3 2

3 Il software per il PIC 1 modo Il programma per il PIC si può scrivere in linguaggio assembly o assembler, usando direttamente le 35 istruzioni riconosciute dal microcontrollore. Il codice si scrive come un file di testo. Esso viene convertito in codice binario da un programma chiamato Assemblatore. Il file creato contiene codici esadecimali e ha estensione. HEX Per trasferire poi il file HEX nella memoria di programma del PIC occorre un dispositivo chiamato Programmatore Si usa un Personal Computer : per scrivere il testo del programma, con un editor di testi ( non usando Word! ) per convertirlo in codice eseguibile, usando l Assemblatore per scriverlo nel PIC, usando un Programmatore. NA L3 3

4 Il software per il PIC 1 modo La casa costruttrice Microchip fornisce un pacchetto integrato chiamato MPLAB [Download gratuito => Esso comprende : MPLAB Editor : editor di testo per scrivere il testo del programma MPASM : il compilatore che traduce il testo in codice eseguibile (usando il codice esadecimale) Il compilatore MPASM è liberamente usabile. Si scarica dal sito della Microchip e si può usare indipendentemente dall editor. Lavorando in Assembler, la parte più difficile è il debug, cioè l eliminazione degli errori di programmazione. Esistono software di simulazione, a pagamento in genere, che consentono di controllare il funzionamento del programma NA L3 4

5 .asm Contiene il codice sorgente in formato assembler..inc File header, intestazioni e defiizioni hardware per il micro.lst Contiene l intero codice assembler e varie informazioni di compilazione.tre Albero di allocazione della memoria..err File con errori di compilazione e numeri di linea..hex File con il codice macchina, per la programmazione del microcontrollore NA L3 5

6 Esempio di file ASM RestoreLoader Il software per il PIC 1 modo lfsr 0, buff ; Construct instructions in buff movlw UPPER Main ; Upper byte of address to main movwf t1+3 bcf STATUS, C ; Clear carry bit rrcf t1+3, F ; Rotate through carry movlw B' ' ; Second word in goto must start with F. iorwf t1+3, F movlw HIGH Main ; High byte of address to main. movwf t1+2 rrcf t1+2, F movlw LOW Main ; Low byte of address to main movwf t1 rrcf t1, F MOVLF 0xEF, t1+1 lfsr 1, t1 MOVLF 0x04, count rest_rep movff POSTINC1, POSTINC0 decf count, F bnz rest_rep movlw 0xFF ; High byte in first word is EF ; two last nop movwf POSTINC0 ; movwf POSTINC0 ; movwf POSTINC0 ; buff should now contain 8 bytes : NA L3 6

7 Sintassi Descrizione Microchip Operazione equivalente ADDLW k ADDWF f,d ANDLW k ANDWF f,d BCF f,b BFS f,b BTFSC f,b BTFSS f,b CALL k CLRF f CLRW CLRWDT Add Literal and W Add W and f AND Literal with W AND W with f Bit Clear f Bit Set f Bit Test f, Skip if Clear Bit Test f, skip if Set Subroutine Call Clear f Clear W Register Clear Watchdog Timer Set istruzioni PIC16F W = W + k d = W + f (dove d può essere W o f) W = W AND k d = W AND f (dove d può essere W o f) f(b) = 0 f(b) = 1 f(b) = 0? Si, salta una istruzione f(b) = 1? Si, salta una istruzione Chiama la subroutine all'indirizzo k f = 0 W = 0 Watchdog timer = 0 NA L3 7

8 DECF f,d Decrement f d = f -1 (dove d può essere W o f) DECFSZ f,d Decrement f, Skip if 0 d = f -1 (dove d può essere W o f) se d = 0 salta GOTO k Go to address Salta all'indirizzo k INCF f,d Increment f d = f +1 (dove d può essere W o f) INCFSZ f,d Increment f, Skip if 0 d = f +1 (dove d può essere W o f) se d = 0 salta IORLW k Inclusive OR Literal with W W = W OR k IORWF f,d Inclusive OR W with f d = f OR W (dove d può essere W o f) MOVLW k Move literal to W W = k MOVF f,d Move f d = f (dove d può essere W o f) MOVWF f Move W to f f = W NOP No Operation Nessuna operazione OPTION Load Option Register OPTION = W RETIE Return from Interrupt Ritorna da un interrupt handler RETLW k Return Literal to W Ritorna da una subroutine con W = k RETURN Return from Subroutine Ritorna da una subroutine RLF f,d Rotale Left f through Carry d = f << 1 (dove d può essere W o f) NA L3 8

9 RLF f,d RRF f,d SLEEP SUBLW k SUBWF f,d SWAPF f TRIS f XORLW k XORWF f,d Set istruzioni PIC16F Rotale Left f through Carry Rotale Right f through Carry Go into Standby Mode Subtract W from Literal Subtract W from f Swap f Load TRIS Register Exclusive OR Literal with W Exclusive OR W with f d = f << 1 (dove d può essere W o f) d = f >> 1 (dove d può essere W o f) Mette in standby il PIC W = k - W d = f - W (dove d può essere W o f) f = Swap dei bit 0123 con 4567 di f TRIS di f = W W = W XOR k d = f XOR W (dove d può essere NA L3 9

10 Il programma per il PIC si può scrivere usando un Compilatore ad alto livello, ossia un software che usa istruzioni a livello più elevato, per velocizzare e facilitare la stesura del programma. Il Compilatore può essere in linguaggio BASIC ( ad esempio il PicBasic) in linguaggio C Il software per il PIC 2 modo di tipo grafico, ossia che usa simboli grafici al posto delle istruzioni. Ad esempio usa il simbolo di una porta AND al posto dell istruzione assembler equivalente. Due esempi di compilatori grafici sono il Visual Parsic e il Proton+. I compilatori devono essere acquistati ; i più semplici in Basic o C sono a basso costo o anche freeware. Alcuni compilatori, come il Proton+, offrono delle versioni di prova dette Lite, cioè con funzioni limitate. NA L3 10

11 Il software per il PIC 2 modo NA L3 11

12 Il sistema di sviluppo CCS PCWH NA L3 12

13 Programmazione dei PIC Esempio di file HEX : A00C92D0000FF00030E8301A10003 : A08A0008A010408A A : A A5007A08A6007B08A E : B1E1D280B C EDD : C1A F : F F FA002708FB : A00210E8300FF0E7F0E09008A110A12FA : E4288A110A A108A100A118207B6 : D C9 : D :103F10008A B0000A128A EE :103F20000A168A B0000A128A C :103F A168A B08B0000A128A1165 :103F A168A B0000A123B :103F50008A A168A15AE2F8A150A12B0 :103F6000B12E0A148A140A158207FE2CFE2CFE2C90 :023F7000FE2C25 :02400E00323F3F : FF ;PIC16F876 NA L3 13

14 Programmazione del PIC La famiglia PIC16F8X, che comprende il 16F84, il 16F877 ecc., può essere programmata : separatamente, con un Programmatore direttamente, mentre si trova già montato nel circuito finale, aggiungendo nello schema del progetto un adatto connettore in più ( programmazione in-circuit) Dato che il PIC ha una memoria Flash di programma, sono possibili veloci variazioni o aggiornamenti del codice programma. NA L3 14

15 Programmazione del PIC Dopo aver scritto il programma, cioè il codice sorgente, lo si compila: viene creato un file oggetto con estensione.hex, il quale deve essere caricato nella memoria di programma del PIC. Per caricare il file.hex nella memoria programma del PIC occorre: Un personal computer Un programmatore Il software di gestione del programmatore NA L3 15

16 Il primo esercizio => Blinking Led Led lampeggiante che si accende e si spegne ogni mezzo secondo Punti fongamentali per: Analisi, progettazione e stesura del software Analisi e stesura per punti cronologici del problema Flow Charts Scrittura del codice NA L3 16

17 Analisi della soubroutine di ritardo di 500 ms Il concetto è molto semplice: il microcontrollore deve aspettare 500 ms senza compiere alcuna operazione attiva. Ad esempio se il controllore 1. Decrementa il contenuto di un registro (1 µs) 2. Torna a 1. se il contenuto del registro è <> 0 [Confronto] (2 µs) In totale avremo un tempo di esecuzione pari a 3 µs. Se ripetiamo questa operazione per volte avremo un tempo di esecuzione pari a µs cioè circa 500 ms Il nostro controllore possiede registri ad 8 bit allora possiamo sfruttare la seguente logica sfruttando 2 registri ad 8 bit e ricordando che i registri sono ciclici cioè 00-1= FF 1. Riserviamo due registri (delayl e delayh); set delayl 0 e delayh 0 2. Decrement delayl 1 µs 3. se delayl 0 jump 2. else 4. 2 µs 4. questa operazione viene ripetuta per FF 5. (256) volte cioè per 256 x 3 = 768 µs Decrement delayh 1 µs 7. se delayh 0 jump 2. else 6. 2 µs 8. questa operazione viene ripetuta per FF 9. (256) volte cioè per 256 x 3 = 768 µs Considerando che i due cicli sono annidati avremo che i due registri tornano ambedue a zero dopo un tempo pari a 768 x 768 = µs cioè quasi 500 ms. Fine Routine Return NA L3 17

18 Analisi della soubroutine di ritardo di 500 ms -> Flow Chart Il concetto è molto semplice: il microcontrollore deve aspettare 500 ms senza compiere alcuna operazione attiva. Ad esempio se il controllore Decrementa il contenuto di un registro (1 µs) Torna a 1. se il contenuto del registro è <> 0 [Confronto] (2 µs) In totale avremo un tempo di esecuzione pari a 3 µs. Se ripetiamo questa operazione per volte avremo un tempo di esecuzione pari a µs cioè circa 500 ms Il nostro controllore possiede registri ad 8 bit allora possiamo sfruttare la seguente logica sfruttando 2 registri ad 8 bit e ricordando che i registri sono ciclici cioè 00-1= FF 1. Riserviamo due registri (delayl e delayh); set delayl 0 e delayh 0 2. Decrement delayl 1 µs 3. se delayl 0 jump 2. else 4. 2 µs 4. questa operazione viene ripetuta per FF 5. (256) volte cioè per 256 x 3 = 768 µs 6. Decrement delayh 1 µs 7. se delayh 0 jump 2. else 6. 2 µs 8. questa operazione viene ripetuta per FF 9. (256) volte cioè per 256 x 3 = 768 µs Considerando che i due cicli sono annidati avremo che i due registri tornano ambedue a zero dopo un tempo pari a 768 x 768 = µs cioè quasi 500 ms. Fine Routine Return NA L3 18

19 ;*********************************************************** ;Led blinking -> ON/OFF ogni 500 ms ;Led collegato su RB0 ;N.A. October 2004 ;******************************************** PROCESSOR 16F877A ;Direttive preprocessore RADIX DEC INCLUDE "P16F877A.INC" ERRORLEVEL -302 CONFIG 3FF1H LED EQU 0 ;Bit 1 della porta relativa ORG 20h ;Registro general purpose ram RES 2 ;Riservo due registri a 8 bit ORG 00H ;Start reset vector bcf STATUS,RP1 ;Scelgo il Bank 1 bsf STATUS,RP0 ;RP1=0 RP0=1 movlw B ;Bit PORTA come input movwf TRISA movlw B ;Bit1 PORTB in Out movwf TRISB ;gli altri bit in input bcf STATUS,RP0 ;Torno al Bank0 bsf PORTB,LED ;Accendo il Led Loop ; Label call Delay500 ;Delay 500 ms btfsc PORTB,LED ;Spengo il led goto Spegni ;se è acceso bsf PORTB,LED ;Accendo il led goto loop ;Jump a Loop Il Listato completo Spegni bcf PORTB,LED ;Spengo il led goto loop ;Jump a Loop Delay500 Clrf ram Clrf ram+1 ;Sobroutine di ritardo ;Azzero i due registri ;riservati Ciclo_di_ritardo decfsz ram,1 ;Decremento il registro ram goto Ciclo_di_ritardo ;per 256 volte decfsz ram+1,1 ;Decremento il registro ram +1 goto Ciclo_di_ritardo ;per 256 volte return ;Fine soubroutine END ;Indispensabile alla fine del listato NA L3 19

20 Analisi del listato Direttive Le direttive non sono delle istruzioni mnemoniche che il compilatore traduce nel rispettivo opcode, ma delle semplici indicazioni rivolte al compilatore per determinarne il funzionamento durante la compilazione PROCESSOR 16F877 PROCESSOR è una direttiva del compilatore assembler che consente di definire per quale microprocessore è stato scritto il nostro source. In questo caso informiamo il compilatore che le istruzioni che abbiamo inserito nel nostro source sono relative ad un PIC16F877 RADIX DEC La direttiva RADIX serve ad informare il compilatore che i numeri riportati senza notazione, sono da intendersi come numeri decimali ORG 00H Questa seconda direttiva fa riferimento ad un indirizzo in area programma nella EEPROM. Da questo punto in poi andremo infatti ad inserire le istruzioni mnemoniche che il compilatore dovrà convertire negli opportuni opcode per il PIC. Il primo opcode eseguito dal PIC dopo il reset è quello memorizzato nella locazione 0, da qui il valore 00H inserito nella ORG. NA L3 20

21 Analisi del listato Direttive La direttiva EQU (parola riservata)è molto importante in quanto ci consente di definire delle costanti simboliche all'interno del nostro codice sorgente. In particolare : LED EQU 3 la parola LED (nome scelto da noi) da questo punto in poi nel sorgente sarà equivalente al valore 3 Nel prossimo esempio incontriamo una (label)etichetta : RAM e una direttiva: RES. La direttiva RES indica al compilatore che intendiamo riservare un certo numero di byte o meglio di file register all'interno dell'area dati: ORG ram RES 2 in questo caso verranno riservate la locazione 20H e 21H. La label RAM, dove RAM è un nome scelto da noi, è un marcatore che nel resto del codice sorgente assumerà il valore dell'indirizzo in cui è stato inserito. ORG 00H Questa seconda direttiva ORG fà riferimento ad un indirizzo in area programma (nella EEPROM) anzichè in area dati. Da questo punto in poi andremo infatti ad inserire le istruzioni mnemoniche che il compilatore dovrà convertire negli opportuni opcode per il PIC. NA L h

22 Analisi del listato OpCode Il primo opcode eseguito dal PIC dopo il reset è quello memorizzato nella locazione 0, da qui il valore 00H inserito nella ORG. bsf STATUS,RP0 Ecco finalmente la prima istruzione mnemonica completa di parametri. I PIC hanno una CPU interna di tipo RISC per cui ogni istruzione occupa una sola locazione di memoria, opcode e parametri inclusi. In questo caso l'istruzione mnemonica bsf sta per BIT SET FILE REGISTER ovvero metti a uno (condizione logica alta) uno dei bit contenuti nella locazione di ram specificata. Il parametro STATUS viene definito nel file P16F877A.INC tramite una direttiva EQU. Il valore assegnato in questo file è 03H e corrisponde ad un file register (ovvero una locazione ram nell'area dati) riservato. Anche il parametro RP0 viene definito nel file P16F877A.INC con valore 05H e corrisponde al numero del bit che si vuole mettere a uno. Ogni file register è lungo 8 bit e la numerazione di ciascuno parte da 0 (bit meno significativo) fino ad arrivare a 7 (bit più significativo) Questa istruzione in pratica mette a 1 il quinto bit del file register STATUS, è necessaria per accedere ai file register TRISA e TRISB come vedremo ora. movlw B Questa istruzione sta a significare: MOVE LITERAL TO W REGISTER ovvero muovi un valore costante nell'accumulatore. L'accumulatore è un particolare registro utilizzato dalla CPU in tutte quelle situazioni in cui vengono effettuate operazioni tra due valori oppure in operazioni di spostamento tra locazioni di memoria. In pratica è un registro di appoggio utilizzato dalla CPU per memorizzare temporaneamente un byte ogni volta che se ne presenta la necessità. Il valore costante da memorizzare nell'accumulatore è B ovvero un valore binario a 8 bit dove il bit più a destra rappresenta il bit 0 o bit meno significativo. NA L3 22

23 Nell'istruzione successiva: Analisi del listato OpCode movwf TRISA il valore viene memorizzato nel registro TRISA (come per il registro STATUS anche TRISA è definito tramite una direttiva EQU) la cui funzione è quella di definire il funzionamento di ogni linea di I/O della porta A. In particolare ogni bit ad uno del registro TRISA determina un ingresso sulla rispettiva linea della porta A mentre ogni 0 determina un'uscita. Nella seguente tabella viene riportata la configurazione che assumeranno i pin del PIC dopo l'esecuzione di questa istruzione: Come è possibile vedere i bit 6 e 7 non corrispondono a nessuna linea di I/O e quindi il loro valore non ha alcuna influenza. NA L3 23

24 Analisi del listato OpCode Le due istruzioni successive svolgono le stesse funzioni per la porta B del PIC: in questo caso la definizione delle linee sarà la seguente: Si noti come il valore 0 nel bit 0 del registro TRISB determini la configurazione in uscita della rispettiva linea del PIC. Nella nostra applicazione infatti questa linea viene utilizzata per pilotare il LED da far lampeggiare. movlw B Movwf TRISB L'istruzione movwf TRISB trasferisce il valore contenuto nell'accumulatore (inizializzato opportunamente con l'istruzione movlw B) nel registro TRISB. Il significato di movwf è infatti MOVE W TO FILE REGISTER. NA L3 24

25 Analisi del listato OpCode bcf STATUS,RP0 Questa istruzione è simile alla bsf vista in precedenza, con la sola differenza che azzera il bit anzichè metterlo a uno. La sigla un questo caso è BIT CLEAR FILE REGISTER. Dal punto di vista funzionale questa istruzione è stata inserita per consentire l'accesso ai registri interni del banco 0 anzichè ai registri interni del banco 1 di cui fanno parte TRISA e TRISB. N.B:=> La direttiva assembler BankSel.. Viene oggi suggerita dalla microchip per la selezione dei registri dei rispettivi banchi di memoria; in seguito vedremo un uso appropriato di questa direttiva. bsf PORTB,LED Con questa istruzione viene effettuata la prima operazione che ha qualche riscontro all'esterno del PIC. In particolare viene acceso il led collegato alla linea RB0. PORTB è una costante definita in P16F877A.INC e consente di referenziare il file register corrispondente alle linee di I/O della porta B mentre LED è il numero della linea da mettere a 1. All'inizio del source la costante LED è stata definita pari a 0, quindi la linea interessata sarà RB0. NA L3 25

26 Analisi del listato OpCode Loop Questa linea contiene una label ovvero un riferimento simbolico ad un indirizzo di memoria. Il valore della label, come detto in precedenza, viene calcolato in fase di compilazione in base al numero di istruzioni, alle direttive ORG e alle altre istruzione che in qualche modo allocano spazio nella memoria del PIC. In questo caso, se contiamo le istruzioni inserite a partire dall'ultima direttiva ORG possiamo calcolare il valore che verrà assegnato a MainLoop ovvero 09H. In realtà il valore che assumono le label non ha molta importanza in quanto il loro scopo è proprio quello di evitare di dover conoscere la posizione precisa degli opcode nella memoria del PIC permettendo comunque di referenziare una determinata locazione di memoria. In questo caso la label Loop viene utilizzata come punto di ingresso di un ciclo (dall'inglese Loop) di accensione e spegnimento del led, ovvero una parte di codice che verrà ripetuta ciclicamente all'infinito. call Delay500 Questa istruzione dermina una chiamata (dall'inglese call) ad una subroutine che inizia in corrispondenza della label Delay. Le subroutine sono delle parti di programma specializzare ad effettuare una funzione specifica. Ogni qualvolta è necessaria quella funzione è sufficiente richiamarla con una sola istruzione, anzichè ripetere ogni volta tutte le istruzioni necessarie ad effettuarla. In questo caso la subroutine inserisce un ritardo pari al tempo di accensione e spegnimento del led. NA L3 26

27 Analisi del listato OpCode btfsc PORTB,LED Il significato di questa istruzione è BIT TEST FLAG, SKIP IF CLEAR ovvero controlla lo stato di un bit all'interno di un registro e salta l'istruzione successiva se il valore di tale bit è zero. Il bit da controllare corrisponde alla linea di uscita cui è collegato il diodo led, tramite questo test potremo determinare quindi se il led è acceso o spento e quindi agire di conseguenza, ovvero se il led è gia acceso lo spegneremo, se il led è spento lo accenderemo. goto Spegni Questa istruzione è un salto incondizionato (dall'inglese GO TO, vai a)alla label SetToZero dove troveremo le istruzioni per spegnere il led. Questa istruzione verrà saltata dall'istruzione successiva se il led è gia spento. bsf PORTB,LED goto Loop Queste due istruzioni semplicemente accendono il led e rimandano il programma all'ingresso del ciclo di lampeggiamento. Spegni bcf PORTB,LED goto Loop Queste istruzioni semplicemente spengono il led e rimandano il programma all'ingresso del ciclo di lampeggiamento. NA L3 27

28 Analisi del listato La soubroutine Delay Come descritto in precedenza questa subroutine inserisce un ritardo di circa un secondo e può essere chiamata più volte nel source tramite l'istruzione call Delay. La soubroutine di ritardo Delay500 clrf ram clrf ram+1 Ciclo_di_ritardo decfsz ram,1 goto Ciclo_di_ritardo decfsz ram+1,1 goto Ciclo_di_ritardo return END Delay e Ciclo_di_ritardo sono due label. Delay identifica l'indirizzo di inizio della subroutine e viene utilizzato per le chiamate dal corpo principale del programma. Ciclo_di_ritardo viene chiamato internamente dalla subrountine e serve come punto di ingresso per il ciclo (dall'inglese loop) di ritardo. In pratica il ritardo viene ottenuto eseguendo migliaia di istruzioni che non fanno nulla! Questo tipo di ritardo si chiama ritardo software o ritardo a programma. E' il tipo di ritardo più semplice da implementare e può essere utilizzato quando non è richiesto che il PIC esegua altri compiti mentre esegue il ritardo. NA L3 28

29 La soubroutine di ritardo Delay500 clrf ram clrf ram+1 Ciclo_di_ritardo decfsz ram,1 goto Ciclo_di_ritardo decfsz ram+1,1 goto Ciclo_di_ritardo return END Analisi del listato La soubroutine Delay Clrf ram clrf ram +1 CLEAR FILE REGISTER azzerano le due locazioni di ram riservate precedentemente con l'istruzione: ram RES 2 Queste due locazioni sono adiacenti a partire dall'indirizzo referenziato dalla label ram (in pratica 20H e 21H decfsz ram,1 L'istruzione significa DECREMENT FILE REGISTER, SKIP IF ZERO ovvero decrementa il contenuto di un registro (in questo caso Count e salta l'istruzione successiva se il valore raggiunto è zero). Se il valore raggiunto non è zero viene eseguita l'istruzione successiva: goto Ciclo_di_ritardo Che rimanda rimanda l'esecuzione all'inizio del ciclo di ritardo. NA L3 29

30 Analisi del listato La soubroutine Delay La soubroutine di ritardo Delay500 clrf ram clrf ram+1 Ciclo_di_ritardo decfsz ram,1 goto Ciclo_di_ritardo decfsz ram+1,1 goto Ciclo_di_ritardo return END Per finire END è una direttiva (indispensabile) che indica al compilatore la fine del source assembler. Una volta raggiunto lo zero con il contatore ram vengono eseguite le istruzioni: decfsz ram+1,1 goto Ciclo_di_ritardo Che decremetano il registro seguente fino a che anche questo raggiunge lo zero. Il registro ram+1 in particolare verrà decrementato di uno ogni 256 decrementi di ram. Quando anche ram +1 avrà raggiunto lo zero l'istruzione: return il cui significato è RETURN FROM SUBROUTINE determinerà l'uscita dalla routine di ritardo ed il proseguimento dell'esecuzione dall'istruzione successiva la call Delay. NA L3 30

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

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

PROGRAMMAZIONE ASSEMBLER

PROGRAMMAZIONE ASSEMBLER PROGRAMMAZIONE ASSEMBLER Esempio di semplice lampeggiatore a LED 072805 Sistemi Elettronici Dicembre 2006 Ultimo aggiornamento: 11 dicembre 2006 1 OBBIETTIVI 1 Discutere delle metodologie di progetto e

Dettagli

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

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

Dettagli

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

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

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

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

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

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

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

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

Corso introduttivo sui microcontrollori A. S La programmazione dei PIC Esempio: 2 led blinking [alternate ON-OFF ] con ritardo di 500 ms

Corso introduttivo sui microcontrollori A. S La programmazione dei PIC Esempio: 2 led blinking [alternate ON-OFF ] con ritardo di 500 ms Corso introduttivo sui microcontrollori A. S. 2007 2008 Nicola Amoroso namoroso@mrscuole.net NA L5 1 Semplici esempi in assembler Vediamo ora dei semplici esempi di programmazione dei PIC in assembler,

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

Indice delle lezioni Che cosa sono i PIC? 2 1. L'area programma ed il Register File Le porte A e B Interrupt

Indice delle lezioni Che cosa sono i PIC? 2 1. L'area programma ed il Register File Le porte A e B Interrupt Indice delle lezioni Indice delle lezioni Introduzione ai PIC 1 1. Che cosa sono i PIC? 2. Realizziamo un semplice lampeggiatore a led 3. Scrittura e compilazione di un programma in assembler 4. Analizziamo

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

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

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

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

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

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

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

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

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

Manuale per la programmazione del PIC 16F84

Manuale per la programmazione del PIC 16F84 Manuale per la programmazione del PIC 16F84 Principi basi per la programmazione Introduzione alla programmazione Strutture basi di programmazione Descrizione del microcontrollore 16F84 Descrizione tecnica

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

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

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

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

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

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di

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

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI

UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI 1 Microcontrollori? Molti prodotti utilizzati quotidianamente contengono più intelligenza di quanto ogni utente possa immaginare. Uno studio indica che ogni

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Architettura di una CPU

Architettura di una CPU Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1

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

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

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

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

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

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

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

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

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

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

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

Programmazione strutturata

Programmazione strutturata Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

Richiami: Ciclo di sviluppo e ASIM

Richiami: Ciclo di sviluppo e ASIM Richiami: Ciclo di sviluppo e ASIM Corso Calcolatori Elettronici 2 Prof. Nicola Mazzocca Ing. Alessandra De Benedictis Programmi e linguaggio macchina Un programma è una sequenza di istruzioni che rappresentano

Dettagli

Interfacciamento di periferiche I/O al μp 8088

Interfacciamento di periferiche I/O al μp 8088 Interfacciamento di periferiche I/O al μp 8088 5.1 Principali segnali della CPU 8086 5.2 Periferiche di I/O e loro gestione 5.3 Collegamento di periferiche di input 5.4 Collegamento di periferiche di output

Dettagli

Qualche informazione sul microcontrollore PIC

Qualche informazione sul microcontrollore PIC Qualche informazione sul microcontrollore PIC Il Web contiene un ampia quantità di informazioni sui microcontrollori e sulla famiglia PIC in particolare. Accanto ai siti dei produttori hardware e software

Dettagli

IL PRIMO PROGRAMMA IN C

IL PRIMO PROGRAMMA IN C IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE

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

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull

Dettagli

Abilità Informa/che. capitolo 3. Prof. Fabio Calefato a.a Giurisprudenza

Abilità Informa/che. capitolo 3. Prof. Fabio Calefato a.a Giurisprudenza Abilità Informa/che capitolo 3 Prof. Fabio Calefato a.a. 2015-16 Giurisprudenza Archite3ura Hardware Degli Elaboratori Elemen> della macchina di Von Neumann Memoria principale Processore Memoria secondaria

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma Istituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS Dall'Algoritmo al Programma Pr.: 002 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

Corso introduttivo sui microcontrollori A. S Programmare i PIC in linguaggio C. Il CCS PCWH Pic-C Compiler

Corso introduttivo sui microcontrollori A. S Programmare i PIC in linguaggio C. Il CCS PCWH Pic-C Compiler Corso introduttivo sui microcontrollori A. S. 2007 2008 Il CCS PCWH Pic-C Compiler Il nostro primo esercizio: Blinking Led Nicola Amoroso namoroso@mrscuole.net NA L11 1 30 17 16 1 36 23 24 25 26 27 20

Dettagli

Dal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione

Dal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione Dal sorgente all eseguibile I programmi Assembly Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Riferimenti sul Patterson: Cap. 2.10 + Appendice B, tranne B.7

Dettagli

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA LINGUAGGIO MACCHINA e ASSEMBLER Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA Nel computer non vengono memorizzati soltanto i dati da elaborare ma anche il programma

Dettagli

PRIMI PASSI CON ARDUINO

PRIMI PASSI CON ARDUINO PRIMI PASSI CON ARDUINO 1) Accensione e spegnimento del led presente sulla scheda Arduino. La scheda Arduino presenta, a bordo, alcuni led uno dei quali può essere controllato dal pin digitale 13; quando

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

Dettagli

(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI

(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI 1 (a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI ISA E MICROARCHITETTURA DI PROCESSORI IL PROCESSORE MU0 MODELLAZIONE VERILOG E SIMULAZIONE DEL PROCESSORE MU0 2 ISA E MICROARCHITETTURA

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

Dettagli

Università degli studi di Bologna Anno Accademico 2000/2001 Corso di Architettura degli elaboratori

Università degli studi di Bologna Anno Accademico 2000/2001 Corso di Architettura degli elaboratori Università degli studi di Bologna Anno Accademico 2000/2001 Corso di Architettura degli elaboratori Esercitazione di Reti Logiche Realizzazione completa di un'architettura di processore attraverso strumenti

Dettagli

Laboratorio di Architettura degli Elaboratori

Laboratorio di Architettura degli Elaboratori Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni

Dettagli

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1 Concetti base della Tecnologia dell informazione Algoritmi Come interpreta un computer un problema? Algoritmi Algoritmo: sequenza ordinata di istruzioni per risolvere un problema (tradotto: sequenza di

Dettagli

Modi di esecuzione user / kernel

Modi di esecuzione user / kernel Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2006/2007 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Il Processore (CPU) 2 rchitettura del processore CPU Unità di Controllo Unità ritmetica Logica

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

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if

Dettagli

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003 Il Ciclo Fetch-Decode-Execute C Nyssen/Aberdeen College 2003 Linguaggio Assembler Op code (Mnemonico) Operando #assembly code program 0000 LDA-24 #loads 0001 ADD-25 #adds 0002 HLT #stops #end of program

Dettagli

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly Introduzione al linguaggio macchina Indice Che cos è l assembly Elementi del linguaggio Memoria di programma Registri interni e di I/O Registri particolari Rappresentazione dell

Dettagli

Esegue la sommatral'accumulatoreac e Se I=1, ilcontenutodellacelladi memoriailcui indirizzoè

Esegue la sommatral'accumulatoreac e Se I=1, ilcontenutodellacelladi memoriailcui indirizzoè Parte II AND 104 I, micro-operazioni c 0 t 0 : MAR PC c 0 t 1 : MBR M, PC PC+1 c 0 t 2 : OPR MBR(OP), I MBR(I) q 7 Ic 0 t 3 : R 1 Ciclo di fetch (q 7 +I )c 0 t 3 : F 1 c 1 t 0 : MAR MBR(AD); / 104 da Hex

Dettagli

Progettazione ed esecuzione di un prototipo circuitale per la rilevazione della temperatura ambiente.

Progettazione ed esecuzione di un prototipo circuitale per la rilevazione della temperatura ambiente. Progettazione ed esecuzione di un prototipo circuitale per la rilevazione della temperatura ambiente. Lavoro eseguito da alunni della spec.ne Elettronica e Telecomunicazioni Corso El/Te C RILEVATORE DI

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

I programmi Assembler e Linker

I programmi Assembler e Linker Testo di riferimento: [Congiu] 10.1-10.5 (pg. 267 291) 11.a I programmi Assembler e Linker Produzione del software Istruzioni, direttive, simboli, ecc. Processo di produzione del software Analisi del problema

Dettagli

Sistemi di numerazione

Sistemi di numerazione SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica

Dettagli

Lezione 16: L architettura LC-3

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

Dettagli

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B Linguaggi di programmazione Il linguaggio base di un elaboratore è il linguaggio macchina. Linguaggio macchina: insieme di istruzioni espresse nel formato numerico (binario) di un particolare processore.

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

Elettronica dei Sistemi Programmabili A.A. 2013-2014. Microcontrollori. Introduzione allo sviluppo di progetti

Elettronica dei Sistemi Programmabili A.A. 2013-2014. Microcontrollori. Introduzione allo sviluppo di progetti Elettronica dei Sistemi Programmabili A.A. 2013-2014 Microcontrollori Introduzione allo sviluppo di progetti Premessa Qualunque sistema basato su microcontrollore deve eseguire un codice memorizzato in

Dettagli

Fondamenti VBA. Che cos è VBA

Fondamenti VBA. Che cos è VBA Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione

Dettagli

Lezione4: MIPS e Istruzioni (1 Parte)

Lezione4: MIPS e Istruzioni (1 Parte) Architettura degli Elaboratori Lezione4: MIPS e Istruzioni (1 Parte) Michele Nappi mnappi@unisa.it http://www.biplab.unisa.it/ Alcune slide di questa lezione sono prodotte dal Prof. Luigi Palopoli AGENDA

Dettagli

Corso di Architettura (Prof. Scarano) 09/04/2002

Corso di Architettura (Prof. Scarano) 09/04/2002 Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno

Dettagli