Wie man ein LCD-Display ( 16 x 2 ) an einer Picaxe betreibt , habe ich ja schon einmal ausführlich beschrieben. ^^
Viele möchten aber gerne auch einmal ein 20x4 Display nutzen.
OK.
Wenn man nicht gerade einen "Exoten" kauft , hat man in der Regel die gleichen Anschlüsse wie bei einem 16x2 Display.
14 Pins ohne Backlightpins und 16 Pins mit Backlightpins - Belegungen sind von Pin1 - Pin14 identisch.
Der Code ist im grunde auch gleich, zumindest die Initialisierung.
Lediglich beim Anzeigen der Zeilen haben wir jetzt 2 zeilen mehr und müssen dementsprechend vor der Anzeige von Texten in die entsprechende Reihe schalten.
Hierzu mal ein Beispielcode ( für eine 14M2 ):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#picaxe 14M2
symbol Wert = b0
symbol HighWert = b1
symbol LowWert = b2
let dirsb=%11111111
let dirsc=0
' INITIALISIERUNG
FOR b10=1 to 3
LET PINSb=%00100011:low 5
LET PINSb=%00100011:low 5
pause 50
NEXT b10
' 4 Bit Modus
LET PINSb=%00100000:low 5
LET PINSb=%00100010:low 5
pause 10
' 5x8 Matrix / 2 Reihen
LET PINSb=%00100010:low 5
LET PINSb=%00101000:low 5
pause 10
'Display Clear
LET PINSb=%00100000:low 5
LET PINSb=%00100001:low 5
pause 10
'Return Home
LET PINSb=%00100000:low 5
LET PINSb=%00100110:low 5
pause 10
' Display ON,Cursor OFF, No blinken
LET PINSb=%00100000:low 5
LET PINSb=%00101100:low 5
pause 10
let pinsb=0
'#######################################
'#######################################
' ~~~~~~~~ Reihe 1 ~~~~~~~~~~~~~~~~~~~
LET PINSb=%00100000:low 5
LET PINSb=%00100010:low 5
for b10=0 to 15
lookup b10,("Dies ist Zeile 1"),Wert
gosub Sendtext
next b10
' ~~~~~~~~ Reihe 2 ~~~~~~~~~~~~~~~~~~~
LET PINSb=%00101100:low 5
LET PINSb=%00100000:low 5
for b10=0 to 15
lookup b10,("Dies ist Zeile 2"),Wert
gosub Sendtext
next b10
' ~~~~~~~~ Reihe 3 ~~~~~~~~~~~~~~~~~~~
LET PINSb=%00101001:low 5
LET PINSb=%00100100:low 5
for b10=0 to 15
lookup b10,("Dies ist Zeile 3"),Wert
gosub Sendtext
next b10
' ~~~~~~~~ Reihe 4 ~~~~~~~~~~~~~~~~~~~
LET PINSb=%00101101:low 5
LET PINSb=%00100100:low 5
for b10=0 to 15
lookup b10,("Dies ist Zeile 4"),Wert
gosub Sendtext
next b10
end
SendText:
HighWert=Wert/16
LowWert=HighWert*16:LowWert=Wert-LowWert
HighWert=HighWert+48
let pinsb=HighWert:low 5
LowWert=LowWert+48
let pinsb=LowWert:low 5
return