برای مشاهده روند ساخت پروژه ها و محصولات به کانال تلگرام ما بپیوندید           
  خانه محصولات دانلود پروژه ها بحث و گفتگو وبلاگ آموزشها و مقالات تماس با ما  

  فروم khazama.com --> الکترونیک دیجیتال --> دی اس ۱۳۰۷

  سه‌شنبه 28 اسفند 86 , 6:27 PM


کاربر
NAYEBI
تعداد پستها : 20
دی اس ۱۳۰۷

سلام
ایا کسی با ای سی ds1307 کار کرده و اتصال اون به (avr (basic ؟اگه ميشه يه برنامه همراه با سخت افزار 
ممنون 

  چهارشنبه 29 اسفند 86 , 7:52 AM


مدیر سایت
behzad
تعداد پستها : 905
درود .
چون I2C هست ميتونيد راحت اين كد رو تبديل به بسكام كنيد . سخت افزارش هم چیزی نداره و من همونی که توی کاتالوگش هست رو بستم و راحت کار میکرد .
سورس سی :

/*
  CodeVisionAVR C Compiler
(C) 1998-2005 Pavel Haiduc, HP InfoTech S.R.L.

Dallas Semiconductors DS1307 I2C Bus Real Time Clock functions
*/

#include <i2c.h>
#include <bcd.h>

unsigned char rtc_read(unsigned char address)
{
unsigned char data;
i2c_start();
i2c_write(0xd0);
i2c_write(address);
i2c_start();
i2c_write(0xd1);
data=i2c_read(0);
i2c_stop();
return data;
}

void rtc_write(unsigned char address,unsigned char data)
{
i2c_start();
i2c_write(0xd0);
i2c_write(address);
i2c_write(data);
i2c_stop();
}

void rtc_init(unsigned char rs,unsigned char sqwe,unsigned char out)
{
rs&=3;
if (sqwe) rs|=0x10;
if (out) rs|=0x80;
i2c_start();
i2c_write(0xd0);
i2c_write(7);
i2c_write(rs);
i2c_stop();
}

void rtc_get_time(unsigned char *hour,unsigned char *min,unsigned char *sec)
{
i2c_start();
i2c_write(0xd0);
i2c_write(0);
i2c_start();
i2c_write(0xd1);
*sec=bcd2bin(i2c_read(1));
*min=bcd2bin(i2c_read(1));
*hour=bcd2bin(i2c_read(0));
i2c_stop();
}

void rtc_set_time(unsigned char hour,unsigned char min,unsigned char sec)
{
i2c_start();
i2c_write(0xd0);
i2c_write(0);
i2c_write(bin2bcd(sec));
i2c_write(bin2bcd(min));
i2c_write(bin2bcd(hour));
i2c_stop();
}

void rtc_get_date(unsigned char *date,unsigned char *month,unsigned char *year)
{
i2c_start();
i2c_write(0xd0);
i2c_write(4);
i2c_start();
i2c_write(0xd1);
*date=bcd2bin(i2c_read(1));
*month=bcd2bin(i2c_read(1));
*year=bcd2bin(i2c_read(0));
i2c_stop();
}

void rtc_set_date(unsigned char date,unsigned char month,unsigned char year)
{
i2c_start();
i2c_write(0xd0);
i2c_write(4);
i2c_write(bin2bcd(date));
i2c_write(bin2bcd(month));
i2c_write(bin2bcd(year));
i2c_stop();
}

_______________________________________________________________________
پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من


  چهارشنبه 29 اسفند 86 , 10:40 PM


کاربر
NAYEBI
تعداد پستها : 20

ممنون
من تا این لحظه این قطعه رو تهیه نکردم و باهاش كار نكردم   
 اما قبلش اطاعات جامعتری میخام
شنیدم دارای باطری backup با عمر بالاست و تاريخ وساعت و ميسازه (و ميلاديه) .
ايا ميشه شمسي كرد خروجيش را ؟يا بايد ساخت؟
 ايا ميشه تحت كنترل قرار بدي اونو؟
اگر شما باهاش كار كرديد اياراحته كار باهاش؟ راضي بوديد از دقتش ؟يا قطعه ديگري رو پيشنهاد ميديد؟


  پنج‌شنبه 1 فروردين 87 , 5:59 PM


مدیر سایت
behzad
تعداد پستها : 905
آره کار باهاش سادس
خودش که باطری نداره! فقط یک مقاومت داره توش که باطری رو شارژ میکنه
میلادیه تاریخش دقتش هم عالیه در واقع مثل ساعت دیجیتال دیگه یک کریستال ۳۲ کیلوهرتزی داره
باید توی نرم افزار میکرو برنامه ای بنویسید که میلادی رو به شمسی تبدیل کنه(توی اینترنت هم هست بگردید)

_______________________________________________________________________
پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من


  صفحه : [1]    
 
 


Designer And Programmer : Behzad khazama
Coded With ASP.NET
تمامي حقوق مادي و معنوي مطالب متعلق به اين سايت ميباشد .
هر گونه استفاده از مطالب اين سايت تنها با ذکر منبع بلامانع ميباشد
.
www.khazama.com
Tel : 051-44641597 - 09363677001 - 09155714862
Support SMS Center: 09363677100