CCSC ile 16f877 eprom okuma yazma

Başlatan cemalk, 13 Kasım 2024, 19:18:08

cemalk

Sayın üyeler, bu konularda çok yeniyim ve amatörüm. Sizden ricam 16f877 de  eprom okumak ve yazmak isterim. bu konuda destek rica ediyorum. En iyi dileklerimle...

kudretuzuner

#1
merhaba,
ChatGPT şöyle bir kod yazdı. Ne kadar çalışır bilemiyorum.
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)  // 20 MHz kristal kullanıyorsanız ayarlayın

void eeprom_yaz(unsigned int8 adres, unsigned int8 veri) {
    write_eeprom(adres, veri);
}

unsigned int8 eeprom_oku(unsigned int8 adres) {
    return read_eeprom(adres);
}

void main() {
    unsigned int8 adres = 0x00; // EEPROM başlangıç adresi
    unsigned int8 veri = 0x55;  // Yazılacak veri (örnek olarak 0x55)

    eeprom_yaz(adres, veri);  // EEPROM'a veri yaz

    // EEPROM'dan veriyi oku ve kontrol et
    if(eeprom_oku(adres) == veri) {
        output_high(PIN_B0);  // Veriyi doğru okuduysa B0 pinini HIGH yap
    } else {
        output_low(PIN_B0);  // Hatalı okuma varsa B0 pinini LOW yap
    }

    while(TRUE);
}
------------------------------------------
okuma için de aşağıdaki kodu yazdı

#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)  // 20 MHz kristal kullanıyorsanız ayarlayın

void eeprom_yaz(unsigned int8 adres, unsigned int8 veri) {
    write_eeprom(adres, veri);
}

unsigned int8 eeprom_oku(unsigned int8 adres) {
    return read_eeprom(adres);
}

void main() {
    unsigned int8 adres = 0x00; // EEPROM başlangıç adresi
    unsigned int8 veri = 0x55;  // Yazılacak veri (örnek olarak 0x55)

    eeprom_yaz(adres, veri);  // EEPROM'a veri yaz

    // EEPROM'dan veriyi oku ve kontrol et
    if(eeprom_oku(adres) == veri) {
        output_high(PIN_B0);  // Veriyi doğru okuduysa B0 pinini HIGH yap
    } else {
        output_low(PIN_B0);  // Hatalı okuma varsa B0 pinini LOW yap
    }

    while(TRUE);
}

Açıklamalar:

eeprom_yaz Fonksiyonu: Belirli bir EEPROM adresine veri yazar.
eeprom_oku Fonksiyonu: Belirli bir EEPROM adresinden veri okur.


main Fonksiyonu: Veriyi EEPROM'a yazar, ardından doğru yazıldığını kontrol eder. Eğer veri doğru yazılmış ve okunmuşsa, PIN_B0 pinini yüksek yaparak bu durumu gösterir.


Bu örnek kod, 16F877'de EEPROM yazma ve okuma işlemlerini gerçekleştirir. Kullandığınız kristal frekansına göre #use delay(clock=20000000) satırını güncellemeyi unutmayın.






Şunu dedin:

CCS 16F877  eprom okuma kodu yaz

ChatGPT;

PIC16F877 mikrodenetleyicisi için CCS C derleyicisi kullanarak EEPROM'dan okuma işlemi gerçekleştiren bir örnek kod aşağıdaki gibidir:


#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)  // 20 MHz kristal kullanıyorsanız ayarlayın

unsigned int8 eeprom_oku(unsigned int8 adres) {
    return read_eeprom(adres);
}

void main() {
    unsigned int8 adres = 0x00;  // Okunacak EEPROM adresi
    unsigned int8 okunan_veri;

    okunan_veri = eeprom_oku(adres);  // EEPROM'dan veriyi oku

    // Okunan veriye göre bir işlem yapabilirsiniz, örneğin PIN_B0'ı duruma göre kontrol edin
    if(okunan_veri == 0x55) {  // Örnek olarak 0x55 değeri ile karşılaştırma
        output_high(PIN_B0);    // Doğru veri okunursa B0 pinini HIGH yap
    } else {
        output_low(PIN_B0);    // Yanlış veri okunursa B0 pinini LOW yap
    }

    while(TRUE);  // Programın sürekli çalışmasını sağla
}
-------------------------

PIC16F877 mikrodenetleyicisi için CCS C derleyicisi kullanarak EEPROM'dan okuma işlemi gerçekleştiren bir örnek kod aşağıdaki gibidir:

#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)  // 20 MHz kristal kullanıyorsanız ayarlayın

unsigned int8 eeprom_oku(unsigned int8 adres) {
    return read_eeprom(adres);
}

void main() {
    unsigned int8 adres = 0x00;  // Okunacak EEPROM adresi
    unsigned int8 okunan_veri;

    okunan_veri = eeprom_oku(adres);  // EEPROM'dan veriyi oku

    // Okunan veriye göre bir işlem yapabilirsiniz, örneğin PIN_B0'ı duruma göre kontrol edin
    if(okunan_veri == 0x55) {  // Örnek olarak 0x55 değeri ile karşılaştırma
        output_high(PIN_B0);    // Doğru veri okunursa B0 pinini HIGH yap
    } else {
        output_low(PIN_B0);    // Yanlış veri okunursa B0 pinini LOW yap
    }

    while(TRUE);  // Programın sürekli çalışmasını sağla
}


Açıklamalar:

eeprom_oku Fonksiyonu: EEPROM'un belirli bir adresinden veri okur ve değeri geri döndürür.

main Fonksiyonu: EEPROM'dan veriyi okur ve belirli bir değere göre (örneğin, 0x55) karşılaştırma yapar. Eğer okunan veri doğruysa PIN_B0 pinini HIGH yapar, aksi takdirde LOW yapar.

Kristal frekansınıza göre #use delay(clock=20000000) satırını güncellemeyi unutmayın. Bu örnekte, adres ve karşılaştırma değerlerini ihtiyacınıza göre değiştirebilirsiniz.
Amatör

sifirzero

sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir