۱۶-بهمن-۱۳۹۱, ۱۲:۵۱:۵۹
کتابخانه ی مربوط به آی سی ds1307
برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<ds1307.h>
کد:
void rtc_init(unsigned char rs, unsigned char sqwe, unsigned char out)
قبل از استفاده از این تابع ارتباط I2C را با دستور i2c_init بررسی کنید
rs فرکانس خروجی از پایه ی SQW/OUT را مشخص می کند
0 برای 1Hz
1 برای 4096Hz
2 برای 8192Hz
3 برای 32768Hz
پارامتر sqwe وضعیت پایه ی SQW/OUT را مشخص می کند در صورت یک بودن پایه فعال می شود و در صورت صفر بودن پایه غیرفعال می شود
پارامتر out وضعیت منطقی پایه ی SQW/OUT را زمانی که فرکانس تولید نمی کند مشخص می کند در صورتی که یک باشد پایه یک می شود و در صورتی که صفر باشد پایه صفر می شود
کد:
void rtc_get_time(unsigned char *hour, unsigned char *min, unsigned char *sec)
کد:
void rtc_set_time(unsigned char hour, unsigned char min, unsigned char sec)
کد:
void rtc_get_date(unsigned char *date, unsigned char *month, unsigned char *year)
کد:
void rtc_set_date(unsigned char date, unsigned char month, unsigned char year)
برنامه ی نمونه
کد:
#include <mega8.h>
#asm
.equ __i2c_port=0x18 ;PORTB
.equ __sda_bit=0
.equ __scl_bit=1
#endasm
#include <i2c.h>
#include <ds1307.h>
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
#include <stdio.h>
void main(void)
{
unsigned char h,m,s;
char nama[20];
i2c_init();
rtc_init(0,0,0);
lcd_init(16);
while (1)
{
rtc_get_time(&h,&m,&s);
sprintf(nama,"%u:%u:%u ",h,m,s);
lcd_gotoxy(0,0);
lcd_puts(nama);
};
}