با سلام خدمت دوستان
برای پروژه ای میخوام آی سی ساعت DS1307 را با زبان C راه اندازی کنم که به این منظور از HELP خود کدویژن استفاده کردم، که کدهای زیر به دست اومد.
این کد کار میکنه ولی بعد از مدتی فقط ثانیه اون به هم میریزه و به جای اینکه دو رقمی باشه 3 و 4 رقمی نشون میده
oo:
مشکل دیگه ام اینه که من میخوام از این آی سی یا 24C512 استفاده کنم، آدرس باس آی سی ساعت 0xD0 است ولی نمیدونم باید با چه دستوری این آدرس رو برای آی سی بفرستم، HELP کدویژن هم در این مورد چیزی نگفته :sad:
ممنون میشم دوستان در رابطه با این دو مشکل من رو راهنمایی کنن :smile:
برای پروژه ای میخوام آی سی ساعت DS1307 را با زبان C راه اندازی کنم که به این منظور از HELP خود کدویژن استفاده کردم، که کدهای زیر به دست اومد.
این کد کار میکنه ولی بعد از مدتی فقط ثانیه اون به هم میریزه و به جای اینکه دو رقمی باشه 3 و 4 رقمی نشون میده

مشکل دیگه ام اینه که من میخوام از این آی سی یا 24C512 استفاده کنم، آدرس باس آی سی ساعت 0xD0 است ولی نمیدونم باید با چه دستوری این آدرس رو برای آی سی بفرستم، HELP کدویژن هم در این مورد چیزی نگفته :sad:
ممنون میشم دوستان در رابطه با این دو مشکل من رو راهنمایی کنن :smile:
کد:
#include <mega32.h> #include <i2c.h> #include <ds1307.h> #include <lcd.h> #include <stdio.h> // I2C Bus functions #asm .equ __i2c_port=0x12 ;PORTD .equ __sda_bit=2 .equ __scl_bit=3 #endasm #asm .equ __lcd_port=0x18 ;PORTB #endasm void main(void) { unsigned char d[40],h,m,s; // I2C Bus initialization i2c_init(); // DS1307 Real Time Clock initialization // Square wave output on pin SQW/OUT: Off // SQW/OUT pin state: 0 rtc_init(0,0,0); rtc_set_time(0,0,0); rtc_set_date(0,0,0); lcd_init(20); while (1) { rtc_get_time(&h,&m,&s); lcd_gotoxy(0,0); sprintf(d,"%02d:%02d:%02d",h,m,s); lcd_puts(d); } }
دیدگاه