#define _LEGACY_HEADERS #include // コンフィギュレーションワードの設定 __CONFIG ( UNPROTECT & LVPDIS & BOREN & MCLREN & PWRTEN & WDTDIS & INTIO ); // プロトタイプ宣言 void WaitTime (long cnt); // メイン関数 void main (void) { unsigned char PC=0; unsigned char MC=0; // 1,2,17,18端子を入出力端子に設定 CMCON = 0x07; // 電圧レベルの初期設定 PORTB = 0xFF; // 入出力設定 TRISA = 0b00100011; TRISB = 0x00; // 永久ループ while(1) { if(RA0 == 0)// SW1がONの場合 { WaitTime (255);// 待ち時間関数の呼び出し while( RA0 == 0 );// SW1がONの間ループ WaitTime (255);// 待ち時間関数の呼び出し if(PC <= 1) { PC=16; } else { PC=PC/2; } PORTB = 0xFE; MC=0; } if(RA1 == 0)// SW2がONの場合 { WaitTime (255);// 待ち時間関数の呼び出し while( RA1 == 0 );// SW2がONの間ループ WaitTime (255);// 待ち時間関数の呼び出し if(MC <= 1) { MC=16; } else { MC=MC/2; } PORTB = 0x01; PC=0; } if(PC > 1) { WaitTime (500*PC); PORTB = PORTB - 1; } else { if(MC > 1) { WaitTime (500*MC); PORTB = PORTB + 1; } else { PORTB =0xFE; } } } } // 待ち時間関数 void WaitTime ( long cnt ) { int i; while (cnt > 0) { for(i=0;i<64;i++){RA2=0;cnt--;} for(i=0;i<64;i++){RA2=1;cnt--;} } for(i=0;i<2000;i++){RA2=1;} }