***************************************************************************** ; TMR1 のオーバーフローによる割込みです ; 外部入力によるカウントも出来ますが今回は省略します    21.01.26 ***************************************************************************** ;----- 割込条件の設定 ---------------------------------------------------- ORG 4 GOTO PUSHU ;割込プログラムのスタート番地 W_TEMP EQU H'20' ;W レジスタの退避先 STATUS_TEMP EQU H'21' ;STATUS レジスタの退避先 ;----- TMR1 SET ---------------------------------------------------------- MOVLW B'00BB0000' ;BB PRI SCALE 1:1,2,4,8 ;内部クロック使用 MOVWF T1CON ;TMR1 を停止しておきます ;----- 割込設定 ---------------------------------------------------------- CLRF INTCON ;INTCON のクリア BSF INTCON,PEIE ;周辺割込の許可 BCF STATUS,RP1 ;BANK 0:1 を選択 BSF STATUS,RP0 ;BANK 1 を選択 BSF PIE1,TMR1IE ;TMR1 割込の許可 BCF STATUS,RP0 ;BANK 0 に戻す BCF PIR1,TMR1IF ;TMR1IF 割込発生フラグのクリア BSF INTCON,GIE ;全割込の許可 ;----- MAIN プログラム内での TMR1 のスタート ----------------------------- CLRF TMR1H ;TMR1 H のカウンターをクリアします CLRF TMR1L ;TMR1 L のカウンターをクリアします BSF T1CON,TMR1ON ;----- 割込プログラム ---------------------------------------------------- PUSHU MOVWF W_TEMP ;レジスタ類の退避 SWAPF STATUS,W BCF STATUS,RP0 MOVWF STATUS_TEMP BTFSS PIR1,TMR1IF GOTO POP ;TMR1 割込では無い ; ここに目的のプログラムが入ります BCF PIR1,TMR1IF ;割込発生フラグのクリア POP BCF STATUS,RP0 ;レジスタ類の復帰 SWAPF STATUS_TEMP,W MOVWF STATUS SWAPF W_TEMP,SELF SWAPF W_TEMP,W RETFIE ;割込みを許可したリターン ;************************************************************************** ; 補足事項です ;************************************************************************** 注0 必要ならば FSR,PCH 等の退避及び復帰も行います 注1 時間巾(mS)は 4×PS値×65,536 /発振周波数(MHz)×1,000 となります 注2 発振周波数 PS=1 PS=2 PS=4 PS=8 3.2768(MHz) 80.0 160.0 320.0 640.0 (mS) 4.0 65.536 131.0 262.1 542.2 8.0 32.768 65.53 131.0 262.1 10.0 26.21 52.42 104.8 209.7 16.0 16.384 32.76 65.53 131.0 20.0 13.10 26.21 54.42 104.8 注3 割込の許可は必要最大限遅い所にプログラムをします 割込の許可の前にフラグをクリアしておきます 割込のプログラムは出来るだけ短くします 注4 外部入力を使用する場合は PORTC,0 を入力に設定して (ハイインピーダンス化)? MOVLW B'00BB0010' MOVWF T1CON ;TMR1(停止) とします 注5 PORTC,0 とPORTC,1 の間に水晶発振子を接続して使用する場合は MOVLW B'00BB1010' MOVWF T1CON ;TMR1(停止) とします 発振周波数は 200KHz 迄の低速です コンデンサーの必要性及び容量や PORTC,0-1 の設定は現在調査中ですが 何れも入力設定の様です ;**************************************************************************