////////////////////////////////////////////////// // I2Cスレーブテストプログラム // // PIC16F873 RIKIYA 2002.11.29 // // i2cslv11.C // // ID = 0x00 // // 1:3通信スレーブ側プログラム // // マスター側から受信したデータをPBに出力する // // 割り込みなし // ////////////////////////////////////////////////// #include <16f873.h> #fuses HS,NOWDT,NOPROTECT,PUT,BROWNOUT,NOLVP #use delay(clock = 10000000) // clock 10MHz #use fast_io(B) // 固定入力モード #use i2c(SLAVE,SDA=PIN_C4,SCL=PIN_C3,ADDRESS=0x00,FAST,FORCE_HW) //メイン関数///////////////////////////////////////// main(){ int data; set_tris_b(0xf0); //RB 7-4:IN 3-0:OUT set_tris_c(0x1f); //RC 7-5:OUT 4-0:IN output_float(PIN_C3); //I2C pin float output_float(PIN_C4); //I2C pin float output_b(0x01); //正常起動確認用 while(1){ data = i2c_read(); //受信データをPBに出力 } }