////////////////////////////////////////////////// // I2Cマスター蛍群点灯 // #include <16f88.h> #fuses INTRC_IO,NOWDT,NOLVP,NOBROWNOUT//内部クロック、WDT,LVPなし #use delay(clock = 4000000) #use fast_io(B)// 固定入力モード #use i2c(MASTER,sda=PIN_B1,scl=PIN_B4) //メイン関数///////////////////////////////////////// #define Fw1Chipa 0x60//中央 #define Fw2Chipa 0x62//左側 #define Fw3Chipa 0x64//右側 void main(){ set_tris_b(0xed); //RB 7-4:IN 3-0:OUT output_float(PIN_B1); //I2C pin float output_float(PIN_B4); //I2C pin float output_low(pin_A0); delay_ms(100); //wait for Client up while(1){ //output_a(i2c_get(0x04)); //1st term i2c_start(); i2c_write(Fw1Chipa);//0x60 i2c_write(30); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(50); i2c_stop(); i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(0); i2c_stop(); output_toggle(PIN_A1);//チェック用 delay_ms(1000); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(21); i2c_stop(); i2c_start(); i2c_write(Fw1Chipa);//0x60 i2c_write(11); i2c_stop(); output_toggle(PIN_A1);//チェック用 } delay_ms(3500); //2nd term i2c_start(); i2c_write(Fw1Chipa); i2c_write(0); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(30); i2c_stop(); i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(50); i2c_stop(); output_toggle(PIN_A1);//チェック用 delay_ms(500); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw1Chipa);//0x60 i2c_write(21); i2c_stop(); output_toggle(PIN_A1);//センサーに反応があったらLED点灯 } delay_ms(500); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(11); i2c_stop(); i2c_start(); i2c_write(Fw1Chipa);//0x60 i2c_write(31); i2c_stop(); output_toggle(PIN_A1); } delay_ms(3500); //3rd term i2c_start(); i2c_write(Fw1Chipa); i2c_write(20); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(20); i2c_stop(); i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(0); i2c_stop(); output_toggle(PIN_A1);//チェック用 delay_ms(500); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(11); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(31); i2c_stop(); output_toggle(PIN_A1); } delay_ms(4000); //4th term i2c_start(); i2c_write(Fw1Chipa); i2c_write(20); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(30); i2c_stop(); i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(50); i2c_stop(); output_toggle(PIN_A1);//チェック用 delay_ms(1000); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(11); i2c_stop(); output_toggle(PIN_A1); } delay_ms(500); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw1Chipa);//0x60 i2c_write(31); i2c_stop(); output_toggle(PIN_A1);//センサーに反応があったらLED点灯 } delay_ms(3000); //5th term i2c_start(); i2c_write(Fw1Chipa); i2c_write(10); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(30); i2c_stop(); i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(10); i2c_stop(); output_toggle(PIN_A1);//チェック用 delay_ms(500); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(21); i2c_stop(); output_toggle(PIN_A1); } delay_ms(1000); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw1Chipa);//0x60 i2c_write(21); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x60 i2c_write(11); i2c_stop(); output_toggle(PIN_A1);//センサーに反応があったらLED点灯 } delay_ms(3000); //6th term i2c_start(); i2c_write(Fw1Chipa); i2c_write(20); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(10); i2c_stop(); i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(30); i2c_stop(); output_toggle(PIN_A1);//チェック用 delay_ms(4500); //7th term i2c_start(); i2c_write(Fw1Chipa); i2c_write(0); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(50); i2c_stop(); i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(40); i2c_stop(); output_toggle(PIN_A1);//チェック用 delay_ms(1000); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw1Chipa);//0x60 i2c_write(21); i2c_stop(); output_toggle(PIN_A1);//チェック用 } delay_ms(1000); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(21); i2c_stop(); output_toggle(PIN_A1);//センサーに反応があったらLED点灯 } delay_ms(2500); //8th term i2c_start(); i2c_write(Fw1Chipa); i2c_write(20); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(0); i2c_stop(); i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(30); i2c_stop(); output_toggle(PIN_A1);//チェック用 delay_ms(1500); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(11); i2c_stop(); i2c_start(); i2c_write(Fw3Chipa);//0x60 i2c_write(21); i2c_stop(); output_toggle(PIN_A1); } delay_ms(500); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(11); i2c_stop(); i2c_start(); i2c_write(Fw1Chipa);//0x60 i2c_write(11); i2c_stop(); output_toggle(PIN_A1);//センサーに反応があったらLED点灯 } delay_ms(2500); //9th term i2c_start(); i2c_write(Fw1Chipa); i2c_write(0); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x62 i2c_write(30); i2c_stop(); i2c_start(); i2c_write(Fw3Chipa);//0x64 i2c_write(10); i2c_stop(); output_toggle(PIN_A1);//チェック用 delay_ms(1000); if(input(PIN_A0) == 0){ i2c_start(); i2c_write(Fw1Chipa);//0x60 i2c_write(31); i2c_stop(); i2c_start(); i2c_write(Fw2Chipa);//0x60 i2c_write(21); i2c_stop(); output_toggle(PIN_A1);//チェック用 } delay_ms(3500); }//while }//main