LCD Ekran Çalıştıramıyorum

eeris43

Üye
Katılım
2 Ocak 2011
Mesajlar
22
Puanları
1
Yaş
32
Arkadaşlar konuyu daha önce açtım.Bunu bilenler kızmasın ama bi türlü yapamadım.. devrede herşey çalışıyo bi lcd çalışmıyor nolur yardım edin.sorun nedir. bağlantılarım doğru gerilimler gidiyor.kobupluk yok dirençleri doğru bağladıom.ama bi türlü çalışmadı bi yardımcı ollun lütfen

kodları ise

Kod:
/******************************************************
      PIC16F877 ile Step Motor Uygulaması
                Erhan HARMANKAYA
              [EMAIL="[email protected]"][email protected][/EMAIL]
                17 Haziran 2008
*******************************************************/ 
#include <16f877.h>     // Ben 16f877 kullandım siz kendinize göre düzeltebilirsiniz
                        //Not: 16f628 de ADC modülü mevcut DEĞİL!
#device ADC=10  // 10 bitlik ADC kullanılacağız
// ayarlar
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000) //Kullandığımız Osilatörün Clock frekansı
#define use_portb_lcd TRUE   // LCD B portunda
#include <lcd.c>  //lcd yi kullanacağız
#define buton_ileri pin_c4
#define buton_geri  pin_c5
signed int8  ADIM=0;
int16 Vref,Vcikis;
float filtre;
unsigned int8 sayac;
char durum;

#int_timer1  // Timer1 kesmesi
void  timer1_kesme () 
{
   set_timer1(63036);

  switch(durum)
         {
         case 1 :  printf(lcd_putc,"\fADIM=%d %4.1Lu ms\nKonum: -->>", ADIM,Vcikis); break;
         case 2 :  printf(lcd_putc,"\fADIM=%d %4.1Lu ms\nKonum: <<--", ADIM,Vcikis); break;
         case 3 :  printf(lcd_putc,"\fADIM=%d %4.1Lu ms\nKonum: ----", ADIM,Vcikis); break;
         case 4 :  printf(lcd_putc,"\fADIM=%d %4.1Lu ms\nKonum: #HATA#", ADIM,Vcikis); break;
         }
   delay_ms(10);
  
   if(Vcikis<10){ //10ms dweğerinden küçük beklemelerde ikaz ver.! (:
  
         lcd_gotoxy(14,2);
          lcd_putc("-!-");
          delay_ms(5);
   }else{
   delay_ms(6);
   }
}
void main ( )
{
         lcd_init();
         delay_ms(10);
         printf(lcd_putc,"\fCCP-Timer-ADC\n Ayarlaniyor...");
         delay_ms(1500);
        
         setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
         setup_spi(SPI_SS_DISABLED);     // SPI 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_timer_1(T1_INTERNAL | T1_DIV_BY_8);
         set_timer1(63036); 
  
         setup_adc_ports( ALL_ANALOG);
         setup_adc(adc_clock_internal);
         set_adc_channel(2);  
        
         setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
         setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı
        
         printf(lcd_putc,"\fPortD Ayarlaniyor...");
         delay_ms(1500);
        
         output_d(0x00);
        
         printf(lcd_putc,"\fTimer1 Kesmesi\nAyarlaniyor...");
         delay_ms(1500);
        
         enable_interrupts(INT_timer1); // int_timer1 kesmesini aktif yapar
         enable_interrupts(GLOBAL);     // Aktif edilen kesmelere izin ver
         printf(lcd_putc,"\fHazir...");
         delay_ms(5);
   while(1) //herzaman burada kal
   {
  
      set_adc_channel(2);
      Vref = read_adc();  //potansiyometreden alınan gerilim
      delay_us(50);
      Vcikis=Vref/16;
     
     
  
 
      if (input(buton_ileri)) // İLERİ Butonuna basıldı ise
      {
         delay_ms(Vcikis);
         ADIM = ADIM+1;
         if( ADIM == 9)
         {
         ADIM=1;
         durum=1;
         }
      }
      if (input(buton_geri)) // GERİ Butonuna basıldı ise
      {
         delay_ms(Vcikis);
         ADIM = ADIM-1;
         if( ADIM < 1)
         {
         ADIM=8;
//!         printf(lcd_putc,"\fADIM=%d\nKonum: -->>", ADIM);
//!         delay_ms(10);
         durum=2;
         }
      }
     
            if (input(buton_geri)&input(buton_ileri)) // İki butona da basılıyor ise;
      {
         durum=3;
        
      }
      //Bu koşul iki butona da basıldığında HATA durumunun oluşacağını bilgirir.
     
             if (!input(buton_geri)&!input(buton_ileri)) // İki butona da basılmıyor ise;
      {
         durum=4;
        
      }
      delay_ms(Vcikis);
     
     
            switch(ADIM)
         {
         case 1 : output_d(0b00000001); break;
         case 2 : output_d(0b00000011); break;
         case 3 : output_d(0b00000010); break;
         case 4 : output_d(0b00000110); break;
         case 5 : output_d(0b00000100); break;
         case 6 : output_d(0b00001100); break;
         case 7 : output_d(0b00001000); break;
         case 8 : output_d(0b00001001); break;
         }
    
   }
}

İlgilenen arkadaşlar nolur yardım etsin
 
Öncelikle kuralları okuyup konu başlığınızı konu içeriği ile ilgili olacak şekilde düzeltin ki yardım eden olsun.
 
nasıl düzelteyim derdimi yazdım başka nasıl derdimi açıklayım anlamadım
 
Konu Başlığı Düzenlenmiştir.
Kaldığımız yerden devam edelim herhangi bir degişiklik için Bölüm Yöneticilerinden yardım istiyebilirsiniz.
Bahsettiğiniz bir önceki konu başlığı anlatılan içerik aynı durumda ise bir önceki konudan devamının getirilmesi gerekmektedir.
Kolay Gelsin
 
Lcd bağlantıların yanlış olabilir.
Pinlerini kontrol et.
Aşağıdaki gibi dene.
Potansiyometre ile oynayarak ekranı izle , bir şeyler gözükmesi lazım , en azından karanlık kutular.

Neden eski başlığı bırakıp yeni açtın ?
Kendini bizim yerimize koy , konuya baktın , deneyeceksin ama oturup yeniden çizermisin ?
Proteus dosyalarını ccsc dosyalarını eklemek zor olmasa gerek.
 
kapatabiliriz konuyu herkes bana suç buluyor ....
 
Sana yardımcı olmaya çalışanlar var.
Problemini çözmende izleyeceğin yolları anlatıyoruz.
Buna mecbur değiliz ve başa kakma gibi bir niyetimizde yok.
Ama sen önerileri dinlemek yerine sitem etmeyi tercih ediyorsun...
Sen bilirsin...
 
Arkadaşım, devren çalışıyor bende, özel mesaj attım, hala çalışmadıysa yardımcı olabilirim...
 

Forum istatistikleri

Konular
128,163
Mesajlar
915,578
Kullanıcılar
449,922
Son üye
11akif

Yeni konular

Çevrimiçi üyeler

Geri
Üst