10 Mart 2013 Pazar

CCS C ile PIC Programlamada LCD Ekran Kullanımı

Hamza Öztaş Share:
Image Hosted by ImageShack.us

Meraba arkadaşlar bu uygulama pic c compiler programında lcd ekran nasıl kullanılır, kod içerisinde hangi kodlar kullanılarak lcd aktif hale getirilir ve isterdiğimiz değerleri lcd ekrana nasıl bastırırız onu anlatmaya çalışacağım.


Program içerisine LCD ile ilgili  yazılması gereken ve kullanılan komutlar;

  • #define use_portb_lcd TRUE // burada lcd'nin port b'e bağlı olduğu belirtilmiştir
  • #include <lcd.c>                  // burada lcd.c dosyası tanıtılıyor(  lcd kütüphane yükleme işlemi, bu tanıtılmadığı takdirde lcd ekrana yazı yazma komutlarını tanımayacaktır)
  • lcd_init( );                           // LCD hazırlama işlemi
  • lcd_send_byte(0, 0xd);         //LCD Ekranda imleç yanıp sönsün komutu.
  • printf (lcd_putc, "\f               "); // tırnaklar arasına  görüntülenmesini istediğiniz yazı ekrana bastırılır.
    • üsteki komutla ekrana bir yazı bastırdıktan sonra LCD'nin alttaki kursörüne de yazı bastırmak istediğinizde ilk tırnaktan sonraki \f yerine \n kullanılır, alttaki gibi.
  • printf (lcd_putc, "\n              "); 
  • lcd_gotoxy(1,2);                      //Kursör 1.Sutün 2. satıra konumlandırıyor.
  • printf(lcd_putc,"\f  yazı alanaı=%d",integer ifade); // bu komut ile  ekrana hem yazı hemde sayısal bir ifade bastırmak için kullanılır.
    • integer ifade dediğim kısımda atıyorum program içerisinde int a=50; şeklinde integer bir ifade tanımladınız ve siz ekrana a=50 bastırmak istiyorsunuz, bu durumda şöyle yazmanız gerekmektedir.
    • printf(lcd_putc,"\f  a=%d",a); // bu şekilde olmalıdır, ilk a ekrana yazı olarak görüntülenecektir, integer ifade kısmındaki a, a'nın sayısal değerini ifade etmektedir.
  • lcd_getc(3,1);   //LCD'de o an 3. sutun ve 1. satırda olan karakteri almak için kullanılır.
    • siz istedğiniz sutun ve satırdaki değeri alıp onu başka bir değişkenin içine atıp onu ekrana bastırabilitrisiniz.
    • örneğin program içerisinde char b; tanımadınız ilerleyen kısımlarda b=lcd_getc(3,1); şeklinde bi eşitlik tanımladınız, burada 3. sutun ve 1. satırdaki karakteri alıp b değişkeni içerisine attınız ve bunuda dilerseniz printf(lcd_putc,"\f%c",b); komutuyla ekrana bastırabilirisiniz.
    • Bu noktada dikkat etmeniz gereken şey integer tamsayı tipindeki sayısal ifadeleri ifade etmek için, float ondalıklı tipte sayısal ifadeleri ifade etmek için ve char'da karakterleri ifade etmek için kullanılır.
  • Yukarıda tanımladığım integer ifade geçen kod içerisinde'de ikinci tırnaktan hemen önce ekrana bastırmak istediğiniz ifadenin tam sayı, ondalıklı sayı yada karakter olmasına bağlı olarak %d, %f yada %c tanımlama kısmına dikkat ediniz.
  • Aşagıdaki resimdede gördüğünüz gibi 1. ve 2. pin eksi ve artı besleme pinidir, 3. pin ekran parlaklığını ayarlamak için pota bağlanacak olan pindir, diğer pinler PIC'e bağlanacaktır.
  • Asağıya'da örnek bir kod koyuyorum kodu gördüğünüzde bahsettiklerimi çok daha iyi anlayacaksınızdır.
  • Umarım faydalı olur, aklınıza takılan bi yer olursa sayfa altına mesaj bırakabilirisiniz.



Image Hosted by ImageShack.us

PIC C Compiler Kodu;



#include <16f877.h>   

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#use fast_io(b) //Port yönlendirme komutları B portu için geçerli

#define use_portb_lcd TRUE   // LCD B portuna bağlı

#include <lcd.c>   // lcd.c dosyası tanıtılıyor

int x;      // Tamsayı tipinde değişken tanımlanıyor
float y;    // Ondalıklı tipte değişken tanımlanıyor
char z;     //  Karakter tipinde değişken tanımlanıyor

void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

   set_tris_b(0x00);   // B portu komple çıkış

   lcd_init();   // LCD hazırlanıyor

   x=10;   // x değişkenine değer veriliyor
   y=32.6; // y değişkenine değer veriliyor



   
   while(1) // Sonsuz döngü
   {shift_right(dizi,4,1);
      lcd_send_byte(0,0x0d);   // LCD'ye komut gönderiliyor. İmleç yanıp sönsün komutu.
      printf(lcd_putc,"\f     CCS C"); // LCD'ye veri gönderiliyor.
      delay_ms(1000); // 1 sn gecikme
      printf(lcd_putc,"\n  Derleyicisi");
      delay_ms(1000); // 1 sn gecikme
      lcd_gotoxy(1,2);   // Kursör 1.sütun, 2.satıra konumlandırılıyor.
      printf(lcd_putc,"\fX DEGERI=%d",x); // LCD'de tamsayı olarak x değişken değeri görüntüleniyor.
      delay_ms(1000); // 1 sn gecikme
      printf(lcd_putc,"\f\nY DEGERI=%f",y); // LCD'de ondalıklı olarak y değişken değeri görüntüleniyor.
      delay_ms(1000); // 1 sn gecikme
      printf(lcd_putc,"\fDIRENC"); // LCD siliniyor ve "Direnc" stringi yazdırılıyor.
      delay_ms(1000); // 1 sn gecikme
      z=lcd_getc(3,1);  // LCD'de o an 3.Sütun ve 1.Satırda olan karakter alınıyor. Alınan değer z değişkenine aktarılıyor.
      printf(lcd_putc,"\f%c",z);    // z değişkeni LCD'ye aktarılıyor
      delay_ms(2000); // 2 sn gecikme
   }
}
Tarafından Yayınlandı >> Hamza Öztaş

Hamza Öztaş'ı google plus'ta takip etmek için Google'a tıklayın;
Google+.

3
replies
  1. elleriniz sağlık çok verimli olmuş

    YanıtlaSil
  2. teşekkürler, yardımcı olmuş ise ne mutlu

    YanıtlaSil
  3. MERHABA HAMZA BEY CEP TELEFONU TESBİT DEDEKTÖRÜ PROJESİNİ YAPIYORUM CİHAZ CEP TELEFONU BULUNCA LCD EKRANDA "cihaz bulundu "YAZMASINI İSTİYORUM.BUNUN İÇİN NASIL BİR PİC VE KOD OLARAK NELER KULLANMALIYIM.YARDIMCI OLURSANIZ ÇOK SEVİNİRİM TEŞEKKÜRLER :) ozgurkurt06@hotmail.com e posta adresim

    YanıtlaSil

Get Updates in your Email
Complete the form below, and we'll send you our best of articles.

İletişim

© >> |
TOP