; ***************************************************************
; リスト Timer 0
; LED点灯プログラム
; ***************************************************************
LIST P=PIC16F18346 ; 使用するPICを指定
INCLUDE "P16F18346.INC" ; 読み込む設定ファイルを指定
__CONFIG _CONFIG1, _FEXTOSC_OFF & _RSTOSC_HFINT1 & _CLKOUTEN_OFF &
_CSWEN_OFF & _FCMEN_OFF
__CONFIG _CONFIG2, _MCLRE_ON & _PWRTE_OFF & _WDTE_OFF & _LPBOREN_OFF &
_BOREN_OFF & _BORV_LOW & _PPS1WAY_OFF & _STVREN_ON & _DEBUG_OFF
__CONFIG _CONFIG3, _WRT_OFF & _LVP_ON
__CONFIG _CONFIG4, _CP_OFF & _CPD_OFF
; ***************************************************************
ORG 0
START MOVLB 0x1
BCF TRISC, 0x5 ; RC5を出力に設定
BCF TRISA, 0x5 ; RA5を出力に設定
MOVLB 0x2 ; BANK 2 に設定
BCF LATA, 0x5 ; LED4(RA5)をOFF
; // --------------------------------------------
; // Timer0 は、Fosc/4を16bitモードでカウント
; // カウントアップ(262mS)でTMR0IFが「1」になる
; // TMR0IFを常時モニタしLED(RC0)を反転
; // また、PPS機能を使いTMR0出力をRC5に出力する
; // --------------------------------------------
MOVLW 0x40 ; Fosc/4 Sync PreS 1/1
MOVLB 0x0 ; BANK 2 に設定
MOVWF T0CON1 ; T0 設定
MOVLW 0x90 ; T0ON 16bit Post 1/1
MOVWF T0CON0 ; T0 設定
MOVLW 0x1C ; TMR0をRC5に出力
MOVLB 0x1D ; BANK 1D に設定
MOVWF RC5PPS ; RC5PPS 設定
LOOP MOVLB 0x0
BTFSS PIR0, TMR0IF ; Timer0カウントアップを待つ
GOTO LOOP
BCF PIR0, TMR0IF ; TMR0IF=0;
; LED4(RA5)を反転 ------------------
MOVLB 0x2 ; Bank 2 選択
MOVLW 0x20 ; LED(RA5)のビット
XORWF LATA, F ; LED ON/OFF 反転
GOTO LOOP ; LOOPに戻る
ENDPGM MOVLP 0x0
END