External eeprom 2402 PIC16F84A

Başlatan Göktuğ, 29 Eylül 2006, 11:17:21

Göktuğ

#include <16F84A.h>

#FUSES NOWDT                 	//No Watch Dog Timer
#FUSES
#use delay(clock=4000000)
#define EEPROM_SDA   PIN_B6
#define EEPROM_SCL   PIN_B7



#include <2402.C>
#int_EEPROM


int x,y=0;


EEPROM_isr() {

}



void main() {

//   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   init_ext_eeprom();
   enable_interrupts(INT_EEPROM);
   enable_interrupts(GLOBAL);


while (1)
   {

      output_a(0);
    delay_ms(500);
     
      output_a(7);
    delay_ms(500);
  

// eeprom kısmı  
      x=15;
      WRITE_EXT_EEPROM(1,x);
      delay_ms(500);
      y=READ_EXT_EEPROM(1);
      output_a(y);
      delay_ms(500);
    
    
   }



}


Ustteki kodda eeprom kısmını cıkarttıgımda proteusta a portuna 0 ve 7 degerlerini yazdırarak led yakıyorum.
Daha sonra eeprom kısmını ekledigimde ledler 7 degerinde kilitleniyor.

picde external eeprom nasıl kullanılır?
http://www.hemenpaylas.com/download/1707054/eeprom.rar.html

Tesekkurler.

ibrsel

Proteusta harici eeprom kullandığında saçmalayabiliyor..Bende simulasyonda bazı hatalar ile karşılaştım,ama devreyi kurup çalıştırdığımda herşey normaldi..Bence devreni board üzerine kurup bir dene..

Göktuğ

Benzer bir cevabı arkadasımda deneme yapıp soyledi. normal boardda calıstıgını....
Tesekkurler.

respected

#include <16F84.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)

#define EEPROM_SDA  PIN_B7
#define EEPROM_SCL  PIN_B6
#include <2402.c>

 char x;
void main() {


x=0;



  init_ext_eeprom();

  while(1){

 WRITE_EXT_EEPROM(2,1);
  delay_ms(10);
  x=READ_EXT_EEPROM(2);
  output_a(x);

     }

}


Program RA0 ucuna 1 değerini gönderir. led bağlanırsa yandığı görülür.
2402.c dosyası içerisinde sda, scl tanımlamaları yapılmalıdır. Ayrıca sda ve scl uçlarına 4.7 kohm luk pull-up dirençleri bağlanmalıdır.