Snažím se už měsíc uvést do provozu koupené LCD .Jedná se o toto http://www.gme.cz/cz/-p513-176.html a nevím jak na to program který jsem několikrát měnil nic s lcd nedělá.Použil jsem 4-bit komunikaci s připojenými vodiči E a RS
piny pro datové bity DB0-DB4 jsem propojil se zemí
Program je následující(některé řádky jsem použil z nalezeného zdrojáku):
LIST P=16F84A, R=DEC
INCLUDE <P16F84A.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC & _CP_OFF
RAM EQU H'0C' ; definice 1. registru pameti pro 16F84A
TMP0 EQU RAM+3 ; registr pro cekaci smycku
TMP1 EQU RAM+4 ; registr pro cekaci smycku
TMP3 EQU RAM+6 ; registr pro ulozeni stavu portu B
TMP4 EQU RAM+7 ; registr pro ulozeni obsahu W
#DEFINE E PORTB,4 ; definice bitu Enable pro obsluhu LCD
#DEFINE RS PORTB,5 ; definice bitu RS pro obsluhu LCD
ORG 0x000
bcf STATUS,RP0
clrf PORTA
clrf PORTB
BSF STATUS,RP0
MOVLW B'00000000'
MOVWF TRISB
bcf STATUS,RP0
; inicializace LCD
CALL CEK20MS ; cekani na pripraveny LCD
MOVLW B'0011' ; 4b mod, 2 radky, font 5x8
CALL ZAPISIN
call CEK2MS
MOVLW B'0011' ; 4b mod, 2 radky, font 5x8
CALL ZAPISIN
call CEK2MS
MOVLW B'0011' ; 4b mod, 2 radky, font 5x8
CALL ZAPISIN
call CEK2MS
MOVLW B'0010' ; 4b mod, 2 radky, font 5x8
CALL ZAPISIN
call CEK2MS
MOVLW B'00100000'
CALL ZAPIS
call CEK2MS
MOVLW B'00001111'
CALL ZAPIS
call CEK2MS
MOVLW B'00000110'
CALL ZAPIS
call CEK2MS
MOVLW B'00000001'
CALL ZAPIS
goto MAIN
ZAPISIN MOVWF TMP4 ; ulozeni W do pomocneho registru TMP4
bsf PORTB,3
btfss TMP4,3
bcf PORTB,3
bsf PORTB,2
btfss TMP4,2
bcf PORTB,2
bsf PORTB,1
btfss TMP4,1
bcf PORTB,1
bsf PORTB,0
btfss TMP4,0
bcf PORTB,0
BSF E ; zapis dat do LCD
BCF E
CALL CEK2MS
RETURN
ZAPIS MOVWF TMP4 ; ulozeni W do pomocneho registru TMP4
bsf PORTB,3
btfss TMP4,7
bcf PORTB,3
bsf PORTB,2
btfss TMP4,6
bcf PORTB,2
bsf PORTB,1
btfss TMP4,5
bcf PORTB,1
bsf PORTB,0
btfss TMP4,4
bcf PORTB,0
BSF E
nop ; zapis dat do LCD
BCF E
CALL CEK2MS
bsf PORTB,3
btfss TMP4,3
bcf PORTB,3
bsf PORTB,2
btfss TMP4,2
bcf PORTB,2
bsf PORTB,1
btfss TMP4,1
bcf PORTB,1
bsf PORTB,0
btfss TMP4,0
bcf PORTB,0
BSF E
nop ; zapis dat do LCD
BCF E
CALL CEK2MS
RETURN
CEK2MS MOVLW 0x36
MOVWF TMP1
aa MOVLW 0x0B
MOVWF TMP0
bb DECFSZ TMP0,1
GOTO bb
DECFSZ TMP1,1
GOTO aa
RETURN
CEK20MS MOVLW 0x20
MOVWF TMP1
cc MOVLW 0xCF
MOVWF TMP0
vv DECFSZ TMP0,1
GOTO vv
DECFSZ TMP1,1
GOTO cc
RETURN
MAIN
bsf RS
movlw B'01110101'
call ZAPIS
bcf RS
goto MAIN
end
Předem děkuju za rady.
jas
nazdar,
ja mam presne tento lcd panel
a ja som robil chybu v tom, ze som vobec nepripojil ten odporovy trimer na jas,
tj, vsetko som mal dobre len jas je bez toho trimra na nulovej hodnote,
cize ked ho zapojis tak ho vytiahni a zrejme toto bude jediny problem
ku kodu sa vyjadrit momentalne neviem, ja som
pouzil nejaku C-ckovu kniznicu
Já mam ale jas připojen
Já mam ale jas připojen přes odpor v tom ta chyba nebude.Ale dík
odpor ?
pozrel som sa na to moje zapojenie
a nemam ten model ktory mas ty ...
je to jeden z prvych 1x16 bez podsvetlenia
ale k podstate: ten riadiaci vstup vytiahne najvyssi kontrast v mojom pripade ked je na GND, postupnym zvysovanim napatia sa kontrast znizuje a pismena uplne zmiznu asi pri napati 1V.
z toho co si pisal sa mi zda ze ho mas pripojeny na Vcc cez odpor ????
tym padom by si spolahlivo stiahol kontrast ( to je lepsi vyraz ..nie jas ako som pisal predtym ) tak, ze nevidis nic.