Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7...

15
OROLOGIO DIGITALE a MICROCONTROLLORE https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html OROLOGIO DIGITALE con MICROCONTROLLORE PIC16F628A Realizzazione di un preciso orologio digitale (formato HH:MM:SS) utilizzando un microcontrollore della Microchip, il PIC 16F628A MANUALE TECNICO e ISTRUZIONI (for firmware 4.0 or higher)

Transcript of Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7...

Page 1: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

OROLOGIO DIGITALE a MICROCONTROLLORE

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

OROLOGIO DIGITALE con MICROCONTROLLORE PIC16F628A

Realizzazione di un preciso orologio digitale (formato HH:MM:SS) utilizzando un microcontrollore della Microchip, il PIC 16F628A

MANUALE TECNICO e ISTRUZIONI (for firmware 4.0 or higher)

Page 2: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

1 2 3 4 5 6 7 8

A

B

C

D

87654321

D

C

B

A

RB4 10

RB5 11

RB6 12

RB713

GND

5+V

14

RA5/MCLR4 RB2 8

RA1 18

RA2 1

RB3 9

RB0/INT6

RA615

RA43

RB1 7

RA0 17

RA3 2

RA7 16

U2‐PIC16F628A

A

D

8

a

B2

14PH

bcde

10

1213

9

11

7

fg

5

C

3

415

1

LD

BL GND

+V

6

16

U3‐CD4543

Q1BC327

Q2BC327

Q3BC327

Q4BC327

Q5BC327

Q6BC327

a b c d e f g

7 6 4 2 1 9 10

AC3 5

AC8

dp

DS1

a b c d e f g

7 6 4 2 1 9 10

AC3 5

AC8

dp

DS2

a b c d e f g

7 6 4 2 1 9 10

AC3 5

AC8

dp

DS3

a b c d e f g

7 6 4 2 1 9 10

AC3 5

AC8

dp

DS4

a b c d e f g

7 6 4 2 1 9 10

AC3 5

AC8

dp

DS5

a b c d e f g

7 6 4 2 1 9 10

AC3 5

AC8

dp

DS6

R1

10k

R2

10k

R3

10k

R4

10k

R5

10k

R6

10k

R13 100R14 100R15 100R16 100R17 100R18 100R19 100

COM

GND8

9

I1I2I3I4I5I6I7

O1O2O3O4O5O6O7

1234567

16151413121110

U4‐ULN

2004

DL1

DL2 DL4

DL3

R24330

Q9FXT690B

R236k8

Q8BC237

BUZ15V ‐ Autoscillante

VCC

R1210k

R1010k

R910k

R810k

S2

Hours

S3

Min.

Rs11

Q4

Q6

Q12

9

12

CextQ5

RextQ7

3

15

54

13

2

7

614

Q10

Reset

Q8

Q13Q14

10

1

Q9

8

16

VCC

GND

U5‐CD4060

R263M3

XT14.194304 MHz

C6

20p

C5

6.5‐30p

VCCC40.1

C3

0.1

VCC

+M2

12V Alim.

+ C2100u

D11N4001

D21N4001

R113K3

+M1

9V Batt.

COM

IN OUT

U17805

VCC

+ C147u

123456

M3

ICSP

Q7BC237

R2047k

R21470k

VCC

R224k7

S4SHOW

R252k7

Reset11

Q4

Q6

Q12

Q5Clock

Q8

3

15

54

14

2

7

1312

Q11

Q9

Q13Q14

10

1

Q10

8

16VCC

GND

Q1 9

Q7 6

U6‐CD4020

R710k

S1

SHIFT

Only forprogramming

R11 - Only withrechargeable battery

R2710k

Author:

Project:

Size: DWG no. Rev.: Scale: Sheet:

Year:

Note:

Valter Narcisi - San Benedetto del Tronto (AP)

Orologio Digitale HH:MM:SS con PIC16F628A 2012-17

A3 1 2 1:1 1 of 1

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

DS1 ‐ DS6TDSR515

VCC VCC

SECONDSHOURS

Page 3: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

OROLOGIO DIGITALE a MICROCONTROLLORE

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

ELENCO COMPONENTI / COMPONENT LIST

