//AÇIKLAMA
//Bu uygulamada sayfa yazma işlemi yapılmıştır. for döngüsü ile 0'dan başlayıp
//127'ye kadar olan sayılar EEPROM'a gönderilmiştir. Bu sayılar EEPROM'un 0x0000-0x007F
//adreslerine yazılmıştır. Bu adres aralığı 1 sayfaya tekabül eder.
//Burada verinin yazılacağı adres bilgisi 0x0000'dan başlayarak artırılmamış sadece
//başlangıç değeri olarak 0x0000 adresi belirtilmiştir. EEPROM'a arka arkaya 8 bitlik
//her veri gönderildiğinde EEPROM adresi kendi artırmıştır. Bu şekilde EEPROM'a tek
//seferde 128 bayt veri yazılabilir. Bu durum EEPROM'un özelliğidir.
#define WRITE 0x02
#define READ 0x03
#define WREN 0x06
#include<SPI.h>
unsigned int veri;
int i;
void setup()
{
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV4);
DDRD = 0b11111111;
}
void loop()
{
//yazma işlemini etkinleştirme
digitalWrite(SS, LOW);
SPI.transfer(WREN);
delay(5);
digitalWrite(SS, HIGH);
delay(5);
//veri yazma
digitalWrite(SS, LOW);
SPI.transfer(WRITE); //yazma komutu gönderildi
delay(5);
SPI.transfer16(0x0000); //yazma için sayfa başlangıç adresi gönderildi
delay(5);
for (i = 0; i < 128; i++)
{
SPI.transfer(i); //1 bayt veri gönderildi
delay(5);
}
digitalWrite(SS, HIGH);
delay(5);
//okuma işlemi
digitalWrite(SS, LOW);
SPI.transfer(READ); //okuma komutu gönderildi
delay(5);
SPI.transfer16(0x0000); //okuma için sayfa başlangıç adresi gönderildi
delay(5);
for (i = 0; i < 128; i++)
{
veri = SPI.transfer(0); //veri okunarak veri değişkenine atandı
PORTD = veri;
delay(500);
}
digitalWrite(SS, HIGH);
delay(5);
}
4 Eylül 2026 Cuma
Eylül 04, 2026
Admin
No comments
Program Kodları
Devre Şeması
Kaydol:
Kayıt Yorumları (Atom)
0 comments:
Yorum Gönder