proteusta çalışan LCD devrede neden çalışmaz?

Başlatan shark27, 07 Şubat 2011, 18:30:08

shark27

arkadaşlar merhaba....

yaptığım basit bi lcd uygulaması..

kodları şöle...kristal 4Mhz.Pic16f877 kullanıyorum...


#include <16F877.h>
#fuses XT,NOWDT,NOBROWNOUT,NOPROTECT,NOLVP,NOCPD,NOPUT,NOWRT,NODEBUG
#use delay(clock=4000000)
#define use_portb_lcd TRUE
#include <lcd.c>
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
long sense[8];
int8 i;

void main()
{
setup_PSP(PSP_disabled);
setup_spi(SPI_SS_Disabled);
setup_timer_1(T1_disabled);
setup_adc(ADC_CLOCK_DIV_32);
setup_adc_ports(ALL_ANALOG);

setup_CCP2(CCP_PWM);
setup_ccp1(CCP_PWM); // CCP1 PWM moduna ayarlanıyor



set_tris_a(0xff);
set_tris_b(0x00);
set_tris_c(0xF0);
set_tris_d(0x00);
set_tris_e(0xff);



lcd_init();
  printf(lcd_putc,"\f SUMO ROBOT");
   
   printf(lcd_putc,"\n YON BILGISI SEC") ;
delay_ms(2000);

while(1)
{

}
}


devre şemasıda şöle proteusta çalışıyor .Aynı devreyi birebir kurdum.Lcd bozuk olabilir der gibi bişeyler duydum :D:D 3 tane farklı lcd ile denedim.Yanlız benim lcdler backlightlı..16 pin var üzerinde ben backlighti  kullanmıyorum.Gene ekranda yazıyı yazması gerekmezmi??

[IMG]http://i.imgur.com/DcbPw.jpg[/img]

yardımlarınızı bekliyorum.İİ çalışmalar...

Maxim

3 numaralı pinde 10k lık trimpot varmı ? yoksa takın ve kontras ayarı yapın..
direk 5 volta verirsen ekran komple siyah çıkar

ayrıca d0-d1-d2-d3 şaseye bağlanmalarına gerek yoktur .

shark27

maxim hocam bu şekilde direkt + ya verince ekranda komple karanlıkta çıkmıyor.hiçbişey yok ekranda.trimpot bağladım ayar yaptım gene ekranda değişen hiç bişey yok.anlamadım gitti....

Maxim

pic kesin çalışıyormu ?
ilk açılışta bir tane led yakıp söndürün ?

shark27

hocam onuda yaptım...

while(1) in içine portc.0 bitini 1 saniye aralıklarla yakıp söndürdüm çalışıyor program ...

shark27

backlighti olan displayede backlightı çalıştırmazsak ekranda gene bilgileri görmemiz gerekmezmi?

ferdem

Alıntı Yapbacklighti olan displayede backlightı çalıştırmazsak ekranda gene bilgileri görmemiz gerekmezmi?
Evet, gerekir, backlight olmadan da ekranı rahatlıkla görebilirsin. Karanlık olmadığı sürece ekranı görebilirsin, backlight a gerek yok.

Port B ile ilgili ayarları LCD.C ye bırakıp yani #use fast_io(b) ve set_tris_b(0x00); satırlarını silip dener misin? LCD.C deki fonksiyonlar LCD nin ready/busy bilgisini okuyarak çalışıyordu diye hatırlıyorum, tüm pinleri çıkış yaparsan okuma yapamaz. Bağlantıları multimetrenin iletkenlik testiyle bir kez daha kontrol edebilirsiniz. İyi çalışmalar.

shark27

peki, hocam o zaman proteusta neden çalışıyor gariplik yokmu ama dediğiniz gibi yarın bi denerim ..teşekkrüler..

frkcn

Bugün ömrümün geride kalan son günü...

ferdem

Şimdi kurulu bir devre üzerinde denedim de bahsettiğim durum problem oluşturmadı, baştan tüm pinler çıkış ayarlanmış olsa da lcd ye yazdı. LCD kütüphanesine baktım, okuma yapmak için tris leri kendisi her defasında ayarlıyor. Şu an aklıma bağlantıları kontrol etmekten başka bir şey gelmiyor. Denediğim kod:
#include <16F877.h>
#use delay(clock=20M)
#define use_portb_lcd TRUE
#include <lcd.c>
#fuses HS, NOPROTECT, NOWDT, NOLVP
//#use fast_io(b)
main(){
char f[]="picproje.org";
output_high(pin_c0);
//set_tris_b(0x00);
lcd_init();
printf(lcd_putc,"%s",f);

}

Ekrana picproje.org yazıyor.  İyi çalışmalar.

shark27

hocam şurda ilginç bi problem var...normalde konrtast potu ile ayar yaptığımızda satırdaki karelerin filan gözükmesi gerekmezmi ??? hiç bişey gözükmüyo tıko yok !!:D

shark27

bugün devre sorunsuz çalışmıştır cevap yazanlara teşekkrüler...

Maxim

Alıntı yapılan: shark27 - 08 Şubat 2011, 19:08:16
bugün devre sorunsuz çalışmıştır cevap yazanlara teşekkrüler...

nasıl yani ?, devre sadece salı günlerimi çalışacak? :)

isterseniz "neden" çalışmamış daha önce onuda yazın ?

shark27

hocam her salıyı bekliyeceksek işimiz var:D:D

ben pici easypic6 ile yüklüyodum onda bi problem varmış biraz parmak filan attım devreye baktım çalıştı :D