Designator Component

R1 … R10 10k

R11 3k3

R12 10k

R13 … R19 100 ohm

R20 47k

R21 470k

R22 4k7

R23 6k8

R24 330 ohm

R25 2k7

R26 3M3

R27 10k

C1 47u - 16V

C2 100u - 25V

C3 – C4 0.1 u

C5 6.5-30 pF variable (verde, Murata)

C6 20 pF

Q1 … Q6 BC327 (PNP - 500mA)

Q7 - Q8 BC237 (NPN - 100mA)

Q9 FXT690B (NPN – 2A)

U1 LM7805 (Positive 5V – 1A)

U2 PIC 16F628A microcontroller

U3 CD4543

U4 ULN2004

U5 4060 (M74HC4060B1 oppure CD74HC4060)

U6 CD4020

D1 – D2 1N4001

DL1 … DL4 LED (RED rectangular)

DS1 … DS4 Display Vishay TDSO5150 (Common Anode)

XT1 Xtal ITT 4.194304 MHz (4194304 Hz)

BUZ1 Buzzer sound active (auto-oscillante)

M1 – M2 Strip 2 way – 2.54

M3 Strip 6 way – 2.54 (ICSP)

S1 Switch

Page 4: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

OROLOGIO DIGITALE a Microcontrollore:PCB Layout (Disposizione Componenti)

OROLOGIO DIGITALE a MICROCONTROLLORE

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

Main
Linea
Main
Linea
Page 5: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

OROLOGIO DIGITALE a MICROCONTROLLORE

Main
Linea
Main
Linea
Page 6: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

OROLOGIO DIGITALE a MICROCONTROLLORE

Main
Linea
Main
Linea
Page 7: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

OROLOGIO DIGITALE a MICROCONTROLLORE

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

INTRODUZIONE L'orologio è un oggetto che deve funzionare 24 ore al giorno, 365 giorni l'anno: per questo i componenti elettronici dovrebbero essere scelti senza tendere troppo al risparmio. Questo è anche il motivo per cui ho inserito l'integrato ULN2004 che consente al chip CD4543 di lavorare in condizioni ottimali.

Per i display ho utilizzato i Vishay TDSR5150 a segmenti rosso/arancio: questo tipo è in grado di sopportare fino a 25 mA (continui) di corrente per segmento (e oltre 100 mA di picco !) e visto che vengono pilotati da multiplexer rimanendo accesi solo per qualche millisecondo, è garantita loro una lunga vita.

LA BASE DEI TEMPI La base dei tempi da 1 Hz è stata ottenuta con un quarzo ITT da 4.194304 MHz (4194304 Hz) e da due chip C/MOS, i divisori/contatori CD4060 e CD4020 (quest'ultimo sostituibile, nello schema, con il modello CD4040).

Evitando di collegare il quarzo direttamente sugli appositi piedini del PC Micro, ho potuto "risparmiare" una porta I/O sfruttandola per la funzione SHIFT (e, di conseguenza, facilitandomi il compito in fase di progettazione software evitando i conteggi dei cicli macchina e le impostazioni del prescaler).

L'uscita da 1 Hz prelevata dal piedino 13 del CD4020 va al piedino RB0/INT del microcontrollore (nel firmware, il piedino RB0/INT è stato programmato per ricevere gli impulsi da tale porta e generare un INTERRUPT per ognuno di essi: questo significa che ad ogni INTERRUPT, cioè ogni secondo, l'orario sarà aggiornato). Lo stesso impulso che esce dal piedino 13 del CD4020 pilota anche, tramite il transistor Q9, i 4 LED separatori.

Page 8: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

OROLOGIO DIGITALE a MICROCONTROLLORE

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

ATTENZIONE - Il CD4060 in questo progetto lavora "al limite" della frequenza sopportabile per cui è consigliabile utilizzare il modello C/MOS High Speed siglato M74HC4060B1 (della ST) Oppure CD74HC4060 (della Texas).

A proposito dei 4 LED, il PCB ne prevede l'utilizzo del tipo rettangolare (per tenere vicini i display il più possibile): poi, volendo, se ne può coprire una parte con del nastro nero per ridurre la "grandezza del segmento" e farlo diventare una sorta di piccolo punto quadrato.

