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.
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
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.
Dann siegessicher das Druckerdisplay an die Haustür gesteckt und ... Funktioniert nicht
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
Display 4x20 will nicht :-(
Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese
- Alexander470815
- Beiträge: 2385
- Registriert: So 11. Aug 2013, 15:42
- Wohnort: D:\Hessen\Gießen
Re: Display 4x20 will nicht :-(
Vielleicht ganz doof die Kontrastspannung nicht passend?
Weil wenn es nicht initialisiert wird zeigt es normalerweise zwei Balken an.
Weil wenn es nicht initialisiert wird zeigt es normalerweise zwei Balken an.
Re: Display 4x20 will nicht :-(
Kontrastspannung wäre jetzt auch mein Favorit. Poti dazwischen und mal vorsichtig drehen. Zu 90% hast du dann wieder eine Anzeige.
Re: Display 4x20 will nicht :-(
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
MfG. Andreas
Re: Display 4x20 will nicht :-(
Kopf auf Tisch -> aua!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.
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ß
- Weisskeinen
- Beiträge: 3948
- Registriert: Di 27. Aug 2013, 16:19
Re: Display 4x20 will nicht :-(
Mal eine Off-Topic-Frage: wie detektierst du offene Fenster? Kaufsensoren? Selbstbau-Sensoren? Drahtgebunden oder Funk?
Re: Display 4x20 will nicht :-(
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.
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.