; 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