Il compensatore C5 è utile per "correggere" eventuali piccole tolleranze del quarzo: per la taratura, collegate il puntale di un frequenzimetro sul pin 9 di U5 (CD4060) e regolate il compensatore fino a leggere una frequenza di 4194304 Hz.

AGGIUNTA DEL PULSANTE DI TEST Il progetto ha subito una sola modifica hardware dopo la sua realizzazione: l'inserimento di un pulsante di TEST tra il piedino 4 del micro e la massa, premendo il quale si avvia una procedura che visualizza in sequenza i sei display per verificare il corretto funzionamento di ogni segmento (durante il test, un TOC segnala il cambio di cifra ma solo se la scansione audio dei secondi non è stata abilitata). Una volta terminato il TEST, l'orologio ritorna al suo funzionamento originale (durante il test, il conteggio dell'orologio non si ferma, ma continua anche se le cifre non vengono visualizzate).

I dettagli della modifica sono visibili nelle immagini successive (nel mio prototipo ho inserito un piccolo microswitch tra il microcontrollore e il connettore ICSP).

Page 9: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

OROLOGIO DIGITALE a MICROCONTROLLORE

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

IL BUZZER Il Buzzer BUZ1 (del tipo auto-oscillante) è stato inserito principalmente per un motivo: l'emissione di un breve beep al raggiungimento della nuova ora (così come avviene su alcuni orologi digitali da polso o alcune radiosveglie). Inoltre esso emette un brevissimo beep ad ogni pressione dei tasti MINUTI e ORE ed un beep lungo all'accensione oppure dopo il Reset dell'orologio.

LA BATTERIA IN TAMPONE DA 9V L'orologio è predisposto per il collegamento di una batteria ricaricabile da 9V al Ni-Cd che entra in funzione solo durante un eventuale Black-Out: al contrario, durante il funzionamento normale dell'orologio, la batteria si ricarica attraverso la resistenza R11 e mantiene la sua carica fino al prossimo eventuale black out. Potete utilizzare anche una normale batteria alcalina da 9V, non ricaricabile, ma in questo caso è tassativo eliminare la resistenza R11 da 3300 ohm.

In presenza di Black-Out, le cifre del display si spengono (per risparmiare corrente ed evitare che la batteria si scarichi precocemente): i quattro puntini luminosi continueranno a svolgere la loro funzione indicando che l'orologio è comunque in funzione (e la batteria non è ancora scarica !). Per visualizzare l'ora, in caso di black out, è necessario agire sul pulsante S4 (ON). Il beep che scandisce le ore funziona anche durante un black out.

Page 10: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

OROLOGIO DIGITALE a MICROCONTROLLORE

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

ISTRUZIONI L'orologio digitale prevede 4 pulsanti: MINUTES, HOURS, SHIFT e SHOW.

MINUTES - Ad ogni pressione di questo pulsante, le cifre dei minuti aumentano di un'unità: arrivati a "59", la successiva pressione visualizzerà "00" e così via. Ad ogni pressione del pulsante MINUTI, i secondi sono sempre azzerati.

HOURS - Ad ogni pressione di questo pulsante, le cifre delle ore aumentano di un'unità: arrivati a "23", la successiva pressione visualizzerà "0" e così via. La prima cifra a sinistra (decine di ORE) se uguale a zero, è automaticamente spenta.

SHIFT - Quando il pulsante dei MINUTI o delle ORE sono premuti insieme al pulsante SHIFT, le cifre vengono decrementate (conteggio all'indietro).

SHOW - In caso di black out, la pressione di questo pulsante permette di visualizzare l'orario (ma solo se è stata inserita la batteria in tampone da 9V).

MODALITA’ 12/24H - Il sistema orario delle 12 ore presuppone sia riportata la stringa AM o PM (non gestita in questo progetto): al contrario, nel sistema delle 24 ore (notazione Standard Internazionale ISO-8601) non sono necessarie altre informazioni perché il sistema stesso "copre" l'intero orario della giornata. Il sistema 12H è utilizzato principalmente negli Stati Uniti, in Canada ed in Australia. In Italia, come in molti altri Stati, si utilizzano entrambi i sistemi ma si preferisce sempre di più quello delle 24H (soprattutto in campo medico), il quale non dà origine a letture ambigue.

Per programmare il sistema orario dell'orologio, premere e mantenere premuto il pulsante dei MINUTI (MINUTES) per 2 secondi o comunque fino a quando il display non visualizza la cifra "12" (sistema a 12 ore) oppure "24" (sistema a 24 ore), quindi rilasciare il pulsante.

Il valore programmato si alterna ogni volta che si avvia la procedura (funzionamento toggle). Quando si passa dalla visualizzazione "24H" a quella "12H", l'orario è aggiornato automaticamente: ad esempio, se l'orologio visualizza le 19:30:00, passando alla visualizzazione 12H, il nuovo valore sul display sarà 7:30:00. L'impostazione del sistema orario è memorizzata sulla Eeprom del PICmicro e quindi rimane in memoria anche quando viene tolta l'alimentazione (Durante la programmazione, il conteggio dell'orologio non si ferma, ma continua anche se le cifre non vengono visualizzate).

Page 11: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

OROLOGIO DIGITALE a MICROCONTROLLORE

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

SCANSIONE AUDIO DEI SECONDI - E' possibile in qualsiasi momento impostare la scansione audio dei secondi cioè l'emissione di un breve segnale acustico ad ogni secondo (simulazione dell’orologio meccanico). Per la programmazione, premere e mantenere premuto il pulsante delle ORE (HOURS) per 2 secondi o comunque fino a quando sul display a destra non appare la cifra "0" (scansione audio dei secondi DISABILITATA) oppure la cifra "1" (scansione audio dei secondi ABILITATA), quindi rilasciare il pulsante.

Il valore programmato si alterna ogni volta che si avvia la procedura (funzionamento toggle).

Questa impostazione è memorizzata sulla Eeprom del PICmicro e rimane in memoria anche quando viene tolta l'alimentazione (Durante la programmazione, il conteggio dell'orologio non si ferma, ma continua anche se le cifre non vengono visualizzate).

SCANSIONE AUDIO DELLE ORE - Anche per le ORE è possibile impostare la scansione audio ovvero l'emissione di un breve segnale acustico al passaggio della nuova ora. Per la programmazione, premere e mantenere premuto il pulsante SHIFT per almeno 3 secondi o comunque fino a quando sul display di sinistra non appare la cifra "0" (scansione audio delle ore DISABILITATA) oppure la cifra "1" (scansione audio delle ore ABILITATA), quindi rilasciare il pulsante.

Il valore programmato si alterna ogni volta che si avvia la procedura (funzionamento toggle).

Anche questa impostazione, come la precedente, è memorizzata sulla Eeprom del PICmicro.

TEST DISPLAY - All'accensione, l'orologio avvia automaticamente il TEST dei display (i sei display sono accesi uno alla volta in modo sequenziale per verificare il corretto funzionamento di tutti i segmenti). Per avviare manualmente il TEST, è possibile inserire sul circuito un piccolo microinterruttore come spiegato nel paragrafo “AGGIUNTA DEL PULSANTE DI TEST”.

Page 12: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

OROLOGIO DIGITALE a MICROCONTROLLORE

https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html

IN CONCLUSIONE In poco spazio sono stati inseriti 6 display, 5 circuiti integrati e altri componenti per cui i ponti da inserire sono 50 (quelli segnati in rosso), molti dei quali sono "nascosti" sotto i sei display: è il prezzo che si paga quando non si vuole utilizzare il circuito stampato a doppia faccia, sempre molto difficile da realizzare a livello hobbistico. Se lo stabilizzatore 7805 dovesse scaldare eccessivamente, si consiglia di posizionarlo sopra un'aletta di raffreddamento e saldarne i piedini sul circuito stampato attraverso tre spezzoni di filo.

Page 13: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

s

Page 14: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

s

Page 15: Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7 8 d c b a rb4 10 rb5 11 rb6 12 rb7 13 gnd 5 +v 14 ra5/mclr 4 rb2 8 ra1 18 ra2 1

05/2018