ultimo aggiornamento il
10 novembre 2008



Per vedere i miei filmati

 

Utilizzo
Il modulo permette la gestione di un comune modulo LCD del tipo HD44780 compatibile, interfacciato con il metodo a 4-bit.
Esso permetterà di mostrare eventuali messaggi di avviso, oppure mostrare dati o ancora riportare la temperatura rilevata da un sensore.

E' possibile utilizzare due diversi modelli di display che differiscono dalla diversa disposizione dei PIN .
Per questo sono disponibili due diversi circuiti stampati

 

 

Descrizione
Il display a cristalli liquidi o LCD (dall'inglese Liquid Crystal Display) utilizzato in questo modulo è dotato di 2 linee di 16 caratteri ciascuna. I display LCD più comuni reperibili in commercio, hanno un'interfaccia ideata da Hitachi che, nel tempo, è diventata uno standard industriale utilizzato anche da altre case produttrici.

Funzione dei vari pin del display

PIN

Nome

Funzione

1

GND

Ground – Pin che deve essere collegato al negativo d’alimentazione.

2

VDD

Power Supply – Pin da collegare a +5V d’alimentazione.

3

Vo

A questo Pin si deve applicare una tensione variabile da 0 a +5V tramite un trimmer per regolare il contrasto del display.

4

RS

Register Select – Questo pin è una linea di controllo con cui si comunica al display se si sta inviando sul bus dati (linee da DB0 a DB7) un comando (RS=0) oppure un dato (RS=1).

5

R/W

Read, Write – Questo pin è un’altra linea di controllo con cui si comunica al display se s’intende inviare un dato al display (R/W=0) oppure leggere un dato dal display (R/W=1).

6

E

Enable – Questo pin è una linea di controllo con cui si può abilitare il display ed accettare dati ed istruzioni dal bus dati (E=1).

7

DB0

Data Bus line 0 – Le linee su cui transitano i dati tra processore e display.

8

DB1

Data Bus line 1

9

DB2

Data Bus line 2

10

DB3

Data Bus line 3

11

DB4

Data Bus line 4

12

DB5

Data Bus line 5

13

DB6

Data Bus line 6

14

DB7

Data Bus line 7

15

A

Pin per il collegamento della retroilluminazione se presente.

16

K

Pin per il collegamento della retroilluminazione se presente.

Dei 16 pin presenti se ne utilizzano però solamente 7
RS   Register select signal
E     Enable signal
R/W read/wrwite selection
DB4 Data bit 4
DB5 Data bit 5
DB6 Data bit 6
DB7 Data bit 7

Le linee dati, RS ed E, sono dotati di una resistenza pull-down per forzare a massa la linea quando non utilizzate.
Il trimmer R6 connesso al pin Vo permette di regolare il contrasto del LCD.

 

Dettagli

Questo modulo è descritto sul numero 277-278 in edicola nel mese di Luglio 2008 della rivista Fare Elettronica nella sezione ROBOT ZONE nell'articolo dal titolo Moduli input/output per la scheda robotica che descrive la costruzione di ben 11 moduli da collegare alla scheda basata sul processore BS2 SX di PARALLAX.

 

Elenco componenti

R1,

4,7 KΏ 1/4W 5%

R2,R3,R4,R5

10 KΏ 1/4W 5%

R6

Trimmer orizzontale 100 KΏ

LCD

LCD 16 caratteri tipo C216L01YBW00 oppure Displaytech 162B + pin strip femmina 1x16

SV1

Pin-strip femmina 1x9

componenti_modulo_lcd.jpg

Circuito stampato e disposizione componenti per display C216L01YBW00

Circuito stampato e disposizione componenti per display Displaytech 162B

 

LCD 16x2 tipo C216L01YBW00
Piedinatura Datasheet display C216L01YBW00 Foto

LCD 16x2 tipo Displaytech 162B
Piedinatura Datasheet display GDM1602H Foto

 

Montaggio e collaudo
Dopo aver realizzato il circuito stampato e aver saldato i componenti si potrà inserire l’integrato il modulo LCD avendo avuto la cura di saldare in precedenza un pin strip maschio 1x16 in corrispondenza delle piste di uscita..
Si collegherà il connettore SV1 con il connettore X4, mediante appositi cavi seguendo le indicazioni di figura 40 e 41.
L’unica operazione di taratura sarà la regolazione del trimmer R6 che regola il contrasto del display.
Una volta caricato il programma sarà mostrato il messaggio inserito nel programma

collaudo-lcd.jpg
Schema collegamento microinterruttori al modulo.

 

' {$STAMP BS2sx}
' {$PBASIC 2.5}
'*************************************
'Programma:test_modulo_lcd.bsx
'Versione: 1.0
'Collaudo modulo LCD
'*************************************
' -----[ definizione dei pin ]-----
E PIN 0 ' Enable Pin For LCD
RW PIN 2 ' R/W Pin For LCD
RS PIN 3 ' LCD Register Select
' 0 = Instruction, 1 = Text
' -----[ Variables ]-----------
char VAR Byte ' Character To Send To LCD
inst VAR char ' Induction To Send To LCD
index VAR Word ' Character Pointer
temp VAR Byte ' Temp Variable
' -----[ EEPROM Data ]-------
DATA "PROVA LCD Adriano Gandolfo" ' Messaggio da inviare al LCD
' -----[ Initialization ]----
Initialize:
LOW RW ' Set LCD To Write Mode
OUTS = %0000000000000000 ' Set All Output Low
DIRS = %0000000011111111 ' Set I/O Direction
GOSUB Init_Lcd ' Initialize The LCD Display
' -----[ Programma ]----
Main:
FOR temp = 0 TO 32 ' 32 Caratteri
IF temp = 15 THEN ' Ricerca fine linea
GOSUB Next_Line ' Salta alla nuova linea
ENDIF
READ temp, char ' Lelle il prossimo carattere dalla EEPROM
GOSUB Send_Text ' Invia il carattere al display LCD
NEXT
END
' -----[ Subroutines ]-----
Init_Lcd:
PAUSE 200
OUTS = %00110000 ' Reset The LCD
PULSOUT E,1 ' Send Command Three Times
PAUSE 10
PULSOUT E,1
PAUSE 10
PULSOUT E,1
PAUSE 10
OUTS = %00100000 ' Set To 4-bit Operation
PULSOUT E,1
Inst = %00101000 ' Function Set (2-Line Mode)
GOSUB Send_Inst
Inst = %00001110 ' Turn On Cursor
GOSUB Send_Inst
Inst = %00000110 ' Set Auto-Increment
GOSUB Send_Inst
Inst = %00000001 ' Clears LCD
GOSUB Send_Inst
Inst = 14 ' Set Cursor To Underline
GOSUB Send_Inst
RETURN
Send_Inst:
LOW RS ' Set Instruction Mode
OUTB = Inst.HIGHNIB ' Send High Nibble
PULSOUT E,1
OUTB = Inst.LOWNIB ' Send Low Nibble
PULSOUT E,1
HIGH RS ' Set LCD Back To Text Mode
RETURN
Send_Text:
OUTB = Char.HIGHNIB ' Send High Nibble
PULSOUT E,1
OUTB = char.LOWNIB ' Send Low Nibble
PULSOUT E,1
PAUSE 100
RETURN
Next_Line:
Inst = 128+64 ' Move Cursor To Line 2
GOSUB Send_Inst
RETURN


Programma TEST_MODULO_LCD.BSX

 

Elenco revisioni:
08/09/2008 Emissione preliminare