yardım

Başlatan styx75, 04 Nisan 2014, 11:33:15

styx75

selam arkadaşlar..
breadbroad üzerine kurdugum bir lcd ile 16f877a deneme devresinde lcd başta saçma sapan degerler gösteriyo ama elim + yada gnd herhangibirine değdigi zaman düzeliyor  ???  bu durumla karşılaşan oldumu ..

ete

Muhtemel sebepler;
- Deney plakası üzerinde genelde 5V regüle kullanılmadan deneme yapıldığında ufak bir voltaj fazlalığı LCD yi bozuyor.
  Bu nedenle statik olarak elden etkilenmeye başlıyor.

- Parazitli bir güç kaynağın var temiz voltaj üretemiyor. Pic besleme bacaklarına 100nf kondansatör bağla düzelir

- Besleme bozukluğundan veya MCLR bacağının havada uçması (LOW da yada HIGH da kalmasına karar vermemesi) gibi sebeplerden olabilir. Devre bezleme girişine 100nf bağla buda yetmez birde 100Mf 16V kondansatör bağla.
Ayrıca MCLR direncini 1K olarak değiştir. MCLR bacağını 220Nf ile GND ye bağla.

- LCD bozuk olabilir bir başkası ile deneme yap.

- Devrede bağlı kristal kusurlu olabilir. Kristali bir başkası ile değiştir. Kristal kondansatörlerinin 22pf olduğundan emin ol.
- Besleme voltajının tam olarak 4,90-5,05 aralığında olduğundan emin ol.

Başka şey aklıma gelmiyor.

Ete

styx75

#2
ete bey daha ayrıntılı şöyle..güç kaynagı pc psu ile kullanıyorum

açılışta her şey çok güzel devre tam istediğim şekilde çalışıyor nazaman resetlesem salon yazısı silip ısı degeri okunan değerle 255,9 arasında sürekli değişiyor ama tekrar resetlediğimde tekrar düzeliyor yani ilk resetdebozulup ikincisinde düzeliyor..
dediklerinizi yaptım ama olmadı
[/co@ DEVICE pic16F877A, XT_OSC 	' 4 MHz osilatör kullanılacak 
@ DEVICE pic16F877A, WDT_OFF ' Watchdog Timer kapalı
@ DEVICE pic16F877A, PWRT_ON    ' Power-On Timer açık
@ DEVICE pic16F877A, BOD_OFF    ' Brown-Out Detect kapalı
@ DEVICE pic16F877A, LVP_OFF    ' Low-Voltage Programlama kapalı
@ DEVICE pic16F877A, CPD_ON    ' Data belleği kod korumalı değil
@ DEVICE pic16F877A, PROTECT_OFF ' Program belleği kod korumalı değil
DEFINE OSC 4
ON INTERRUPT GoTo KESME 'kesme oluşursa KESME adlı etikete git.
OPTION_REG=%0000000'dahili Pull up dirençleri aktif edildi ayrıca pullup direncine gerek yok.
INTCON=%10001000 'Tüm Kesmeler aktif ve RB0/INT kesmesi aktif
CMCON=7
ADCON1=7
TRISB=%11100111
TRISC=%11111111
TRISD=%00000000
TRISE=%000
TRISA=%11111111 

SYMBOL RBIF=INTCON.0 
SYMBOL A =PORTB.5
SYMBOL E =PORTB.6 
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 0   
DEFINE LCD_RSREG PORTD 
DEFINE LCD_RSBIT 4 
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 5
DEFINE LCD_BITS 4
DEFINE LCD_LINES 4
DEFINE LCD_COMMANDUS 2000 
DEFINE LCD_DATAUS 50                       

  DQ VAR  PORTC.0
  DURUM VAR BYTE       
  deger var word
  derece var WORD
  derece1 var BYTE
  derece2 var byte
  SETAYAR VAR WORD
  SETAYAR1 VAR BYTE
  SETAYAR2 VAR BYTE

 
     
  LCDOUT $FE,$48, 3, 3, 0,0, 0, 0, 0, 0 ' DERECE 1.
  LCDOUT $FE,$50,4,0,4,4,4,4,4,0 ' İ  2.
  LCDOUT $FE,$68,$0E,$11,$10,$0E,$01,$15,$0E,$04 'Ş 5.
  LCDOUT $FE,$58,$0A,$00,$0E,$11,$11,$11,$0E,$00 'Ö 3.
  LCDOUT $FE,$70,$0E,$11,$10,$10,$11,$0E,$04,$00 'Ç 6.
  LCDOUT $FE,$40,$0A,$00,$11,$11,$11,$11,$0E,$00 'Ü 0. 
   
  DURUM=PORTB
  pause 500
  LCDOUT $FE,$01,"SALON"   
BASLA:     
  gosub AL                                                                                                       
  LCDOUT $FE ,$C0,"ISI"," =" ,DEC derece1, ".",DEC1 derece2,1,"C"     
  LCDOUT $FE ,$90,"SET"," =",DEC SETAYAR1,".",DEC1 SETAYAR2,1,"C"             
  goto BASLA   
'---------HESAP-------------
AL:
  ALL:
  SerIn2 PORTC.0,396,[WAIT ("OZAN"),DERECE1,DERECE2]             
  RETURN     
'------------KESME--------------------   
  DISABLE
  KESME:
  DURUM=PORTB   
  IF A=0 THEN SETAYAR=SETAYAR+1
  IF SETAYAR>300 THEN SETAYAR=1
  IF E=0 THEN SETAYAR=SETAYAR-1
  IF SETAYAR<1 THEN SETAYAR=291
  SETAYAR1=SETAYAR/10:SETAYAR2=SETAYAR//100
  LCDOUT $FE ,$90,"SET"," =",DEC SETAYAR1,".",DEC1 SETAYAR2,1,"C"     
  DURUM=PORTB
  RBIF=0     
  resume  BASLA
  Enable 
  End

Powered by EzPortal