English
Language : 

PIC18F97J60_11 Datasheet, PDF (179/492 Pages) Microchip Technology – 64/80/100-Pin, High-Performance, 1-Mbit Flash Microcontrollers with Ethernet
PIC18F97J60 FAMILY
EXAMPLE 13-1: IMPLEMENTING A REAL-TIME CLOCK USING A TIMER1 INTERRUPT SERVICE
RTCinit
RTCisr
MOVLW
MOVWF
CLRF
MOVLW
MOVWF
CLRF
CLRF
MOVLW
MOVWF
BSF
RETURN
80h
; Preload TMR1 register pair
TMR1H
; for 1 second overflow
TMR1L
b’00001111’ ; Configure for external clock,
T1CON
; Asynchronous operation, external oscillator
secs
; Initialize timekeeping registers
mins
;
.12
hours
PIE1, TMR1IE ; Enable Timer1 interrupt
BTFSC
BRA
BTFSS
BRA
BSF
BCF
INCF
MOVLW
CPFSGT
RETURN
CLRF
INCF
MOVLW
CPFSGT
RETURN
CLRF
INCF
MOVLW
CPFSGT
RETURN
CLRF
RETURN
; Insert the next 4 lines of code when TMR1
; can not be reliably updated before clock pulse goes low
TMR1L,0 ; wait for TMR1L to become clear
$-2
; (may already be clear)
TMR1L,0 ; wait for TMR1L to become set
$-2
; TMR1 has just incremented
; If TMR1 update can be completed before clock pulse goes low
; Start ISR here
TMR1H, 7 ; Preload for 1 sec overflow
PIR1, TMR1IF ; Clear interrupt flag
secs, F ; Increment seconds
.59
; 60 seconds elapsed?
secs
; No, done
secs
; Clear seconds
mins, F ; Increment minutes
.59
; 60 minutes elapsed?
mins
; No, done
mins
; clear minutes
hours, F ; Increment hours
.23
; 24 hours elapsed?
hours
; No, done
hours
; Reset hours
; Done
TABLE 13-2: REGISTERS ASSOCIATED WITH TIMER1 AS A TIMER/COUNTER
Name
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Reset
Values
on Page:
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE
RBIE TMR0IF INT0IF
RBIF
69
PIR1
PSPIF
ADIF
RC1IF TX1IF SSP1IF CCP1IF TMR2IF TMR1IF
71
PIE1
PSPIE
ADIE
RC1IE TX1IE SSP1IE CCP1IE TMR2IE TMR1IE
71
IPR1
PSPIP
ADIP
RC1IP TX1IP SSP1IP CCP1IP TMR2IP TMR1IP
71
TMR1L Timer1 Register Low Byte
70
TMR1H Timer1 Register High Byte
70
T1CON
RD16 T1RUN T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON 70
Legend: Shaded cells are not used by the Timer1 module.
 2011 Microchip Technology Inc.
DS39762F-page 179