Lompat ke konten Lompat ke sidebar Lompat ke footer

real time clock (RTC) program C dan I2C bus DS1307


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 = 0×18
. 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 = 0×18
. 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.

1 komentar untuk "real time clock (RTC) program C dan I2C bus DS1307"

  1. Untuk source code jika pakai bahasa assembly bagaimana ya mas...?
    Besar harapan saya bisa mendapat bimbingan dari mas..
    Terimakasih atas bantuannya

    BalasHapus
Profit Blogger
INCOME BLOGGER