You are on page 1of 1

F:\latest 877a\16 bit counting\timer1_contents.

asm
; 16BIT BINARY COUNT THROUGH T1CKI CLOCK INPUT(EXTERNAL)
; --------------------------------------------------------------;PROGRAMMAR-- SYED TASWAR MAHBUB
;TIMER1 USED AS COUNTER
;USE EXTERNAL PULSE OF 4 HERTZ THROUGH RC0/TICKI PIN
;OUTPUT 16 LEDS IN PORTB AND PORTD TO COUNT FROM 0X0000 TO 0XFFFF
;TIME INTERVAL- 4HZ
;------------------------------------------------------------------TITLE : "16 BIT BINNARY COUNTING THROUGH TIMER1 CONTENTS"
LIST
P=16F877A
#INCLUDE "P16F877A.INC"
__CONFIG
H'3F71'
;---------------------------------------------------------------------;POSITION OF THE FOLLOWING GPRS IN MEMORY MAP ARE MENTIONED IN INCLUDE
;FILE CITED ABOBE AND HENCE NOT REQUIRED TO MENTION HERE. BUT GIVEN
;HERE TO SHOW THE POSITIONS IN DIFFERENT DATA BANKS FOR NEW PROGRAMMARS.
;---------------------------------------------------------------------STATUS
EQU
0X03
PORTB
EQU
0X06
PORTC
EQU
0X07
PORTD
EQU
0X08
INTCON
EQU
0X0B
PIR1
EQU
0X0C
TMR1L
EQU
0X0E
TMR1H
EQU
0X0F
T1CON
EQU
0X10
CCP1CON
EQU
0X17
TRISB
EQU
0X86
;IN BANK1, SO BANK CHANGING REQUIRED
TRISC
EQU
0X87
;IN BANK1, SO BANK CHANGING REQUIRED
TRISD
EQU
0X88
;IN BANK1, SO BANK CHANGING REQUIRED
PIE1
EQU
0X8C
;IN BANK1, SO BANK CHANGING REQUIRED
;-----------------------------------------------------------------------ORG
0X00
;RESET VECTOR
GOTO
INIT
INIT
BANKSEL TRISB
;BANK CHANGING, GOING TO BANK 1
CLRF
TRISB
;MAKING PORTB ALL PINS OUTPUT
BSF
TRISC,0
;MAKING RC0/TICK1 PIN INPUT
CLRF
TRISD
;MAKING PORTD ALL PINS OUTPUT
BANKSEL PORTB
;MOVING BACK TO BANK0
CLRF
PORTB
CLRF
PORTC
CLRF
PORTD
START
BCF
INTCON,7
; DISABLE GLOBAL INTR
BCF
INTCON,6
; DISABLE PERIPHERAL INTR
BANKSEL PIE1
; MOVING TO BANK1
BCF
PIE1,0
; DISABLE TMR1 INTR
BCF
PIE1,2
; DISABLE CCP1 INTR
BANKSEL PIR1
; FALLING BACK TO BANK0
BCF
PIR1,0
; CLEAR TMR1 INTR FLAG
CLRF
CCP1CON
; CCP1 MODULE OFF,CLEAR CCP1 PRESCALER
MOVLW
B'00000010' ;TIMER1 PRESCALER AND TIMER1 SETUP
MOVWF
T1CON
; TMR1 OFF
KHELA
CLRF
TMR1H
; MAKING TMR1H REG O
CLRF
TMR1L
; MAKING TMR1L REG 0
BCF
PIR1,0
; CLEAR TMR1 INTR FLAG
BSF
T1CON,0
; TIMER1 ON
KHELA_NEW
MOVF
TMR1H,W
MOVWF
PORTD
; TMR1H IS PUT INTO PORTC FOR DISPLAY
MOVF
TMR1L,W
MOVWF
PORTB
; TMR1L IS PUT INTO PORTB FOR DISPLAY
BTFSS
PIR1,0
; TEST WHETHER TMR1 INTR FLAG RAISED OR NOT
GOTO
KHELA_NEW ;IF RAISED, GOTO KHELA, OTHERWISE GOTO KHELA_NEW
BCF
T1CON,0
; TMR1 OFF
GOTO
KHELA
END
;----------------------------------------------------------------------------1

You might also like