em có viết một đoạn chương trình dùng để ghi dữ liệu vào eeprom sau đó đọc ngược giá trị này và hiển thị ra PORTB nhưng mãi mà nó ko chạy, kiểm tra thì ko biết nó sai chỗ nào. chương trình dùng thư viện I2C.c trên diễn đàn. đây là code của nó (em dùng HT PIC V9.83 hay 80 gì đấy ko nhớ rõ lắm) mọi người kiểm tra giúp em cái, nếu sử dụng HT PIC trong tut của 4rum thì chỉ cần đổi 2 dòng config là được
Code:
//*********************************************************
#include <htc.h>
#include "i2c.h"
__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_ON & LVP_OFF & DEBUG_OFF &
BOREN_OFF & CP_ON & CPD_ON & FCMEN_OFF & IESO_OFF); //1st config. word
__CONFIG(BOR4V_BOR21V); //2nd config. word
//---------------------------------------------------------
void delay(int time)
{
int i,j;
for(i=0;i<time;i++)
{
for(j=0;j<time;j++)
{;}
}
}
//---------------------------------------------------------
void main()
{
ANSEL=0;
ANSELH=0;
TRISB=0x00;
PORTB=0x00;
i2c_init();
i2c_start();
i2c_write(0xA0); // gui dia chi EEPROM + W
i2c_write(0x02); // gui dia chi thanh ghi cua eeprom
i2c_write(0xAA); // ghi du lieu vao eeprom
i2c_stop(); // dung qua trinh ghi du lieu
delay(100);
i2c_start();
i2c_write(0xA0); // gui dia chi eeprom + W
i2c_write(0x02); // gui dia chi thanh ghi cua eeprom
i2c_stop(); // tao dieu kien Restart
i2c_start(); //
i2c_write(0xA1); // gui dia chi eeprom +R
PORTB=i2c_read(1); // doc gia tri trong eeprom va gan cho portB
i2c_stop(); // dung qua trinh doc du lieu
while(1); // dung chuong trinh tai day
}