プログラムの方も載せておきます。色々なブログを参考にして作成しました。ありがとうございます。
; BUCK BOOST LED点灯プログラム
; GP2にR経由でTR接続、インダクタを駆動して倍電圧発生
; GP2を2μS間ON,GP3スイッチの状態見て、10μS/50μSOFF
;
; P=PIC12F629
; P12F629.INC
; __config _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
EQU 20H
;20hからユーザーエリア タイマー値<
EQU 21H
;タイマー値
STATUS,RP0 ;bank1に切り替え
call h'3ff'
;OSCCAL Valueの読み込み
movwf OSCCAL
;読み込んだ校正値をOSCCALレジスタにセット
clrf INTCON
;INTは使わない
movlw b'00000111'
;GP0,GP1,GP2デジタルI/O
movwf CMCON
;COMPARATOR 使用せず
movlw b'00001000'
;GP3入力、GP0,GP1,GP2,GP4,GP5出力設定
movwf TRISIO
;TRIS制御レジスタに設定
movlw b'00000000'
;bit7=0内部プルアップ
movwf OPTION_REG ;設定
bcf STATUS,RP0
;bank0に
loop
;
bsf GPIO,2
;GP2 ON
bcf GPIO,2
;GP2 OFF
movlw 5
;OFF時間の設定 10μS
btfss GPIO,3
;GP3 1なら次の命令スキップ、カウント10
movlw 20
;GP3がスイッチOFFならデューティ下げる LED暗い
call offtimer
;OFF時間稼ぎのタイマーへ行く
goto loop
offtimer
movwf count1
;WREGの内容をタイマカウントへ
wait
decfsz count1,1
;カウンタ値を1減算し元に戻す。結果が0なら次スキップ
goto wait
;
return
org 03FFh
retlw 0x20
END
追っかけ後の書き込みで説明ありますが。OSCCALの設定は上記のやり方でも動きますが、メーカ説明ではちょっと違います。すなわち、マイコンは最後番地からスタートするので、最終番地はダイレクト値をWに入れ0番地に来る、従って、それをOSCCALにMOVせよということのようです。C言語のときはOSCAL=・・・・という記述が必要。
KKmoon レシーバーキット エアバンドラジオ レシーバー DIYキット 航空バンドレシーバー 高感度