mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EA DOG M162W-A


Autor: Mario (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
ich habe ein Problem

und zwar: sobald ich ein LCD Display mit einem HD44780 Controller an 
meine Schaltung anschließe funktioniert alles wunderbar.. Betreibe es im 
4Bit Modus

nun würde ich aus Platzgründen gerne ein EA DOG M162W-A verbauen aber 
sobald ich es anstecke bekomme ich keine Anzeige am Display nicht nicht 
einmal
einen Cursor oder dergleichen.

Verwende den PIC16F628A

Anbei die funktionierende Schaltung als JPG

bitte um hilfe

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>nun würde ich aus Platzgründen gerne ein EA DOG M162W-A verbauen aber
>sobald ich es anstecke bekomme ich keine Anzeige am Display nicht nicht
>einmal einen Cursor oder dergleichen.

Wie, direkt an den Steckverbinder?

Ausserdem braucht das Dog-Display eine andere Initialisierung.

MfG Spess

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok danke

habts ihr vl. eine Seite wo die Initialisierung für 4 Bit beschrieben 
ist?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>habts ihr vl. eine Seite wo die Initialisierung für 4 Bit beschrieben
>ist?

Datenblatt vom ST7036.

MfG Spess

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur die prinzipielle Initsequenz. Musst es natürlich noch an den 
speziellen µC anpassen, exaktes Timing usw.
// ***********************************************************************
// Grundinitialisierung des LCD-Moduls
// DOGM-162, 4-Bit parallel, 5V
// ***********************************************************************
void init_lcd(void) {
byte i_n;
  delay(100);         // Wartezeit nach POWER-ON
  LCD_DATA7 = 0;     // Initialisierung 3x 0011 xxxx 
  LCD_DATA6 = 0;
  LCD_DATA5 = 1;
  LCD_DATA4 = 1;
  for( i_n = 3; i_n; i_n--){      
    delay(20);
    LCD_RW = 0;
    LCD_RS = 0;
    LCD_E1 = 1;
    _asm nop; nop; nop; _endasm;     // Impulsverzögerung
    LCD_E1 = 0;
  }
  delay(20);
  LCD_DATA7 = 0;     // Initialisierung 0010 xxxx (4-Bit Mode) 
  LCD_DATA6 = 0;
  LCD_DATA5 = 1;
  LCD_DATA4 = 0;
  LCD_E1 = 1;
  _asm nop; nop; nop; nop; _endasm;     // Impulsverzögerung
  LCD_E1 = 0;
  delay(20);
  
  // Grundinitialisierung durchgeführt
  write_lcd(0x29,1);               // 4-Bit IS 0,1
  write_lcd(0x1C,1);               // BS: 1/4, 2 Zeilen
  write_lcd(0x52,1);               // 52 Boster aus, Kontrast C5,C4
  write_lcd(0x69,1);               // 69 Spannungsfolger und Verstärkung
  write_lcd(0x74,1);               // Kontrast C3,C2,C1
  write_lcd(0x0F,1);               // Display ein, Cursor ein, Cursor blinken
  write_lcd(0x06,1);               // Autoincrement
  clear_lcd();
}

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok dankee
warum muss das bei diesem Controller Typ so kompliziert sein :S

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist nicht wirklich kompliziert. Dafür kann der auch mehr. zB. 3.3V, 
keine Kontrastspannung erf., Kontrast per Software einstellbar, 
SPI-Ansteuerung um nur einiges zu nennen.

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat irgendwer die initialisierung im Assembler schon geschrieben??

suche und suche aber finde nix

ich brauche die Initialisierung für 4Bit/5V.......

haben wir heute schon mit lehrern versucht zu lösen, aber haben trotzdem 
keien Lösung gefunden....

PIC16F628A

Assembler

lg

Autor: Johannes M. (johannesm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim Hersteller gibts da fertige Sachen: 
http://www.lcd-module.de/download.html . Da müßte man sich eigentlich 
die wichtigsten Dinge abschauen können.

Autor: Mario (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ok

nun habe ich das Display so initialisiert

movlw   B'00110000'   ; 2
   call   Control8Bit
   movlw   B'00110000'   ; 3
   call    Control8Bit
   movlw   B'00100000'   ; 4
   call    Control8Bit


   movlw   B'00111000'   ; Function set
   call   OutLcdControl
   movlw   B'00111000'   ; Function set
   call   OutLcdControl
   movlw   B'00111000'   ; Function set
   call   OutLcdControl
   movlw   B'00100000'   ; Function set
   call   OutLcdControl
   movlw   B'00101000'   ; Function set
   call   OutLcdControl
   movlw   B'00010000'   ; Internal OSC frequency
   call   OutLcdControl
   movlw   B'01111111'   ; Contrast Set
   call   OutLcdControl
   movlw   B'01011111'   ; Power/ICON/Contrast controll
   call   OutLcdControl
   movlw   B'00111100'   ; Follower controll
   call   OutLcdControl
   movlw   B'00001111'   ; Display ON/OFF control
   call   OutLcdControl

und es geht noch immer nicht, an was kann es liegen??

im anhang das unveränderte Programm

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mario schrieb:
> ok
>
> nun habe ich das Display so initialisiert
>
> movlw   B'00110000'   ; 2
>    call   Control8Bit
>    movlw   B'00110000'   ; 3
>    call    Control8Bit
>    movlw   B'00100000'   ; 4
>    call    Control8Bit
>
>
>    movlw   B'00111000'   ; Function set
>    call   OutLcdControl
>    movlw   B'00111000'   ; Function set
>    call   OutLcdControl
>    movlw   B'00111000'   ; Function set
>    call   OutLcdControl
>    movlw   B'00100000'   ; Function set
>    call   OutLcdControl
>    movlw   B'00101000'   ; Function set
>    call   OutLcdControl
>    movlw   B'00010000'   ; Internal OSC frequency
>    call   OutLcdControl
>    movlw   B'01111111'   ; Contrast Set
>    call   OutLcdControl
>    movlw   B'01011111'   ; Power/ICON/Contrast controll
>    call   OutLcdControl
>    movlw   B'00111100'   ; Follower controll
>    call   OutLcdControl
>    movlw   B'00001111'   ; Display ON/OFF control
>    call   OutLcdControl
>
> und es geht noch immer nicht, an was kann es liegen??
>
> im anhang das unveränderte Programm


alsoo ich habe jz. diese Lösung probiert tut sich aber trotzdem noch nix

   movlw   B'00111000'   ; Function set
   call   Control8Bit    ; <- Achtung, keine Busyabfrage möglich
   movlw   B'00111000'   ; Function set
   call   Control8Bit    ; <- Achtung, keine Busyabfrage möglich
   movlw   B'00111000'   ; Function set
   call   Control8Bit    ; <- Achtung, keine Busyabfrage möglich
   movlw   B'00100000'   ; Function set
   call   OutLcdControl
   movlw   B'00101000'   ; Function set
   call   OutLcdControl
   movlw   B'00010000'   ; Internal OSC frequency
   call   OutLcdControl
   movlw   B'01111111'   ; Contrast Set
   call   OutLcdControl
   movlw   B'01011111'   ; Power/ICON/Contrast controll
   call   OutLcdControl
   movlw   B'00111100'   ; Follower controll
   call   OutLcdControl
   movlw   B'00001111'   ; Display ON/OFF control
   call   OutLcdControl

hat jemand eine idee, die Lehrer wissen auch nicht woran es liegt alsoo 
seits ihr meine letzte hoffnung :D

lg mario

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.