Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

LCD' den çıkış alamıyorum

Başlatan ImLeGenD, 19 Ağustos 2015, 18:17:12

ImLeGenD

Arkadaşlar 16f877 yardımıyla 18b20 üzerinden sıcaklık ölçmek istiyorum fakat LCD'den  çıkış alamıyorum. Yardımcı olursanız sevinirm.

Kurulan devre:




Yazıln kod:

@ __config _XT_OSC & _WDT_OFF & _LVP_OFF & _CP_OFF
'*******************************************************************************
define LCD_DREG PORTB
Define LCD_DBIT 4
define LCD_EREG PORTB
define LCD_EBIT 3
DEFINE LCD_RWREG PORTB
define LCD_RWBIT 2
define LCD_RSREG PORTB
DEFine LCD_RSBIT 1
define LCD_BITS 4
define LCD_LINES 2
'******************************************************************************
CMCON=7
'****************************************************************************
Busy        VAR BIT         ' Busy Status-Bit
HAM         VAR	WORD        ' Sensör HAM okuma değeri
ISI         VAR WORD        ' Hesaplanmış ISI değeri
Float       VAR WORD        ' Holds remainder for + temp C display
X           VAR WORD       
ISARET_BITI   VAR HAM.Bit11   '   +/- sıcaklık İşaret biti,  1 = olursa eksi sıcaklık
EKSI_ISI   CON 1           ' Sıfır altında isaret biti=1  oluyor kontrol için
DERECE     CON 223         ' ° işareti
ISARET     VAR BYTE        '  ISI değeri için  +/-  işaret
TEMP        VAR BYTE       ' Div32 bit hesap için geçici değişken
SYMBOL COMM_PIN=PORTB.0    ' One-wire Data-Pin "DQ" PortB.0 da
'*********************************************************************************
PORTA=0 : PORTB=0

TRISB=%00000001
TRISA=0
'************************************ *******************************************
LOW PortB.2

CLEAR  'tüm değişkenler sıfırlandı
PAUSE 200
LCDOUT $FE,1

'******************************************************************************
BASLA:lcdout $FE,2," DS18B20 ile ISI"
      gosub SENSOROKU     'SONSÖR OKU VE SICAKLIĞI EKRANA YAZ
      GOTO BASLA
      
'*******************************************************************************
SENSOROKU: 
           
           OWOUT   Comm_Pin, 1, [$CC, $44]' ISI değerini oku
Bekle:
           OWIN    Comm_Pin, 4, [Busy]    ' Busy değerini oku
           IF      Busy = 0 THEN Bekle    ' hala meşgulmü? , evet ise goto Bekle..!
           OWOUT   Comm_Pin, 1, [$CC, $BE]' scratchpad memory oku
           OWIN    Comm_Pin, 2, [HAM.Lowbyte, HAM.Highbyte]' İki byte oku ve okumayı bitir.
           GOSUB   Hesapla
           RETURN
           
Hesapla:                 ' Ham değerden Santigrat derece hesabı
    ISARET  = "+"
    IF ISARET_BITI = EKSI_ISI THEN
       ISARET   = "-"  
       temp=($ffff-ham+1)*625
       ISI  = DIV32 10 
       GOTO GEC   
    endif
    TEMP = 625 * HAM        ' 
    ISI = DIV32 10          ' Div32 hassas derece hesabı için 32 bit bölme yapıyoruz.
