; *************************************************************** ; リスト 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