Sari la conținut
ELFORUM - Forumul electronistilor

Electronist???


Vizitator Georgecpr

Postări Recomandate

Vizitator Georgecpr

Eu nu prea ma descurc cu electronik. Ma pricep mai mult la partea de programare. Vreau sa fac un ceas electronic care foloseste un LCD de la nokia 3310. Va rog frumos sa imi spuneti si mie daca este ceva in neregula cu schema mea. Cred k am ars deja un PIC si s-ar putea si lcd-ul sa fie in aceeasi stare. Momentan vreau sa reusesc sa afisez si eu ceva pe lcd.P.S. la Automatica despre ce tip de MCU se vorbeste?

Link spre comentariu
  • Răspunsuri 19
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • bobtech

    3

  • sofian

    2

  • bogdanm

    2

  • MirceaM

    1

Top autori în acest subiect

lcd merge la 3.6vmaxschema este okseteaza vop in lcdrezistori nu trebuiesccind ajung acasa iti trimit o schema facuta de mine ptr un termometru cu dallas si lcd3110c1,c2-27pFalimenteaza picul si lcd la doua bateri de 1.5vsi trebuie sa meargamai pune si un led sa se aprinda cind porneste picul ptr verificare

Link spre comentariu
Vizitator Georgecpr

PIC-ul merge (l-am testat cu niste leduri). Cred ca merge si LCD-ul pt k ieri am incercat sa-l folosesc si s-au aprins toti pixeli, dupa care uni au ramas aprinsi. Nu cred ca este bine resetat & initiat sau nu merg functiile corect. folosesc un delay de 10ms la schimbarea SCLK intre low si high. E mult?P.S. eu k sa fac economie de pini, am legat pinul CS(de la LCD) la minus pt k e activ pe LOW. Poate fi asta o cauza?

Link spre comentariu
Vizitator Georgecpr

Am uitat sa specific k inca nu am reusit sa afisez nimic controlat p LCD, ci doar se aprindeau toti pixelii, cateodata. Inca folosesc o sursa de 5V atat pt PIC cat si pt afisaj. Nu prea imi dau seama care sa fie cauza. Momentan nu mai reusesc sa afisez nimic. Aveti vreo idee?

Link spre comentariu

Si ai mai pus vreo rezistenta pe liniile de date (clk,reset,dc,etc)? o sa incerc.

am atasat schema care o folosesc. inital am proiectat cu rez si diode pt protectie pe liniile de comunicatie, dar le-am eliminat, deci poti sa nu mai pui rez si nici diodele de 3.3V. am pus doi conectori pt lcd, unul la care pot sa leg lcd-ul cu fire (JP2) si altul la care pot sa-l conectez prin elasomer pe paduri pe cablaj (U1). JP1 e conectorul prin care ma conectez la sistemul meu de dezvoltare cu PIC18F6720.
Link spre comentariu
  • 2 săptămâni mai târziu...
Vizitator Georgecpr

A renunta sau a nu renunta la electronik. Aceasta este intrebarea. Ma tot chini de cateva saptamani sa afisez ceva pe un LCD nokia 3310. Am incercat sa il alimentez la 5V,3.3V si 3V, dar asta nu a schimbat nimic.Am schimbat condesatorul de 47uF cu unul de 4.7uF. Am folosit si pinul CS, care inainte era legat la minus(pt k interfata seriala sa fie activa mereu si pt a economisi pini), dar degeaba k nu ai face nimic(inainte se aprindeau toti pixelii sau ceva de genu). Sunt incepator in electronik & nu are cine sa ma ajute in afara de voi. M-am gandit k poate nu e hardu de vina ci softu, asa k iata codul pe care il folosesc pt a comunica cu LCD-ul:;------------------------lcd_cmd macro bcf dc ;Comanda call lcd_write ;scrie W endm;------------------------lcd_init bsf dc ;date bsf cs ;chip off MOVLW .10 CALL delay_x BCF reset MOVLW .250 CALL delay_x BSF reset MOVLW .250 CALL delay_x MOVLW 21H ;set extins lcd_cmd MOVLW 0xC5 ;Vop lcd_cmd MOVLW 13H ;BIAS lcd_cmd MOVLW 20H ;set normal+ afis p orizontala lcd_cmd MOVLW 09H ;ALL ON lcd_cmd MOVLW .250 CALL delay_x movlw .250 Call delay_x call lcd_clear ;stergere bcf dc ;comanda movlw .10 call delay_x MOVLW 08H ;all off lcd_cmd MOVLW .10 ;ms CALL delay_x MOVLW 0CH ;normal mode lcd_cmd return;------------------------lcd_write movwf byte bcf cs movlw .8 movwf cntL1 bcf sclk btfsc byte,7 bsf sdata btfss byte,7 bcf sdata nop ;in loc de delay bsf sclk nop ;in loc de delay RLF byte,1 decfsz cnt,1 GOTO L1 bsf cs return ;------------------------lcd_clear bcf sdata bsf dc;date bcf cs movlw .6 movwf tmp2c3 movlw .84 movwf tmp1c1 movlw .8 movwf tmp0c2 bcf sclk NOP ;goto $+1 NOP bsf sclk decfsz tmp0,f goto c2 decfsz tmp1,f goto c1 decfsz tmp2,f goto c3 bsf cs returnE ceva gresit?Ce as putea sa fac?Va multumesc anticipat!

