Display 4x20 will nicht :-(

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
Benutzeravatar
Toni
Beiträge: 2525
Registriert: Di 13. Aug 2013, 18:24

Display 4x20 will nicht :-(

Beitrag von Toni »

Moin,
ich habe neben der Haustür ein 4x20 Display von Displaytech. Das war ein Feld-Wald-und-Wiesen-Typ aus den 90'ern. Funktioniert soweit.
dp1.jpg
Ist halt kontrastarm.

In meinem Billig-3D-Drucker ist auch ein 4x20 "2004A" verbaut mit schönem Kontrast. Funktioniert auch. Datenblatt: https://www.beta-estore.com/download/rk ... 90_410.pdf
dp2.jpg
Die beiden Displays sind von den Maßen, Befestigungen und Anschlüssen kompatibel (freu :) ) Also kam die Idee auf die Displays zu tauschen, damit das Kontrastreichere an der Haustür ist.

Erster Versuch: Haustürdisplay an 3D Drucker gesteckt. Funktioniert.
dp3.jpg
Dann siegessicher das Druckerdisplay an die Haustür gesteckt und ... Funktioniert nicht :cry:
dp4.jpg
Die Ansteuerung hatte ich in den 90'ern in Assembler programmiert (was anderes kann ich nicht...)
Es wird über 4 Datenbits angesteuert, das dürfte bem 3D Drucker auch so sein.

Beim Displaytech heißt es "HD44780-KOMPATIBEL". Beim 2004A "Controller SPLC780D".
Weiß jemand worin der Unterschied liegen könnte, oder wo ich anfangen sollte?


Hier der Programmteil für Displayansteuerung:
*Displayansteuerung fuer Dotmatrix 4*20 Zeichen
*Ueber PortB (PB2 bis PB7)
*PB2 = RS (0=Progr.,1=ASCII)
*PB3 = Enable_
*PB4 = Data 0
*PB5 = Data 1
*PB6 = Data 2
*PB7 = Data 3

* Das Display wird einmalig initialisiert:
dpinit bclr $fc,PORTB,x *Bit 2..7 loeschen
bset $08,PORTB,x *ENABLE aus
bset $20,PORTB,x *4 Bit Datenlaenge einschalten
jsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
bclr $20,PORTB,x
bset $20,PORTB,x *4 Bit Datenlaenge, 2 Zeilen, 5*7 Hbyte 1
bsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
bclr $20,PORTB,x
bset $80,PORTB,x *4 Bit Datenlaenge, 2 Zeilen, 5*7 Hbyte 2
bsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
bclr $80,PORTB,x
bset $00,PORTB,x *Display ein, Cursor ein, Cursor blinken Hbyte 1
bsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
bclr $00,PORTB,x
bset $c0,PORTB,x *Display ein, Cursor ein, Cursor blinken Hbyte 2
bsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
bclr $c0,PORTB,x
bset $00,PORTB,x *Displ. l”schen, Cursor auf links oben Hbyte 1
bsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
bclr $00,PORTB,x
bset $10,PORTB,x *Displ. l”schen, Cursor auf links oben Hbyte 2
bsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
bclr $10,PORTB,x
bset $00,PORTB,x *Cursor auto-increment Hbyte 1
bsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
bclr $00,PORTB,x
bset $60,PORTB,x *Cursor auto-increment Hbyte 2
bsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
bclr $60,PORTB,x
rts


****************************************************************************
delay pshx *Pause fuer lahmes Display
pshy
psha
pshb
ldy #$0006
loop idiv
dey
bne loop
pulb
pula
puly
pulx
rts


*****************************************************************************
*Dateneingabe fuer Display (schreibt Zeichen aus Data+0..Data+80)
dpsend bset $04,PORTB,x *ASCII-mode
ldy #$0000 *
zeile1 ldaa data,y *
cmpa #$09
ble korr
bra keineko
korr adda #$30 *ASCII-Korrektur
keineko tab
anda #$f0
bclr $f0,PORTB,x
oraa PORTB,x *Hbyte Low
staa PORTB,x
bsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
lslb
lslb
lslb
lslb
bclr $f0,PORTB,x
orab PORTB,x *Hbyte Low
stab PORTB,x
jsr delay
bclr $08,PORTB,x *Display enable
nop
bset $08,PORTB,x *Display enable aus
iny
cpy #80
bne zeile1 *80 mal
rts
Benutzeravatar
Alexander470815
Beiträge: 2385
Registriert: So 11. Aug 2013, 15:42
Wohnort: D:\Hessen\Gießen

Re: Display 4x20 will nicht :-(

Beitrag von Alexander470815 »

Vielleicht ganz doof die Kontrastspannung nicht passend?
Weil wenn es nicht initialisiert wird zeigt es normalerweise zwei Balken an.
Sir_Death
Beiträge: 3446
Registriert: Mo 11. Mai 2015, 22:36
Wohnort: südlich von Wien

Re: Display 4x20 will nicht :-(

Beitrag von Sir_Death »

Kontrastspannung wäre jetzt auch mein Favorit. Poti dazwischen und mal vorsichtig drehen. Zu 90% hast du dann wieder eine Anzeige. ;)
andreas6
Beiträge: 4152
Registriert: So 11. Aug 2013, 15:09

Re: Display 4x20 will nicht :-(

Beitrag von andreas6 »

Das Timing dieser Controller ist sehr unterschiedlich. Gerade beim Initialisieren und Modusumschaltung kann er da durchaus mal mehr als eine Millisekunde nachdenken (Datenblatt konsultieren). Hier hat es sich sehr bewährt, die Bereitschaft des Controller abzufragen. Diese signalisiert er auf einem einzigen Bit. Damit wird die ganze Anzeige deutlich schneller und sicherer. Einfach stumpf zu warten kann gut gehen, muss aber nicht.

MfG. Andreas
Benutzeravatar
Toni
Beiträge: 2525
Registriert: Di 13. Aug 2013, 18:24

Re: Display 4x20 will nicht :-(

Beitrag von Toni »

Alexander470815 hat geschrieben: Mi 6. Nov 2019, 16:35 Vielleicht ganz doof die Kontrastspannung nicht passend?
Weil wenn es nicht initialisiert wird zeigt es normalerweise zwei Balken an.
dp5.jpg
Kopf auf Tisch -> aua!
Ursache war ganz banal: nur die Kontrastspannung. Beim Alten war die fest eingestellt, da hatte ich nicht mehr dran gedacht.

Danke für den Anstoß :)
Benutzeravatar
Weisskeinen
Beiträge: 3948
Registriert: Di 27. Aug 2013, 16:19

Re: Display 4x20 will nicht :-(

Beitrag von Weisskeinen »

Mal eine Off-Topic-Frage: wie detektierst du offene Fenster? Kaufsensoren? Selbstbau-Sensoren? Drahtgebunden oder Funk?
Benutzeravatar
Toni
Beiträge: 2525
Registriert: Di 13. Aug 2013, 18:24

Re: Display 4x20 will nicht :-(

Beitrag von Toni »

Reedschalter in der Fensterprofilritze innen versenkt und in Heißkleber abgesoffen (Ritze wo die Schließbleche reingesteckt und verschraubt werden). Kleine Löcher Richtung Mauerwerk gebohrt und da Kabel durchgeführt.
Magnet am Flügel.
Ist so gut wie unsichtbar.

Das passierte alles während Bau, daher wars kein Problem mit fester Verkabelung. Da wurden hauptsächlich 8adrige ISDN Flachkabel an die Wand heißgeklebert, und später drüber verputzt.
Antworten