CT equ 0x22 CT_DELAYNS equ 0x23 movlw 0xf0 movwf CT loop movlw B'00100001' ; movwf PORTC ; 点灯 movfw CT call delayns ; CT×2[ms]待ち movlw B'00100000' ; movwf PORTC ; 消灯 movfw CT call delayns ; CT×2[ms]待ち movlw 0x10 subwf CT,f ; 10ずつループ回数を減らす goto loop delayns: movwf CT_DELAYNS ; 1 movf CT_DELAYNS,f ; 1 btfsc STATUS,Z ; 1 return ; 2 delaynsl1: call delay1ms ; 2500 call delay1ms ; 2500 decfsz CT_DELAYNS,f ; 1(次の行を実行)、2(次の行はとばす) goto delaynsl1 ; 2 return ; 2 リスト4-11 Copyright 2005 Noriaki Mitsunaga