GEC:
    FLOAT = (ISI //1000)/100
    ISI=ISI/1000
    LCDOUT $FE,$C4,ISARET,DEC ISI,".",DEC1 (Float)," ",Derece,"C " '2. satırda ısı
    RETURN

END



Gökhan BEKEN

Özel mesaj okumuyorum, lütfen göndermeyin.

triyak

Pic in beslemesi yok.  Google dan picin Vcc (+besleme)  ve Vss(- besleme)  uçlarını bulup besleyin.

mehmet

Mcu;
  1 no 1-10K ile +5V
11 no +5V
12 no gnd
31 no gnd
32 no +5V


Pot bağlantısı;

           o +5V
           |
          | |
          | |
          | |<---0 Vee
          | |
           |
          --- gnd

Bir de D6 ve D7 uçlarını kontrol ediniz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

ImLeGenD

#4
Alıntı yapılan: Gökhan BEKEN - 20 Ağustos 2015, 00:07:25
vee pini konstrat ayarıdır, şu an sizde maksimumda olduğu için öyle görünüyor büyük bir ihtimal.
https://www.google.com.tr/search?q=2x16+lcd+ba%C4%9Flant%C4%B1s%C4%B1&biw=1366&bih=657&noj=1&source=lnms&tbm=isch&sa=X&ved=0CAcQ_AUoAWoVChMI46icqIa2xwIVRT0aCh3pwQMU

Dostum konstrat ayarını yaptım birçok kez ama onunla ilgili bir durum değil. Saatlerdir uğraştığım için sinirlenip çıkarmışım.

Alıntı YapPic in beslemesi yok.  Google dan picin Vcc (+besleme)  ve Vss(- besleme)  uçlarını bulup besleyin.

Pic'in iki adet besleme noktası var. İlk önce her ikisini besledim ardımdan bu hale getirdim. Bir değişiklik olmadı.

Alıntı YapMcu;
  1 no 1-10K ile +5V
11 no +5V
12 no gnd
31 no gnd
32 no +5V


Pot bağlantısı;

           o +5V
           |
          | |
          | |
          | |<---0 Vee
          | |
           |
          --- gnd

Bir de D6 ve D7 uçlarını kontrol ediniz.

Hocam MCLR'yi kapattım sandım o nedenle direnç eklemedim hemen bakıyorum. Pot ile ilgili bir sıkıntı olmadığını düşünüyorum hocam 2dk öncesinde o balantıyı yapmıştım.

Bir de pic in iki adet besleme ve GND ucu var . Her ikisine de bağamak zorunda mıyız? Her iksine de bağladığımda da bir değişiklik olmamıştı.

mesaj birleştirme:: 20 Ağustos 2015, 15:06:40

arkadaşlar pic de mi bir problem var acaba?

mehmet

Sensor kısımlarını iptal edip sadece LCD çıktısı
alabiliyor musunuz?
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

ImLeGenD

Alıntı yapılan: mehmet - 22 Ağustos 2015, 19:15:22
Sensor kısımlarını iptal edip sadece LCD çıktısı
alabiliyor musunuz?

Hocam Sensöroku etiketinin altına aşağıdaki ifadeyi koyduğum halde çıkış alamadım.

ham=$FE6F:Gosub hesapla:RETURN

ipek



bu pin 1 'i mutlaka vcc yapmalısınız direnç ile yada düz.
yaptığınızı doğrulayın.


birde çelişki var, @ MCLR'yi kapattım sandım o nedenle direnç eklemedim

demişsiniz kapattım ifadesini anlayamadım,eğer programlayıcıdan .... kastediyorsanız kullandığınız işlemci buna uygun değil.

RaMu

Isis de 16F628A
gerçek devrede 16F877A kullanılmış,
kodlar hangisi için yazıldı?

Söylenmiş 16F877A da MCLR kapatılamaz, +5V a direnç ile çekilmek zorunda.
Devre çok kötü kurulmuş,
özellikle osilatör kısmı pic pinlerine en yakın yerden bağlanmalı.
Şunun gibi:



Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

ImLeGenD

#9
Alıntı yapılan: RaMu - 23 Ağustos 2015, 21:34:03
Isis de 16F628A
gerçek devrede 16F877A kullanılmış,
kodlar hangisi için yazıldı?

Söylenmiş 16F877A da MCLR kapatılamaz, +5V a direnç ile çekilmek zorunda.
Devre çok kötü kurulmuş,
özellikle osilatör kısmı pic pinlerine en yakın yerden bağlanmalı.
Şunun gibi:

(Resim gizlendi görmek için tıklayın.)

(Resim gizlendi görmek için tıklayın.)

Hocam teşekkürler tavsiyeleriniz için. Uzun süredir foruma girme fırsatı bulamadım o nedenle şimdi yazıyorum. Müsait zaman bulduğumda söylediklerinizi uygulayacağım ve sonuçları belirteceğim.

Alıntı yapılan: ipek - 23 Ağustos 2015, 17:05:26

bu pin 1 'i mutlaka vcc yapmalısınız direnç ile yada düz.
yaptığınızı doğrulayın.


birde çelişki var, @ MCLR'yi kapattım sandım o nedenle direnç eklemedim

demişsiniz kapattım ifadesini anlayamadım,eğer programlayıcıdan .... kastediyorsanız kullandığınız işlemci buna uygun değil.

Teşekkürler İpek Hocam.