PİC LCD Sürme Sorunu

laparga

Üye
Katılım
14 Mar 2009
Mesajlar
108
Puanları
1
Yaş
35
Arkadaşlar merhaba,lcd ye yazamıyorum.bağlantıları defalarca kontrol ettim sorun yok gibi görünüyor.ekranın 1. satırında kareler çıkıyor yazı gelmiyor.kodlara bakar mısınız sizce bir sorun var mı?Teşekkür ederim..

ve ayrıca kodlar isis te çalışıyor.



#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)
#define use_portb_lcd TRUE
#include <lcd_flex.c>


void main()
{



setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı

lcd_init();
delay_ms(20);


set_tris_b(0x00);
set_tris_d(0xfd);
output_low(PIN_D0);



for(;;)
{
output_high(PIN_D0);
printf(lcd_putc,"\fAAAAAA");
delay_ms(100);
output_low(PIN_D0);
printf(lcd_putc,"\nBBBBBB");
delay_ms(100);
}//for sonsuz
} //main
 
Son düzenleme:
Adsız.jpg
devre şemasını da ekledim.
 
C dilinden pek anlamam fakat, gördüğüm kadarı ile (yanlış hatırlamıyorsam) LCD nin veriyi kabul edebilmesi için uygun olup olmadığını kontrol etmen gerek (lcd ye veri gönderme rutinlerini incele) , belkide bunu yazma komutu içeriyor olabilir. diğer bir ihtimal yazılımda belirttiğin frekanstan farklı krıstal kullanıyor isen gecikmelerdeki zaman farkı olabilir.
 
Merhaba,

Bu kod gerçek bir devre üzerinde çalışıyor. Başlık dosyası olarak koddan da görüleceği üzere lcd.h başlık dosyasını da eklemek gerekiyor.

https://github.com/erdemoncel/sicaklik/blob/master/lcdpanel.c

Eğer 16F877A dışında bir denetleyici ile çalışacaksanız secenek.h dosyasında ilgili bayrakları değiştirmek gerekiyor.
 
arkadaşlar cevaplar için öncelikle teşekkür ederim.

önce lcd.c klasörünü inceleyeceğim daha sonra da yapamaz isem erdem arkadaşımın verdiği kodları kurmayı düşünüyorum.

Yaptığım şeyin en saçma yeri lcd ye sürme.sabrım sınanıyor galiba..:))
 
Bir de başlık dosyasında lcd.h ekranın giriş ve çıkışları (RS (yazmaç seçim), EN (aktifleştir) ve veri gönderen kapılar) nasıl ayarlanmış ona da dikkat etmek gerekiyor.

Gerçek devreyi kurduğunuzda ekranın giriş ve çıkışlarını lehimlemenizi tavsiye ederim.

Aslında özel bir nedeni yoksa Arduino ile bu işler çok daha basit yapılabiliyor.

http://temelelektronik.net/arduino-baslangic/
 
Arkadaşlar cevaplarınız için teşekkür ederim.LCD nin pinlerini kontrol etmeden proteus programına göre bacaklarını bağladım ve bundan dolayı ikisini de yaktığımı fark ettim.Bu bilgi bana 2 lcd ye mal oldu.İyi çalışmalar.Kolay gelsin.:)
 
Ben de senin gibi ilk denediğimde bir tane LCD ekranı aldım denedim sonra bozuk herhalde diye yeni aldım. Bir sonraki aldığım ekranı da gene bağlantıları yanlış yaptığımı düşünürek yaktığımı düşündüm. Sonra gittim bir tane daha aldım.

Ama sonra anladım ki tek sorun bağlantı probleminden kaynaklanıyormuş. Şimdi üçü de çalışıyor :)

8141194219_7d6802e24f_c.jpg


Üstteki devre şemasına göre bağlantıları yapabilirsin. Dediğim gibi sorun büyük ihtimal bağlantılardan kaynaklanıyordur. Ekranın çıkışlarını deneme kartına girecek şekilde lehimlemeni tavsiye ederim.

Eğer zaten lehim yaptıysan ölçüm cihazı ile lehimler arasında bağlantısızlık var mı kontrol et.
 

Forum istatistikleri

Konular
128,133
Mesajlar
915,305
Kullanıcılar
449,849
Son üye
cagan20

Yeni konular

Geri
Üst