Orang Sukses itu Orang yang Suka Proses
|

JAM DIGITAL MENGGUNAKAN RTC DS1307 DENGAN CODEVISION AVR

RTC DS1307 berkomunikasi dengan antarmuka I2C (Inter Integrated Circuit). RTC DS1307 memiliki pewaktu dalam variabel detik, menit, jam, hari, tanggal, bulan dan tahun. Selain itu, RTC ini
menyediakan pin battery-backup untuk dihubungkan pada baterai lithium 3V atau catu daya lain sehingga ketika power (catu daya) mati,battery-backup akan mengambil alih dan timer tetap akan berjalan sebagaimana mestinya. Sedangkan kristal yang digunakan menurut datasheet bernilai 32,768 KHz. Untuk mendapatkan datasheet DS1307 silakan download disini.

Dengan menggunakan bantuan pada CodeWizardAVR pada Codevision AVR, yang sudah terdapat library untuk DS1307, maka kita akan dengan mudah dapat mengakses RTC DS1307.

Dan menurut CodeVisionAVR Help, terdapat beberapa instruksi untuk mengakses DS1307:
void rtc_init(unsigned char rs, unsigned char sqwe, unsigned char out)
Instruksi ini untuk inisialisasi DS1307, dimana:
Parameter rs digunakan untuk menghasilkan nilai dari frekuensi gelombang kotak pada pin SQW/OUT DS1307:
Jika rs bernilai:
0 untuk 1 Hz
1 untuk 4096 Hz
2 untuk 8192 Hz
3 untuk 32768 Hz
Jika parameter sqwe bernilai 1 maka output gelombang kotak pada pin SQW/OUT DS1307 akan di enable.
Parameter out merupakan level logika pada pin SQW/OUT saat output gelombang kotak di disable (sqwe=0)

void rtc_get_time(unsigned char *hour, unsigned char *min, unsigned char *sec)
Intruksi ini untuk mendapatkan nilai *hour (jam), *min (menit) dan *sec (detik). Untuk variabel hour, min dan sec dapat kita ganti namanya sesuai keinginan kita tetapi harus bertipe data unsigned char.

void rtc_get_date(unsigned char *date, unsigned char *month, unsigned char *year)
Intruksi ini untuk mendapatkan nilai *date (tanggal), *month (bulan) dan *year  (tahun). Untuk variabel date, month dan year dapat kita ganti namanya sesuai keinginan kita tetapi harus bertipe data unsigned char.

void rtc_set_time(unsigned char hour, unsigned char min, unsigned char sec)
intruksi ini digunakan untuk menset nilai hour (jam), min (menit) dan sec (detik) sesuai keinginan kita.

void rtc_set_date(unsigned char date, unsigned char month, unsigned char year)
intruksi ini digunakan untuk menset nilai date (tanggal), month (bulan) dan year (tahun) sesuai keinginan kita.

Untuk file program dalam bentuk CodeVision AVR dan file simulasi Proteus silakan download link dibawah ini.


Semoga bermanfaat…


0 komentar:

Posting Komentar