T6963 Anleitung

Gast #58104
Also in deutsch, chancenlos. Ich programmiere gerade für ein 240x128er
Display mit T6963 ein graphisches OS für den Navigationsbereich. Ich
könnte evt. hier einige Fragen beantworten, da ich schon ziemlich
fertig bin. Umgebung ist bei mir 89C51, Keil, 60% in C, 40% in
Assembler.

Ciao, Philipp

P.S.:In englisch Kannst du jede Menge bekommen
Gast #58105
Hallo,

mir würde Schemaplan reichen, ich möchte zunächst nur Text
darstellen...

Schemaplan z.B. : 1.) D/I auf High,
                  2.) Textbereich festlegen mit 11100111 auf Daten
usw.

Gruss
A. Arndt
Gast #58106
Also was meinst du mit Schemaplan ?
Ich sende dir mal für den Anfang die Adressen, an denen der jeweilige
Speicher liegt und meinen Init-String für´s erste.

#define TXTADR        0000H
#define GRADR         0500H
#define CGADR         1800H


#define DUMMY    00H
#define CURSOR    21H
#define OFFSET    22H
#define ADPSET    24H
#define TXTHOME    40H
#define TXTAREA    41H
#define GRHOME    42H
#define GRAREA    43H
#define ORMODE    80H
#define XORMODE    81H
#define ANDMODE    83H
#define MODETXT    94H
#define MODEGRAPH  98H
#define MODEMIX    9CH
#define SEQUENCE_END   0A1H     ;define for Sequence-Routine


coInitSequence:

; -------------+- LOW ------+- HIGH ------+- CMD ------------------

        db      low(TXTADR), high(TXTADR), TXTHOME              ; set
text home address
        db      COLS,        00H,          TXTAREA              ; set
text area (columns)
        db      00H,         00H,          CURSOR
        db      low(GRADR),  high(GRADR),  GRHOME               ; set
graphic home address
        db      COLS,        00H,          GRAREA               ; set
graphic area (columns)
        db      DUMMY,       DUMMY,        ORMODE               ; set
XOR mode for text & graphic mix
        db      low(GRADR),  high(GRADR),  ADPSET               ;
address pointer set
        db      DUMMY,       DUMMY,        MODEMIX              ; set
text & graphic mode
        db      SEQUENCE_END


Das Ganze sende ich mit einer Routine als String zum Display. Die dazu
passenden Routinen haben keinen Sinn, da ja jeder das Display anders
ansteuert (bei mir über Port-Leitungen).

Ein Teil meiner Init sieht z.B. so aus :

vDisplayInit:           ; set home address
                        clr     SIG_CE
                        clr     SIG_RES
                        mov     r0, #0FFH
        loop:           nop
                        nop
                        djnz    r0, loop           ; Display startup
                        setb    SIG_RES
                        mov     r7, #low(coInitSequence)
                        mov     r6, #high(coInitSequence)
                        call    _vDisplaySendSequence

In das Display schreiben ...

_vDisplayWriteData:     call    vCheckBusyForData
                        mov     DATA_BUS, r7
                        clr     SIG_WR
                        setb    SIG_WR
                        ret

vCheckBusyForData:      mov     DATA_BUS, #0FFh         ; switch bus to
read bit 0+1
                        setb    SIG_CD                  ; switch to
cmd-mode
jBusyForDataLoop:       clr     SIG_RD
                        mov     a, DATA_BUS
                        setb    SIG_RD
                        anl     a, #03h                 ; take the
status-byte
                        xrl     a, #03h
                        jnz     jBusyForDataLoop        ; STA 0+1 is
not zero
                        clr     SIG_CD                  ; switch to
data-mode
                        ret

Na für den Anfang wirds ja mal reichen.

Ciao, Philipp
Gast #58108
Hallo,

ich möchte nur einmal 2-3 Buchstaben oder Zahlen darstellen und weiss
jetzt nach der Ini nicht, welche Hex-Codes ich senden muss für nur
Text-Darstellung...

Gruss
A. Arndt
Gast #58109
hi
mit basic sieht es schlecht aus aber vor kurzem hab ich mal meinen
c-sourcecode zur ansteuerung des T6963 mit einem pic controller
gepostet

es ist recht einfach geschrieben und du solltest leicht sehen was in
welcher reihenfolge geschieht

mfg
mike
Gast #58110
Nach der Initialisierung mußt du den Cursor dort hin setzen, wo der Text
beginnen soll und die Daten schreiben:

GOTO XY(0,0) -> WriteCmd[0,0,0x24]
WRITE "A"    -> WriteCmd[65, 0xC0]
WRITE "B"    -> WriteCmd[66, 0xC0]
.
.
.
0x24 ... Setze Adresse X, Y
0xC0 ... Kommando für "Schreibe Daten und erhöhe Adresszeiger"

Wichtig !!!
============
Beitreibst du das Display im 30 oder 40 Zeichen Mode (6 oder 8Bit
Graphikmode) ?

Hier eine Routinen in C für die Datenübertragung :
==================================================

void WriteData(unsigned char d)
{
    unsigned char busy = 0;

    P1 = 0xFF;                          // LCD on Port 1
    LCD_CD  = 1;                    // Command-Mode
    while((busy & 0x03) != 0x03)  // busy ?
    {
  LCD_CE = 0;
  LCD_RD = 0;
  busy = P1;
  LCD_RD = 1;
  LCD_CE = 1;
    }

    P1 = d;      // Data on Port 1

    LCD_WR  = 0;
    LCD_CE  = 0;
    LCD_WR  = 1;
    LCD_CE  = 1;  // Data is written
}

Viel Glück ...
Philipp
Gast #58111
Hallo,

vielen Dank für Eure Hilfe, ich habe mich schon mit den Datenblättern
herumgeschlagen und habe gesehen, dass ich vorerst dem Display sagen
muss Grafik oder/und Textmodus mit Befehlen um 80h und dann noch die
Home-Adress festlegen usw.

Mit dem Buchstaben schreiben und Intalilierung habe ich mich schon
beschäftigt, aber der Befehlssatz dazwischen mit 40h und 41h usw.

Gruss
A. Arndt

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.