Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

xc8 lcd sorunu

Başlatan canbulut, 27 Kasım 2013, 14:36:23

canbulut

#15
hocam proje bu

MrDarK

#16
RW pini gndde gözüküyor oysa sen pine bağlaman gerekirdi.

Sen bu devreyi PCB yaptın mı ? Yaptıysan pcb devreni , yapmadıysan bread board resmini çekip atmanı istemiştim ben aslında. Yoksa buradan hatayı tespit edemeyiz.

Ayrıca LCD_LED yazan yerde 5V olması gerekli uygun direnci backlight ışığını gözlemleyerek karar verebilirsin. 220 - 330ohm direnc atabilirsin. Veya direnç yerine bir adet diyot bağlayabilirsin.
Picproje Eğitim Gönüllüleri ~ MrDarK

canbulut

RW pini direkt gnd'ye bağlı.yazılımsal nasıl değiştirilir ? hata yapmamak için değişiklik yapmadım.bundan dolayı çalışmıyor olabilir mi?
Devre pcb üzerinde board kit.
LCD_LED yazan yerde bir anahtara gidiyor.manuel olarak ister açıyor ister kapatabiliyorsun.

mg1980

Yaptığım çalışmalarda RW ucunu ben de GND'ye bağlıyorum

pwm.c

CCS C derleyicindeki LCD kütübhanesinde RW bacağını kullanmaya mecbur kalıyoruz aksi halde çalışmıyor hatta proteusta çalıştığı halde gerçekte çalışmıyor. muhtemel aynı sorunu yaşamış olmalısın.
RW bacağını iptal etmek için kütübhanede oynamalar yaptım fakat 4 lcd ile denedim birinde çalışmadı yani modeller bile farklılık gösteriyor.
XC8 de 16F serileri için basit bir LCD kütübhanesi yapmıştım istersen göndereyim ama 18F serilerine nekadar uyar bilmem. zaten XC'yi pek kullanmıyorum. sende PIC32 kullanmayacaksan yol yakınken CCS ile devam et derim.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

canbulut

#20
Alıntı yapılan: MrDarK - 03 Aralık 2013, 22:10:06
RW pini gndde gözüküyor oysa sen pine bağlaman gerekirdi.

Sen bu devreyi PCB yaptın mı ? Yaptıysan pcb devreni , yapmadıysan bread board resmini çekip atmanı istemiştim ben aslında. Yoksa buradan hatayı tespit edemeyiz.

Ayrıca LCD_LED yazan yerde 5V olması gerekli uygun direnci backlight ışığını gözlemleyerek karar verebilirsin. 220 - 330ohm direnc atabilirsin. Veya direnç yerine bir adet diyot bağlayabilirsin.

hocam rw pinini gnd'den çıkarıp ilgili pine taktım yine çalışmadı.20MHz ile çalışıyordum 4 mhz ile çalışayım dedim yine çalıştıramadım.

MrDarK

Hi-Tech C için yazılmış LCD kütüphanesi ; Aynı zamanda ccs kullanıcıları içinde geçerli. Sadece delayları ve bazı basit noktaları değiştirin.

#include	<pic.h>
#include	"C_lcd.h"

#define _XTAL_FREQ 20000000

#define RS RB0
#define EN RB1
#define LCD_D0 RB2
#define LCD_D1 RB3
#define LCD_D2 RB4
#define LCD_D3 RB5


void load (unsigned char i)
{
	LCD_D0 = 0;
	if(i & 0x01)LCD_D0 = 1;
	LCD_D1 = 0;
	if(i & 0x02)LCD_D1 = 1;
	LCD_D2 = 0;
	if(i & 0x04)LCD_D2 = 1;
	LCD_D3 = 0;
	if(i & 0x08)LCD_D3 = 1;
}

void lcd_puts(const char * s)
{
	RS=1;
	while(*s)
	{
		lcd_veri(*s++);
	}

}

void lcd_komut(unsigned char komut)
{
	unsigned char A;
	A=(komut>>4);
	load(A);
	RS=0;
	EN=1;
	EN=0;
	__delay_ms(2);
	
	A=(komut & 0x0F);
	load(A);
	RS=0;
	EN=1;
	EN=0;
	__delay_ms(2);	
	
}

void lcd_veri(unsigned char veri)
{
	unsigned char A;
	A=veri>>4;
	load(A);
	RS=1;
	EN=1;
	EN=0;
	__delay_ms(2);
	
	A=(veri & 0x0F);
	load(A);
	RS=1;
	EN=1;
	EN=0;
	__delay_ms(2);	

}
void lcd_imlec(unsigned char satir, unsigned char sutun)
{
	if(satir==1)
      lcd_komut(0x80|(sutun-1));

   if(satir==2)
      lcd_komut(0x80|(0x40+(sutun-1)));      

}

