loop ; スイッチ0が押される(PORTB<0>が0になる)まで待つ lp1 btfsc PORTB,0 goto $-1 call delay20ms ; 20ms待って btfsc PORTB,0 ; 再度確認する goto lp1 ; LEDを消灯する movlw B'00100000' movwf PORTC ; スイッチ0が離される(PORTB<0>が1になる)まで待つ lp2 btfss PORTB,0 goto $-1 call delay20ms ; 20ms待って btfss PORTB,0 ; 再度確認する goto lp2 ; スイッチ0が押される(PORTB<0>が0になる)まで待つ lp3 btfsc PORTB,0 goto $-1 call delay20ms ; 20ms待って btfsc PORTB,0 ; 再度確認する goto lp3 ; LEDを点灯する movlw B'00100001' movwf PORTC ; スイッチ0が離される(PORTB<0>が1になる)まで待つ lp4 btfss PORTB,0 goto $-1 call delay20ms ; 20ms待って btfss PORTB,0 ; 再度確認する goto lp4 goto loop delay20ms movlw D'20' movwf CT_DELAY20MS delay20msl1: call delay1ms decfsz CT_DELAY20MS,f goto delay20msl1 return リスト4-16 Copyright 2005 Noriaki Mitsunaga