LCD

Aus NKC Computer
Wechseln zu: Navigation, Suche
NKC-LCD v1.0
NKC-LCD v.1.0 Layout
NKC-LCD im Einsatz


Die NKC-LCD Platine gestattet das Anschließen von LCDs mit HD44780 oder kompatiblem Controller direkt an den NKC-BUS. Das trifft z.B. auf die meisten erhältlichen 1602, 2002 oder 2004 Module zu. Diese können zum Beispiel zum Debuggen ohne Grafikkarte verwendet oder parallel zu einer GDP64 genutzt werden.

Default I/O-Port: 0AAh/0ABh

Zur Bestimmung des Vorwiderstandes Rv1 (Helligkeit) sollte unbedingt das Datenblatt studiert werden. Einige LCDs mit leistungsstarker Hintergrundbeleuchtung erfordern einen ca. 6 Ohm Widerstand mit bis zu 0,5W Belastbarkeit. In den meisten Fällen kann ein 150 Ohm Potentiometer eingesetzt werden.

Beispielcode für Z80:

   cpu	z80
   aseg
;	org	0000h		;start im EPROM
   org	8800h		;start im RAM
;****************************************
;* LCD Test    *
;****************************************
   jp 	start		;hauptprogramm
lcd0	equ	0aah	; lcd steuerregister
lcd1	equ	0abh	; lcd datenregister
   ; warte bis LCD wieder bereit ist
lcdbusy:
   push af
lcdbusy0:
   in a,(lcd0)
   and 80h
   jp nz,lcdbusy0
   pop af
   ret
   ; Initialisierung
lcdinit:
   push af
   push bc
   ld b,4
lcdinit0:
   ld a,38h
   out (lcd0),a
   call lcdbusy
   djnz lcdinit0
   ld a,6
   out (lcd0),a
   call lcdbusy
   ld a,0eh
   out (lcd0),a
   call lcdbusy
   ld a,1
   out (lcd0),a
   call lcdbusy
   ld a,80h
   out (lcd0),a
   call lcdbusy
   pop bc
   pop af
   ret
   ; Programmstart
   ; Initialisierung und Text ausgeben
start:
   call lcdinit
   ld a,'N'
   out (lcd1),a
   call lcdbusy
   ld a,'K'
   out (lcd1),a
   call lcdbusy
   ld a,'C'
   out (lcd1),a
   call lcdbusy
   ld a,'-'
   out (lcd1),a
   call lcdbusy
   ld a,'L'
   out (lcd1),a
   call lcdbusy
   ld a,'C'
   out (lcd1),a
   call lcdbusy
   ld a,'D'
   out (lcd1),a
   call lcdbusy
   ld a,' '
   out (lcd1),a
   call lcdbusy
   ld a,' '
   out (lcd1),a
   call lcdbusy
   ld a,' '
   out (lcd1),a
   call lcdbusy
   ld a,' '
   out (lcd1),a
   call lcdbusy
   ld a,'2'
   out (lcd1),a
   call lcdbusy
   ld a,'0'
   out (lcd1),a
   call lcdbusy
   ld a,'x'
   out (lcd1),a
   call lcdbusy
   ld a,'4'
   out (lcd1),a
   call lcdbusy
   ld a,' '
   out (lcd1),a
   call lcdbusy
   ld a,'T'
   out (lcd1),a
   call lcdbusy
   ld a,'e'
   out (lcd1),a
   call lcdbusy
   ld a,'s'
   out (lcd1),a
   call lcdbusy
   ld a,'t'
   out (lcd1),a
   call lcdbusy
   ld a,'k'
   out (lcd1),a
   call lcdbusy
   ld a,'l'
   out (lcd1),a
   call lcdbusy
   ld a,'m'
   out (lcd1),a
   call lcdbusy
   ld a,'n'
   out (lcd1),a
   call lcdbusy
   ld a,'o'
   out (lcd1),a
   call lcdbusy
   ld a,'p'
   out (lcd1),a
   call lcdbusy
   ld a,'q'
   out (lcd1),a
   call lcdbusy
   ld a,'r'
   out (lcd1),a
   call lcdbusy
   ld a,'s'
   out (lcd1),a
   call lcdbusy
   ld a,'t'
   out (lcd1),a
   call lcdbusy
   ld a,'u'
   out (lcd1),a
   call lcdbusy
   ld a,'v'
   out (lcd1),a
   call lcdbusy
   ld a,'w'
   out (lcd1),a
   call lcdbusy
   ld a,'x'
   out (lcd1),a
   call lcdbusy
   ld a,'y'
   out (lcd1),a
   call lcdbusy
   ld a,'z'
   out (lcd1),a
   call lcdbusy
   ld a,' '
   out (lcd1),a
   call lcdbusy
   ld a,' '
   out (lcd1),a
   call lcdbusy
   ld a,' '
   out (lcd1),a
   call lcdbusy
   ld a,' '
   out (lcd1),a
   call lcdbusy
   ld a,'0'
   out (lcd1),a
   call lcdbusy
   ld a,'1'
   out (lcd1),a
   call lcdbusy
   ld a,'2'
   out (lcd1),a
   call lcdbusy
   ld a,'3'
   out (lcd1),a
   call lcdbusy
   ld a,'4'
   out (lcd1),a
   call lcdbusy
   ld a,'5'
   out (lcd1),a
   call lcdbusy
   ld a,'6'
   out (lcd1),a
   call lcdbusy
   ld a,'7'
   out (lcd1),a
   call lcdbusy
   ld a,'8'
   out (lcd1),a
   call lcdbusy
   ld a,'9'
   out (lcd1),a
   call lcdbusy
   ld a,'a'
   out (lcd1),a
   call lcdbusy
   ld a,'b'
   out (lcd1),a
   call lcdbusy
   ld a,'c'
   out (lcd1),a
   call lcdbusy
   ld a,'d'
   out (lcd1),a
   call lcdbusy
   ld a,'e'
   out (lcd1),a
   call lcdbusy
   ld a,'f'
   out (lcd1),a
   call lcdbusy
   ld a,'g'
   out (lcd1),a
   call lcdbusy
   ld a,'h'
   out (lcd1),a
   call lcdbusy
   ld a,'i'
   out (lcd1),a
   call lcdbusy
   ld a,'j'
   out (lcd1),a
   call lcdbusy
   ld a,'V'
   out (lcd1),a
   call lcdbusy
   ld a,'i'
   out (lcd1),a
   call lcdbusy
   ld a,'e'
   out (lcd1),a
   call lcdbusy
   ld a,'l'
   out (lcd1),a
   call lcdbusy
   ld a,' '
   out (lcd1),a
   call lcdbusy
   ld a,'S'
   out (lcd1),a
   call lcdbusy
   ld a,'p'
   out (lcd1),a
   call lcdbusy
   ld a,'a'
   out (lcd1),a
   call lcdbusy
   ld a,'s'
   out (lcd1),a
   call lcdbusy
   ld a,'s'
   out (lcd1),a
   call lcdbusy
   ld a,'!'
   out (lcd1),a
   call lcdbusy
loop:
   ret