Posted by : Unknown 27 Temmuz 2015 Pazartesi

PIC PROGRAMLAMA 15--- EPROMLAR


Epromalar bir hafıza elemanıdır.16f877 denetleyicisi içersinde 2 adet eprom hafıza alanı bulunmaktadır.Bunlar;Dahili data eeprom ve Flash program eeprom hafıza alanıdır.Epromlar elektrik kesildiginde hafızasındaki beriyi kaybetmezler.Ancak bu veri programla okunur,yazılır veya silinebilir.Dahili epromlara 8 bit veri yazılır ve okunur.16f877 denetleyicisine 256byte hafızaya sahiptir.Yani 256 tane 8 bit veri saklanabilir.


1)#int_eeprom


Epromlarda yazma işlemi bitince istenirse kesmeye gidilebilir.

2)read_eeprom()


Bu fonksiyon ile eprom adresindeki veriyi okuruz.
Degişken ismi=read_eeprom(adres) şeklindedir.Adres kısmı eeprom hafıza kapasitesine göre 8 bit veya 16 bit olarak degişir.

veri=read_eeprom(42)//42 nolu adres okunur ve veri degişkenine atılır

3)write_eeprom()

Bu fonksiyon ile eprom adresine yazı yazarız.
Degişken ismi=write_eeprom(adres,bilgi) şeklindedir.Adres kısmı 8 yada 16 bit olabilir.Bilgi kısmı 8 bitlik bir tamsayıdır.

write_eeprom(42,veri)//veri degerini 42. adrese yaz

#FUSE CPD=data eeprom korumasını aktif yapar
#FUSE NOCPD=data eeprom korumasını kapatır
#FUSE NOPROTECT=kod hafıza korumasını pasif yapar
#FUSE PROTECT=kod hafıza korumasını aktif yapar
#FUSE WRT=hafıza yazmaya karşı korumalı
#FUSE NOWRT=hafıza yazmaya karşı korumasız



Gelelim uygulamamıza :




#use delay(clock=4000000)
#define use_portd_lcd true
#include <lcd.c>
long int oku,tl5,tl10,tl15,tl20,tl25,toplam;
void main()
{
set_tris_a(0xff);//a portu tamamen giriş
set_tris_d(0*00);//d portu tamamen çıkış
lcd_init();//lcd hazırlanıyor
while(true)
{
oku=read_eeprom(5);//5 nolu adresten veri okunuyor
if(oku==255)//epromlar üzerinde oynama yapılmadıgından dolayı en fazla 255 kadar saymaktadır
{
write_eeprom(0,0);//0 adresi degeri 0 yapılır
write_eeprom(1,0);//1 adres degeri 0 yapılır
write_eeprom(2,0);
write_eeprom(3,0);
write_eeprom(4,0);
write_eeprom(5,0);
}
lcd_gotoxy(2,1);//lcd imleci 2.sütün 1.satıra gider
printf(lcd_putc,"TOPLAM MIKTAR");//toplam tutar ekrana yazdırılıyor
tl5=read_eeprom(0);//tl5 degişkenine eprom 0 adresindeki veri aktarılır
tl10=read_eeprom(1);//tl10 degişkenine eprom 1 adresindeki veri aktarılır
tl15=read_eeprom(2);
tl20=read_eeprom(3);
tl25=read_eeprom(4);
toplam=tl5*5+tl10*10+tl15*15+tl20*20+tl25*25;//toplam degişkenine para tutarları aktarılıyor
lcd_gotoxy(6,2);//imleç 6.sütün 2. satıra gider
printf(lcd_putc,"%ld TL",toplam);//toplam degeri ekrana yazdırılır
if(input(pin_a0)==1)//pin_a1 aktif mi ?
{
while(input(pin_a0));//butondan el çekinceye kadar bekle
lcd_init();//lcd hazıla 
tl5++;//tl5 degerini arttır
write_eeprom(0,tl5);//0. adresi tl5 degerini ata
}
else if(input(pin_a0)==1)
{
while(input(pin_a0));
lcd_init();
tl5++;
write_eeprom(0,tl5);
else if(input(pin_a1)==1)
{
while(input(pin_a1));
lcd_init();
tl10++;
write_eeprom(1,tl10);
}
else if(input(pin_a2)==1)
{
while(input(pin_a2));
lcd_init();
tl15++;
write_eeprom(2,tl15);
}
else if(input(pin_a3)==1)
{
while(input(pin_a3));
lcd_init();
tl20++;
write_eeprom(3,tl20);
}
else if(input(pin_a4)==1)
{
while(input(pin_a4));
lcd_init();
tl25++;
write_eeprom(4,tl25);
}
}
}


yorumlarınız bizim için önemli

Bültene abone ol | Yorumlara abone ol

ELEKTRO BLOGGER A HOŞGELDINIZ

ARAMA YAP

EN COK OKUNANLAR

- Copyright © ELEKTRO-BLOGGER Blogger