Ashky Postat Decembrie 3, 2009 Partajează Postat Decembrie 3, 2009 Ma poate ajuta si pe mine cineva cu initializalea LCD-ului asta ca de 2 zile ma chinuie si nu pricep unde e greseala.LCDInit call Delay call Delay call Delay bcf LCD_E bcf LCD_RS bcf LCD_RW call Delay movlw b'00111100' ;0011NFxx movwf temp_wr call InitWrite call Delay movlw b'00001111' ;Display off movwf temp_wr call InitWrite call Delay movlw b'00000001' ;Display Clear movwf temp_wr call InitWrite call Delay movlw b'00000110' ;Entry mode movwf temp_wr call InitWrite bcf LCD_RW bsf LCD_RS returnInitWrite bcf LCD_E bcf LCD_RS nop movwf PortLCD nop nop nop bsf LCD_E nop nop nop nop nop nop nop nop nop nop bcf LCD_E nop returnLCD-ul e compatibil HD44780 si picu e 18LF4520 Link spre comentariu
Ashky Postat Decembrie 4, 2009 Autor Partajează Postat Decembrie 4, 2009 Cu greu am reusit sa aflu ca aveam montat cristal de 20Mhz (in prospect scrie 12), am marit delay-urile, merge USART-ul dar LCD-ul tot nu merge, se aprind toti pixelii de pe randul de sus si atat. Link spre comentariu
Ashky Postat Decembrie 6, 2009 Autor Partajează Postat Decembrie 6, 2009 Am incercat asa: clrf PortLCD movlw 0xff movwf TrisLCD bcf TrisLCD_RW bcf TrisLCD_RS bcf TrisLCD_E bcf LCD_RW bcf LCD_RS bcf LCD_Eun delay de 18ms movlw b'00110000' movwf PortLCD bsf LCD_E un delay de 10us bcf LCD_E un delay de 6,3ms asta inca de 2 ori (de la movlw b'00110000')dupa careLCD_Busy movlw 0x00 movwf TrisLCD bsf LCD_RW bcf LCD_RS call Delay_E - 10usec bsf LCD_E call Delay_E btfss PortLCD,7 goto $-1 bcf LCD_E bcf LCD_RW movlw 0xff movwf TrisLCD returndin care nu mai iese.Unde e buba ? Link spre comentariu
Vizitator Berty Postat Decembrie 6, 2009 Partajează Postat Decembrie 6, 2009 Comanda:movlw 0xffmovwf TrisLCDnu seteaza cumva portul respectiv ca intrare? Link spre comentariu
Vizitator Berty Postat Decembrie 6, 2009 Partajează Postat Decembrie 6, 2009 Mai corect este:................movlw 0xffmovwf TrisLCDbtfss PortLCD,7goto $-1...........return Link spre comentariu
Ashky Postat Decembrie 6, 2009 Autor Partajează Postat Decembrie 6, 2009 Da, corect. 0xff trebuia, dar tot acolo se intepeneste, am pus sa aprinda un led inainte si unul dupa partea cu btfss si acolo se intepeneste.Afisajul sigur e bun ptr ca am un hex cu care merge. Link spre comentariu
Vizitator Berty Postat Decembrie 7, 2009 Partajează Postat Decembrie 7, 2009 Incearca:...................movlw 0x00movwf TrisLCDmovlw b'00110000'movwf PortLCDbsf LCD_Eun delay de 10usbcf LCD_Eun delay de 6,3ms ..................... Link spre comentariu
Ashky Postat Decembrie 14, 2009 Autor Partajează Postat Decembrie 14, 2009 Nu vrea si pace, acelasi cod (mai periat un pic) l-am incercat pe un 16x2 si merge, pe asta 20x2 nu merge.Am trecut oscilatorul pe intern(4 Mhz) ca sa nu mai modific delay-urile si nimic.La un moment dat in loc de dunga neagra aparuse doar cate un patratel unde ar fi trebuit sa fie un caracter.Ma gandesc ca poate nu are controler HD44780. Link spre comentariu
Ashky Postat Decembrie 16, 2009 Autor Partajează Postat Decembrie 16, 2009 Am rezolvat problema, codul era bun.Problema era de la initializarea portului E.Biti 4-7 de la TRISE controleaza portul paralel si eu ii setam la initializare.Nu inteleg cum afecteaza asta porturile A si D pe care am afisajul, dar daca nu sun biti aia pe 0 nu merge. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum