Just another WordPress.com site

Posts tagged ‘ds1307’

Menggunakan RTC DS1307 di Codevision AVR

DS1307 adalah sebuah IC(Integrated Circuit) jenis RTC(Real Time Clock) yang biasa digunakan untuk aplikasi timer pada peralatan-peralatan elektronik, khususnya mikrokontroller/ mikroprosesor.

DS1307 membutuhkan sebuah kristal 32768Hz untuk clock, vcc : 5V, vbat : 3 volt, dan dua buah resistor pull-up pada output sda & scl yang terhubung dengan mikrokontroller. vbat digunakan untuk mensuplay tegangan pada saat tegangan dari vcc tidak ada, sehingga ic ini masih dapat bekerja pada saat tidak ada tegangan dari vcc karena vbat menggunakan tegangan dari baterai jam/cmos 3 volt.

 

 

Komunikasi data pada IC DS1307 adalah I2C( Inter Integrated Circuit) yang membutuhkan kaki sda & scl untuk proses transfer data. Sebagai contoh, kita menggunakan Mikrokontroller AT-Mega 16 yang akan mengolah data dari DS1307, kaki PORT dari AT Mega 16 yang kita gunakan adalah PORTC.0 sebagai scl(serial clock) dan PORTC.1 sebagai sda(serial data) seperti gambar di bawah ini :

Untuk pengaturan pada codevision AVR, kita masuk ke codewizard, kemudian kita pilih jenis chip, lalu kita klik I2C, kita pilih PORT yang akan kita gunakan, misal PORTC.  selanjutnya kita pilih DS1307, kita klik enabled.

Maka akan didapat sebuah kode pada codevision berupa fungsi I2C dan juga masukan library ds1307

Di dalam library ds1307 ini terdapat beberapa fungsi antara lain :

void rtc_init(unsigned char rs, unsigned char sqwe, unsigned char out)

fungsi ini digunakan untuk menginisialisasi RTC / koneksi mikro dengan RTC

void rtc_get_time(unsigned char *hour, unsigned char *min, unsigned char *sec)              
fungsi ini digunakan untuk membaca data jam, menit, dan detik dari RTC
void rtc_get_date(unsigned char *date,unsigned char *month,unsigned char *year);
  fungsi ini digunakan untuk membaca data tanggal, bulan, dan tahun dari RTC
void rtc_set_time(unsigned char hour, unsigned char min, unsigned char sec)
 fungsi ini digunakan untuk mengatur jam, menit, dan detik pada RTC    
void rtc_set_date(unsigned char date, unsigned char month, unsigned char year)
fungsi ini digunakan untuk mengatur tanggal, bulan, dan tahun pada RTC
Ikuti

Get every new post delivered to your Inbox.