Pic 16f877 ile Lcd Uygulaması

Elektronik Devreler elektrik 353 views
sponsorlu reklam

Bu devre, ” *Elektronik devreler*, *Pic 16f877 ile Lcd Uygulaması* Lcd Uygulaması* hobi devreleri* ” ile etikenlendi.

Pic 16f877 ile Lcd Uygulaması

lcd

lcd

LCD uygulamalarında temel olması için basit bir lcd uygulaması yaptık. LCD  miz 16f877 in B portuna bağlıdır.Eğer ki biz d portuna baglasaydık programda hangi porta bagladıgımızı söylememize gerek yoktu.Demek istedigim B portuna baglamış olsaydık #define use _portb_lcd TRUE komutunu kullanmamıza gerek olmayacaktı.Bu komut ile entegremize biz lcd yi b portuna bagladık dedik.

Programımızda LCD kütüphanesi otomatik olarak gelmez çagırmak içinde  #include <lcd.c> komutu ile çagırırz.

Not= Devre Dökümanları Aşagıdadır

LCD Bacak Bağlantıları;

lcd baglantımızda vdd ucuna +5 volt girilecek diger uçlar;

B0 —LCD ‘nin E ucuna.

B1—-LCD ‘nin RS ucuna

B2—LCD ‘nin RW ucuna

B4—LCD ‘nin D4 ucuna

B5—LCD ‘nin D5 ucuna

B6—LCD ‘nin D6 ucuna

B7—LCD ‘nin D7 ucuna  BAĞLANIR

 

16f877 lcd uygulaması

16f877 lcd uygulaması

 

 

 

 

 

 

 

 

 

 

 

Pic 16f877 ile Lcd Uygulaması Programı

#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

// Denetleyici konfigürasyon ayarları
#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

byte dizi[6]={0x45,0xC6,0xA3,0xE2,0x56};

//********** ANA PROGRAM FONKSİYONU*******

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

 

Devre Dökümanlarını İndirmek İçin TIKLAYINIZ.

Sosyal Ağlarda Paylaş

{elektrik}

1988 Karabük dogumluyum ilköğretim ve ortaöğretimimi karabükte tamamladım.Ankara Üniversitesi Endüstriyel Otomasyon Mezuniyet=2008, Gazi üniversitesi Elektrik Öğretmenligi Mezuniyet=2012, Katü Elektrik-Elektronik Mühendisligi Devam ediyor. facebooktan takip etmek için; https://www.facebook.com/yasinhocammm

Bir Cevap Yazın

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