1 / 20

COSA SONO A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

PIC. COSA SONO A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE. COSA SONO

dick
Download Presentation

COSA SONO A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

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. PIC COSA SONO A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE ARI - ROMA IK0OTG

  2. COSA SONO I PIC (Peripheral Interface Controllers), sono circuiti integrati prodotti dalla Microchip, appartenenti alla categoria dei microcontrollori, ovvero componenti che integrano, in un unico dispositivo, tutti i circuiti necessari a realizzare un computer completo e programmabile. PROG MEM RAM EEPROM I/O VIDEO HD FD MICROCONTROLLORE COMPUTER AUX CPU ARI - ROMA IK0OTG

  3. Queste sono le foto del primo microprocessore della storia (CPU) prodotto dalla INTEL e l’ingrandimento del suo chip interno, con le iniziali di Federico Faggin che nel 1970, insieme a Ted Hoff e Stanley Mazor, ne curò la realizzazione su richiesta della giapponese Busicom. ARI - ROMA IK0OTG

  4. Internamente i microcontrollori contengono tutti i dispositivi tipici di un sistema a microprocessore: CPU (Central Processor Unit) La CPU è il “cervello” del microcontrollore in quanto si occupa di interpretare le istruzioni di programma. Memoria programma (FLASH) Memorizza le istruzioni da eseguire, (il programma), per i PIC di nostro interesse, è una memoria di tipo FLASH, ossia una memoria che non si cancella togliendo tensione e si può riscrivere migliaia di volte. Memoria RAM (Random Access Memory) La memoria RAM è utilizzata dal programma per memorizzare le variabili. È di tipo non permanente, quindi, togliendo la tensione di alimentazione, i dati andranno perduti. ARI - ROMA IK0OTG

  5. Memoria EEPROM (Electrical Erasable Programmable Read Only Memory) La memoria EEPROM si usa per memorizzare le variabili utilizzate nel programma. È di tipo permanente, quindi togliendo la tensione di alimentazione, i dati rimarranno memorizzati. Linee di I/O (Input/Output) Le linee d’ingresso e uscita. Si utilizzano per pilotare o ricevere segnali da dispositivi esterni (sensori, pulsanti, display ecc). Dispositivi ausiliari Convertitori AD, contatori, generatori di clock, bus, porte seriali, eccetera. ARI - ROMA IK0OTG

  6. Questi microcontrollori, adottano un’architettura RISC (Reduced Instructions Set Code), ed eseguono istruzioni con una frequenza di clock sino a 20 - 40 MHz a seconda dei tipi, ossia con potenze di calcolo di 5 – 10 MIPS. (Mega Instructions Per Second) La potenza di calcolo dei sistemi a microprocessore, si ottiene dividendo per quattro la frequenza di clock. Ad esempio: 20 MHz / 4 = 5 MIPS Questo rende i PIC dei microcontrollori relativamente veloci, specie considerando il fatto che, su ogni pin, forniscono/dissipano correnti di 25mA, mentre altri microcontrollori, generalmente, erogano 5mA e difficilmente arrivano a 10mA ARI - ROMA IK0OTG

  7. Esistono quattro famiglie di PIC ad 8 bit. PIC10, PIC12, PIC16, PIC18con caratteristiche e prestazioni diverse per: • Tipo di contenitore (DIP, SOIC, ecc.) • Quantità di memoria (DIP - da 375 bytes a 96 Kb) • Linee di I/O (DIP - da 4 a 36) • Dispositivi ausiliari • Numero di piedini (DIP - da 6 a 40 pin) Nel sito web della Microchip, www.microchip.comsi possonotrovare data sheets, informazioni tecniche, software di supporto ed esempi di applicazioni. ARI - ROMA IK0OTG

  8. A COSA SERVONO Con i microcontrollori PIC si possono realizzare • timer • rivelatori e misuratori di tensioni • termometri • frequenzimetri • generatori di tensione e frequenza variabili (PWM) • circuiti di controllo per la gestione di PLL – DDS - DSP • gestione di display alfanumerici e grafici • ecc. ecc. Praticamente, con l’aggiunta di altri componenti, è possibile fare quasi tutte quelle cose connesse con l’elettronica digitale e molte di quelle analogiche. Il limite è solo nella fantasia del progettista. ARI - ROMA IK0OTG

  9. COME SI UTILIZZANO Come per tutti i circuiti elettronici, è necessario realizzare un circuito comprendente il PIC e tutti gli altri componenti necessari. I circuiti possono essere realizzati impiegando una breadboard, una scheda millefori o, se si è sicuri del risultato, direttamente il circuito stampato. In commercio esistono schede, dette di sviluppo, che mediante una serie di zoccoli, led, display, connettori e interruttori, permettono di creare il circuito hardware come ci serve. Queste schede, inoltre, contengono anche il programmatore necessario per programmare il PIC ARI - ROMA IK0OTG

  10. Questa è una scheda di sviluppo prodotta dallamikroElektronica ARI - ROMA IK0OTG

  11. Se per il nostro circuito non usiamo una scheda di sviluppo, ci servirà un programmatore per PIC. Consiste in un circuito che va collegato ad un PC tramite la porta seriale o parallela o USB a seconda del tipo di programmatore, e contiene dei componenti ed alcuni zoccoli vuoti Il PIC da programmare si inserisce su uno zoccolo del programmatore e, mediante opportuno software installato nel PC, lo si programma, ossia si copiano nella memoria del PIC le istruzioni necessarie per il suo funzionamento. In commercio esistono una miriade di programmatori che hanno un costo da un minimo di 15€ sino a qualche centinaio di euro. Per iniziare vanno benissimo anche quelli economici. In genere quelli più economici hanno la porta seriale. ARI - ROMA IK0OTG

  12. Questi sono dei programmatori prodotti dalla microEngineering Labs ARI - ROMA IK0OTG

  13. COME SI PROGRAMMANO Scrivere un programma per un computer, significa scrivere una serie di istruzioni sequenziali in un linguaggio comprensibile dal computer. L’unica lingua che il computer capisce è il codiceBINARIO (BIN),ossia una serie di 0 (zeri) e di 1(uno), che opportunamente combinati formano il Codice operativo stabilito dal costruttoreed hanno un preciso significato solo per quella CPU. Ad esempio per il PIC 16F84A i seguenti codici operativi hanno il significato riportato in Italiano. OPCODE ASM ITALIANO 00 0000 0000 1001 RETFIE Ritorna da un interrupt 00 0000 0000 1000 RETURN Ritorna da una subroutine 00 0000 0110 0011 SLEEP Vai in modalità standby ARI - ROMA IK0OTG

  14. Poiché è estremamente difficoltoso, ricordare delle istruzioni in linguaggio binario(BIN), ad ogni gruppo di 4 cifre è stato dato un valore numerico in base 16 così 0000 vale 0x0 mentre 0110 vale 0x6 e 1111 vale 0xF. Questo codice si chiama ESADECIMALE (HEX) e lo 0x serve per distinguerlo dal decimale. A tutte le istruzioni dei microcomputers sono stati poi associati dei codici mnemonici che sono la base del linguaggio Assembler(ASM). E’ stato poi scritto un programma che traduce i codici ASM in esadecimale(HEX) ed un altro che traduce l’esadecimale(HEX) in binario(BIN). Scrivere un programma in ASM, è più facile che scriverlo in BIN o HEX, ma pur sempre una operazione lunga e complessa, così che sono stati sviluppati altri linguaggi, detti ad alto livello, che permettono una scrittura più semplice e veloce. ARI - ROMA IK0OTG

  15. Fondamentalmente possono essere immaginati come delle macro che con delle parole chiave o delle brevi frasi, fanno eseguire al micro tutta una serie di operazioni. Anche per questi linguaggi è poi necessario un interprete che traduce le istruzioni in codice HEX Il più noto di questi linguaggi è il BASIC (Beginner’s All-purpose Symbolic Instruction Code) che fa uso di parole e frasi in Inglese e di solito usa l’estensione (.BAS). Per programmare i PIC sono stati sviluppati dei linguaggi ad alto livello basati sul Pascal, sul C++ e sul Basic Per i nostri esempi useremo il Proton IDE basato sul BASIC. A conferma di quanto detto sino ad ora vediamo la differenza tra i linguaggi HEX e BAS. Diciamo al PIC 16F84A di scrivere sul display, a partire dal primo carattere della prima riga, la frase ARI ROMA ARI - ROMA IK0OTG

  16. Con il Proton il programma è: Device 16F84A Xtal 4 Print At1,1,"ARI ROMA“ Questo è il programma in Esadecimale :10000000 7228 8D01 8D17 9400 FE30 5520 1408 5528 54 :10001000 9200 0611 8611 8316 0611 8611 0F30 8605 8F :10002000 8312 1208 8C18 3228 3E30 9000 8030 5920 FC :10003000 3330 9100 4620 1330 9000 8830 5920 4620 FC :10004000 6430 5820 4620 6430 5820 2230 9100 4620 E9 :10005000 2830 3120 0C30 3120 0630 3120 8C14 1208 29 :10006000 3228 0C14 9100 0C1C 4028 8611 033C 031C 00 :10007000 4528 4520 0730 9000 D030 5920 0314 0800 4F :10008000 0C14 FE3C 0319 5328 8615 0C1C 0C10 0615 85 :10009000 0F30 8605 1108 F039 8604 0611 910E 0C18 F0 :1000A000 4628 3230 5820 1208 6D28 8D1B 0828 0800 79 :1000B000 9001 E83E 8F00 9009 FC30 031C 6228 8F07 F6 :1000C000 0318 5F28 8F07 0000 900F 5F28 0F18 6828 1B :1000D000 8F1C 6C28 0000 6C28 0800 8313 8312 0313 04 :1000E000 0000 0800 8C01 8030 8D00 8030 0120 4130 FC :1000F000 0820 5230 0820 4930 0820 2030 0820 5230 93 :0E010000 0820 4F30 0820 4D30 0820 4130 0820 E4 :02400E00 F13F 80 :00000001 FF ARI - ROMA IK0OTG

  17. ESEMPIO DI APPLICAZIONE Con il PIC 12F683 vogliamo far lampeggiare un LED al ritmo di: • 1 secondo acceso • 1 secondo spento. Vogliamo inoltre utilizzare il minor numero di componenti possibile. Esaminando il data sheet del PIC, 12F683 vediamo che è dotato di un oscillatore di clock interno con precisione del ± 1%, più che sufficiente per il nostro scopo. Quelli che seguono sono; lo schema elettrico che dovremo realizzare ed il programma scritto con il Proton. ARI - ROMA IK0OTG

  18. Scriviamo il programma. Proton IDE ‘* Name : ARI led 1s.BAS '* Author : IK0OTG '* Date : 16/10/2009 '* Version : 1.0 ******************************************************* Device 12F683 OSCCON =% 01100101' setta oscillatore interno a ‘ 4MHz TRISIO =% 00000000 ' configuro tutte le porte in ‘ uscita inizio:GPIO.2 = 1 'metto la porta GPIO.2 a 1(+5V) e ‘accendo il LED DelayMS 1000'aspetto 1 secondo (1000 millisecondi) GPIO.2 = 0'metto la porta GPIO.2 a 0 (0V) e ‘spengo il LED DelayMS 1000'aspetto 1 secondo (1000 millisecondi) GoTo inizio'lo rimando alla label inizio e ricomincia ‘il ciclo ARI - ROMA IK0OTG

  19. Lo compiliamo, ottenendo un .HEX • Carichiamo il file ARI led 1s.HEX nel programmatore. Proton IDE ARI - ROMA IK0OTG

  20. Programmiamo il nostro PIC. Proton IDE • Lo montiamo nel circuito bradboard • Diamo tensione ed il led Lampeggia. ARI - ROMA IK0OTG

More Related