list p=12c509 include WAIT EQU 07H T_OFF EQU 08H RESET GOTO START ORG 04H ;################### IOポートのセットアップ START MOVLW 09FH OPTION MOVLW 08H TRIS GPIO ;################### 初期状態7,5番ピンをHi、6番ピンをLoにする SETUP MOVLW 05H MOVWF GPIO ;################### 1秒間待つ IDLE1S CALL T1000M ;Idle 1000msec ;################### 5m秒以上の入力があるかチェック INPUT BTFSC GPIO, 3 GOTO INPUT CALL T1M BTFSC GPIO, 3 GOTO INPUT CALL T1M BTFSC GPIO, 3 GOTO INPUT CALL T1M BTFSC GPIO, 3 GOTO INPUT CALL T1M BTFSC GPIO, 3 GOTO INPUT CALL T1M ;################### 入力があれば7、5番ピンをLoに、6番ピンをHiにする OUTPUT BCF GPIO, 0 BSF GPIO, 1 BCF GPIO, 2 ;################### 0.5秒状態を保ち、初期状態に戻す HOLD CALL T500M BSF GPIO, 0 BCF GPIO, 1 BSF GPIO, 2 GOTO IDLE1S ;#### Wait loop 1msec T1M MOVLW 0FFH MOVWF WAIT WAIT1 NOP DECFSZ WAIT, F GOTO WAIT1 RETLW 00H ;#### Wait loop 500msec T500M MOVLW 32H MOVWF T_OFF MOVLW 0FFH MOVWF WAIT LOOP2 CALL WAIT3 DECFSZ T_OFF, F GOTO LOOP2 RETLW 00H ;#### 1sec wait loop T1000M MOVLW 64H MOVWF T_OFF MOVLW 0FFH MOVWF WAIT LOOP3 CALL WAIT3 DECFSZ T_OFF, F GOTO LOOP3 RETLW 00H WAIT3 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP DECFSZ WAIT, F GOTO WAIT3 RETLW 00H END