«

»

Dec 30

Real Time Clock DS1307 dan PIC 16F877A

PIC 16F877A adalah salah satu seri PIC yang paling populer. Real Time Clock DS1307 bekerja sebagai divais slave pada bus I2C dengan alamat 0x68. Untuk resistor pullup pada jalur SCL dan SDA disarankan sekitar 1.8k – 4.7k.

Pin RC4 dihubungkan dengan pin SDA DS1307, dan pin RC3 dihubungkan dengan pin SCL DS1307.

MikroC for PIC menyediakan sebuah library untuk komunikasi divais secara I2C, yang akan membantu dan memudahkan kita dalam mengembangkan aplikasi I2C.

MikroC membaca alamat tulis dan baca I2C melalui satu bit yang mengikuti alamat 0x68. Alamat tulis, 0x68 diikuti dengan 0, menjadi 0xD0; sementara alamat baca, 0x68 diikuti dengan 1, menjadi 0xD1.

Sebelum menggunakannya, modul I2C harus di-enable dan di-inisialisasi:

I2C1_Init(100000); //DS1307 I2C is running at 100KHz

Berikut adalah sebuah contoh fungsi untuk membaca data dari DS1307:

unsigned short read_ds1307(unsigned short address)
{
  unsigned short temp
  I2C1_Start();
  I2C1_Wr(0xD0);
  I2C1_Wr(address);
  I2C1_Repeated_Start();
  I2C1_Wr(0xD1);
  temp = I2C1_Rd(0);
  I2C1_Stop();
  return(temp);
}

Berikut adalah contoh lain, menulis data ke DS1307:

void write_ds1307(unsigned short address, unsigned short w_data)
{
  I2C1_Start();
  I2C1_Wr(0xD0);
  I2C1_Wr(address);
  I2C1_Wr(w_data);
  I2C1_Stop();
}

Untuk eksperimen dengan mikrokontroler PIC 16F877A kita dapat menggunakan board sistem minimum MikroPIC 16F877A yang dapat diperoleh di NEXT SYSTEM | ITC Kosambi Ruko F2 | Baranang Siang 6-8, Bandung 40112 | (022) 4222062 | email: info@nextsys.web.id | web: edukasi.nextsys.web.id