Fungsi-fungsi ini dimaksudkan untuk kemudahan antarmuka antara program C dan I2C bus DS1307 real time clock (RTC) The prototipe untuk fungsi-fungsi ini ditempatkan di file ds1307.h, yang terletak di .. \ INC subdirektori. File ini harus menjadi # include-ed sebelum menggunakan fungsi.

Fungsi bus yang I2C prototipe secara otomatis # include-ed dengan ds1307.h. Sebelum # include-ing file yang ds1307.h, Anda harus menyatakan yang port dan port mikrokontroler bit yang digunakan untuk komunikasi dengan DS1307 melalui bus I2C.
Contoh:

/ * The I2C bus terhubung ke PORTB * /
/ * Yang SDA sinyal bit 3 * /
/ * The SCL sinyal bit 4 * /
# asm
. equ __i2c_port = 0x18
. equ __sda_bit = 3
. equ __scl_bit = 4
# endasm

/ * Sekarang Anda dapat memasukkan Fungsi DS1307 * /
# include

The DS1307 Fungsi adalah:

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

fungsi ini menginisialisasi yang DS1307 chip.
Sebelum memanggil fungsi ini yang I2C bus harus diinisialisasi dengan memanggil fungsi i2c_init.
Ini adalah fungsi pertama yang harus dipanggil sebelum menggunakan Fungsi DS1307 lain.
Parameter yang rs nilai frekuensi output gelombang persegi pada SQW / OUT pin:

· 0 untuk 1HZ
· 1 untuk 4096Hz
· 2 untuk 8192Hz
· 3 untuk 32768Hz.

Jika sqwe parameter di set ke 1 maka output gelombang persegi pada SQW / OUT pin diaktifkan.
Parameter yang keluar tingkat logika pada SQW / OUT pin ketika output gelombang persegi dinonaktifkan (sqwe = 0).
Mengacu pada lembar data DS1307 untuk informasi lebih lanjut.

void rtc_get_time (unsigned char * jam, unsigned char * min, unsigned char * sec)

fungsi ini mengembalikan waktu saat ini diukur oleh RTC.
The * jam, * min dan * sec pointer harus menunjuk ke variabel-variabel yang harus menerima nilai-nilai jam, menit dan detik.
Contoh:

/ * The I2C bus terhubung ke PORTB * /

/ * Yang SDA sinyal bit 3 * /

/ * The SCL sinyal bit 4 * /

# asm

. equ __i2c_port = 0x18

. equ __sda_bit = 3

. equ __scl_bit = 4

# endasm

# include

void main (void) (
unsigned char h, m, s;

/ * Inisialisasi bus I2C * /
i2c_init ();

/ * Inisialisasi RTC DS1307 * /
rtc_init (0,0,0);

/ * Membaca waktu dari RTC DS1307 * /
rtc_get_time (& h, & m, & s);

/ * …….. * /
)

void rtc_set_time (unsigned char jam, menit unsigned char, unsigned char detik)

fungsi ini menetapkan waktu saat ini dari RTC.
Jam, menit dan detik parameter mewakili nilai-nilai jam, menit dan detik.

void rtc_get_date (unsigned char * tanggal, unsigned char * bulan, unsigned char * tahun)

fungsi ini mengembalikan tanggal saat ini diukur oleh RTC.
The * tanggal, bulan dan * * tahun pointer harus menunjuk ke variabel-variabel yang harus menerima nilai-nilai tanggal, bulan dan tahun.

void rtc_set_date (unsigned char tanggal, bulan unsigned char, unsigned char tahun)
fungsi ini menetapkan tanggal saat ini RTC.

 

4 thoughts on “Tutorial RTC DS1307”

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.