Link spre comentariu
Vizitator Georgecpr

Am pus un delay de 500us rutinei care scrie in lcd & cu ajutorul unor leduri am monitorizat starea pinilor: RESET,SCLK,SDATA.Dupa initializare pinul RESET ramane pe high(asa trebuie),iar la fiecare stare de high a lui SCLK am notat pe hartie starea lui SDATA. Am observat k toate comenzile sunt trimise corect. Ce poate sa nu mearga? Cum pot testa daca LCD-ul mai este functional?

Link spre comentariu

Uite cun am facut eu

;-----------------------------------------------------------------------;

; http://www.PicKit.ro ;

;-----------------------------------------------------------------------;

;Xtal-4Mhz Tcy-1uS ;

;-----------------------------------------------------------------------;

cblock 0x20 ;

Temp,Flag,Cnt00,Cnt01,Blink,BclL,BclH,NrChar ;General

AddrX,AddrY,Vop,BitCnt ;Lcd3110

endc ;

;-----------------------------------------------------------------------;

#define LcdCk PORTB,1 ;Pin 2 Lcd

#define LcdRst PORTB,2 ;Pin 8 Lcd

#define LcdIn PORTB,3 ;Pin 3 Lcd

#define LcdDC PORTB,4 ;Pin 4 Lcd

#define LcdCe PORTB,5 ;Pin 5 Lcd

;-----------------------------------------------------------------------;

InitLcd bcf LcdCe ;

movlw 0x40 ;Set Contrast

movwf Vop ;

bcf LcdRst ;Reset Lcd

goto $+1 ;

bsf LcdRst ;

movlw b'00100001' ;PowerOn,Addr-H,Set Extins

call WrLcdCmnd ;

movfw Vop ;

iorlw b'10000000' ;

call WrLcdCmnd ;

movlw b'00010011' ;Bias n=4

call WrLcdCmnd ;

movlw b'00100000' ;PowerOn,Addr-H,Set Normal

call WrLcdCmnd ;

movlw b'00001001' ;All pixel On

call WrLcdCmnd ;

call ClearLcd ;

call Wait500Ms ;

call Wait500Ms ;

movlw b'00001100' ;Normal Mode

goto WrLcdCmnd ;

;---------------------------------------;

WrLcdData bsf LcdDC ;Data

goto WrLcd ;

WrLcdCmnd bcf LcdDC ;Cmnd

WrLcd bcf LcdCe ;Enable Lcd

movwf Temp ;

movlw 0x08 ;8bit

movwf BitCnt ;

WrLcd00 bcf LcdCk ;

btfsc Temp,7 ;

goto WrLcd_H ;

nop ;

bcf LcdIn ;

goto WrLcd_01 ;

WrLcd_H bsf LcdIn ;

goto WrLcd_01 ;

WrLcd_01 goto $+1 ;

bsf LcdCk ;Latch

rlf Temp,f ;

decfsz BitCnt,f ;

goto WrLcd00 ;

nop ;

bcf LcdCk ;

bsf LcdCe ;Disable Lcd

retlw 0x00 ;

;---------------------------------------;

ClearLcd movlw 6 ;Y

movwf Cnt01 ;

ClearLcd00 movlw 84 ;X

movwf Cnt00 ;

ClearLcd01 movlw 0x00 ;

call WrLcdData ;

decfsz Cnt00,f ;

goto ClearLcd01 ;

decfsz Cnt01,f ;

goto ClearLcd00 ;

HomeCursor movlw b'10000000' ;Addr X =0

movwf AddrX ;

movlw b'01000000' ;Addr Y =0

movwf AddrY ;

SetLcdAddr movfw AddrX ;

call WrLcdCmnd ;

movfw AddrY ;

goto WrLcdCmnd ;

;---------------------------------------;

Link spre comentariu
Vizitator Georgecpr

Am mai testat LCD-ul si am descoperit ceva interesant. Vestea buna: comenzile de la initializare (Vop, BIAS, All ON...) merg;Vestea proasta: dupa aceea il setez pe normal mode pe ecran apar niste pixeli la intamplare(deci tre sa sterg LCD-ul). Dupa ce apelez aceasta functie nu se intampla nimic, iar daca incerc sa mai afisez ceva pe ecren dupa acestea se aprind toti pixelii. Ce are? De ce face asa?PS: mersi mult pt cod pt k am obs k nu e codu meu d vina!! Aveti vreo idee?

Link spre comentariu
Vizitator Georgecpr

Gata! I-am dat de cap.Comenzile mergeau dar nu puteam sa scriu date, deci pinul DC=RA4(pic 16f628) nu intra in HIGH, asa k l-am mutat pe RB3 si merge tot!!! E super... Mersi mult pt ajutor!

Link spre comentariu

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări