pic programlama dersleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
PIC PROGRAMLAMA 15--- EPROMLAR
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);
}
}
}
PİC PROGRAMLAMA-12
Merhaba arkadaşlar.Bugün aşşa yukarı her kavşakta trafik ışıgı görüyoruz.Bunun yazılım kısmını anlatacagım bugün.Şekilde görüldügü gibi devremizi olusturuyoruz.
Gelelim kod kısmına;
void main()
{
while(TRUE)
{delay_ms(100);//0,1 sn bekletmemin sebebi ilk başlattıgımız anda ilk satırı atlıyor
//bu atlamayı engellemek için bu komutu kullandım
output_high(pin_b6);//b6 pini aktif
output_high(pin_b0);//b0 pini aktif
delay_ms(2000);//2 sn bekle.Bu saniye kısmını kendınız ayarlayabılırsınız
output_low(pin_b0);//b0 pini pasif
output_low(pin_b6);//b6 pini pasif
delay_ms(1000);//1 sn bekle
output_high(pin_b1);//b1 pini aktif
output_high(pin_b5);//b5 pini aktif
delay_ms(2000);//2 sn bekle.
output_low(pin_b1);//b1 pini pasif
output_low(pin_b5);//b5 pini pasif
delay_ms(1000);//1 sn bekle
output_high(pin_b2);//b2 pini aktif
output_high(pin_b4);//b4 pini aktif
delay_ms(2000);//2 sn bekle.
output_low(pin_b2);//b2 pini pasif
output_low(pin_b4);//b4 pini pasif
delay_ms(1000);//1 sn bekle
}
}
PİC PROGRAMLAMA-9
Merhaba arkadaşlar.Bugünkü dersimizde lcd ile kayan yazı yazmayı ögrenecegiz.Şekilde görüldügü gibi devremizi oluşturalım.
Ve kod kısmına geçelim :
Merhaba arkadaşlar.Bugünkü dersimizde lcd ile kayan yazı yazmayı ögrenecegiz.Şekilde görüldügü gibi devremizi oluşturalım.
#include <main.h>
#define use_portb_lcd true
#include<lcd.c>
int sayi,i;
void main()
{
while(TRUE)
{
for(i=0;i<40;i++)//40 karekterlik döngü
{
lcd_gotoxy(1,1);//imlece 1.satır 1. stüna getirir
lcd_send_byte(0,0x1c);//karekteri sola kaydırır
printf(lcd_putc,"http://elektro-blogger.blogspot.com.tr/");//ekrana yazırılacak yazı
delay_ms(250);
}
}
}
Not:lcd_send_byte(0,0x18) komutu ise lcd ekranında yazımızı saga kaydırmanıza yarar