; PIC10F200 LED lighting by double NiH battery
; 03/27/2010 revised 04/15/2010
; GP2に1.2k経由2SC2458を接続、TRのCにはインダクタを接続
; インダクタは100μHとし、1μS駆動、30μSあるいは400μSオフ
    list          p=PIC10F200
    #include   <P10F200.inc>
;CONFIGULATION GP3/MCLR 使う
    __CONFIG _MCLRE_ON & _CP_OFF & _WDT_OFF & _IntRC_OSC
    count1     EQU 0x10
;
    org         0x0
    nop
    movwf     OSCCAL         ;OSCCAlにセットする
    nop
    clrf         GPIO              ;GPIOをクリア
    nop
    movlw     b'00001010'      ;WORK<-00001010 GP0,2出力、GP1、3入力
    movwf     GPIO              ;GPIOレジスタへ0000 1010を設定
    TRIS       GPIO              ;GPIO制御レジスタのGP0,2をアクティブに
    movlw     b'10000110'      ;ウェイクアップ無効、弱プルアップ有効
    option                          ;弱プルアップ設定 ビット6が0
    bcf         GPIO,2            ;GP2 OFF
    movlw     0x0FF             ;256回LOOP 
    movwf     count1           ;work -> count1レジスタにループカウントを設定
LOOP
    nop
    nop
    decfsz     count1,1         ;decrement count1レジスタ1減算
    goto        LOOP            ;結果がゼロになるまでループ
MAIN
    nop
    bsf         GPIO,2           ;Inducter current ON インダクタに充電電流流す
    bcf         GPIO,2           ;Inducter current OFF 電流を切る
    movlw     0x10              ;50μs set 切る時間50μs設定値
    btfsc      GPIO,1           ;Bright/Dark SW check GP1暗明スイッチの状態を見る
    movlw     0x02              ;10μs set スイッチが入っていると0なのでこの命令スキップ
    movwf    count1            ;work -> count1レジスタにループカウントを設定
    goto       LOOP             ;

    org         0xff
    retlw       02                 ;チップのOSCCAL固有値をもってもどる
    end

inserted by FC2 system