Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

PIC16F628A LCD bağlantı sorunu.

Başlatan toyo, 23 Mart 2012, 02:10:27

toyo

Arkadaşlar merhaba.Sitede yeniyim.Bir kaç sorum olacaktı.Rf ile haberleşme yapmak istiyorum programları yazdım ancak lcd kısmında bir sorun var verici devreden sinyal geldiğinde alıcı devrede bir ledi 3-5 defa yakıp söndürdüm sorunusuz çalışıyor.Ancak LCD ekranda istediğimi alamıyorum.Bağlantıda sorun var galiba.İlgilenen arkadaşlara şimdiden teşekkürler. Kütüphaneden LCD yi farklı alıyorum .<cLCD.c> şeklinde,denedim  PIC16f877 li bir devrede kütüphaneden çağırdım <cLCD.c> çalışıyor.PIC16F877 de çok port olduğundan Bportunu LCD ye bağlamıştım.Ben PIC16F628A kullanacağım. LCD yi A portuna bağlamak pek kullanılan bir durum değilmiş.Ancak PIC16F628A da Bportunun bir ucunu veri almak için kullanıyorum.Nasıl yapacağım acaba?
NOT:
Atx Arx-34 kullanacağım.

VERİCİ DEVRE
#include <16f628a.H>
#fuses INTRC_IO, NOMCLR, NOPROTECT, NOWDT, NOLVP
#use delay(clock=4000000)
#use rs232(baud=600, xmit=PIN_B2, rcv=PIN_B1)
 
void main(){

while(1){


printf ("Emre");

}
}


ALICI DEVRE
#include <16f628A.h>
#fuses INTRC_IO, NOMCLR, NOPROTECT, NOWDT, NOLVP
#use delay(clock=4000000)
#use rs232(baud=600, xmit=PIN_B2, rcv=PIN_B1)
#include <cLCD.c>
#define use _portb_lcd TRUE
void main()
{
 
char i [20];
output_low(pin_a0); //cikislari temizle
output_low(pin_a1);
output_high(pin_b3); //calisma gostergesi
output_low(pin_b1);
lcd_init();
 delay_ms(2000);
while(1)
{

if(input(pin_b1))
{

gets(i);
lcd_gotoxy(1,2);
printf(lcd_putc,"/f%s"i,);
delay_ms(5000);
printf(lcd_putc,"/f");
delay_ms(500);
}

}
}
Gelirken ne getirilir ki giderken ne götürülür.

toyo

Verici devresi şu şekildi özür diliyorum.Çok kurcaladğım için eksik göndermişim.Eksik olan if(input(pin_b5)
#include <16f628a.H>
#fuses INTRC_IO, NOMCLR, NOPROTECT, NOWDT, NOLVP
#use delay(clock=4000000)
#use rs232(baud=600, xmit=PIN_B2, rcv=PIN_B1)
 
void main(){

while(1){
if(input(pin_b5) 
{
printf ("Emre");
}

}
}
Gelirken ne getirilir ki giderken ne götürülür.

skara1214

clcd dosyasını bulun ve içine bakın acaba bacaklar sizin istediğiniz bacaklaramı bağlı değilse değştirin ve kaydedin birde öyle deneyin
Herkes ölür ama herkes gerçekten yaşamaz

toyo

sorun yok üstad.Benim öğrenmek istediğim tam olarak lcdnin portA ya nasıl bağlanması gerektiği.
Gelirken ne getirilir ki giderken ne götürülür.

skara1214

bende diyorumki lcd.c nin içinde hangi bacakların nereye bağlandığı yazıyor onları a portunda istediğiniz bacaklarla değiştirirseniz orayı kullanırsınız
Herkes ölür ama herkes gerçekten yaşamaz

toyo

Gelirken ne getirilir ki giderken ne götürülür.

serhat1990

Bu tür işlerde define satırlarıyla lcd'yi hangi pinlere bağladıysanız o pinleri belirtmeniz işinizi dahada kolaylaştırır diğer türlü kütüphane işlemlerinizi sınırlar. İyi çalışmalar...

toyo

serhat1990 Verdiğiniz bilgi çok yararlı oldu gerçekten bir örnek verebilirmisiniz acaba #define ... pin_a1 gibi mi? Eğer böyle ise ... yerine ne yazmalıyım.
Gelirken ne getirilir ki giderken ne götürülür.

serhat1990

Aşağıda örnek kod yapısı koydum :) Kendi hazır komutlarıyla derleyici seni kullanır unutma. Kodlar tanımlamar için void main() içindeki komutlardan sonra lcd'ye veri yazabilirsiniz iyi çalışmalar...



#define LCD_ENABLE_PIN     PIN_b5      //lcd enable pini b5 
#define LCD_RS_PIN         PIN_b4      //lcd rs pini pin b4
#define LCD_RW_PIN         PIN_c0      //lcd rw pini pin c0

#define LCD_DATA4    PIN_b0         //lcdnin data4 pini pinb0 
#define LCD_DATA5    PIN_b1         //lcdnin data5 pini pinb1 
#define LCD_DATA6    PIN_b2         //lcdnin data6 pini pinb2 
#define LCD_DATA7    PIN_b3         //lcdnin data7 pini pinb3


#include <lcd.c>                    // lcd dosyalarını yükler

void main()
{
      lcd_init();          //lcd dosyalarını yükle
      printf(lcd_putc,"\f");           //lcd'yi temizle

toyo

Gelirken ne getirilir ki giderken ne götürülür.