1. ;CONTADOR UP/DOWN
LIST P=16F88
#INCLUDE <P16F88.INC>
; ======================= DIRECTIVA DE CONFIGURACION DE FUSIBLES ==============
__ CONFIG _CONFIG1, _XT_OSC & _MCLR_ON & _LVP_OFF & _CP_OFF & _WDT_OFF ;FUSIBLES MAS IMPORTANTES
;NO OLVIDAR ACTIVAR _MCLR_ON
; ======================= DECLARAR FSR A UTILIZAR ==============================
TRISA EQU 0X85
TRISB EQU 0X86
PORTA EQU 0X05
PORTB EQU 0X06
;======================= DECLARAR PGR A UTILIZAR ==============================
DELAY1 EQU 0X20
DELAY2 EQU 0X21
;=================================== INICIO DEL PROGRAMA =================================
RESET ORG 0X00
GOTO PREINICIO
ORG 0X05
;====================================== RUTINA DE RETARDO ===================================
RETARDO MOVLW D'150'
MOVWF DELAY1
TOP2 MOVLW D'150'
MOVWF DELAY2
TOP1
DECFSZ DELAY2
GOTO TOP1
DECFSZ DELAY1
GOTO TOP2
RETLW 0X00
2. ;================================== CONFIGURACION DE PREINICIO =============================
PREINICIO MOVLW 0X20
MOVWF STATUS ;ME UBICOEN EL BANCO 1 PARA CONFIGURAR PUERTOS MEDIANTE TRISA Y TRISB
CLRF TRISB
MOVLW 0XFF
MOVWF TRISA
CLRF ANSEL ;CONFIGURANDO PUERTO A COMO E/S DIGITAL
MOVLW 0X07
MOVWF CMCON
CLRF STATUS ;RETORNO AL BANCO 0
CLRF PORTA
CLRF PORTB
;================================= INICIO DEL PROGRAMA ======================================
INICIO BTFSS PORTA,0X0 ;PREGUNTA SI EL CLOCK SE ACTIVA O NO
GOTO INICIO
CALL RETARDO ;RETARDO PARA ELIMINAR LOS REBOTES
BTFSS PORTA,0X1 ;PREGUNTA SI LA CUENTA ES UP/DOWN
GOTO DECREMENTO
INCREMENTO INCF PORTB,D
GOTO PREGUNTA
DECREMENTO DECF PORTB,D
PREGUNTA BTFSC PORTA,0X0
GOTO PREGUNTA
GOTO INICIO
;============================ DIRECTIVA DE FIN DE PROGRAMA ====================
END