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 IN SIMULATION THROUGH 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

tmr1_capture_877A.pdf

Embed Size (px)

Citation preview

Page 1: tmr1_capture_877A.pdf

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 IN SIMULATION THROUGH 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

Page 2: tmr1_capture_877A.pdf

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