Ðề tài: giúp đỡ I2c
View Single Post
Old 09-07-2009, 05:06 AM   #1
kaka_pato
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 12
:
giúp đỡ I2c

em mới bắt đầu học PIC có đoạn code nhưng không biết nó sai chỗ nào,có ai bít chỉ giúp em với: giao tiếp với rom 24c01
tại sao em đọc lại giá trị đã ghi vào rom o vi trí 0x04h mà lại có giá trị la 0xffh và tại sao cùng là hàm write nhưng hàm write trên có ack còn hàm write dưới lại la nack,hình mô phỏng protus em pót ở dưới
#include <16F877A.h>
#include <def_877a.h>
#fuses HS,NOWDT,NOPROTECT,BROWNOUT,NOLVP
#use delay(clock=20M)
#use i2c(master, SLOW,sda=PIN_C4, scl=PIN_C3)
#use rs232(baud=9600, parity=N,xmit=PIN_C6, rcv=PIN_C7,bits=9)
/////////////////////////////////////////////////////////////////


//khai bao cac ham su dung
int read(int address); //Lay du lieu tu ROM
void write(int address,int data); // Ghi du lieu vao ROM
//chuong trinh chinh
void main()

{
int tam;
write(0x04,5);
write(0x07,3);
tam=read(0x04);
}
//cac chuong trinh con
int read(int address)
{
int data;
i2c_start();
i2c_write(0xa0);
i2c_write(address);
i2c_start();
i2c_write(0xa1);
data=i2c_read(0);
i2c_stop();
return data ;
}

void write(int8 address, int8 data)
{
i2c_start();
i2c_write(0xa0);
i2c_write(address);
i2c_write(data);
i2c_stop();

}
Hình Kèm Theo
File Type: jpg zxc.JPG (19.5 KB, 14 lần tải)

thay đổi nội dung bởi: kaka_pato, 09-07-2009 lúc 05:12 AM.
kaka_pato vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn