PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : پروژه



saeedbdn3000
14-12-2011, 00:37
سلام
من یه برنامه میخوام
در اصل اینو میخوام :پروژه اتصالeeprom به میکرو با واس با واسط I2c
با کد ویژن و پروتیوس 1 برنامه میخواستم
خودم هر چی مینویسم اشتباه در میاد
ممنون میشم 1 برنامه بهم بدید
مرسی و منتظرم---آخه 5 شنبه ارایه دارم:(

sadmonew
14-12-2011, 12:17
با سلام
دوست عزیز همونطور که خودتون هم میدونید انجمن برای طرح سوالات و پاسخ به مشکلات هستش.
شما میتونید برنامه ای که خودتون نوشتید رو اینجا بذارید تا اساتید و دوستان و حتی خود بنده بیایم و مشکلتون رو حل کنیم.
با تشکر:hi:

morteza_rk
14-12-2011, 12:57
سلام

حق با جناب sadmonew هست. ضمن اینکه اگه خوب توی سایت جستجو کنید می بینید که راجع به این مطلب قبلا بحث شده. خودم شخصا یه پست مفصل راجع بهش دادم و طرز کار Eepromها و I2C رو توضیح دادم.

M.ABDOLLAHI
14-12-2011, 16:55
بیا این دو تا تابع برای خواندن و نوشتن روی به عنوان مثال at24c32
اینها را بذار اول برنامه:

#define write_address_bus 160
#define read_address_bus 161

void write_eeprom(unsigned char data,unsigned int address);
unsigned char read_eeprom(unsigned int address);
اینها خود محتوا تابعها:

void write_eeprom (unsigned char data,unsigned int address )
{
i2c_start();
i2c_write(write_address_bus);
i2c_write((address & 0xff00)>>8); //high byte address
i2c_write((address & 0x00ff)); //low byte address
i2c_write(data);
i2c_stop();
delay_ms(30);
}
//--------------------------
unsigned char read_eeprom (unsigned int address )
{
unsigned char data_read;
i2c_start();
i2c_write(write_address_bus);
i2c_write((address & 0xff00)>>8); //high byte address
i2c_write((address & 0x00ff)); //low byte address
i2c_start();
i2c_write(read_address_bus);
data_read=i2c_read(0);
i2c_stop();
return data_read;
}