radic 44780, znakova sada z A02

Na display potrebuji zobrazit znak, ktery je v ROM CODE: A02. Ktery parametr musim nastavit abych mohl zobrazovat znaky z CODE: A02 kdyz defaultne se mi zobrazuji z ROM CODE: A00 ?

;**************************************************************************
; Podprogram na obsluhu LCD
;**************************************************************************
CLS_LCD
	movlw	.0
	goto	WR_CMD
LINE1
	movlw	0x80
	goto	WR_CMD
LINE2
	movlw	0xC0
	goto	WR_CMD
LINE3
	movlw	0x94
	goto	WR_CMD
LINE4
	movlw	0xD4
	goto	WR_CMD

WR_CMD
	banksel	0
	bcf		RS				; RS=0, zápis instrukcí do LCD
	goto	$+4
;-------------------------------
WR_LCD   
	banksel	0
	bsf		RS				; RS=1, zápis dat do LCD
;       ------------------------
	movwf	ZNAK			; ulozit W do ZNAK   !!! data v registru W !!!
	bsf		E				; nastav Enable
;       ------------------------
	movf	LCD_PORT,W		; zapamatovat stav PORTuD
;	iorlw	0x0F			; !!! poslat na PORTD 0-3 !!! (vysledek je xxxx1111)
	iorlw	0xF0			; !!! poslat na PORTD 4-7 !!! (vysledek je 1111xxxx)
	movwf	TMP1			; zapise W do TMP1
;-------------------------------
;   swapf	ZNAK,W			; !!! poslat na PORTD 0-3 !!!
;   iorlw	0xF0			; zamaskuje horní bity (vysledek je 1111xxxx)

	movf	ZNAK,W			; !!! poslat na PORTD 4-7 !!!
	iorlw	0x0F			; zamaskuje dolní bity (vysledek je xxxx1111)

	andwf	TMP1,W			; pošle vyšší 4 bity na PORTD
	movwf	LCD_PORT
	bcf		E				; zapíše do LCD
;-------------------------------
	bsf		E				; nastav Enable

;   movf   ZNAK,W			; !!! poslat na PORTD 0-3 !!!
;   iorlw   0xF0			; zamaskuje horní bity (vysledek je 1111xxxx)

	swapf	ZNAK,W			; !!! poslat na PORTD 4-7 !!!
	iorlw	0x0F			; zamaskuje dolní bity (vysledek je xxxx1111)

	andwf	TMP1,W			; pošle nižší 4 bity na PORTD
	movwf	LCD_PORT
	bcf		E				; zapíše do LCD
;-------------------------------
	btfsc	RS
	goto	CEK40			; RS=1, zápis dat - čekej 40 us
;       ------------------------
	movlw	04h				; instrukce 1, 2 a 3 - čekej 1,64 ms
	subwf	ZNAK,W
	btfss	STATUS,C
	goto	CEK1m6			; C=0, instrukce CLEAR - čekej 1,64 ms
	goto	CEK40			; C=1, zápis dat - čekej 40 us
;**************************************************************************
;**************************************************************************
INI_LCD	
	call	CEK15m			; cekej 15ms
	bcf		RS				; zapis ridicich instrukci do LCD
;-------------------------------
	movlw	30h				; !!! poslat 03h na PORTD 4-7 (vstupy LCD DB4-DB7) !!!
;	movlw	03h				; !!! poslat 03h na PORTD 0-3 (vstupy LCD DB4-DB7) !!!
	movwf	LCD_PORT
;       ------------------------
	bsf		E
	bcf		E
	call	CEK4m			; cekej 4,1ms
;       ------------------------
	bsf		E
	bcf		E
	call	CEK100			; cekej 100us
;       ------------------------
	bsf		E
	bcf		E
	call	CEK40			; cekej 40us
;-------------------------------
	movlw	20h				; !!! poslat 03h na PORTB 4-7 (vstupy LCD DB4-DB7) !!!
;	movlw	02h				; !!! poslat 03h na PORTB 0-3 (vstupy LCD DB4-DB7) !!!
	movwf	LCD_PORT		; nastavena 4-bitova komunikace
;       ------------------------
	bsf	E
	bcf	E
	call	CEK40			; cekej 40us
;-------------------------------
	movlw	28h				; 00101000 - počet bitů, 2 řádky, 5x7 znaky
	call	WR_CMD
	movlw	0Ch				; 00001100 - display ON, kurzor OFF, blikání OFF
	call	WR_CMD
	movlw	01h				; 00000001 - smaže displej, kurzor na pozici 0
	call	WR_CMD
	movlw	06h				; 00000110 - směr kurzoru, posunu displeje
	call	WR_CMD
;       ------------------------
	return

Dekuji za radu.

Cau, myslim ze mas asi smulu

pokud chces znak kterej neni obsazenej tak jedine udelat vlastni nebo sehnat ten se znakovou sadou jakou potrebujes

Obligatni otazka :slight_smile: je nekde kousek kodu jak na to ? ytvorit si vlastni znak a ten supnout na display.

Je , mozna i tady na foru (nevimto urcite), staci hledat treba na DOVEDA BOYS , “test LCD”
doveda.byl.cz/lcd/index.htm