Anteprima
Vedrai una selezione di 16 pagine su 72
Sistema per la gestione di un parcheggio Pag. 1 Sistema per la gestione di un parcheggio Pag. 2
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 6
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 11
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 16
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 21
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 26
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 31
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 36
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 41
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 46
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 51
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 56
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 61
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 66
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Sistema per la gestione di un parcheggio Pag. 71
1 su 72
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

11.6.Programmazione del PIC 71

12.Collaudo definitivo 72

4

Capitolo 1°: Parcheggio

1.1. Specifiche di progetto ............................................................................................................... 6

1.2. Modalità di funzionamento ....................................................................................................... 7

1.3. Schema a blocchi ...................................................................................................................... 7

1.4. Funzione svolta dai singoli blocchi ........................................................................................... 7

5

1. Parcheggio

1.1. Specifiche di progetto

Si vuole realizzare una “scheda” di controllo, per parcheggio, realizzata mediante un PIC 16F876.

Il sistema è composto da:

 Un visualizzatore, da 0 a 99, indicante il numero di posti disponibili;

 Due pulsanti, che permettono di aprire le sbarre all’arrivo delle automobili, per accedere o

uscire dal parcheggio. Inoltre sono necessari per il conteggio dei posti auto;

 Due luci di colore rosso e verde, indicanti il momento opportuno per valicare la sbarra;

 Due motori che permettono il movimento delle sbarre;

 Un altoparlante, che permette di “colloquiare” con gli automobilisti.

LUCI

MOTORI

PULSANTI

P

I VISUALIZZATORI

C ALTOPARLANTE

6

1.2. Modalità di funzionamento

Il circuito permette, premendo il pulsante, di accedere al parcheggio, ma solo nella condizione che vi

siano dei posti liberi, quindi quando sul visualizzatore è indicato un numero diverso da 0. Nel caso in

cui i posti liberi siano esauriti il circuito non permette l’accesso ad altre auto; contemporaneamente il

pulsante d’ingresso è disabilitato. All’ingresso inoltre è presente un visualizzatore che indica il numero

dei posti disponibili. Sia all’accesso che all’uscita, il sistema riproduce un messaggio vocale.

1.3. Schema a blocchi

1.4. Funzione svolta dai singoli blocchi

Ogni singolo blocco svolge un compito fondamentale al fine del funzionamento dell’intero circuito:

 PIC (Peripheral Interface Controller): è il “cervello” del nostro circuito. Svolge tutte le

operazioni necessarie per eseguire il programma che comanderà tutti i processi;

 I porti: sono dei dispositivi necessari per l’interfaccia dei periferici di ingresso e uscita con il

microcontrollore. Sono distinguibili in: porti d’ingresso e di uscita, chiamati anche

rispettivamente buffer tristate e latch bufferizzati;

 Motori, luci e visualizzatori: sono tre periferici di uscita, che permettono l’apertura delle sbarre,

la possibilità di entrare o di uscire e la visualizzazione dei posti disponibili;

 Pulsanti: anche questo è un periferico, ma si differenzia dagli altri in quanto è di ingresso e

permette l’acquisizione dei dati (“comunica” al microcontrollore se qualcuno ha premuto i

pulsanti per l’accesso o l’uscita dal parcheggio);

 L’ altoparlante è in grado di riprodurre un messaggio vocale.

7

Capitolo 2°: Microcontrollore PIC 16F876

2.1. Descrizione del dispositivo ....................................................................................................... 9

2.2. Schema a blocchi

...................................................................................................................... 9

2.3. Descrizione dei segnali ............................................................................................................. 9

2.4. Organizzazione della memoria ................................................................................................ 11

2.4.1. Memoria programma ....................................................................................................... 11

2.4.2. Memoria dati

................................................................................................................... 11

2.4.3. Registri speciali ............................................................................................................... 12

2.4.3.1. Registri PCL e STATUS ....................................................................................... 12

2.4.3.2. Registri TRIS_A, TRIS_B e TRIS_C ................................................................. 13

2.4.3.3. Registri PORT_A, PORT_B e PORT_C ........................................................... 13

2.4.3.4. Registri ADCON0 e ADCON1 ............................................................................. 13

2.5. Set d’istruzioni ........................................................................................................................ 13

2.5.1. Istruzioni di trasferimento dati ........................................................................................ 13

2.5.2. Istruzioni “byte oriented” ................................................................................................ 14

2.5.3. Istruzioni “bit oriented” .................................................................................................. 14

8

2. Microcontrollore PIC 16F876

