Вы находитесь на странице: 1из 3

#INCLUDE P16F877A.

INC
ORG 0X00
TMR0_CARGA EQU .66
INICIO
CALL INITE
CALL HABILITAR_DE
CALL INIT_TMR0

BUCLE
CLRF TMR0
ESPERAR_DESBORDE
BANKSEL INTCON
BTFSS INTCON,T0IF
GOTO ESPERAR_DESBORDE
MOVLW 0XFF
XORWF PORTE
BCF INTCON, T0IF
GOTO BUCLE

INITE
BANKSEL TRISE
CLRF TRISE
BANKSEL PORTE
CLRF PORTE
RETURN
HABILITAR_DE
BANKSEL STATUS
BSF STATUS,RP0
BANKSEL ADCON1
MOVLW 0X07
MOVWF ADCON1
RETURN
INIT_TMR0
MOVLW TMR0_CARGA
MOVWF TMR0
BCF INTCON,T0IF
BANKSEL OPTION_REG
MOVLW B'00000111' ; Reloj interno con pre-escalador1:256
MOVWF OPTION_REG
RETURN
END

List P=16F877A ; Procesador PIC16f84A


#include "p16f877a.inc" ;Incluye las librerias
;Definimos salida del LED
#DEFINE DATO PORTE,0

CBLOCK 0x0C
ENDC

;CODIGO
ORG 0
INICIO
BSF STATUS,RP0
BCF DATO
MOVLW B'00000111'
MOVWF OPTION_REG ;Prescaler de 64 asigando al TMR0
BCF STATUS,RP0
START
BCF DATO ;Comienza apagado
CALL Timer0_97ms ;Esperamos 10ms
BSF DATO ;Encendemos el LED
CALL Timer0_97ms ;Esperamos 10ms
GOTO START

TMR0_Carga97ms EQU .66


Timer0_97ms
MOVLW TMR0_Carga97ms ;Carga el Timer0 con el valor que queremos
MOVWF TMR0
BCF INTCON,T0IF ;Reseteamos el Flag de desbordamiento del
TMR0
Timer0_Desbordamiento
BTFSS INTCON,T0IF ;�Se ha desbordado el TMR0?
GOTO Timer0_Desbordamiento ;A�n no, Repite.
RETURN

END

#INCLUDE P16F877A.INC
org 0X0
CALL INITE
CALL INIT_TMR0

BUCLE
CLRF TMR0
ESPERAR_DESBORDE
BANKSEL INTCON
BTFSS INTCON, T0IF
GOTO ESPERAR_DESBORDE
MOVLW 0XFF
XORWF PORTE
BCF INTCON, T0IF
GOTO BUCLE

INITE
BANKSEL TRISE
CLRF TRISE
BANKSEL PORTE
CLRF PORTE
BANKSEL STATUS
BSF STATUS,5
BCF STATUS,6
BANKSEL ADCON1
MOVLW 0XAF
MOVWF ADCON1
RETURN
INIT_TMR0
BANKSEL TMR0
MOVLW 0X66
MOVWF TMR0
CLRF INTCON
BANKSEL OPTION_REG
MOVLW B'00000111' ; Reloj interno con pre-escalador1:256
MOVWF OPTION_REG
RETURN
END

Вам также может понравиться