Hallo,

ik werk nu een beetje met een LCD schermpje, maar het lukt nog niet helemaal. Initialiseren lukt wel (4 bit interface). Een probleem is dat de cursor op de onderste regel start, echter heb ik nergens een commando kunnen vinden om regels te skippen. Maar mijn echte probleem is meer, hoe schrijf ik nu een karakter naar het scherm? er zijn genoeg sites hierover, maar meestal in picbasic ofzo, maar hier wil ik niet mee werken. Mijn assembler-code wat ik nu heb, om een A naar het scherm te schrijven (wat niet werkt dus) is als volgt:

(db4 t/m db7 zitten aan rb4 t/m rb7 vast van mijn pic16f628A!)


; Adres linksboven schrijven: kies adres 0
			MOVLW	b'10000000'		;eerste deel (4bits interface): 1000
			MOVWF	portb			;schrijf naar poort b
			CALL	enabler			;zet enable hoog en laag
			CALL	wait257c		;wacht 64 microseconde
			MOVLW	b'00000000'		; 2e deel (4 bits interface) (schrijf 0000)
			MOVWF	portb			; 2e deel (4 bits interface)
			CALL	enabler			; 2e deel (4 bits interface)
			CALL	wait257c		; 2e deel (4 bits interface)
; Letter A schrijven
			BSF		porta,	RS		;Register-lijn hoog zetten om ddram te kunnen schrijven
			MOVLW	b'01000000'		;eerste deel (4bits interface): 0100
			MOVWF	portb			;schrijf naar poort b
			CALL	enabler			;zet enable hoog en laag
			CALL	wait257c		;wacht 64 microseconde
			MOVLW	b'00010000'		; 2e deel (4 bits interface) (schrijf 0001)
			MOVWF	portb			; 2e deel (4 bits interface)
			CALL	enabler			; 2e deel (4 bits interface)
			CALL	wait257c		; 2e deel (4 bits interface)

Als iemand mij zou kunnen vertellen wat ik verkeerd doe, zou ik dat erg waarderen!

Groeten, Tomas

Download een datasheet of kijk hier.

>hier< werken ze dus niet met assembler, en ik kan geen sheet vinden, want ik weet niet wat voor merk mijn lcd is

In geen enkele datasheet werken ze met assembler (nou ja, de datasheet van je uC wellicht nog ;) ). Heb nou niet de illusie dat je hapklare code krijgt... (of je moet het toevallig ergens vinden). Zo spannend is het nou ook weer niet om zelf even uit te zoeken hoe je bitjes hoog/laag zet.

Verder heb je 90% kans dat het ding een 44780 (of compatible) is. En die is niet zo moeilijk te vinden (maar, zoals verwacht.. Er staat geen assembly voor een PIC in. Ook die fabrikant vindt dat je dat wel even zelf kunt maken).

Veel kans is de controller van je character LCD een HD44780, en daar zijn genoeg datasheets over te vinden :)

HD77480

4 en 7 omgewisseld Paul?

haha, ja sorry :P
Maar wat ik tot nog toe heb geprobeerd, is de code reproduceren in asm van de code uit andere talen, echter ik kan niet echt een website vinden met een specifiek voorbeeld in welke volgorde commando's moeten gegeven om letters op het scherm te krijgen..
Is er iets dat je moet instellen alvorens je een karakter kan schrijven? Wat ik nui doe, is cursor op 0 zetten, en dan een "a" schrijven (RS hoog, RW laag (hardwired aan ground) en dan karaktercode) maar dit werkt dus niet.
Btw: initialiseren is al gebeurd

[Bericht gewijzigd door tomass op ]

Op 14 december 2005 13:24:23 schreef Marco69:
[...]4 en 7 omgewisseld Paul?

*fluit onschuldig
Waar? http://gathering.tweakers.net/global/smileys/hypocrite.gif

Ja, was een typo

Op 14 december 2005 13:30:26 schreef tomass:
haha, ja sorry :P
Maar wat ik tot nog toe heb geprobeerd, is de code reproduceren in asm van de code uit andere talen, echter ik kan niet echt een website vinden met een specifiek voorbeeld in welke volgorde commando's moeten gegeven om letters op het scherm te krijgen..
Is er iets dat je moet instellen alvorens je een karakter kan schrijven? Wat ik nui doe, is cursor op 0 zetten, en dan een "a" schrijven (RS hoog, RW laag (hardwired aan ground) en dan karaktercode) maar dit werkt dus niet.
Btw: initialiseren is al gebeurd

Hier kan ik maar 1 ding op zeggen: RTFD.
Daar staat het tot op bit niveau uitgelegd. Tevens op de site waar ik je al eerder een (naar jouw mening onbruikbare) link naar gaf.
Verder hebben we deze nog, maar die heb je natuurlijk al lang gevonden in je zoektocht naar een bruikbare datasheet.

kijk daar heb ik wat aan.. thnx dat je het meteen effe post'e