![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
#20 |
Nhập môn đệ tử
Tham gia ngày: Nov 2011
Bài gửi: 5
: |
cảm ơn bạn, đây là code con master, cái này thực ra ko phải mình viết
<code> // chuong trinh cho master #include <16f877a.h> #include <def_877a.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock= 4000000) #use i2c(master, SDA=PIN_C4, SCL=PIN_C3) int8 data, bo, i; #define slave 0x10 void doc_i2c() { i= 0; while( i!=2) { i++; i2c_start(); i2c_write( slave+1); //nhan du lieu tu Slave switch ( i) { case 1: data= i2c_read( 1); break; case 2: bo= i2c_read( 0); break; } } } void main() { trisd= 0; portd= 0; while(true) { doc_i2c(); portd= data; delay_ms( 100); } } </code> =============================================== còn đây là code cho Slave nguyên mẫu, code slave bên trên do mình chỉnh sửa từ đây <code> // chuong trinh cho master #include <16f877a.h> #include <def_877a.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock= 4000000) #use i2c(master, SDA=PIN_C4, SCL=PIN_C3) int8 data, bo, i; #define slave 0x10 void doc_i2c() { i= 0; while( i!=2) { i++; i2c_start(); i2c_write( slave+1); //nhan du lieu tu Slave switch ( i) { case 1: data= i2c_read( 1); break; case 2: bo= i2c_read( 0); break; } } } void main() { trisd= 0; portd= 0; while(true) { doc_i2c(); portd= data; delay_ms( 100); } } </code> |
![]() |
![]() |
|
|