8/20/2019 Tmr1 CCP MODULE
1/2
F:\latest 877a\CCP Module\Capture Module\tmr1_capture.asm
; FIRST USE OF TMR1 IN CCP(CAPTURE)MODE-USE OF CCP1 WITH CCP1
; INTERRUPT
; CLOCK - 20 MHZ CRYSTAL OSCILLATOR
; USED 5 KHZ PULSE AS INPUT (IN SIMULATION) IN CCP1 PIN (PIN NO. 17)
; ---------------------------------------------------------------
; PROGRAMMER-- SYED TASWAR MAHBUB
; DATED-- 30-08-15
; TIMER1 AND CCP1 MODULE- CAPTURE MODE DEMO WITH CCP1 INTERRUPT
;---------------------------------------------------------------
TITLE : "USE OF TIMER1 AND CCP1 MODULE IN CAPTURE MODE"
LIST P=16F877A
#INCLUDE "P16F877A.INC"
__CONFIG H'3F71'
;SFR SHOWN BELOW NEEDNOT TO BE SHOWN WITH MEMORY ADDRESS AS IT IS
;INCLUDED IN ABOVE MENTIONED .INC FILE BUT SHOWN HERE SO THAT NEW
;PORGRAMMER CAN SEE IN WHICH MEMORY BANKS THESE SFRS ARE LOCATED.
STATUS EQU 0X03
PORTB EQU 0X06
INTCON EQU 0X0B
PIR1 EQU 0X0C
TMR1L EQU 0X0E
TMR1H EQU 0X0F
T1CON EQU 0X10
CCPR1L EQU 0X15
CCPR1H EQU 0X16
CCP1CON EQU 0X17
TRISB EQU 0X86 ; IN BANK 1 SO BANK CHANGE IS REQUIRED
TRISC EQU 0X87 ; IN BANK 1 SO BANK CHANGE IS REQUIRED
PIE1 EQU 0X8C ; IN BANK 1 SO BANK CHANGE IS REQUIRED
ADCON1 EQU 0X9F ; IN BANK 1 SO BANK CHANGE IS REQUIRED
;------------------------------------------------------------------
ORG 0X00
GOTO INIT
ORG 0X04
GOTO INTR_SVC
;-------------------------------------------------------------------
INIT
BANKSEL TRISB
CLRF TRISB
CLRF TRISD
MOVLW B'00000110' ; TURN OFF A/D, PORTA=DIGITAL I/O
MOVWF ADCON1
BSF TRISC,2 ;CCP1 PIN INPUT
BANKSEL PORTB
CLRF PORTB
CLRF PORTD
BCF INTCON,7 ; DISABLE GLOBAL INTR
BCF INTCON,6 ; DISABLE PERIPHERAL INTR
BANKSEL PIE1
BCF PIE1,0 ; DISABLE TMR1 INTR
BCF PIE1,2 ; DISABLE CCP1 INTR
BANKSEL PIR1
BCF PIR1,2 ; CLEAR CCP1 INTR FLAG
CLRF CCP1CON ; CCP1 MODULE OFF,CLEAR CCP1 PRESCALER
MOVLW B'00000000' ; TMR1 PRESCALER AND TMR1 SETUP
MOVWF T1CON ; TMR1 OFF
1
8/20/2019 Tmr1 CCP MODULE
2/2
F:\latest 877a\CCP Module\Capture Module\tmr1_capture.asm
CLRF TMR1H
CLRF TMR1L
CLRF CCPR1H
CLRF CCPR1L
MOVLW B'00000101'
MOVWF CCP1CON ; CCP1 IN CAPTURE MODE, CCP1 ON
BSF INTCON,7
BSF INTCON,6
BANKSEL PIE1
BSF PIE1,2 ; ENABLE CCP1 INTR
BANKSEL T1CON BSF T1CON,0 ; TIMER1 ON
GOTO $
INTR_SVC
CLRF TMR1L
CLRF TMR1H
BCF PIR1,2 ; CLEAR CCP1 INTR FLAG
MOVF CCPR1H,W
MOVWF PORTD
MOVF CCPR1L,W
MOVWF PORTB
RETFIE
END
;--------------------------------------------------------------
2
Recommended