20
14/06/22 ARI - ROMA IK0OTG 1 COSA SONO A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

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

  • Upload
    dick

  • View
    55

  • Download
    4

Embed Size (px)

DESCRIPTION

PIC. COSA SONO A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE. COSA SONO - PowerPoint PPT Presentation

Citation preview

Page 1: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 1

COSA SONO A COSA SERVONO

COME SI UTILIZZANOCOME SI PROGRAMMANO

ESEMPIO DI APPLICAZIONE

Page 2: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 2

COSA SONOI 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.

CPU

RAMPROG

MEMI/O HD FDEEPROM VIDEO

MICROCONTROLLORE

AUX COMPUTER

Page 3: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 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.

Page 4: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 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.

Page 5: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 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 ausiliariConvertitori AD, contatori, generatori di clock, bus, porte

seriali, eccetera.

Page 6: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 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

Page 7: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 7

Esistono quattro famiglie di PIC ad 8 bit.PIC10, PIC12, PIC16, PIC18 con 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.com si possono trovare data sheets, informazioni tecniche, software di supporto ed esempi di applicazioni.

pippo
Page 8: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 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.

Page 9: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 9

COME SI UTILIZZANOCome 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

Page 10: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 10

Questa è una scheda di sviluppo prodotta dalla mikroElektronica

Page 11: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 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.

Page 12: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 12

Questi sono dei programmatori prodotti dalla microEngineering Labs

Page 13: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 13

COME SI PROGRAMMANOScrivere 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 codice BINARIO (BIN), ossia una serie di 0 (zeri) e di 1(uno), che opportunamente combinati formano il Codice operativo stabilito dal costruttore ed 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 ITALIANO00 0000 0000 1001 RETFIE Ritorna da un interrupt00 0000 0000 1000 RETURN Ritorna da una subroutine00 0000 0110 0011 SLEEP Vai in modalità standby

Page 14: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 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.

Page 15: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 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

Page 16: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 16

Con il Proton il programma è:Device 16F84AXtal 4Print At 1,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

Page 17: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 17

ESEMPIO DI APPLICAZIONECon 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.

Page 18: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 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

Page 19: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 19

Lo compiliamo, ottenendo un .HEX Carichiamo il file ARI led 1s.HEX

nel programmatore. Proton IDE

Page 20: COSA SONO  A COSA SERVONO COME SI UTILIZZANO COME SI PROGRAMMANO ESEMPIO DI APPLICAZIONE

22/04/23 ARI - ROMA IK0OTG 20

Programmiamo il nostro PIC. Proton IDE

Lo montiamo nel circuito bradboard Diamo tensione ed il led Lampeggia.