azhari24
Newbie level 6
hey friend, i want to use Timer0 interrupt in PIC16F877A. how to calculate delay interrupt?
i want get delay 8ms with internal clock(4ms). Can you help me?
this is my program with delay 8ms interrupt, but can't be run.
i want get delay 8ms with internal clock(4ms). Can you help me?
this is my program with delay 8ms interrupt, but can't be run.
Code:
MULAI: ; BEGINNING OF THE MAIN PROGRAM
BSF STATUS,5 ; INITIALIZATION PORT B
MOVLW B'11111100' ; SET THE FIRST TWO BITS OF PORT C AS OUTPUT
MOVWF TRISC
BSF TRISB,0 ; SET THE BIT 0 OF PORT B AS INPUT/ SET PORT INTERRUP
BCF OPTION_REG,INTEDG ; SET RISING EDGE
BCF INTCON,INTF ; RESET INTERRUPT FLAG OF INT
BSF INTCON,INTE ; SET IEBIT OF INT
BSF INTCON,GIE ; SET GLOBAL INT ENABLE
; INITIALIZATION OF TIMER0
MOVLW 0X04
MOVWF OPTION_REG ; T0 PRESCALE, TIMER, 1:32
MOVLW D'6' ;SET COUNT FOR 6
MOVWF TMR0 ;
MOVLW 0xA0 ; ENABLE T0 AND GLOBAL INTS
MOVWF INTCON
CLRF FLAGS
INT_SERVICE:
MOVWF W_TEMP ; SAVE W AND STATUS REGISTERS
SWAPF STATUS,W
MOVWF STATUS_T
MOVLW D'6' ; RESET COUNT FOR 156
MOVWF TMR0
BCF INTCON,T0IF ; RESET T0 INT FLAGS
BSF FLAGS,0 ; SET USER FLAG; INT OCCURS
;CALL SEND_USB
MOVLW 00H
MOVWF RDorWR
BCF INTCON,INTF
SWAPF STATUS_T,W ; RESTORE W AND STATUS REGISTERS
MOVWF STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W
RETFIE