Hallo Leute,
ich versuche gerade ein EA DIP128-6 (128x64, KS0108) an einem AT89C51AC3
zum Laufen zu bekommen.
Diese Lib möchte ich verwenden http://en.radzio.dxp.pl/ks0108/ .
Das Display ist so angeschlossen:
P0 => D0...D7
P2.0 RST#
P2.1 D/I
P2.2 R/W
P2.3 E
P2.4 CS1
P2.5 CS2
Da das Display ja zwei Enable hat und Chip Select jeweils H und L, habe
ich, wie im Datenblatt beschrieben, die beiden Enable miteinander
verbunden und CS1L# und CS2L# jeweils auf GND gelegt. CS1H und CS2H
entsprechen dann den Signalen CS1 und CS2.
Nun möchte ich ja die Lib von radzio.dxp.pl verwenden. In der wollte ich
nun die Pins anpassen, doch das ist leichter gesagt als getan.
Die Datei ks0108-8051.c, wie sie von der Seite stammt, ist im Anhang. So
habe ich sie bis jetzt mal angepasst:
1 | #include <at89c51ac3.h>
|
2 |
|
3 | #define KS0108_DATA_PORT P0
|
4 | #define KS0108_DATA_DIR P0
|
5 | #define KS0108_DATA_PIN P0
|
6 |
|
7 | #define KS0108_CTRL_PORT P2
|
8 | #define KS0108_CTR_DIR P2
|
9 |
|
10 | #define KS0108_RS (1 << 0) // P2.0
|
11 | #define KS0108_RW (1 << 2) // P2.2
|
12 | #define KS0108_EN (1 << 3) // P2.3
|
13 |
|
14 | #define KS0108_CS1 (1 << 4) // P2.4
|
15 | #define KS0108_CS2 (1 << 5) // P2.5
|
16 | #define KS0108_CS3 (1 << 6) // P2.6
|
Jetzt fehlt mir ja noch ein wenig....
Die lib möchte ich soweit beschneiden, dass nur zwei 64x64 Controller
(eben 128x64) angesteuert werden können und somit fällt dann CS3 raus,
jetzt erstmal habe ich das auf P2.6 gelegt, was nirgends angeschlossen
ist.
Und es fehlt mir noch D/I.
Zuerst dachte ich, das wär wie beim HD44780 ein Pin, welchen man fest
verdrahten kann (ich glaube das war der R/W), aber D/I ist ja
verantwortlich dafür, ob man Daten oder Befehle übertragen möchte.
Was muss ich da noch dran drehen?
Ich habe auch schon in den C-Dateien für die anderen verfügbaren
Controller nachgesehen, aber dort konnte ich auch kein D/I finden.
Ich hoffe mir kann da jemand helfen...