loop ; A-D変換する bsf ADCON0,GO ; A-D変換開始 btfsc ADCON0,GO ; A-D変換終了まで待つ goto $-1 movfw ADRESH ; wに変換結果を代入 sublw D'128' ; 暗さの閾値(128)と比較をする ; 128-wの結果が負(Cが0)なら暗い btfss STATUS,C goto blink_LED call delay10us ; コンデンサへの充電待ち call delay10us goto loop ; 点滅の部分 blink_LED movlw B'00100001' ; movwf PORTC ; 点灯 movlw D'250' call delayns ; 250×2[ms]待ち movlw B'00100000' ; movwf PORTC ; 消灯 movlw D'250' call delayns ; 250×2[ms]待ち goto loop リスト5-5 Copyright 2005 Noriaki Mitsunaga