Il nostro primo esercizio: Blinking Led Nicola Amoroso · Connector DS1307 signal/clock 32....

16
NA – L11 1 Corso introduttivo sui microcontrollori A. S. 2007 – 2008 Programmare i PIC in linguaggio C Il CCS PCWH Pic-C Compiler Il nostro primo esercizio: Blinking Led Nicola Amoroso [email protected] http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/

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/