CCS C Dosyalarını Kullanarak 24C02 Harici EEPROM Uygulaması

pr_01_37_max

/******************************************************
 PIC16F877 ile CCS C Dosyalarını Kullanarak 24C02 Harici EEPROM Uygulaması
*******************************************************/

#include  // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // Denetleyici konfigürasyon ayarları

#use delay(clock=4000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı belirtiliyor

#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1) // RS232 ayarları belirtiliyor

#use i2c(master,sda=pin_c4,scl=pin_c3,slow=100000) // I2C Fonksiyonu,SDA ve SCL pinleri ve iletişim hızı belirleniyor

#include  // input.c dosyası programa ekleniyor
#include  // 2402.c dosyası programa ekleniyor

byte veri,adres; // byte tipinde değişken tanımlanıyor
char islem; // char tipinde değişken tanımlanıyor

#int_ssp // I2C iletişiminde yazma veya okuma yapıldığında meydana gelen kesme
void I2C_kesmesi()
{
 output_high(pin_C5); // RC5'e bağlı LED yansın
 delay_ms(250); // Gecikme veriliyor
 output_low(pin_C5); // RC5'e bağlı LED sönsün
}

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

void main ()
{
 setup_psp(PSP_DISABLED); // PSP 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ışı

 enable_interrupts(int_ssp); // SSP kesmesine izin ver
 enable_interrupts(GLOBAL); // Tüm izin verilen kesmeler

 printf("\n\r***********************************************************");
 printf("\n\r 24C02C Harici EEPROM Bilgi Okuma Yazma ");
 printf("\n\r***********************************************************");
 printf("\n\r");
 printf("\n\r Bir islem seciniz>");

 while(1)
 {
 do // do-while döngüsü tanımlanıyor
 {
 printf("\n\rOkuma (O) veya Yazma (Y) >"); // RS232 portuna veri gönderiliyor
 islem=getc(); // RS232 portundan gelen veri alınıyor
 islem=toupper(islem); // toupper fonksiyonu tüm karakterleri büyük karaktere çevirir a>A
 putc(islem); // "islem" değişkeni içeriği RS232 portuna gönderiliyor
 } while ( (islem!='O') && (islem!='Y') ); // Girilen karakter "0" veya "Y" dışında ise döngü başına dön

 if (islem=='O') // Eğer okunan karakter "O" ise
 {
 printf("\n\rOkumak istediginiz adresi giriniz> ");
 adres=gethex(); // RS232 portundan gelen veriyi hex formatında al
 printf("\n\rDeger= %X",read_ext_eeprom(adres) );
 }

 if (islem=='Y') // Eğer okunan karakter "Y" ise
 {
 printf("\n\rBilgi yazmak istediginiz adresi giriniz> ");
 adres=gethex(); // RS232 portundan gelen veriyi hex formatında al
 printf("\n\rBilgiyi giriniz> ");
 veri=gethex(); // RS232 portundan gelen veriyi hex formatında al
 write_ext_eeprom(adres,veri); // Harici EEPROM'da belirtilen adrese "veri" değerini yaz
 }
 }
}

CCS C Dosyalarını Kullanarak 24C02 Harici EEPROM Uygulaması

Bu yazı CCS C Örnekleri kategorisine gönderilmiş ve , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.