2.1. Descrizione del dispositivo

Il PIC 16F876 è un dispositivo che presenta le seguenti caratteristiche:

Memoria:

 una memoria destinata al programma da 8K (parola da 14 bit) di tipo FLASH

 EEPROM;

una memoria dati da 368byte (parola da 8 bit) di tipo RAM e 256byte di tipo EEPROM;

Clock: il microcontrollore può lavorare con segnali di clock aventi frequenze comprese 4MHz a

 20MHz;

Alimentazione: singola compresa tra 2,0V e 5,5V con un assorbimento di correte di appena

 1μA in standby e quasi 2mA ad una frequenza del clock pari a 4MHZ con un'alimentazione di

5V;

Periferiche di I/O: possiede un totale di 22 linee dedicate ad operazioni di input/output distinte

 in tre porti: RA (6 linee), RB (8 linee), RC (8 linee). Ciascuna linea di un porto può essere

configurata come input o output;

Set di istruzioni: 35 scritte in linguaggio assembly.

2.2. Schema a blocchi

MEMORIA PER IL PROGRAMMA

MEMORIA PER I DATI

CLOCK PORTI di

I/O

CPU

In figura è rappresentata la struttura interna di un microcontrollore PIC 16F876.

2.3. Descrizione dei segnali

L’integrato è provvisto di 28 linee:

 Tre per l’alimentazione, una linea per Vdd e due per Vss (massa);

 Sei (RA0 a RA5), del PORT_A. Ogni linea può essere programmata in modo indipendente

come input o output. La RA4 può essere utilizzata anche come ingresso del clock esterno. Se

il bit del registro TRIS_A si trova al livello logico alto allora la linea corrispondente del porto è

d’ingresso, invece se si trova al livello logico basso la linea è d’uscita.

 Otto (RB0 a RB7), del PORT_B. È possibile, via software, collegare alle linee di uscita un

debole carico di pull-up interno. La linea RB0 è utilizzata anche come ingresso per segnali

d’interrupt esterni. Le linee da RB4 a RB7, programmate come ingressi, possono generare un

interrupt. I pull-up interni possono essere utilizzati per mantenere al livello logico alto le linee

del PORT_B quando sono usate come ingressi. Se i bit del registro TRIS_B si trovano al

9

livello logico alto allora il porto è d’ingresso, invece se si trovano al livello logico basso il porto

è d’uscita.

 Otto (RC0 a RC7), del PORT_C. Se i bit del registro TRIS_C si trovano al livello logico alto

allora il porto è d’ingresso, invece se si trovano al livello logico basso il porto è d’uscita.

 Una di reset MCLR, attiva al livello basso. In condizioni normali di funzionamento deve essere

posta a livello logico alto collegandola con un resistore di pull-up a Vdd. È opportuno non

collegare direttamente a massa la linea per il reset.

 Due di OSC1/CLKIN e OSC2/CLKOUT, per il collegamento con l’oscillatore esterno.

Nella tabella sottostante sono descritti i principali segnali del dispositivo. Si tenga presente che molti

dei pin svolgono più di una funzione.

PIN FUNZIONE DESCRIZIONE

1 MCLR Vpp Reset - ingresso per la tensione di programmazione

2 RA0 AN0 I/0 digitale Port A - ingresso canale 0 analogico

3 RA1 AN1 I/0 digitale Port A - ingresso canale 1 analogico

4 RA2 AN2 Vref- I/0 digitale Port A - ingresso canale 2 analogico

5 RA3 AN3 Vref+ I/0 digitale Port A - ingresso canale 3 analogico

6 RA4 T0CKI I/0 digitale Port A - ingresso clock TMRO

7 RA5 AN4 SS I/0 digitale Port A - ingresso canale 4 analogico

8 Vss GND

9 OSC1 CLKIN Ingresso oscillatore a cristallo - ingresso clock esterno

10 OSC2 CLKOUT Uscita oscillatore a cristallo - uscita clock (1/4 f req. di OSC1)

11 RC0 T1CKI T1OSO I/0 digitale Port C - ingresso clockTMR1 - out oscill. TMR1

12 RC1 CCP2 T1OSI I/0 digitale Port C - input Capture 2 - input oscill. TMR1

13 RC2 CCP1 I/0 digitale Port C- input Capture 1

14 RC3 SCK SCL I/0 digitale Port C

15 RC4 SDI SDA I/0 digitale Port C

16 RC5 SDO I/0 digitale Port C

17 RC6 TX CK I/0 digitale Port C - Tx per trasmiss. Asincrona - clock sincrona

