1 / 52

INTRODUZIONE AI PICmicro

INTRODUZIONE AI PICmicro. I Pic micro sono dei Circuiti Integrati della famiglia dei microcontrollori prodotti dalla MICROCHIP TECHNOLOGY INC. MICROCONTROLLORE. Legge segnali ai suoi ingressi (sensori,pulsanti,…etc.) Processa,eleabora tali segnali (dati)

tatum
Download Presentation

INTRODUZIONE AI PICmicro

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INTRODUZIONE AI PICmicro I Pic micro sono dei Circuiti Integrati della famiglia dei microcontrollori prodotti dalla MICROCHIP TECHNOLOGY INC.

  2. MICROCONTROLLORE • Legge segnali ai suoi ingressi (sensori,pulsanti,…etc.) • Processa,eleabora tali segnali (dati) • Pilota dispositivi collegati alle sue uscite (led,display,lcd,motori,..etc.)

  3. PIC16F84 • E’ il microcontrollore di cui ci occuperemo. • Si presenta in un package DIP a 18 pin.

  4. PIC1684 • Si presenta come in fig.

  5. DISPOSITIVI INTERNI AD UN MICRO • CPU (Central Processor Unit) unità centrale di elaborazione,interpreta le istruzioni del programma • EEPROM (Electrical Erase Programmable Read Only Memory)memoria programmabile a solo lettura,è il luogo ove viene memorizzato il programma. • LINEE I/O, linee di ingresso e di uscita,per pilotare disp. Esterni o ricevere segnali da sensori,pulsanti,..etc. • RAM (Random Access Memory) ovvero memoria ad accesso casuale.Utilizzata per memorizz. Le variabili del programma. • CLOCK, BUS, CONTATORI (TIMER),..etc.

  6. PIEDINATURA DEL PIC16F84

  7. Descrizione dei pin del PIC16F84 • RA2 è una linea di I/O programmabile in ingresso o in uscita. CORRISPONDE AL BIT 2 DELLA PORTA A. • RA3 è una linea di I/O programmabile in ingresso o in uscita. CORRISPONDE AL BIT 3 DELLA PORTA A. • RA4 / RTCC è un pin multifunzione che può essere programm. Come normale linea di I/O oppure come linea di clock in ingresso verso il contatore TMR0 se programm. Come linea I/O corrisponde al bit 4 della porta A.Diversamente dalle altre linee di I/O,quando funziona come uscita ,lavora a collettore aperto.

  8. MCLR/VPP In condizioni di normale funzionamento svolge le funzioni di Master Clear ovvero di RESET ed è attivo a livello 0.Quando il PIC deve essere programmato viene usato come ingressso per la tensione di programmazione VPP. • VSS è il pin a cui va collegato il negativo della tensione di alimentazione (massa). • RB0 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 0 DELLA PORTA B. • RB1 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 1 DELLA PORTA B. • RB2 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 2 DELLA PORTA B.

  9. RB3 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 3 DELLA PORTA B. • RB4 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 4 DELLA PORTA B. • RB5 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 5 DELLA PORTA B. • RB6 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 6 DELLA PORTA B. • RB7 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 7 DELLA PORTA B. • VDD è il terminale positivo dell’alimentazione (+5V) • OSC2/CLKOUT è un pin di connessione nel caso venga utilizzato un quarzo per generare il clock.E’ l’uscita del clock nel caso venga applicato un oscillatore RC o un oscill. Esterno.

  10. OSC1/CLKIN è un pin di connessione nel caso venga utilizzato un quarzo o un circuito RC per generare il clock.E’ l’ingresso del clock nel caso venga utilizzato un oscillatore esterno. • RA0 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 0 DELLA PORTA A. • RA1 è una linea di I/O programmabile in ingresso o uscita dall’utente.Corrisponde al BIT 1 DELLA PORTA A.

  11. ARCHITETTURA INTERNA DI UN PIC16F84

  12. LA ALU • La ALU ovvero unità aritmetica e logica • è la componente più complessa del pic in quanto contiene tutta la circuteria che svolge le funzioni di calcolo. • La ALU è presente in tutti i microprocessori e da essa dipende direttamente la potenza di calcolo.

  13. LA PROGRAM MEMORY • E’ una memoria di tipo EEPROM,ed utilizzata dal pic per tenere memorizzato il programma da esguire. • La sua capacità di memorizzazione è di 1024 locazioni ,ognuna in grado di contenere un opcode di 14 bit. • Il programma più complesso che potremo realizzare non potrà essere più lungo di 1024 istruzioni.

  14. MEMORIA RAM DEL PIC16F84 • Le prime 12 locazioni della pagina 0 (da 00H a 0BH) e della pagina 1 (da 80H a 8BH) sono riservate ai registri speciali usati per il funzionamento del pic e non possono essere usati per altri scopi. • Le 68 locazioni in pagina 0 indirizzate da 0CH a 4FH possono essere utilizzate liberamente dai nostri programmi per memorizzare variabili,contatori,ecc..

  15. MAPPATURA DELLA RAM DEL PIC16F84 -Registri con funzioni speciali--

  16. IL REGISTER FILE • E’ un insieme di locazioni di memoria RAM, ove è possibile leggere e modificare il contenuto, senza l’ausilio di programmatori esterni e direttamente dal programma in esecuzione sul PICmicro.

  17. L’ACCUMULATORE O REGISTRO W • E’ direttamente connesso alla ALU. • E’ una locazione di memoria ad 8 bit • E’ utilizzato spessissimo nei programmi per PIC.

  18. Le porte A e B • Il pic16F84 dispone di 13 linee di I/O organizzate in due porte denominate PORTA A e PORTA B. • La porta A dispone di 5 linee configurabili sia in ingressi che in uscite,indicate con RA0,RA1,RA2,RA3 ed RA4.

  19. La porta B dispone di 8 linee configurabili sia come ingressi che come uscite,identificate con RB0,RB1,RB2,RB3,RB4,RB5,RB6 ed RB7.

  20. REGISTRI PER LA GESTIONE DELLE PORTE • Per la gestione delle linee di I/O da programma,il pic dispone di due registri interni per ogni porta denominati TRISA e PORTA per la porta A e TRISB e PORTB per la porta B. • I registri TRISA e TRISB,determinano il funzionamento in ingresso o in uscita di ogni singola linea,i registri PORTA e PORTB determinano lo stato delle linee in uscita o riportano lo stato delle linee in ingresso.

  21. Ognuno dei bit contenuti nei registri menzionati corrisponde univocamente ad una linea di I/O. Ad esempio il bit 0 del registro PORTA e del registro TRISA corrispondono alla linea RA0,il bit 1 alla linea RA1 e cosi via.Questi se posti a 1 configurano la linea corrispondente come ingresso,se posti a 0 configurano la corrispondente linea come uscita.

  22. Schema delle linee RA0,RA1,RA2 e RA3

  23. Schema della linea RA4

  24. Schema delle linee RB0,RB1,RB2,RB3

  25. Schema delle linee RB4.RB5,RB6,RB7

  26. LINGUAGGIO ASSEMBLER • Ogni istruzione è rappresentata da un codice operativo (opcode) composto da 14 bit. • Viene memorizzata in una locazione di memoria programma. • Esempio di opcode: 00 0001 0000 0000 (rappr. Binaria) 0x100 (rappr. Esadec)

  27. Questi codici,privi di significato per un essere umano,sono gli unici che il pic è in grado di capire. • Per convenzione si associa,ad ogni opcode,una breve sigla mnemonica che aiuta a ricordare la funzione svolta da ogni istruzione. • L’opcode 0x100 di prima effettua l’azzeramento de registro W che in inglese viene indicato con la frase CLEAR W REGISTER,che abbreviata diventa CLRW

  28. Altre sigle mnemoniche definiscono tutte le istruzioni che il PICmicro è in grado di eseguire • L’insieme di queste sigle e le regole per ordinarle per formare un programma completo viene chiamato LINGUAGGIO ASSEMBLER.

  29. Per scrivere un programma in assembler occorre: • conoscere le istruzioni,per il pic che si vuole usare • Disporre di un elaboratore di testo con cui scrivere il programma. • Il file di testo ottenuto si chiama source o sorgente assember.

  30. L’ASSEMBLATORE • E’ un programma che traduce il nostro sorgente assembler nella giusta sequenza di istruzioni in formato binario che il pic è in grado di capire.

  31. SCHEMA DI FLUSSO DELLEOPERAZIONI E DEI FILE GENERATI NECESSARI PER OTTENERE UN PICmicro PROGRAMMATO

  32. La prima operazione la scrittura del sorgente assembler e la sua memorizzazione in un file di testo con l’estensione .ASM • Durante la compilazione ,l’assemblatore genera una serie di file con il nome identico al source,ma con estensione diversa. • .HEX è il file contenente gli opcode da inserire all’interno del pic. • .LST è un file di testo in cui è riportato l’intero source assembler e la corrispondente traduzione in opcode. • .ERR contiene la lista degli errori di compilazione riscontrati ed il numero di linea all’interno del source assembler in cui sono stati rilevati.

  33. Primo programma in assembler PROCESSOR 16F84 btfsc PORTB,LED RADIX DEC Goto setTozero INCLUDE “P16F84.INC” bsf PORTB,LED LED EQU 0 goto MainLoop ORG 0CH SetTozero COUNT RES 2 bcf PORTB,LED ORG 00H goto MainLoop Bsf STATUS,RP0 Movlw 00011111B Delay Movwf TRISA clrf Count Movlw B’11111110’ clrf Count+1 Movwf TRISB DelayLoop Bcf STATUS,RP0 decfsz Count,1 Bsf PORTB,LED goto DelayLoop mainLoop decfsz Count+1,1 Call Delay goto DelayLoop retlw 0 END

  34. IL CONTATORE TMR0 ED IL PRESCALER • Il registro TMR0 è un contatore. • Esso viene incrementato ogni 4 cicli macchina. • E’ programmabile direttamente dall’hardware del PIC. • Raggiunto il valore max pari a 255 esso viene azzerato automaticamente.

  35. La frequenza di conteggio è direttamente proporzionale alla freq. del clock applicata al chip. • Tale freq. può essere modificata programmando opportunatamente alcuni bit di configurazione.

  36. Catena di blocchi interni al pic che determinano il funzionamento del TMR0

  37. DESCRIZIONE DEI VARI BLOCCHI • blocchi FOSC/4 e TOCK1:sorgenti di segnale per il contatore. • Fosc/4 è un segnale generato internamente al pic dal clock ed è pari alla freq. di clock divisa per 4. • TOCK1 è segnale generato da un eventuale circuito estero ed applicato al pin TOCK1 (pin 3) del pic16F84.

  38. I blocchi TOCS e PSA sono 2 commutatori di segnale sulla cui uscita viene presentato uno dei due segnali d’ingresso in base al valore dei bit TOCS e PSA del registro OPTION. • Il PRESCALER è un divisore di frequenza programmabile a 8 bit,si usa nel caso in cui la freq. di conteggio inviata al TMR0 sia troppo elevata. • Configurando in modo opportuno i bit PS0,PS1 e PS2 del registro OPTION secondo la seguente tabella :

  39. CONFIGURAZIONE PRESCALER

  40. In base al valore dei bit TOCS e PSA del registro option si hanno le seguenti modalità difunzionamento :TOCS=1 E PSA=1

  41. TOCS=0 E PSA=0

  42. Funzionamento con prescalerTOCS=0 e PSA=0

  43. Il bit TOSE • La presenza della porta logica XOR,all’ingresso TOCK1 del pic,consente di determinare,tramite il bit TOSE del registro OPTION,se il contatore TMR0 deve essere incrementato in corrispondenza del fronte di discesa (TOSE=1) o del fronte di salita (TOSE=0)

  44. GLI INTERRUPT • E’ un evento esterno,che interrompe momentaneamente il programma principale per eseguire una porzione di programma specializzata nella gestione dell’evento verificatosi e riprendere l’esecuzione del programma principale.

  45. TIPI DI EVENTO E BIT DI ABILITAZIONE Tipi di eventi: • Cambiamento di stato sul pin RB0 • Fine conteggio del registro TMR0 • Cambiamento di stato sui pin da RB4 a RB7 • Fine scrittura su una locazione EEPROM.

  46. Bit di abilitazione (registro INTCON): • INTE (bit4):se viene messo a 1 viene abilitato l’interrupt del primo evento • TOIE (bit5):se viene messo a 1 viene abilitato l’interrupt del secondo evento. • RBIE(bit3):se viene messo a 1 viene abilitato il terzo evento. • EEIE(bit6):se viene messo a 1 viene abilitato l’interrupt del quarto evento.

  47. NOTA BENE: • ESISTE INOLTRE UN BIT DI ABILITAZIONE GENERALE DEGLI INTERRUPT CHE DEVE ESSERE MESSO A 1 ,OVVERO IL BIT GIE (GLOBAL INTERRUPT ENEBLE BIT) POSTO SUL BIT 7 DEL REGISTRO INTCON.

  48. INTERRUPT FLAGS Dato che qualunqe interrupt genera una chiamata alla locazione 04H,nel registro INTCON sono presenti dei flag che indicano quale è l’evento che ha generato l’interrupt,vediamoli: • INTF(bit 1) se vale 1 l’interrupt è stato generato dal cambiamento di stato sul pin RB0 • TOIF(bit 2) se vale 1 l’interrupt è stato generato al termine del conteggio del TMR0. • RBIF(bit 0) se vale 1 l’interrupt è stato generato dal cambiamento di stato sui pin da RB4 a RB7. Se nessuno dei tre bit vale 1 allora l’interrupt è stato generato sul fine scrittura nella EEPROM.

  49. IL POWER DOWN MODE • E’un particolare stato di funzionamento del PICmicro utilizzato per ridurre il consumo di corrente nei momenti in cui il pic non è utilizzato perché in attesa di un evento esterno. • Per esempio un telecomando per apricancello o per TV rimane inattivo fino a quando qualcuno non preme un tasto.Appena premuto il tasto il pic effettua una breve trasmissione e poi si rimette di nuovo nello stato di attesa. • Quindi l’effettivo utilizzo del pic è limitato a pochi ms. • Per evitare di consumare inutilmente l’energia della pila è possibile spegnere buona parte dei circuiti interni al pic e riaccenderli solo in corrispondenza di un evento esterno.

  50. L’istruzione SLEEP • Viene utilizzata per mettere il pic in power down mode e ridurre di conseguenza la corrente che passerà da circa 2 mA (a 5V con clock da 4MHz) a circa 2 uA,ovvero 1000 volte di meno! • Per entrare in Power Down Mode basta inserire l’istruzione SLEEP in un punto qualsiasi del nostro programma.

More Related