Şimdi Ara

LCD'ye bişey yazdıramadım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
31
Cevap
0
Favori
1.121
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Merhaba arkadaşlar,
    pic 16F84A + 2x16 LCD(HD44780) kullanıyorum.
    HI-TECH'in kendi delay,lcd,pic vs include dosyalarını kullanıyorum.
    PIC--LCD
    RB0--11(D4)
    RB1--12(D5)
    RB2--13(D6)
    RB3--14(D7)
    RA2--4(RS)
    RA3--6(E)
    LCD : 1(Vss)--GND
    5(R/W)--GND
    Beslemeler vs tamam.
    Aşagıdaki kodu yuklesem de ekranda sadece ust satır komple yanıyor.
    Sonra başka bişey yazmıyor.Bir arkadaşım reset olmuyor diyor.Sorun nerede?HI-TECH'ın lcd.c dosyası ya da DelayUs ve DelayMs fonksiyonları mı düzgün çalışmıyor?

    Şimdilik sadece ekrana Temp= yazdırmak istiyorum bunu bile yapmıyor.Daha ileride sıcaklık ölçüp yazdıracam:)
    #define	XTAL_FREQ	4MHZ 

    #include <pic.h>
    #include <lcd.c>
    #include <delay.c>
    #include <stdio.h>
    main(void)
    {
    unsigned char display[]="Temp= ";
    TRISB=0;
    TRISA=0;

    DelayMs(250);
    lcd_init();
    lcd_clear();


    for(;;)
    {
    lcd_puts(display);

    DelayMs(250);
    lcd_clear();
    }
    }







  • ARKADAŞIM SEN YİNEDE EKRANA BİRŞEYLER YAZDIRMIŞSIN.BEN ONUDA BECEREMEDİM.BENDE LCD Yİ YENİ ÖĞRENİYORUM.LCD KONUSUNDA İYİ OLAN ARKADAŞLARIN YARDIMLARINI BEKLİYORUM.
  • lcd.c
    lcd.h
    delay.c
    delay.h

    bu dosyaları include klasörünün içine kopyaladın mı?

    bir de lcd_init() ten sonra DelayMs(100) koyarsan iyi olur.

    ayrıca programın bu halinde stdio.h dosyasına ihtiyaç yok ama "Temp= " yazısının yanına sıcaklık değerini ekleyeceğin zaman ihtiyacın olacak.
  • quote:

    Orijinalden alıntı: psiko

    lcd.c
    lcd.h
    delay.c
    delay.h

    bu dosyaları include klasörünün içine kopyaladın mı?

    bir de lcd_init() ten sonra DelayMs(100) koyarsan iyi olur.

    ayrıca programın bu halinde stdio.h dosyasına ihtiyaç yok ama "Temp= " yazısının yanına sıcaklık değerini ekleyeceğin zaman ihtiyacın olacak.
    birşey daha var. 3 numaralı VEE bacağına 10k'lık POT bağladın mı? ya sen devreyi gerçekten yapıyor musun yoksa Proteus ile simülasyon mu yapıyosun?
  • quote:

    Orijinalden alıntı: psiko

    birşey daha var. 3 numaralı VEE bacağına 10k'lık POT bağladın mı? ya sen devreyi gerçekten yapıyor musun yoksa Proteus ile simülasyon mu yapıyosun?

    Alıntıları Göster
    CCS nin derleyicisini kullnasan yardım edebilirdsim ama HiTech konusunda bişey diyemiyecem ama

    unsigned char display[]="Temp= ";

    bu tanımlamada bir hata yok değilmi yani hatasız derleniyormu program

    unsigned char display[7]="Temp= ";
    şeklinde dizi boyutunu tanımlamak gerekir gibime geliyor. Yoksa compiler kendisi otomatikmi ayarlıyor




  • quote:

    Orijinalden alıntı: rafet32

    CCS nin derleyicisini kullnasan yardım edebilirdsim ama HiTech konusunda bişey diyemiyecem ama

    unsigned char display[]="Temp= ";

    bu tanımlamada bir hata yok değilmi yani hatasız derleniyormu program

    unsigned char display[7]="Temp= ";
    şeklinde dizi boyutunu tanımlamak gerekir gibime geliyor. Yoksa compiler kendisi otomatikmi ayarlıyor

    Alıntıları Göster
    o tanımlamada hata yok. orası doğru :D
  • quote:

    Orijinalden alıntı: psiko

    birşey daha var. 3 numaralı VEE bacağına 10k'lık POT bağladın mı? ya sen devreyi gerçekten yapıyor musun yoksa Proteus ile simülasyon mu yapıyosun?

    Alıntıları Göster
    quote:

    Orjinalden alıntı: psiko

    birşey daha var. 3 numaralı VEE bacağına 10k'lık POT bağladın mı? ya sen devreyi gerçekten yapıyor musun yoksa Proteus ile simülasyon mu yapıyosun?

    Pot da koymuştum.Simulasyon değil.devreyi protoboardda denedım olmadı.




  • quote:

    Orijinalden alıntı: psiko

    lcd.c
    lcd.h
    delay.c
    delay.h

    bu dosyaları include klasörünün içine kopyaladın mı?

    bir de lcd_init() ten sonra DelayMs(100) koyarsan iyi olur.

    ayrıca programın bu halinde stdio.h dosyasına ihtiyaç yok ama "Temp= " yazısının yanına sıcaklık değerini ekleyeceğin zaman ihtiyacın olacak.
    quote:

    Orjinalden alıntı: psiko

    lcd.c
    lcd.h
    delay.c
    delay.h

    bu dosyaları include klasörünün içine kopyaladın mı?

    bir de lcd_init() ten sonra DelayMs(100) koyarsan iyi olur.

    ayrıca programın bu halinde stdio.h dosyasına ihtiyaç yok ama "Temp= " yazısının yanına sıcaklık değerini ekleyeceğin zaman ihtiyacın olacak.

    O dosyalar zaten include içinde olmasa zaten derleyici bulamadım diye hata veriyor...




  • quote:

    Orijinalden alıntı: trigger

    quote:

    Orjinalden alıntı: psiko

    lcd.c
    lcd.h
    delay.c
    delay.h

    bu dosyaları include klasörünün içine kopyaladın mı?

    bir de lcd_init() ten sonra DelayMs(100) koyarsan iyi olur.

    ayrıca programın bu halinde stdio.h dosyasına ihtiyaç yok ama "Temp= " yazısının yanına sıcaklık değerini ekleyeceğin zaman ihtiyacın olacak.

    O dosyalar zaten include içinde olmasa zaten derleyici bulamadım diye hata veriyor...

    Alıntıları Göster
    Bir de netten şunu öğrendim.Galiba bu LCDnin üst satırının komple yanması test ekranıymış.lcd_init()ten sonra delay koyacagım deneyeceğim...




  • quote:

    Orijinalden alıntı: trigger

    Bir de netten şunu öğrendim.Galiba bu LCDnin üst satırının komple yanması test ekranıymış.lcd_init()ten sonra delay koyacagım deneyeceğim...

    Alıntıları Göster
    yani derleyici hata vermiyor. normal derleniyor ama devre çalımıyor öyle mi. o zaman yukarda dediğim gibi lcd_init() den sonra dleay koy 100ms. öyle bir dene bakalım olacak mı...
  • quote:

    Orijinalden alıntı: psiko

    yani derleyici hata vermiyor. normal derleniyor ama devre çalımıyor öyle mi. o zaman yukarda dediğim gibi lcd_init() den sonra dleay koy 100ms. öyle bir dene bakalım olacak mı...

    Alıntıları Göster
    İnternette aynı tür sorunu olan bayagı bir kişi var.Onlar da sorunlarına yanıt alamamışlar.Üst satır komple blok halinde çalışıyor.Alt satır boş.Galiba bu tipik bir lcd test ekranıymış.Galiba lcd_init() oluyo ama lcd_clear() çalışmıyor.Arada 100 ms delay koydum yine olmadı.Ne yapmak lazım lcd.c deki delayleri mi değiştirecez?Bunu da denedim bazılarını arttırdım biraz yine bişey değişmedi.




  • quote:

    Orijinalden alıntı: trigger

    İnternette aynı tür sorunu olan bayagı bir kişi var.Onlar da sorunlarına yanıt alamamışlar.Üst satır komple blok halinde çalışıyor.Alt satır boş.Galiba bu tipik bir lcd test ekranıymış.Galiba lcd_init() oluyo ama lcd_clear() çalışmıyor.Arada 100 ms delay koydum yine olmadı.Ne yapmak lazım lcd.c deki delayleri mi değiştirecez?Bunu da denedim bazılarını arttırdım biraz yine bişey değişmedi.

    Alıntıları Göster
    "Üst satır komple blok halinde çalışıyor" ne demek tam anlayamadım. üst satırda ne gözüküyor?




  • quote:

    Orijinalden alıntı: psiko

    "Üst satır komple blok halinde çalışıyor" ne demek tam anlayamadım. üst satırda ne gözüküyor?

    Alıntıları Göster
    http://www.thecodeproject.com/csharp/cspplcds.asp?print=true
    Part-3 Before Coding'ten önce bir lcd görüntüsü var.Ona bakarsan üst satır benim anlatmak istediğimle aynı:)




  • quote:

    Orijinalden alıntı: trigger

    http://www.thecodeproject.com/csharp/cspplcds.asp?print=true
    Part-3 Before Coding'ten önce bir lcd görüntüsü var.Ona bakarsan üst satır benim anlatmak istediğimle aynı:)

    Alıntıları Göster
    bir de clear'dan sonra 5ms delay koymayı dene istersen.




  • quote:

    Orijinalden alıntı: psiko

    bir de clear'dan sonra 5ms delay koymayı dene istersen.

    Alıntıları Göster
    lcd.c dosyasında var zaten cleardan sonra 2ms delay ayrıca kullanmaya gerek var mıdır?
  • quote:

    Orijinalden alıntı: trigger

    lcd.c dosyasında var zaten cleardan sonra 2ms delay ayrıca kullanmaya gerek var mıdır?

    Alıntıları Göster
    evet doğru. kendi içinde zaten 2ms bekleme var.
  • quote:

    Orijinalden alıntı: psiko

    evet doğru. kendi içinde zaten 2ms bekleme var.

    Alıntıları Göster
    Birde şöyle bir deneme yaptınmı borda kurulan devrelerde bazen temas sorunu yüzünden işlemci hiç çalışmıyor. Ve hatayı yazılımda arıyoruz genelde. PIC e lcd programını değilde basit bir ledi yakıp söndüren bir program yazıp borda kurduğun donanımın sağlıklı çalıştığını test etmeni tavsiye ederim.
  • quote:

    Orijinalden alıntı: rafet32

    Birde şöyle bir deneme yaptınmı borda kurulan devrelerde bazen temas sorunu yüzünden işlemci hiç çalışmıyor. Ve hatayı yazılımda arıyoruz genelde. PIC e lcd programını değilde basit bir ledi yakıp söndüren bir program yazıp borda kurduğun donanımın sağlıklı çalıştığını test etmeni tavsiye ederim.

    Alıntıları Göster
    arkadaşım sana PICBasic kullanmanı öneririm

    device 16f877
    declare xtal 4

    cursor 1,1
    print "Deger:"
    cursor 2,1
    print "değer:"




  • quote:

    Orijinalden alıntı: akcay

    arkadaşım sana PICBasic kullanmanı öneririm

    device 16f877
    declare xtal 4

    cursor 1,1
    print "Deger:"
    cursor 2,1
    print "değer:"

    Alıntıları Göster
    buda bağlantısı





  • quote:

    Orijinalden alıntı: akcay

    buda bağlantısı



    Alıntıları Göster
    trigger senin karşılaştığın sorunun aynısıyla ben de karşılaştım maalesef. devreyi kurdum ve üst satır verdiğin linkteki gibi koyu gözüküyor. neden böyle birşey oluyor acaba? acaba sorun breadboard kullanmamız olabilir mi???




  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.