2010年10月13日水曜日

スイッチで点灯



;*******************************************
; PIC12F629 テストプログラム
; スイッチで点灯
;http://yamato-pic.blogspot.com/
;*******************************************
 LIST  p=12f629  ; 翻訳時にリストファイルを作る
 #INCLUDE  "p12f629.inc"  ; 12F629用定義ファイルを読み込む
 errorlevel -302  ; 翻訳時に302エラーが出ないようにする
 
 __CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT

 RADIX  DEC   ; 省略時の数値表現を10進数にします。
 
;---------- PROGARAM ----------
VC_RESET:
; リセット後はここからプログラムを開始
 GOTO  START
 
 ORG  4  ; 割り込みが発生するとプログラムメモリのアドレス 0x004 から実行します。
START:     ; 電源投入直後の「準備の処理」
 BCF  STATUS,RP0 ; バンク0 に切り換える 
 CLRF  GPIO  ; 一旦 GPIO を クリア(00000000) 
 BSF  STATUS,RP0 ; バンク1 に切り換える 
 MOVLW B'00001000'  ; GP3 = 入力(1), GP0,1,2,4,5 = 出力(0)に設定 
 MOVWF TRISIO  ; TRISO ← w
 BCF  STATUS,RP0 ; バンク0 に戻す 
 
MAIN:     ; ここから「メインの処理」
 BTFSC  GPIO,GP3 ; GP3ビットが0なら次命令をスキップ 
 GOTO  LEDOFF  ; GP4ビットが1の時のみledoffにジャンプ
LEDON:
 BCF  GPIO,GP0 ; GP0ビットに 0を書き込む(LED点灯) 
 GOTO  MAIN  ; MAIN に戻る 
LEDOFF:
 BSF  GPIO,GP0 ; GP0ビットに 1を書き込む(LED消灯) 
 GOTO  MAIN  ; MAIN に戻る 
 
 END    ; プログラムの終了

0 件のコメント:

コメントを投稿