Display a 7 segmenti ad anodo comune

I display ad anodo comune sono convenienti perche' i microcontrollori sono generalmente migliori nell' "assorbire" corrente (sink) che nell' "erogare" corrente (source).

Viene descritto l'utilizzo di display ad anodo comune con la tecnica del multiplex con un PIC16F628A. Quello utilizzato ha un lay-out non standard:

Pin Funzione
1 LED e (catodo)
2 LED d (catodo)
3, 8 anodo comune
4 LED c (catodo)
5 LED d.p. (catodo)
6 LED b (catodo)
7 LED a (catodo)
9 LED f (catodo)
10 LED g (catodo)

Dualmente rispetto a quelli a catodo comune, ciascun display ad anodo comune viene pilotato da un transistor pnp (BC327). Un transistor e' acceso se il corrispondente segnale di controllo della PORTA e' a livello logico basso (circa 0 V). In questo esempio si realizza un display a tre cifre, con punto decimale fisso. 

Quando un display e' selezionato, per accendere uno dei suoi otto LED bisogna impostare il corrispondente pin della PORTB a livello logico basso (circa 0 V); invece quando un LED non e' usato il suo catodo deve essere a 5 V circa.

La codifica delle cifre da 0 a 9 viene generata annotando quali LED sono attivi e quali spenti per visualizzare un certo simbolo.

Cifra LED accesi LED spenti
0 a,b,c,d,e,f g,d.p.
1 b,c a,d,e,f,g,d.p.
2 a,b,g,e,d c,f,d.p.
3 a,b,c,d,g e,f,d.p.
4 b,c,f,g a,d,e,d.p.
5 a,f,g,c,d b,e,d.p.
6 a,f,e,d,c,g b,d.p.
7 a,b,c d,e,f,g,d.p.
8 a,b,c,d,e,f,g d.p.
9 a,b,c,d,f,ge,d.p.

IMPORTANTE: la codifica dipende unicamente dal tipo di display (anodo o catodo comune) e dall'assegnazione dei pin della PORTB ad un LED (a, b, c, ecc.). E' opportuno scegliere i collegamenti che ottimizzano il lay-out del circuito.


Nello schema sono indicati questi collegamenti:

PORTB LED
RB0 LED b (catodo)
RB1 LED c (catodo)
RB2 LED d (catodo)
RB3 LED e (catodo)
RB4 LED g (catodo)
RB5 LED f (catodo)
RB6 LED a (catodo)
RB7 N.C.

Il pin RB7 della PORTB non e' utilizzato, visto che il punto decimale (dot point ) e' in posizione fissa (sempre nel secondo display).

Con queste scelte si ricava la seguente codifica:

Cifra

PORTB

0

10010000

1

11111100

2

10100010

3

10101000

4

11001100

5

10001001

6

10000001

7

10111100

8

10000000

9

10001000

Convertendo i valori binari in notazione decimale, piu' compatta, si ottiene l'array: 144, 252, 162, 168, 204, 137, 129, 188, 128, 136.


Data sheet

 

Vai al forum per discutere di questo argomento. >> vai

 

 
 

 

Si declina ogni responsabilita' per errori ed inesattezze contenute in questa documentazione e per danni di qualsiasi natura derivanti dall'uso dei circuiti e dei programmi descritti. Nomi e marchi citati appartengono ai rispettivi proprietari.