Il progetto qui presentato permette di gestire un display LCD tipo (DG201203-1) tramite un PIC16F876. Il microcontrollore si interfaccia con un integrato Intersil ICM7211AMIPL per gestire le 4 cifre decimali presenti sul display, mentre i simboli extra vengono gestiti sempre tramite il PIC e 8 latch (integrato 4099).

PCB

Di seguito è riportato lo schema elettrico del progetto:

lcd14
lcd board v1.4

 

Viene usato il PORTB del PIC per comandare sia IC1 che IC2, ma questa scelta non è vincolante, a patto di modificare il programma software. Tutti e 8 i bit del PORTB vengono usati e sono condivisi tra i due integrati. Nella tabella seguente viene riportato il dettaglio:

Bit PORTB ICM7211AM (IC1) 4099 (IC2)
Bit 0 Dato1 Address0
Bit 1 Dato2 Address1
Bit 2 Dato3 Address2
Bit 3 Dato4 Dato
Bit 4 Digital Address1  
Bit 5 Digital Address2 --
Bit 6 Chip Select1! --
Bit 7 -- Write Disable

L'ordine con cui sono assegnati i simboli extra è casuale e può essere modificato a piacimento.

Per quanto riguarda i collegamenti del display LCD bisogna sottolineare che è necessario collegare TUTTI i pin del visore per evitare fastidiosi accoppiamenti capacitivi tra i segmenti. Quei segmenti che non vengono utilizzati devono essere collegati al comune (COM). Questo ultimo pin va collegato al pin BP di IC1, la cui uscita è un'onda quadra alla frequenza di 150Hz. Per accendere un segmento infatti è sufficiente negare questo segnale e inviarlo al pin del display, mentre per spegnerlo basta inviare BP diretto. Per maggiori dettagli è possibile consultare il datasheet del ICM7211.

Gli 8 latch devono memorizzare lo stato del simbolo extra (on, off). Nel primo caso l'uscita del latch sarà alta quindi lo XOR avrà in ingresso un 1 fisso e BP (segnale periodico ad onda quadra): l'uscita dello XOR sarà quindi il negato BP. Nel caso si voglia spegnere il segmento extra, basta memorizzare 0 nel latch e l'uscita dello XOR sarà BP.

Al bit 0 del PORTC è collegato un led che si accende o si spegne per un secondo alternando i due stati.

Avendo messo GND sul pin OSC di IC1 ho abilitato l'oscillatore interno dell'integrato

Software

Il programma scritto per il PIC16F876 può essere usato come test per le 4 cifre e per i simboli extra del display. La cifra LSB conta da 0 a 7 e per ogni numero viene acceso il simbolo extra corrispondente. Le altre 3 cifre visualizzano in scorrimento i numeri precedenti. La tabella seguente riporta un esempio di visualizzazione:

Simbolo extra acceso Cifra 3 Cifra 2 Cifra 1 Cifra 0
Simbolo extra 0 0 0 0 0
Simbolo extra 1 0 0 0 1
Simbolo extra 2 0 0 1 2
Simbolo extra 3 0 1 2 3
Simbolo extra 4 1 2 3 4
... . . . .
Simbolo extra 7 4 5 6 7

Da questi link è possibile scaricare il programma in formato Assembler:

  • lcd14.ASM ver 1.4
  • Flowchart del programma

Per rendere più versatile il progetto realizzato ho pensato di collegare gli 8 pin di ingresso ad un connettore 15 poli tipo porta seriale e di seguito è riportata la piedinatura.

Connettore 15 poli femmina
  Connessione con ICM7211AM Connessione con 4099
Pin 1 Dato 0 Indirizzo 0
Pin 2 Dato 1 Indirizzo 1
Pin 3 Dato 2 Indirizzo 2
Pin 4 Dato 3 Dato
Pin 5 Digital Address 1  
Pin 6 Digital Address 2 --
Pin 7 Chip Select 1 --
Pin 8 -- Write Disable
Pin 9 GND
Pin 10 Vdd 5V
Pin 11 NC
Pin 12 NC
Pin 13 NC
Pin 14 NC
Pin 15 NC