Jump to content
ELFORUM - Forumul electronistilor

Electronist???


Guest Georgecpr

Recommended Posts

Guest 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 to comment
  • Replies 19
  • Created
  • Last Reply

Top Posters In This Topic

  • bobtech

    3

  • sofian

    2

  • bogdanm

    2

  • MirceaM

    1

de unde esti ?daca esti din Timisoara, pot sa-ti dau eu tot hardu de care ai nevoie pt a lucra, cu conditia sa-mi dai si mie softul sa-l folosesc in proiectele mele personale

Link to comment

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 to comment
Guest 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 to comment
Guest 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 to comment

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 to comment
  • 2 weeks later...
Guest 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 to comment
Guest 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 to comment

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 to comment
Guest 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 to comment
Guest 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 to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines