16×2 LCD Seri Modul CCS C (C Compailer)

Merhaba Arkadaşlar!

Bir önceki yayınladığım projemde 7 segment 4 lü sayıcı moduldede bahsettiğim gibi ana çalışmada kullanıcam işlemcinin pinlerini lüzumsuz yere mesgul etmemek için yine Pic16F84 veya benzeri piyasada bolca bulunan ve fiyatı ekonomik olan bir kucuk işlemciyle, projelerimde pc lerin ekran kartı mantığında kullanmak için RS-232 seri lcd modul olarak çalışacak bir çalışma yapmak istiyorum.

Böylece hazırlayacağımız bu modülle daha pahalıya maal olan ana işlemcimizin başka amaçlar için kullanacağımız portlarını görüntüleme için feda etmemiş olacaz. Buda bize zaman, maliyet ve port olarak geri dönmüş olacak.

Şimdi kısa bir bilgilendirmeden sonra çalışmamın kodlarına başlamak istiyorum. Kodlama için yine CCS C (C Compailer) kullanacağım. Sizlerde kodlarınızı yazarken kullanacağınız işlemciye göre ilgili ayarlarınızı yapınız.

///////////////////********* Kod Başı **********/////////////////////

//Seçtiğiniz veya kullanacağınız işlemciyle ilgili ayarlarınızı buraya ekleyiniz….

#use rs232(baud=9600, xmit=PIN_A1, rcv=PIN_A2,parity=N,bits=8)

//LCD module baglanti pinleri
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B2
#define LCD_ENABLE_PIN PIN_B3
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7

#include <lcd.c>
#include <string.h>

unsigned int8 i = 0;

char bilgi[32];
void main()
{

set_tris_b( 0x00 ); //portb çıkış

lcd_init(); // LCD module başlatılıyor
lcd_gotoxy(4, 1); // 1. Satır 4. kolona git
lcd_putc(“PIC 16F84A”);
lcd_gotoxy(2, 2); // 2. Satır 2. kolona git
lcd_putc(“Seri LCD Ekran”);
delay_ms(3000);
lcd_putc(‘\f’); // LCD Temizle
lcd_gotoxy(1, 1); // 1. Satır 1. kolona git
lcd_putc(“bencesendeizle”);
lcd_gotoxy(1, 2); // 2. Satır 1. kolona git
lcd_putc(“bencesendeogren”);
delay_ms(5000);
lcd_putc(‘\f’); // LCD temizle
lcd_gotoxy(1, 1); // 1. Satır 1. kolona git
lcd_putc(“Seri Ekran Modul”);

for (i=10;i>=1;–i)
{
lcd_gotoxy(1, 2);
printf(lcd_putc,”%3u Hazirlaniyor…”,i); // Write i with 3 numbers max
if(i == 0 ) goto BASLA;
delay_ms(250);
}

BASLA:
lcd_putc(‘\f’); //
lcd_gotoxy(1, 1); //

while (TRUE) /// Sonsuz döngüyü başlat
{
gets(bilgi); /// seri porttan bilgi bekle
for(i=0;i < strlen(bilgi);i++)  ///gelen bilginin karakter sayısına göre döngü hazırla
{
if(i<16) lcd_gotoxy(i+1, 1); // Gelen bilginin ilk 16 karakterini 1. satıra yerleştiriyor
if(i>=16) lcd_gotoxy(i-16+1,2); // Gelen bilginin 16 karakterden buyuk olan kısmını 2. satıra yerleştiriyor.
printf(lcd_putc,”%c”,bilgi[i]); ///belirlenen konuma yazıyor.
} // yazma bitiyor
}//basa don seri bilgi bekle sürekli tekrarla…

}

////////////////******** Kod Sonu *********///////////////////////

Evet kodumuz çok basit ve bukadar…! Fakat yaptıgımız çalışmada basit bir çalışma zaten fakat detaylandırılarak geliştirilmeye müsait bir çalışma. Mesela şu anda bu çalışmada sadece lcd ye bilgi gönderiliyor. Buna lcd den tekrar bilgi okuma eklenebilir yada çalışma sistemi değiştirilebilir. şu anda 32 bit lik değişken üzerinden  gelen bilgiyi 16×2 olarak parçalayıp 2 satıra paylaştırıyor. Daha büyük veriler için çalışma geliştirilebiliriz. Bunu bukadar basit ve bu şekilde neden hazırladın ozaman diye soracak olursanız su anda acil bukadarlık bir çözüme ihityacım vardı şu anda bu çalışma fazlasıyla işimi gördüğü için bu konuyla ilgili detay ve geliştirmeleri bir başka zaman başka bir çalışmada yada projede geliştireceğim.

İlginize teşekkürler iyi çalışmalar kolay gelsiinnn…!

 

  • Add to Phrasebook
    • No wordlists for English -> Turkish…
    • Create a new wordlist…
  • Copy

Yorumlar

Yorumlar

16×2 LCD Seri Modul CCS C (C Compailer)” için bir yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*