سلام من یه مدار تو پروتیوس بستم که برای ساعت از ds1307 استفاده کردم ولی دقیق کار نمیکنه وعقب میکشه مشکل چیه (توی اون کادر مربوط بهds1307که تو پروتیوس نشون میده ثانیه از مثلا 40 میپره به 10 )مشکل کجاست
متشکرم
متشکرم
/*****************************************************
CodeWizardAVR V2.05.3 Standard
Author : Hamid
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
*****************************************************/
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=4
.equ __scl_bit=5
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
// Declare your global variables here
char lcd1[9];
char lcd2[16];
char lcd3[7];
void main(void)
{
unsigned char h,m,s;
unsigned char day,month,year;
unsigned char week;
ACSR=0x80;
i2c_init();
rtc_init(0,0,0);
lcd_init(16);
while (1)
{
rtc_get_time(&h,&m,&s);
rtc_get_date(&week,&day,&month,&year);
sprintf(lcd1,"%u:%u:%u",h,m,s);
sprintf(lcd2,"%u/%u/%u",day,month,year);
sprintf(lcd3,"week:%u",week);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(lcd1);
lcd_gotoxy(10,0);
lcd_puts(lcd3);
lcd_gotoxy(0,1);
lcd_puts(lcd2);
delay_ms(250);
};
}
دیدگاه