Z

16f877a ile lcd çalıştırma sorunu

Başlatan zook, 05 Nisan 2014, 19:47:41

zook

Selamun Aleyküm. 16F877A ile LCD ye bir şeyler yazmak istiyorum. Ancak ISIS te çalışan kod gerçekte çalışmıyor. Sizden ricam kodda bir eksiklik olup olmadığını öğrenmek kurduğum devreyi söktüm salı günü tekrar deneyeceğim ancak kod kısmında bir eksik olup olmadığını söylerseniz sevinirim. LCD olarak ACM 1602B-FL-YBH kullanıyorum. LCD nin bozuk olup olmadığını nasıl anlayabilirim. Çok araştırma yaptım kafayı sıyıracağım artık yardımlarınızı bekliyorum.

@ __config _XT_OSC & _WDT_ON & _LVP_OFF & _CP_OFF
DEFINE OSC 4
DEFINE LCD_DREG PORTB 'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT 4 'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_EREG PORTB 'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT 3 'LCD Enable Bacağı Hangi bite bağlı ?
define LCD RWREG PORTB 'LCD R/W Bacağı Hangi Porta bağlı?
define LCD_RWBIT 2 'LCD R/W Bacağı Hangi bite bağlı ?
DEFINE LCD_RSREG PORTB 'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT 1 'LCD RS bacağı Hangi Bite bağlı ?
DEFINE LCD_BITS 4 'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES 2 'LCD Kaç sıra yazabiliyor
CMCON=7
ADCON1=7
LOW PORTB.2
PAUSE 500
LCDOUT $FE,1
BASLA:
LCDOUT $FE,1
LCDOUT "merhaba"
PAUSE 1000
GOTO BASLA
END

enginkanat

#1
kardeşim her şey doğru görünüyor, kontrast ayarı yaptın mı?, lcd panel ışığı varmı kontrol ettin mi? ayrıca mclr tanımlı görülmüyor

MS_59

lcd bağlantıları yanlış lcd'yi şemadaki gibi bağladıysan çalışmaz
VDD'ye +5 volt ver bu lcd'nin besleme ucudur VEE'de kontrast ayarıdır.. bununlada bir pot yardımıyla ekranın netliğini ayarla 
mehmet

zook

#3
ISIS teki evet yanlış çizilmiş bir arkadaş çizmişti çok incelemedim gerçekte 1 nolu bacak gnd 2 nolu bacak +5 3 nolu bacak pot a bağlı ancak potu çevirdiğimizde 4-5 kare oluyor devrede LCD den şüpheleniyorum ben ama yinede emin değilim. LCD nin ışığı yanıyor 4-5 kare geliyor. MCLR ayarını nasıl yapabiliriz hocam? MCS kullanıyorum PBP klasöründeki 16f877a.inc dosyasının altındaki sigorta tanımlarını giriyoruz orayı ; başına koyup kaydettim. Yarın devreyi tekrar kurup deneyeceğim fotoğrafını yüklerim inş.

ete

LCD yi şemadaki gibi bağladınız ise muhtemelen bozulmuştur. Bozulan LCD de bütün kareler (2 satır ve her satırda 16 kare) dolu gözükmesi gerekir. Yada hiç bir şey gözükmez. Şansınız var ise LCD bozulmmaış da olabilir. Bu üreticisine bağlı bir olay ve önceden kestirilmesi mümkün değil.

Öncelikle programda ufak bir düzeltme yapın. BASLA satırından evvel yer alan;
LCDOUT $FE,1 komut satırını bir önceki satırda yer alan PAUSE 500 komutundan bir önceki satıra yerleştirin. Kısaca LCDOUT satırını 1 satır yukarı kaydırın. Bu komuttan sonra Pasue 500 olmuş olsun.

Sonra LCD yi doğru bağlayın. Bunun için Şu kriterleri kullanın.
1. nolu LCD pinine GND bağlayın.
2. Nolu LCD pinine +5V bağlayın.
3. Nolu LCD pinine 10K lık (kontrast)  trimpotun orta ucunu bağlayın. Trimpotun dıştaki uçlarından birisi +5V ta diğeri ise GND ye bağlanacaktır.
4. Diğer bağlantılar doğru gözüküyor.
Bana kalırsa LCD nin 15 ve 16 nolu pinleri olan arka ışık bağlantısını şimdilik yapmayın. Genelde arka ışık için direk 5V veriyor arkadaşlar. Halbuki arka ışıkların %90'ı 4V ile çalışmaktadır. Çok gerekiyor ise +5V ile 15 nolu pin arasına 47 ohm 1Watt direnç bağlayın. 16 nolu pin direk GND ye bağlanacaktır.
5. Yine programınızda eksik olan TRIS register ayarlamalarıdır. Vermez iseniz default değerler kullanılır ama yinede siz aşağıdaki komutları programın en başına ekleyin.
PORTA=0 : TRISA=0
PORTB=0 : TRISB=0
PORTC=0 : TRISC=0
PORTD=0 : TRISD=0
PORTE=0 : TRISE=0

Bu şekilde bir deneyinbakalım sonuç ne olacak.

Ete


Powered by EzPortal