18 RC7 RX DT I/0 digitale Port C - Rx per ricezione Asincrona - dati sincrona

19 Vss GND

20 Vdd Positivo alimentazione

21 RB0 INT I/0 digitale Port B - ingresso interrupt

22 RB1 I/0 digitale Port B

23 RB2 I/0 digitale Port B

24 RB3 PGM I/0 digitale Port B - ingresso per la programmazione

25 RB4 I/0 digitale Port B

26 RB5 I/0 digitale Port B

27 RB6 PGC I/0 digitale Port B - clock per programmazione seriale

28 RB7 PGD I/0 digitale Port B - dati per programmazione seriale

10

2.4. Organizzazione della memoria

La struttura interna della memoria, è costituita principalmente da due blocchi:

MEMORIA PROGRAMMA

FLASH EEPROM

8K

MEMORIA DATI

RAM

368Bytes

registri

funzioni

speciali

32Bytes

registri di uso

generale

EEPROM 96bytes

256Bytes 80bytes

80bytes

80bytes

2.4.1. Memoria programma

La memoria programma del PIC 16F876 è di 8K x 14bit ed è di tipo FLASH EEPROM. Per mezzo di

un idoneo programmatore le locazioni della memoria possono essere cancellate con segnali elettrici e

quindi essere nuovamente scritte. La cancellazione può riguardare una singola locazione o più

locazioni. Ciascuna locazione è distinta da un indirizzo, normalmente espresso in esadecimale, a

partire da 0000 fino a 1FFF . All’avvio il program counter che ha 13 bit punta alla locazione con

h h

indirizzo 0000 (locazione di reset) e per questo motivo tale locazione deve contenere il primo codice

h

del programma, invece dopo un’istruzione interrupt il program counter punta alla locazione con

indirizzo 0004 .

h

2.4.2. Memoria dati

La memoria dati è suddivisa in due sezioni distinte:

 Memoria di tipo EEPROM, con estensione di 256 locazioni di un byte ciascuna

 Memoria di tipo RAM da 368 locazioni di 8bit che possono essere suddivisi in quattro banchi:

 primo banco con indirizzamento 00 – 7F di cui le locazioni 00 – 1F sono riservate ai

h h h h

registi speciali quelle 20 – 7F riservate per i registri di uso generale

h h

 secondo banco con indirizzamento 80 – EF di cui le locazioni 80 – 9F sono riservate

h h h h

ai registi speciali quelle A0 – EF riservate per i registri di uso generale

h h

 terzo banco con indirizzamento 100 – 16F di cui le locazioni 100 – 11F sono

h h h h

riservate ai registi speciali quelle 120 – 16F riservate per i registri di uso generale

h h

 quarto banco con indirizzamento 180 – 1EF di cui le locazioni 180 – 19F sono

h h h h

riservate ai registi speciali quelle 1A0 – 1EF riservate per i registri di uso generale

h h

Indirect addr. 00h Indirect addr. 80h Indirect addr. 100h Indirect addr. 180h

TMR0 01h OPTION_REG 81h TMR0 101h OPTION_REG 181h

PCL 02h PCL 82h PCL 102h PCL 182h

STATUS 03h STATUS 83h STATUS 103h STATUS 183h

FSR 04h FSR 84h FSR 104h FSR 184h

PORT_A 05h TRIS_A 85h 105h 185h

11

PORT_B 06h TRIS_B 86h PORT_B 106h TRIS_B 186h

PORT_C 07h TRIS_C 87h 107h 187h

PORTD 08h 88h 108h 188h

PORTE 09h 89h 109h 189h

PCLATH 0Ah PCLATH 8Ah PCLATH 10Ah PCLATH 18Ah

INTCON 0Bh INTCON 8Bh INTCON 10Bh INTCON 18Bh

PIR1 0Ch PIE1 8Ch EEDATA 10Ch EECON1 18Ch

TMR1L 0Dh PIE2 8Dh EEADR 10Dh EECON2 18Dh

TMR1H 0Eh PCON 8Eh EEDATH 10Eh Reserved(2) 18Eh

T1CON 0Fh 8Fh EEADRH 10Fh Reserved(2) 18Fh

TMR2 10h 90h 110h 190h

T2CON 11h SSPCON2 91h 111h 191h

SSPBUF 12h PR2 92h 112h 192h

SSPCON 13h SSPADD 93h 113h 193h

CCPR1L 14h SSPSTAT 94h 114h 194h

Dettagli
Publisher
72 pagine
1038 download