سلام به همه دوستان
کسی میدونه با eeprom خارجی در پروتئوس چجوری باید کار کرد؟
من در عمل میخام با AT24C02 کار کنم اما قبلش میخام تو پروتئوس برناممو امتحان کنم اما تو پروتئوس این ای آی سی نیست و بجاش AT24C512B گذاشتم اما درس کار نمیکنه!میخام ببینم اشکال از برنامس یا پروتئوس؟
برنامم هم اینه،خیلی سادس
کسی میدونه با eeprom خارجی در پروتئوس چجوری باید کار کرد؟
من در عمل میخام با AT24C02 کار کنم اما قبلش میخام تو پروتئوس برناممو امتحان کنم اما تو پروتئوس این ای آی سی نیست و بجاش AT24C512B گذاشتم اما درس کار نمیکنه!میخام ببینم اشکال از برنامس یا پروتئوس؟
برنامم هم اینه،خیلی سادس
کد:
#include <mega8.h> #include <delay.h> // I2C Bus functions #asm .equ __i2c_port=0x15 ;PORTC .equ __sda_bit=0 .equ __scl_bit=1 #endasm #include <i2c.h> #define EEPROM_BUS_ADDRESS 0xa0 /* read a byte from the EEPROM */ unsigned char eeprom_read(unsigned char address) { unsigned char data; i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(address); i2c_start(); i2c_write(EEPROM_BUS_ADDRESS | 1); data=i2c_read(0); i2c_stop(); return data; } /* write a byte to the EEPROM */ void eeprom_write(unsigned char address, unsigned char data) { i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(address); i2c_write(data); i2c_stop(); /* 10ms delay to complete the write operation */ delay_ms(10); } void main(void){ unsigned char i; PORTB=0x00; DDRB=0xFF; // I2C Bus initialization i2c_init(); /* write the byte 55h at address 00h */ eeprom_write(0x00,0x55); /* read the byte from address 00h */ i=eeprom_read(0x00); PORTB=i; while (1); }
دیدگاه