Arama butonu
Bu konudaki kullanıcılar: 1 misafir
30
Cevap
1149
Tıklama
0
Öne Çıkarma
LCD'ye bişey yazdıramadım
T
20 yıl
Teğmen
Konu Sahibi

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();
}
}



E
20 yıl
Yüzbaşı

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.



P
20 yıl
Çavuş

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.


Bu mesaja 2 cevap geldi.
P
20 yıl
Çavuş

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?


Bu mesaja 2 cevap geldi.
R
20 yıl
Binbaşı

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


Bu mesaja 1 cevap geldi.
P
20 yıl
Çavuş

o tanımlamada hata yok. orası doğru :D



T
20 yıl
Teğmen
Konu Sahibi

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ı.



T
20 yıl
Teğmen
Konu Sahibi

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...


Bu mesaja 1 cevap geldi.
T
20 yıl
Teğmen
Konu Sahibi

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...


Bu mesaja 1 cevap geldi.
P
20 yıl
Çavuş

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ı...


Bu mesaja 1 cevap geldi.
T
20 yıl
Teğmen
Konu Sahibi

İ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.


Bu mesaja 1 cevap geldi.
P
20 yıl
Çavuş

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


Bu mesaja 1 cevap geldi.
T
20 yıl
Teğmen
Konu Sahibi

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ı:)


Bu mesaja 1 cevap geldi.
P
20 yıl
Çavuş

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


Bu mesaja 1 cevap geldi.
T
20 yıl
Teğmen
Konu Sahibi

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


Bu mesaja 1 cevap geldi.
P
20 yıl
Çavuş

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


Bu mesaja 1 cevap geldi.
R
20 yıl
Binbaşı

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.


Bu mesaja 1 cevap geldi.
A
20 yıl
Yüzbaşı

arkadaşım sana PICBasic kullanmanı öneririm

device 16f877
declare xtal 4

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


Bu mesaja 1 cevap geldi.
A
20 yıl
Yüzbaşı

P
20 yıl
Çavuş

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???


Bu mesaja 1 cevap geldi.