#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; // 電圧レベルの初期設定 PORTA = 0xFF; PORTB = 0xFF; // 入出力設定 TRISA = 0b00101111; 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 = 0xFF; 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 = 0x00; PC=0; } if(RA2 == 0 || RA3 ==0)// SW3orSW4がONの場合 { PC=0;MC=0;PORTB = 0xFF; } if(PC > 1) { WaitTime (500*PC); PORTB = PORTB - 1; } if(MC > 1) { WaitTime (500*MC); PORTB = PORTB + 1; } } } // 待ち時間関数 void WaitTime ( long cnt ) { while (cnt > 0) cnt--; }