سلام
برنامه ای که شما استفاده کردید تاریخ شمسیش مشکل داره ، این همون برنامه ای هست که تو اینترنت ریخته اما تاریخش مشکل داره یعنی توی تبدیل تاریخ مشکل داره
برای روز هفته هم که توی زیربرنامه read_date_time داره خودش از روی ds1307 میخوه و میریزه توی weekday اما باید هر سری که تاریخ ds1307 را ست می کنی ، روز هفته را هم برای ds1307 ارسال کنی که این کد این کار را انجام نمیده ، زیربرنامه setdate را اینجوری تغییر بده :
کد:
Setdate:
_year = M_year - 2000
M_day = Makebcd(m_day) : M_month = Makebcd(m_month) : _year = Makebcd(_year)
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 3 ' starting address in 1307
I2cwbyte weekday
I2cwbyte M_day ' Send Data to SECONDS
I2cwbyte M_month ' MINUTES
I2cwbyte _year ' Hours
I2cstop
Return
ولی باید هر دفعه که تاریخ ds1307 را تغییر میدی ، متغیر weekday هم مقدار دهی کنی.
برای اینکه تاریخ 1391/1/1 را به شکل 1391/01/01 نشون بدی هم باید از تابع format استفاده کنی ، موقع نمایش متغیر روی ال سی دی (مثلا روز یا ساعت یا ..) ، اول متغیر مثلا سال را به string تبدیل کن با دستور str بعد از format استفاده کن :
کد:
dim s as string * 4
s=str(_day)
lcd format(s,"00")
من بسکام الان دم دست ندارم شاید یکسری دستورات رو پس و پیش نوشته باشم