Mini SIPO fuer LCD Module


MIKROPROZESSOREN
Mini-SIPO
für LCD-Module
Display für BASIC-stamp II
Entwurf von Klaus Burkhardt
Ganze vier Anschlüsse
benötigt diese Schaltung,
um eine BASIC-stamp II
mit einem LCD-Modul
auszustatten.
Die BASIC-stamp II verfügt über 16 I/O-Lei-
5V
tungen. Zum Anschluss eines LCD-Moduls an
LCD-Modul
CLOCK
eine BASIC-stamp II benötigt man acht P0
DATA
P1
2
Daten- und zwei Steuerleitungen, und selbst
VCC
RS
P2
3
VS
wenn man das Datenbyte in zwei Paketen á ENABLE
10k
P3
4
RS
BASIC
vier Bits hintereinander verschickt, besetzt
6
IC1
STAMP E
das Modul immer noch sechs I/O-Anschlüsse 5
II
R/W
11
C1
1
der BASIC-stamp. Die verbleibenden zehn
VSS
1
EN
I/O-Leitungen können in bestimmten Appli-
kationen aber zu wenig sein.
2 19 14
1D D7
3 18 13
D6
5V
4 17 12
D5
Zwei Busse
5 16 11
D4
6 15 10
20 D3
Die hier beschriebene Variante der Ansteue- 7 14 9
D2
IC1
8 13 8
rung kommt mit nur vier Leitungen aus.
D1
10
9 12 7
D0
Dabei wird der bekannte Bustreiber
74HCT574
74HCT574 zweckentfremdet und als Serial in
parallel out-Baustein (SIPO) eingesetzt. Wie
in Bild 1 zu sehen, sind die acht Kippstufen
des Bustreibers in Reihe geschaltet, so dass
das IC wie ein Schieberegister arbeitet. Die
seriellen Eingangsdaten gelangen über eine
000113 - 11
Leitung (DATA) zum 74HCT574, eine zweite
Leitung (CLOCK) ist für den Schiebetakt
Bild 1. Ein Bustreiber zwischen BASIC-Stamp und LCD-Modul.
54 Elektor 12/2000
MIKROPROZESSOREN
erforderlich. Der Datenverkehr erin-
speicher data  1. Zeile    *2. Zeile    *
nert an einen I2C-Bus.
zeichenvar byte
Immer, wenn ein Byte am Ausgang
sipovar nib
des Schieberegisters komplettiert
avar byte
ist, kommen zwei weitere Leitungen
befehlvar byte
zum Einsatz. Der Status der RS-Lei-
dirs = %0000000000001111
tung (register select) bestimmt, ob
out0 = 0 Clock (SCL)
das folgende Byte als Steuerbefehl
out1 = 0 serielle Daten (SDA)
(Low) oder als darzustellender Text
out2 = 0 Register Low = Befehlskode / High = Dateneingang
(High) interpretiert wird. Das Byte
out3 = 1 High nach Low-Flanke = Enable
wird auf die fallende Flanke der
ENA-Leitung (enable) hin in den Dis-
in_lcd: Anzeige initialisieren
playspeicher übernommen. Auf die
befehl = %00000001 Leeren
Möglichkeit, den Modulinhalt zu
gosub shift:gosub ena
lesen, muss allerdings verzichtet
pause 10
werden. Der entsprechende Pin 5
gosub ena:gosub ena
(R/W)des Moduls liegt daher auf
Masse.
befehl = %00000011 Coursor home
gosub shift:gosub ena
Software
gosub ena:gosub ena
Das Programm zur Ansteuerung der
vier relevanten I/O-Leitungen in Bild befehl = %00111000 8 bit / 2 lines
2 der BASIC-stamp ist kurz und gosub shift:gosub ena
dank der Kommentierung nicht befehl = %00001111 Display an/Coursor+Blink an
schwer zu durchschauen. Es besteht gosub shift:gosub ena
(nach der üblichen Definition der
befehl = %00000110 Vorschub nach rechts
Variablen) aus einem Hauptpro- gosub shift:gosub ena
gramm und zwei Unterprogrammen.
toggle 2 Umschalten auf data input
Das Unterprogramm shift: liest den
pause 100
acht Bit langen Befehl (Steuerung
oder Text) von rechts (LSB) nach
for zeichen = 0 to 15
links und übergibt ihn - bitweise auf
read zeichen,befehl Text  1. Zeile.....
den pulsout-Befehl (SCL) hin - über
gosub shift:gosub ena
P1 (out1) dem Scheiberegister.
pause 50: next
Das zweite Unterprogramm ena:
besteht nur aus einem Befehl, einem
toggle 2 Umschalten auf instruct
Enable-Impuls zur Übernahme des
befehl = %11000000 Anfang 2te Zeile
parallelen Bytes am Ausgang des
gosub shift:gosub ena
74HCT574 in den Modulspeicher.
toggle 2 Umschalten auf data input
Das Hauptprogramm in_lcd: erle-
pause 100
digt die Voreinstellungen des Dis-
plays und die Umschaltung zwi-
for zeichen = 16 to 30
schen erster und zweiter Zeile. Die
read zeichen,befehl Text  2. Zeile.....
Kommentare im Programm sprechen
gosub shift:gosub ena
für sich.
pause 50: next
(000113)rg
stop Ende des Unterprogramms
shift:
Das Programm kann in einer deut-
for sipo = 0 to 7
schen und einer englischen Version
a = befehl & 1 maskierter And-Befehl liest nur LSB
kostenlos von unserer Home-Page
out1 = a Serielle data (SDA)
www.elektor.de
pulsout 0,10 Shift Clock (SCL)
heruntergeladen werden.
befehl = befehl / 2 Shift right,1
next:return
ena:
pulsout 3,10:return Enable für Datenübernahme
Bild 2. Das kurze Listing kann von Elektors Internet-Site heruntergeladen werden.
12/2000 Elektor 55


Wyszukiwarka