Está en la página 1de 4

;_-_-_-_-_-_-W W W . C O S A S D E I N G E N I E R I A .

C O M_-_-_-_-_-_;_-_-I N G-_-__-_-_-_-_-_-_-_-_-_;_-_-D E S C R I P C I O N_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;


;
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
;
;_-_-F E C H A _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;
;_-_-V E R S I O N
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;
;_-_-_-_-_-_-_-_-W W W . M E X A T R O N I C A . C O M_-_-_-_-_-_-_-_-_-_;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_#INCLUDE <P16F1826.INC>
;DECLARO LA LIBR
ERIA DEL MICROCONTROLADOR CORRESPONDIENTE
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;P A L A B R A D E C O N F I G U R A C I O N
D E L M I C R O C O N T R
O L A D O R
__config
_CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_
OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
__config
_CONFIG2, _WRT_OFF & _PLLEN_ON & _STVREN_ON & _BORV_19 &
_LVP_OFF
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;PLLEN_ON MULTIPLICADOR DE FRECUENCIA
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ERRORLEVEL -302
; ELIMINO DE LA
VENTANA DE COMPILACION EL ERROR 302
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_CBLOCK 0X120
LOS REGISTROS DE PROPOSITO GENERAL A USAR (VARIABLES) DEN BANCO 2

;DECLARO

ENDC
CBLOCK 0X70
;DECLARO LOS REGISTROS DE PROPOSITO GENERAL A USAR (VARIABLES) REGISTROS QUE EST
AN EN TODOS LOS BANCOS
T3,T2,T1, CONTADOR, STATUS_TEM,W_TEM,ALTO
;SOLO PUEDEN SER 15 REGISTROS
ENDC
#DEFINE PWM
LATB,0
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ORG
0X00
GOTO INICIO

;DECLARO EL VECTOR DE INICIO O RESET


;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ORG
0X04
ISR
;ATENCION DE INTERRUPCION (INTERRUPT SERVIS REGI
STER)
MOVWF W_TEM
SWAPF STATUS,W
;INTERCAMBIA NIBLES ALTO POR BAJ
O Y SE GUARDA EN W
MOVWF STATUS_TEM
BTFSS
INTCON,2
GOTO
SALIR
INCF
CONTADOR,1
;SE INCREMENTA SI SE GENERA INTE
RRUPCION POR DESBORDE DE TMR0
MOVLW .200
SUBWF CONTADOR,0
;SE PONE 0 PARA QUE REGISTRO SE GUARDE E
N W
BTFSS
STATUS,Z
GOTO
BAJO
CLRF
CONTADOR
BSF
PWM
BAJO
MOVF
SUBWF
BTFSS
GOTO
BCF

ALTO,W
CONTADOR,0
STATUS,Z
ACTUALIZA_TMR0
PWM

ACTUALIZA_TMR0
MOVLW .99
MOVWF TMR0
BCF

INTCON,2

SALIR
SWAPF
MOVWF
SWAPF
SWAPF

STATUS_TEM,W
STATUS
W_TEM,F
W_TEM,W
RETFIE
; DECLARO EL VECTOR DE INTERRUPCION
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_INICIO:
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;Configurar Registro de oscilacin
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_MOVLW

BANKSEL OSCCON
B'11110000'

;CONFIGURO EL RE

GISTRO OSCCON 32MHz


MOVWF
OSCCON
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;Configurar Puertos intercambiables

;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-

RO LOS REGISTROS

BANKSEL APFCON0
MOVLW
B'00000000'
APFCON0 Y APFCON1
MOVWF
APFCON0
CLRF

;CONFIGU

BANKSEL APFCON1
APFCON1

;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;Configurar Puertos Digitales/Analgicos
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_BANKSEL ANSELB
CLRF ANSELB
;DESHABI
LITO LOS CANALES ANALOGICOS
CLRF ANSELA
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;Configuracin de Puertos Entradas y salidas digitales
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_BANKSEL TRISB
CLRF

TRISB

;CONFIGURO PORTB SALIDA


CLRF
BANKSEL LATB
CLRF
CLRF

TRISA
LATB
LATA

;-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_PWM -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_BANKSEL INTCON


MOVLW B'10100000'
LITA INTERRUPCION POR TMR0
MOVWF INTCON

;HABILITA INTERRUPCIONES GLOBALES Y HABI

BANKSEL OPTION_REG
MOVLW B'00000111'
R DE 256
MOVWF OPTION_REG

;OPTION_REG CON PRESCALE

BANKSEL TMR0
MOVLW .99
MOVWF TMR0
CLRF
CONTADOR
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_; P R O G R A M A P R I N C I P A L
PROGRAMA:
MOVLW .100

MOVWF
GOTO

ALTO
PROGRAMA

;SALTO A
LA ETIQUETA PROGRAMA
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_; S U B R U T I N A S
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_; S U B R U T I N A D E R E T A R D O
RETARDO:
;RETARDO CALCULADO A 1 SEGUNDO C
ON OSCILADOR A 32 MHz
MOVLW .80
MOVWF T3
OTRA1
MOVLW .200
MOVWF T2
OTRA
MOVLW .166
MOVWF T1
DECFSZ T1,F
GOTO
$-1
DECFSZ T2,F
GOTO
OTRA
DECFSZ T3,F
GOTO
OTRA1
RETURN
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_END
;D I R E C T R I Z QUE INDICA FINAL DEL PROGRAMA