Professional Documents
Culture Documents
Servo Timer 0
Servo Timer 0
#include "p16f877a.inc"
; CONFIG
; __config 0xFF32
__CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_ON & _BOREN_OFF & _LVP_OFF & _CPD_OFF &
_WRT_OFF & _CP_OFF
CBLOCK 0X20
REG1
REG2
REG3
GUARDA_W
GUARDA_S
ENDC
ORG 00
GOTO INICIO
ORG 04
INTERRUPCION
MOVWF GUARDA_W
SWAPF STATUS,W
MOVWF GUARDA_S
BTFSS INTCON,TMR0IF
GOTO FIN_I
BTFSC PORTC,0
GOTO UNO
CERO BSF PORTC,0
BSF STATUS,RP0
MOVLW B'00000010'
MOVWF OPTION_REG
BCF STATUS,RP0
MOVLW .131
MOVWF TMR0
GOTO FIN_I
BSF STATUS,RP0
MOVLW B'00000111'
MOVWF OPTION_REG
BCF STATUS,RP0
MOVLW .182
MOVWF TMR0
GOTO FIN_I
SWAPF GUARDA_S,W
MOVWF STATUS
SWAPF GUARDA_W,F
SWAPF GUARDA_W,W
RETFIE
;***********************************
INICIO
bsf STATUS,RP0
CLRF TRISB
CLRF TRISC
MOVLW B'00000111'
MOVWF OPTION_REG
bCf STATUS,RP0
MOVLW B'10100000'
MOVWF INTCON
MOVLW .182
MOVWF TMR0
BCF PORTC,0
CICLO
MOVF PORTD,W
MOVWF PORTB
GOTO CICLO
;*******rutina de retardo**********************
RETARDO
MOVLW .255
MOVWF REG3
RETBUCL3
MOVLW .100
MOVWF REG2
RETBUCL2
MOVLW .100
MOVWF REG1
RETBUCL
DECFSZ REG1,F
GOTO RETBUCL
DECFSZ REG2,F
GOTO RETBUCL2
DECFSZ REG3,F
GOTO RETBUCL3
RETURN
END