www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ansteuerung des ST7565R via PIC-16F87A (Assembler)


Autor: Adrian K. (lekouz)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich bekam den Auftrag das Display EA-DOGL128-6 per Assembler 
anzusteuern.
SPI ist aktiviert und die Daten wurden auch per Logic-Analizer 
kontrolliert.
Sobald alles initialisiert wurde, wollen wir via RS232, einzelne Pixel 
ansteuern.
Das Programm ist fähig, Befehle für's Display oder den Controller zu 
unterscheiden. A0 wird somit automatisch definiert.
Initialisiert wurde das Display mit Hilfe eines Beispiels in folgender 
Anleitung (S.6) http://www.lcd-module.de/deu/pdf/grafik/dogl128-6.pdf

Jedoch tut das Display bis jetzt noch keinen Mux.
Die Spannung der Datenpäckchen werden via Spannungsteiler von 5V auf ca. 
3,2V gesenkt.

SPI-Übertragung wurde auf "Steigende Flanke" eingestellt.
Chip Select-Pin wurde auf GND gezogen.
Reset erfolgt über den PIC via Open-Drain-Pin PortA,4.
Eine 1 ergibt ein Low, eine 0 ein High.

Die hier im Forum geposteten C-Codes für die Initialisierung sind zwar 
hilfreich, jedoch ohne erfolgreiche Ergebnisse in Bezug auf Assembler. 
(Wichtig sind ja die Bytes, welche übertragen werden)

Weiss jemand einen Rat, was man noch beachten sollte oder was bei der 
Initialisierung falsch läuft?


Die Initialisierung wurde folgendermassen erstellt:

;***Display Initialisierung*****************************************?

bsf  PORTA,4    ;Setzt das Reset-Bit
all  WAIT_10ms    ;10ms warten bis sich die Spannung stabilisiert hat
bcf  PORTA,4    ;Löscht das Reset-Bit
call  WAIT_1ms    ;Warte 1ms

bcf  PORTC,2    ;setzt A0 auf Low
movlw  0x40    ;Display Start Line
movwf  SSPBUF
call  WAIT_100us
movlw  0xA1    ;ADC reverse
movwf  SSPBUF
call  WAIT_100us
movlw  0xC0    ;Normal Com0~Com63
movwf  SSPBUF
call  WAIT_100us
movlw  0xA6    ;Display normal
movwf  SSPBUF
call  WAIT_100us
movlw  0xA2    ;Set bias 1/9 (Duty 1/65)
movwf  SSPBUF
call  WAIT_100us
movlw  0x2F    ;Booster, Regulator and Follower on
movwf  SSPBUF
call  WAIT_100us
movlw  0xF8    ;Set internal Booster to 4x
movwf  SSPBUF
call  WAIT_100us
movlw  0x00    ;...
movwf  SSPBUF
call  WAIT_100us
movlw  0x27    ;Contrast Set
movwf  SSPBUF
call  WAIT_100us
movlw  0x81    ;...
movwf  SSPBUF
call  WAIT_100us
movlw  0x10    ;...
movwf  SSPBUF
call  WAIT_100us
movlw  0xAC    ;No indicator
movwf  SSPBUF
call  WAIT_100us
movlw  0x00    ;...
movwf  SSPBUF
call  WAIT_100us
movlw  0xAF    ;...
movwf  SSPBUF


Im Anhang befindet sich der ganze Assemblercode.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.