:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
|
|
نشاط [ مشتاق الله ]
قوة السمعة:0
|
|
15-11-2015, 10:27 AM
المشاركة 1
|
|
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
للاخوة احب اعرض عليكم برنامج للكتابه في / و القراءة من شريحة ذاكرة EEPROM بالمواصفات التالية : AT24C512 سعتها الخزينية 64KB - و تتعامل ببروتوكول I2C
8PIN - WRITE PROTECT - HARDWARE ADDRESSABLE .
COMPILER: MIKRO C AVR
PROCESSOR: ATMEGA32
FREQ: INTERNAL 4 MHz
ان شاء الله البرنامج يقرأ بيانات من مصفوفة ثم يخزنها في الذاكرة
ثم يقرأها من الذاكرة و يعرضها على شاشة .
البرنامج تدريب للتعامل مع I2C بالاضافة انه يقدر يتعامل مع اكثر من ذاكرة على نفس ال مسار I2C BUS .
كود:
#include"data.h"
char val1,val2 , disp[4];
void main() {
LCD_INIT();
TWI_INIT(100000) ;
LCD_CMD(_LCD_CURSOR_OFF);
// ADDRESS OF FIRST IC [1,0,1,0,0,A1,A0,R/w] = 1010000R/w = 0xA1 or 0xA0
twi_start(); //*********** WRITING TO MEMORY IC2 ADDRESS= 0xA2 for writing and 0xA3 for reading .
twi_write(0xA2); // IC1 ADDRESS= 0xA0 for writing and 0xA1 for reading
twi_write(0x00); twi_write(0x00);
twi_write(okay[0]);
twi_write(okay[1]);
twi_write(okay[2]);
twi_write(okay[3]);
twi_stop();
delay_ms(10); //THIS IS VERY NECESSRY AFTER EVERY WRITING from data sheet of memory ic .
twi_start(); //*********** READING FROM MEMORY IC2
twi_write(0xA2);
twi_write(0x00); twi_write(0x00);
twi_start();
twi_write(0xA3);
val2=twi_read(1); inttostr(val2,disp); lcd_out(1,1,ltrim(disp));
val2=twi_read(1); inttostr(val2,disp); lcd_out(1,5,ltrim(disp));
val2=twi_read(1); inttostr(val2,disp); lcd_out(2,1,ltrim(disp));
val2=twi_read(0); inttostr(val2,disp); lcd_out(2,5,ltrim(disp));
twi_stop();
delay_ms(10);
}
|