Vizitator david1 Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 Buna ziua tuturor, De ceva vreme imi bat capul cu un afisaj LCD de tipul RC1602B-BIW-ESX. Am folosit o schema simpla in proteus, am creat un program in MPLab, in proteus totul este ok, functioneaza, imi afiseaza textul, dar trebuie sa mentionez ca in proteus nu am avut modelul LCD de mai sus, drept urmare am folosit modelul LM016L. Am vazut in documentatiile celor doua tipuri de LCD ca ambele folosesc acelasi controller, HD44780, si cred ca ar trebui sa fie compatibile cele doua LCD. Dar, in practica lucrurile nu merg chiar asa de bine. De fapt, LCD RC1602B nu imi afiseaza nimic. Cand dau contrastul mai mare imi apar patratele dar nimic altceva. Cred ca LCD nu se initializeaza dar nu stiu de ce ? Oare nu sunt compatibile LCD ? A mai avut cineva aceasta problema ? Am mai cautat pe forum dar nu am gasit nimic. Atasez mai jos si schema in proteus si programul in MPLab. Help !!! :cry: :cry: Mersi. Link spre comentariu
deejay2k1 Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 incearca sa maresti wait-urile, mai ales la initializareunele clone de hd44780 au nevoie de ceva mai mult timp sa execute anumite operatii Link spre comentariu
10vid Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 Ai pus cristal? Link spre comentariu
Vizitator david1 Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 Am pus cristal de 4 MHz, am marit si WAIT-urile dar tot nimic. Link spre comentariu
nico_2010 Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 Verifica buna conectare a LCD-ului la PIC, sa nu ai scurt intre pinii de date Link spre comentariu
Vizitator david1 Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 Nu am scurt intre pini. Am verificat legaturile de nu stiu cate ori. Totul este ok. Dar am observat in urma masuratorilor ca la alimentare, pinii LCD-ului sunt pe unu logic, atat cele de date cat si RS, RW si E. Sa fie oare defect LCD-ul ? Numai ce l-am cumparat de la Adelaida, e drept ca a fost printre cele mai ieftine. Sa cumpar alt LCD ? poate vre-o recomandare ce marca ce tip ? Sau problema este undeva in program ? Nu mai stiu ce sa fac. Link spre comentariu
deejay2k1 Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 incearca cu rw-ul direct la masa, deconectat de la pic .... Link spre comentariu
Vizitator david1 Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 Am incercat si cu R/W legat la masa. Tot nimic. Este prima data cand incerc sa folosesc un LCD, de aceea am si incercat cu o schema simpla. La primele incercari a incercat sa afiseze ceva, dar erau numai hieroglife, nu inteleg de ce. Dar afisa numai cateodata. Pe urma, dupa alte inercari nu mai afiseaza nimic. Am alimentat schema cu un LM 317 si la un moment dat am avut din greseala tensiuni de peste 7 V, PIC-ul nu a patit nimic dar ma gandesc ca poate s-a ars LCD. Dar si dupa acest incident a mai fost o ocazie cand au aparut hieroglife, dar dupa aceea nimic. Am umblat si la WAIT-uri dar tot nimic.Nu pot sa imi dau seama ce se intampla, nici nu am experienta cu LCD-uri. Va rog, ajutati-ma!!! Link spre comentariu
deejay2k1 Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 'hieroglife' am avut si eu cand ratam initializarea.cauta pe net undeva un proiect functional cu 16f877 si lcd, poate pb e din codul tauinca ceva: pune un port sa faca on/off la interval de 1s, poate asa iti dai seama daca e o problema de soft sau electrica (uiti un mclr, wdt, sau mai stiu eu ce ....)si ia o pauza pana anul viitor Link spre comentariu
Ionut Remus Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 eu am folosit rc1602...e adevarat printre cele mai sumpe...dar de fiecare data cand le-am pus in functiune au functionat din prima...atentie totusi ca sunt ceva pini inversati....pp ca te-ai uitat bine in datasheet, cel putin la mine erau cele pentru led pinul 1 si 2 (darerau notate pe placa lcd-ului cu 16 si 15) si pe urma urma numaratoarea de la 1 la 14 si ai grija la Vcc si Vdd ca am ars odata 1 doar ca le-am inversat pentru 1 sec. atentie si la backlight ca nu se alimenteaza la 5V ci la maxim 3,5V(3,6 am bagat eu la 1 si am ars backlightul). in alta ordine ai grija cu RC-urile ca sunt foarte sensibile chiar daca unele modele (cele care le-am folosit eu ma refer) sunt bune! Link spre comentariu
Mircea Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 Uite un exemplu simplu care afiseaza un mesaj pe un LCD 2x16. Este pentru un 16F628a, banuiesc ca ai unul la indemana ca sa testezi. Codul (in Mikrobasic) doar pentru testare: program LCD_test' Lcd module connectionsdim LCD_RS as sbit at RB0_bit LCD_EN as sbit at RB1_bit LCD_D4 as sbit at RB2_bit LCD_D5 as sbit at RB5_bit LCD_D6 as sbit at RB6_bit LCD_D7 as sbit at RB7_bit LCD_RS_Direction as sbit at TRISB0_bit LCD_EN_Direction as sbit at TRISB1_bit LCD_D4_Direction as sbit at TRISB2_bit LCD_D5_Direction as sbit at TRISB5_bit LCD_D6_Direction as sbit at TRISB6_bit LCD_D7_Direction as sbit at TRISB7_bit' End Lcd module connections' Set-up the PICsub procedure InitMain() OPTION_REG = 0x80 ' Pull-up disabled PORTB INTCON = 0x00 ' No INT CMCON = 0x00 ' No COMP CCP1CON = 0x00 ' No PWM TRISA = 0xFF ' All inputs TRISB = 0x00 ' All outputs PORTA = 0x00 ' Clear PORTA PORTB = 0x00 ' Clear PORTBend sub' Main programMain: InitMain() Lcd_Init() ' Initialize Lcd Lcd_Cmd(_LCD_CLEAR) ' Clear display Lcd_Cmd(_LCD_CURSOR_OFF) ' Cursor offLCD: Lcd_Out(1,1,"Daca vezi acest ") Lcd_Out(2,1,"mesaj, LCD e OK!") goto LCDend. Acum ce ai sa vezi pe LCD - vezi conexiunile (R/W, D0 la D3 la GND): HEX ca sa incarci in PIC pentru test (sterge .txt ca sa revina la extensia .hex): 16F628a_LCD testing.hex.txt Link spre comentariu
Vizitator david1 Postat Ianuarie 1, 2013 Partajează Postat Ianuarie 1, 2013 Din pacate nu am acasa decat 16f84, 16f77, 16f690 si 16f877. Dar oricum in proteus schema functioneaza. In ceea ce priveste pinii am verificat documentatia LCD si la mine pinii incep de la 1 la 14 si 15,16 sunt backlight. Eu cred ca sunt bine notati pinii pentru ca la 1 am masa la 2 am 5V si 3 este contrastul. Pe urma nu stiu daca corespund si pinii RS, R/W,E si cele de date. Am vazut pe internet ca au cei de la Raystar si LCD cu notatia pinilor asa cum ai spus tu Ionut Remus dar la modelul meu nu sunt numerotate asa, sau cel putin eu asa cred. Oricum, amsa incerc cu un proiect functional de pe net sa vad daca funtioneaza sau nu. Poate cineva a mai folosit acest tip de LCD si ma ajuta cu un program care a functionat sau cel putin cu partea de initializare al LCD si cu conexiunile cu PIC. Link spre comentariu
Ionut Remus Postat Ianuarie 1, 2013 Partajează Postat Ianuarie 1, 2013 din pacate nu am proteus instalat si nu pot vedea schema dar condesatorii la cristal sunt pusi la masa? poate nu oscileaza cristalul. daca ii ai pusipoti incerca sa-i schimbi, am intalnit o situatie de genul si candam schimbat cei 2 conzi de 22pf sa rezolvat problema. din pacate nu a facut decat un proiect cu PIC si prea multe nu pot sa-ti spun. poti sa mai incerci sa verifici alimentarea lui poate e intrerupta undeva, ca din cate stiu eu backlight-ul si contrastul vin direct se la sursa de 5V si ca ai picul pus sau nu de aprins backlight-ul si contrast tot vei avea, verifica direct pe pinii din soclu daca iti ajunge tensiunea la uC. O mica atentie la fuses, poate nu sunt setati aia bine... Link spre comentariu
Mircea Postat Ianuarie 1, 2013 Partajează Postat Ianuarie 1, 2013 Cod pentry 16F690: ' * Test configuration:' MCU: PIC16F690' Oscillator: INTOSC 2 MHz' Ext. Modules: -' *program LCD' Lcd module connectionsdim LCD_RS as sbit at RA0_bit LCD_EN as sbit at RA1_bit LCD_D4 as sbit at RB4_bit LCD_D5 as sbit at RB5_bit LCD_D6 as sbit at RB6_bit LCD_D7 as sbit at RB7_bit LCD_RS_Direction as sbit at TRISA0_bit LCD_EN_Direction as sbit at TRISA1_bit LCD_D4_Direction as sbit at TRISB4_bit LCD_D5_Direction as sbit at TRISB5_bit LCD_D6_Direction as sbit at TRISB6_bit LCD_D7_Direction as sbit at TRISB7_bit' End Lcd module connections' Set-up the PICsub procedure InitMain() OPTION_REG = 0x80 ' Pull-up disabled PORTB INTCON = 0x00 ' No INT OSCCON = 0x56 ' 2MHz clock CM1CON0 = 0x00 ' No COMP C1 CM2CON0 = 0x00 ' No COMP C2 CM2CON1 = 0x00 ' No COMP C2 SRCON = 0x00 ' No SR latch ANSEL = 0x00 ' No AN I/Os ANSELH = 0x00 ' No AN I/Os TRISA = 0x3C ' A2-A5 inputs, A0-A1 outputs WPUA = 0x00 ' Pull-up disabled IOCA = 0x00 ' IOC disabled TRISB = 0x00 ' All outputs WPUB = 0x00 ' Pull-up disabled IOCB = 0x00 ' IOC disabled TRISC = 0x00 ' All outputs PORTA = 0x00 ' Clear PORTA PORTB = 0x00 ' Clear PORTB PORTC = 0x00 ' Clear PORTCend sub' Main programMain: InitMain() Lcd_Init() ' Initialize Lcd Lcd_Cmd(_LCD_CLEAR) ' Clear display Lcd_Cmd(_LCD_CURSOR_OFF) ' Cursor offLCD: Lcd_Out(1,1,"Daca vezi acest ") Lcd_Out(2,1,"mesaj, LCD e OK!") goto LCD end. Si HEX: MyProject.hex.txt LCD datasheet: http://robofun.ro/docs/rc1602b-biw-esx.pdf Conexiuni la PIC 16F690: Link spre comentariu
Vizitator david1 Postat Ianuarie 2, 2013 Partajează Postat Ianuarie 2, 2013 Mersi thunderer, am reusit sa programez picul 16f690 si LCD functioneaza. Inseamna ca exista o problema la programul meu. Ramane sa aprofundez un pic sa vad unde am gresit. Dar inca o intrebare : Pinii D0-D3 trebuie sa le pun la masa ? Cand am incercat cu 16f877 nu i-am legat. Cand am incercat cu 16f690 i-am pus la masa ? sa fie de aici problema ? trebuie sa incerc. Mersi oricum. 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