Il nostro primo esercizio: Blinking Led Nicola Amoroso · Connector DS1307 signal/clock 32....
Transcript of Il nostro primo esercizio: Blinking Led Nicola Amoroso · Connector DS1307 signal/clock 32....
NA – L11 1
Corso introduttivo sui microcontrollori
A. S. 2007 – 2008
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler
Il nostro primo esercizio: Blinking Led
Nicola [email protected]
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 2
La scheda permette la prototipazione rapida di gran parte dei PICmicro 40 pin grazie allo zoccolo da 40 PIN [18] e ai connettoriper la programmazione in-circuit [5] [6]. Tutti i piedini di I/O sono disponibili sui rispettivi connettori e inoltre vi è un oscillatore alquarzo da 4 MHz a 20 MHz [32] intercambiabile; quando viene impiegato l’oscillatore interno dei PIC (Pic ultima generazione), ijumper [33] permettono di selezionare i rispettivi piedini OSC1 e OSC2 come digital I/O Pin.
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – La demo-Board AnxaPic4
La scheda ha a bordo:
1. Display LCD 4 righe x 20 caratteri2. Connettore per alimentazione 9 V3. Interruttore ON/OFF4. Led Power ON5. Connettore ICD2 Debugger6. Connettore PicKit2 Programmer7. Zoccolo RTC PCF85838. Zoccolo RTC DS13079. Batteria tampone RTC 10. Buzzer piezoelettrico11. Jumper Pull-Up resistor12. Connettore TTL RS23213. Connettore per KeyBoard 4x414. 1-wire connector15. I2C connector16. Bus connector 40 pin17. Expansion connector18. Zoccolo 40 pin19. RB0 Interrupt Switch
20. Reset Switch21. Led on board22. Jumper (Led – ADC RA0) ON23. Trimmer RA0 ADC24. Trimmer Contrasto LCD Text25. Trimmer Contrasto LCD Graphic26. Trimmer retroilluminazione LCD27. Retroilluminazione LCD Switch28. Jumper I2C Pull-Up resistor ON29. Jumper Buzzer Pin select30. Jumper txt display mode R/W select31. Connector DS1307 signal/clock32. Oscillatore al quarzo33. Jumper select OSC1-OSC2 I/O 34. 1-wire DS18b20 connector35. 1-wire pin select36. LCD Graphic display connector36. Zoccolo I2C EEPROM memory
12 3
4
5
687
9
10
3514 13 12
11
1817
1615
232221
2019
27262524
31
30
29
283332
34
36
37
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 3
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
Conosciamo il sistema con un sempliceEsercizio => Blinking Led
Led lampeggiante che si accende e si spegne ogni mezzo secondo
Punti fondamentali per:Analisi - Progettazione - Stesura del software
1. Analisi e schema per punti cronologici del problema con definizione dell’HW [schema elettrico]
2. Flow – Charts
3. Scrittura del codice
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 4
1. Analisi e stesura per punti cronologici del problema con definizione dell’HW • Per questo semplice esercizio sfruttiamo l’HW implementato sulla scheda di sviluppo
utilizzando il led on board. Il led è collegato al pin RD3 (PortD pin3) del µC [cfr. Schematic
AnxaPic4].
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
Led on board attivoSulla AnxaPic4 demo-Boardclose jumper DL1 on (cfr. Slide2, indicatore [22])
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 5
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
2. Flow – Chart
È questa una condizionedi verifica sempre TRUE!
Infatti la condizione di verifica(1>0) restituisce sempre TRUE
Loop (ciclo) infinito!
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 6
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
3. Il codice sorgente
Prima di analizzare il codice opportuno una semplice introduzione sul CCS Pic Compiler.
A partire dalla versione 4 il CCS PCWH Pic-C compiler presenta la classica interfaccia a barre orizzontali.
Nuovi menu a barre
orizzontali per il CCS
PCWH 4.0 e superiori
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 7
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
3. Il codice sorgente
1. Aprire il compilatore CCS PCWH
2. Creare una cartella ‘blinkingLed’ che conterra` tutti i files relativi al nostro progetto (.c, .h., .lst, .cof, .hex ....)
3. Attiviamo la barra Project e scegliamo l’opzione => pic wizard[Pic wizard è un utile tool di questo compilatore che ci agevola notevolmente nelle impostazioni Hardware per il nostro controllore]
4. Sulla nuova finestra aperta, inseriamo il nome: “Lez11_blk_Led” per il file di progetto e quindi salviamo il tutto.
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 8
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
3. Il codice sorgente
Definiamo i parametri del progettoNella finestra General scegliamo il micro e attiviano le
opportune opzioni di scelta [fuses]Con la linguetta Code è possibile verificare il codice
generato che verrà inserito nel nostro file sorgente
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 9
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
3. Il codice sorgente
Definiamo i parametri del progettoAttiviamo la finestra Communications e deselezioniamo
l’opzione use RS232Con la linguetta Code è possibile verificare il codice
generato che verrà inserito nel nostro file sorgente
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 10
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
3. Il codice sorgentePer questo progetto non dobbiamo definire nessun’altro parametro e quindi click du OK!Nella finestra di editor appare il codice automaticamente generato.
Dovremo avere una videatasimile a questa, se così non èsi può sempre settare l’editordal menù “Options” ->“Editor proprierties…”.
-------------------------------
queste righe sono generate automaticamente (setupperiferiche ).
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 11
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
3. Il codice sorgente Spesso per i files da includere nel progetto è meglio lavorare con percorsi relativi (indipendenti dalPC in uso) che considerare Pathe directory con perscorsiassoluti!
Nell’esempio a fianco il file “Lez11_dlk.Led.h”
verrà ricercato nella cartella di lavoro del progetto e non viene presa in considerazione tutto il percorso di ricerca come impostato nella slide precedente, diventa in questo caso più semplice il riutilizzo dello stesso progetto su un altro PC oltre che su quello originale su cui il progetto è stato generato.
Il System Setup è molto agevolato con l’ausilio del tool “Pic Wizard”
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 12
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
3. Il codice sorgenteIl file “Lez11_blk_Led.h”, generato in automatico con “Pic Wizard”
In questo file le impostazioni Hardware e le direttive [fuses] di programmazione per il microcontrollore impiegato
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 13
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
3. Il codice sorgente: aggiungiamo codice al nostro programma
N.B.=> I “pin name” sono definiti nel file “16F877A.h” incluso in automatico in “Lez11_blk_Led.h”. In questo file vengono definiti tutti i riferimenti impiegati nel codice.
Questi files di testo sono presenti nella cartella “Devices” della directory di installazione del nostro sistema di sviluppo.
[Built-In functions]funzioni interne al compilatore PCWH :
• output_high(<pin name>); • output _low(<pin name>);
• delay_ms(xxx);
Vedere il manuale del compilatore (Help on line)
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 14
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
3. Il codice sorgente: Compilare il codice prodotto
Compiliamo il progettoIl risultato della compilazione è un filebinario (.hex) che deve essere caricatonella memoria di programma del nostroPic, mediante opportuno programmatore(es. PicKit2 programmer)
Oltre al file binario (estensione .hex)vengono generati altri utili file conestensioni diverse (.err, .lst, .cof, …).
Tutti questi files ritornano utili peresaminare le varie fasi del codice; inparticolare nel nostro caso è moltoutile il file con estensione “.cof” perchépuò essere utilizzato nella fase disimulazione con Proteus VSM .“Lez11-blk_Led.cof” contiene iriferimenti con il codice sorgentedurante la fase di debug con ProteusVSM.
Bisogna indicare questo file dacaricare nel Micro per la simulazionecon Proteus VSM
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 15
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Il primo esercizio
4. La simulazione con Proteus VSMLa simulazione con Proteus VSM in ambiente ISIS
Nel micro PIC16F877A caricare
il file “Lez11_blk_Led.cof”
per la simulazione
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
NA – L11 16
2 Blinking Led => Due led lampeggianti in modo alternativo con intervallo di 500 ms tra la
condizione ON e quella OFF. [Suggerimento => Led collegati su RD2 e RD3]
Sviluppare l’esercizio seguendo le semplici fasi di sviluppo:
1. Analisi del problema, schematizzazione a blocchi (se necessario), con schema elettrico
finale operativo
2. Impostazione del Software e relativo Flow – Chart
3. Codice sorgente in linguaggio C [CCS Pic PCWH Compilator]
4. Simulazione in ambiente Proteus VSM interfaccia ISIS
5. Presentazione del lavoro finale su demo-Board opportuna (Gp_Mbus …. AnxaPic4)
6. Opportuna documentazione conclusiva
Programmare i PIC in linguaggio CIl CCS PCWH Pic-C Compiler – Un esercizio proposto
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/