void lcd_hazirla(void)
{
unsigned char i;
	RS=0;
	EN=0;
	__delay_ms(30);
	
	for(i=0;i<=3;i++)
   {
      lcd_komut(0x03);
      __delay_ms(5);      
   }
   
   lcd_komut(0x02);   // 4 bitlik iletişim Protokolü
   lcd_komut(0x28);   // 2 satır 4bitlik iletişim 5x8 dot matris seçildi
   lcd_komut(0x08);   // display kapalı, imleç yanıp sönme yok
   lcd_komut(0x0C);   // display açık, imleç yanıp sönme yok
   lcd_komut(0x06);   // her veri yazıldığında imleç bir sağa gitsin
   lcd_komut(0x01);   // display sil. imleç 1.satır 1.sutunda...
	
}


Hocam birde lcd kütüphaneni buradaki bilgilere göre değiştirir misin ?
D0-D3 yazan pinlere aldanmayın. Bunları LCD'nin D4 pininden başlayacak şekilde bağlayacaksınız. Yani D0 aslında D4
Picproje Eğitim Gönüllüleri ~ MrDarK

canbulut

#22

mesaj birleştirme:: 04 Aralık 2013, 11:40:45

Alıntı yapılan: MrDarK - 04 Aralık 2013, 10:57:04
Hi-Tech C için yazılmış LCD kütüphanesi ; Aynı zamanda ccs kullanıcıları içinde geçerli. Sadece delayları ve bazı basit noktaları değiştirin.

#include	<pic.h>
#include	"C_lcd.h"

#define _XTAL_FREQ 20000000

#define RS RB0
#define EN RB1
#define LCD_D0 RB2
#define LCD_D1 RB3
#define LCD_D2 RB4
#define LCD_D3 RB5


void load (unsigned char i)
{
	LCD_D0 = 0;
	if(i & 0x01)LCD_D0 = 1;
	LCD_D1 = 0;
	if(i & 0x02)LCD_D1 = 1;
	LCD_D2 = 0;
	if(i & 0x04)LCD_D2 = 1;
	LCD_D3 = 0;
	if(i & 0x08)LCD_D3 = 1;
}

void lcd_puts(const char * s)
{
	RS=1;
	while(*s)
	{
		lcd_veri(*s++);
	}

}

void lcd_komut(unsigned char komut)
{
	unsigned char A;
	A=(komut>>4);
	load(A);
	RS=0;
	EN=1;
	EN=0;
	__delay_ms(2);
	
	A=(komut & 0x0F);
	load(A);
	RS=0;
	EN=1;
	EN=0;
	__delay_ms(2);	
	
}

void lcd_veri(unsigned char veri)
{
	unsigned char A;
	A=veri>>4;
	load(A);
	RS=1;
	EN=1;
	EN=0;
	__delay_ms(2);
	
	A=(veri & 0x0F);
	load(A);
	RS=1;
	EN=1;
	EN=0;
	__delay_ms(2);	

}
void lcd_imlec(unsigned char satir, unsigned char sutun)
{
	if(satir==1)
      lcd_komut(0x80|(sutun-1));

   if(satir==2)
      lcd_komut(0x80|(0x40+(sutun-1)));      

}

void lcd_hazirla(void)
{
unsigned char i;
	RS=0;
	EN=0;
	__delay_ms(30);
	
	for(i=0;i<=3;i++)
   {
      lcd_komut(0x03);
      __delay_ms(5);      
   }
   
   lcd_komut(0x02);   // 4 bitlik iletişim Protokolü
   lcd_komut(0x28);   // 2 satır 4bitlik iletişim 5x8 dot matris seçildi
   lcd_komut(0x08);   // display kapalı, imleç yanıp sönme yok
   lcd_komut(0x0C);   // display açık, imleç yanıp sönme yok
   lcd_komut(0x06);   // her veri yazıldığında imleç bir sağa gitsin
   lcd_komut(0x01);   // display sil. imleç 1.satır 1.sutunda...
	
}


Hocam birde lcd kütüphaneni buradaki bilgilere göre değiştirir misin ?
D0-D3 yazan pinlere aldanmayın. Bunları LCD'nin D4 pininden başlayacak şekilde bağlayacaksınız. Yani D0 aslında D4
çevirmeye çalıştım çokta başarılı olamadım maalesef.

Gökhan BEKEN

Ben xc8'in LCD kütüphanesini kullanamayınca başka bir kütüphane ile çalıştırdım, isterseniz yollayım?
Özel mesaj okumuyorum, lütfen göndermeyin.

serhat1990

#24
Başka bir library' yi XC için düzenlemiştim. İşe yarayabilir , iyi çalışmalar ...

http://www.megafileupload.com/en/file/475673/XC8-LCD-Library-rar.html

canbulut

Tekrar bastan yukleyince duzeldi.tesekurler ;D

ruzgar_2626

Hocalarım bana lcd CX8 ile lcd ye yazı yazdıran ufak bi program ve bu komutları nerden bulabilirim yeni başladımda bu programa.