PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 21-07-2009, 01:16 AM   #1
dung h
Đệ tử 4 túi
 
Tham gia ngày: May 2009
Bài gửi: 74
:
giao tiếp I2C pic6f877 o chay? help!

mình đang tìm hiểu về giao tiếp i2c! mình viết chương trình gửi dữ liệu từ 1 mater là pic 16f877a xuống 1 slave nhưng mô phỏng o thấy gì hết????
code mater:
Code:
#include <16F877A.H>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use Delay(Clock=4000000)

#define SLAVE_ADDRESS 0x10
#use i2c(master, sda=PIN_C4, scl=PIN_C3)

void write_I2C(int8 a)
{
   i2c_start();
   i2c_write(SLAVE_ADDRESS);
   i2c_write(a);
   i2c_stop();
}

void main()
{
   int8 value;
   
   value = 0;
   while(true){
      write_I2C(value);
      output_b(value);
      value++;
      delay_ms(100);
   }
}
cho con slave:
Code:
#include <16F877A.H>
#fuses XT,NOWDT,NOPROTECT,NOLVP

#use delay(Clock=4000000)
#use i2c(SLAVE, SDA=PIN_C4, SCL=PIN_C3, address=0x10)

int8 value;

#INT_SSP
void i2c_isr()
{
   int8 state;
   int8 address;
   state = i2c_isr_state();
   if(state == 0)
      address = i2c_read();
   else if(state < 0x80)
         value = i2c_read();
}

void main()
{
   enable_interrupts(GLOBAL);
   enable_interrupts(INT_SSP);

   set_tris_b(0x00);
   while(true){
      output_b(value);
   }
}
mình chửa hiểu lám 1 số lệnh trong ccs mong mọi người giúp:
state=i2c_isr_state() ; // trả về giá trị 8bit thông báo trang thái của i2c phảy o? hay gì
// mong giải thich cụ thể hơn
và giá trị state nhận được có y nghĩa như thế nào?
vd : state==0?????
state>0???
state<0x80???? // tại sao lại so sánh với 0x80??
state>0x80???
các thông số đó liên quan đến truyền ,nhận và bít ACK như thế nào?
khi nào mình biết mình nhận đủ 1 byte?
còn cả lệnh i2c_pull(); nữa???
mới học đọc các bài trên diễn đàn nhưng vẫn chưa ngộ ra!!!!mong được giúp đỡ!
thanks!
File Kèm Theo
File Type: zip i2c 1master 1slave.zip (32.5 KB, 124 lần tải)
dung h vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 04:04 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam