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

Profit Blogger
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);

INCOME BLOGGER
/ * …….. * /
)

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