PCM1602B-FL LCD HAKKINDA

Başlatan erdogan2734, 30 Haziran 2016, 14:17:43

erdogan2734

  Arkadaşlar Merhaba;

Elimde piyasadan aldığım bir lcd mevcut. Kodlar aşağıdaki gibidir.
Proteus da sıkıntı yok reelde ise üst satırda dolu kareler gözüküyor.
Bir adet farklı marka lcd mevcut ondada aynı sorun var.
Muhtemelen bir yerde hata yapıyorum, gelin beraber çözelim.

;-------------------------------------------------------------------------------
;**** Added by Fuse Configurator ****
; Use the Fuse Configurator plug-in to change these setting

 Config XT_OSC,WDT_Off,PWRTE_ON,BODEN_ON,LVP_OFF,DEBUG_OFF,CP_ALL  

;-------------------------------------------------------------------------------
Device = 16F877A           'MCU 16F877A
Xtal = 4                 'KRİSTAL 4MHZ
 All_Digital =True
    Declare LCD_DTPin = PORTD.4
    Declare LCD_RSPin = PORTD.0
    Declare LCD_ENPin = PORTD.1
    Declare LCD_Interface = 4
    Declare LCD_Lines = 2
    Declare LCD_Type = Alphanumeric
    Cls
    DelayMS 100
    
TRISA   = %00000000: PORTA = %00000000 
TRISB   = %00000000: PORTB = %00000000 
TRISC   = %00000000: PORTC = %00000000     
TRISD   = %00000000: PORTD = %00000000
TRISE   = %00000000: PORTE = %00000000

ADRS  VAR Byte :ADRS=0
VERI  VAR Byte :VERI=0


LCDOUTT:
    adrs=%11111111
    veri=%11111111
          
    Print At 1,1,"ADRS =",Bin ADRS  
    Print At 2,1,"VERI =",Bin VERI
    DelayMS 30

GoTo LCDOUTT:

End


LCD V0 pini 10k potun orta ucuna bağlı.
Potun üst ucu 5 VOLT alt ucu GND.
RW bacağı GND ye bağlı. (pic bacağına çıkış verip orayada bağladım sonuç aynı)
Diğer bacaklar ilgili pinlere bağlı.
Son durum foto ektedir.




Geçenlerde GLCD ile ilgili bir sıkıntı yaşamıştım. Besleme bacağına direnç bağlayıp çözdüm.
Bunda yemedi, kaçırdığım bir yer var muhakkak.
Hayırlı ramazanlar.
Bildiğim tek şey henüz hiç bir şey bilmediğim...

Maxim

önce bir led takıp (330 ohm direnc ile) yakıp söndürün bakalım işlemci çalışıyormu?

erdogan2734

Alıntı yapılan: Maxim - 30 Haziran 2016, 14:49:42
önce bir led takıp (330 ohm direnc ile) yakıp söndürün bakalım işlemci çalışıyormu?

Maxim hocam Merhaba, bunu eklemeyi unutmuşum işlemci çalışıyor led yakıp söndürme işlemi yapabiliyorum reel devrede.
Bildiğim tek şey henüz hiç bir şey bilmediğim...

Maxim

birde şu var
Declare LCD_DTPin = PORTD.4 yazıyor ama şemada D1 den başlamış?

son olarak versiyon kaç bilmiyorum ama
Declare Xtal =4
Declare All_Digital= true
bu şekilde yazmanız lazım, belki etkiliyordur.

onun ddışında birşey olamaz
bağlantılar doğruysa mutlaka çalışırdı

ete

Bana kalırsa sorun RW pininden kaynaklanıyor.
Bu pini direk GND ye bağla veya programda o pini bir pic pinine bağla ve o pine Low uygula.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Maxim

RW direk gnd ye bağlıymış ete hocam

erdogan2734

@Maxim ve @ete hocam öncelikle hayırlı bayramlar diliyorum.
Bayram dolayısıyla ancak bakabiliyorum. Sorunu çözdüm.
Yazılımı 16f628a için modifiye ettim.
Şu anda bir sıkıntı yok lcdyi çalıştırabildim.
Daha önce 16f877a ya yazmaya çalışıyordum muhtemelen işlemcide bir problem oldu.
Son yazdığım kod aşağıdaki gibidir.
@ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF &_BODEN_ON & _LVP_OFF & _DATA_CP_OFF

OPTION_REG=%10000000
define OSC 4
CMCON=7  

DEFINE LCD_DREG PORTB 'LCD DATA BACAKLARI PORTB'YE BAGLI
DEFINE LCD_DBIT 4 'LCD DATA BITLERI HANGİ BITTEN BASLIYOR
DEFINE LCD_EREG PORTB 'LCD ENABLE BACAGI HANGI PORTA BAGLI
DEFINE LCD_EBIT 3 'LCD ENABLE BITI HANGI PORTA BAGLI
DEFINE LCD_RWREG PORTB 'LCD RW BACAGI HANGI PORTA BAGLI
DEFINE LCD_RWBIT 2 'LCD RW BACAGI HANGI BITE BAGLI
DEFINE LCD_RSREG PORTB 'LCD RS BACAGI HANGI PORTA BAGLI
DEFINE LCD_RSBIT 1 'LCD RS BACAGI HANGI BITE BAGLI
DEFINE LCD_BITS 4 'LCD 4 BIT BAGLI
DEFINE LCD_LINES 2 'LCD KAC SIRADAN OLUSUYOR
SYMBOL LED=PORTB.0

TRISB=0
BASLA:
TOGGLE LED
LOW PORTB.2 'RW BACAGI EKRANA YAZMAYA IMKAN VERMEK ICIN LOW YAPILDI

PAUSE 1000 '200 ms BEKLEME YAP

LCDOUT $FE,1,"deneme" 'ILK SATIRA YAZ
LCDOUT $FE,$C2,"deneme" 'IKINCI SATIRA YAZ
GOTO BASLA
END
Bildiğim tek şey henüz hiç bir şey bilmediğim...