目次>9章 PIC18F1320編 > PORTBピン変化割込みを使う> ソース
PORTBピン変化割込みを使う(ソース)
更新日2009.1.11
以下のソースを取り込んで、アセンブル→PIC書き込み→実行して下さい。
; ========================== ここから ============================== ; ファイル名 portb_chg.asm ; 作成日 2008.6.22 ; 作成者 mit.ueno ; バージョン 1.0 ; ; PIC PIC18F1320 ; クロック 10MHz ; 概要 ; RB4のスイッチによるPORTB変化割込みでLEDを点滅 ; (スイッチのチャタリングキャンセルは行わない) ; IPEN=0(PIC16互換割込み)で使用 ; 使用ポート ; RB0:LED ; RB1:LED ; RB4:プッシュボタンスイッチ ; ; LIST P=18F1320 INCLUDE P18F1320.INC CONFIG OSC=HS ; ******** GPR *********************************** CBLOCK 0x080 WREG_TEMP ;WREG save area STATUS_TEMP ;STATUS save area BSR_TEMP ;BSR save area ENDC ; ******** リセットベクタ *************************** ORG 0x0000 BRA init ; ******** 割込みベクタ ***************************** ORG 0x0008 MOVFF STATUS,STATUS_TEMP ;save STATUS MOVFF WREG,WREG_TEMP ;save WREG MOVFF BSR,BSR_TEMP ;save BSR BTFSC PORTB,RB4 ;スイッチON?(RB4=0?) BRA int_90 ; No MOVLW 0x03 XORWF PORTB,F ;RB0,1のLEDを点滅 int_90 BCF INTCON,RBIF ;ピン変化割込みフラグクリア MOVFF BSR_TEMP,BSR ;restore BSR MOVFF WREG_TEMP,WREG ;restore WREG MOVFF STATUS_TEMP,STATUS ;restore STATUS RETFIE ; ******** 初期処理 ********************************* init ; MOVLW 0xFC MOVLW 0x1C ;RB5-7を出力にした方が安定する MOVWF TRISB ;RB0,1:Output(LED) MOVLW 0x7F MOVWF ADCON1 ;A/D未使用 MOVLW 0x01 MOVWF PORTB MOVLW 0x88 MOVWF INTCON ;PORTBピン変化割込み許可,全割込み許可 ; ******** メイン処理 ******************************* main BRA main END ; ========================== ここまで ==============================