Tmr1 CCP MODULE

Embed Size (px)

Citation preview

  • 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