List p=16f887 ; list directive to define processor
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
; __CONFIG _CONFIG1, 2007h; LAS PALABRAS DE CONFIGURACION DE ARRIBA EN HEXA
;__CONFIG _CONFIG2, 2008h
CBLOCK 20H
RESULTHI, RESULTLO, DATO, DATO1 ;variables del conversor
ENDC
CONT1 EQU 0x20 ;variables del lcd
CONT2 EQU 0x21
ORG 0X00 ;INICIO
BANKSEL OSCCON
MOVLW b'11101000' ; Oscilador interno estable a 8MHz.
MOVWF OSCCON
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%CONVERSOR ANALOGICO A DIGITAL%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;
BANKSEL ADCON1 ; SELECCIONAR BANCO DONDE SE ENCUENTRA ADCON1
MOVLW B'10000000' ;
MOVWF ADCON1 ; ESTABLECER BITS JUSTIFICADO A LA DERECHA
;
BANKSEL ADCON0 ; SELECCIONAR BANCO
MOVLW B'10000000'
MOVWF ADCON0 ; ESTABLECER BITS DE CONFIGURACION DE RELOJ 4uS FOSC/32
BANKSEL ANSEL
BSF ANSEL,0 ; ESTABLECER PUERTO RA0 COMO ANALOGICO
BANKSEL TRISA
BSF TRISA,0 ; ESTABLECER PUERTO RA0 COMO ENTRADA
BANKSEL ADCON0
BSF ADCON0,0 ;HABILITAR EL CONVERTIDOR
CALL RETARDO
BSF ADCON0,1 ;COMIENZA CONVERSION (HABILITA GO/DONE)
CHEKEAR BTFSC ADCON0,1 ;CHEKEA SI EL BIT GO SE APAGO SI APAGA SALTA
GOTO CHEKEAR
CALL RETARDO
BANKSEL ADRESH
MOVFW ADRESH ; MOVER EL VALOR PICO POSITIVO DE LA CONVERSION A W
MOVWF RESULTHI ; GUARDAR EL VALOR EN LA VARIABLE
BANKSEL ADRESL
MOVFW ADRESL ;MOVER AL W EL VALOR PICO MINIMO
MOVWF RESULTLO ; MOVER A LA VARIABLE ESE VALOR
;MOVF RESULTHI,PORTB
;MOVF RESULTHI,PORTA
;MOVF RESULTLO,PORTC
;%%%%%%%%%%%%%%%%RETARDO%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;
RETARDO
MOVLW D'39' ;INICIALIZAR DATOS
MOVWF DATO1
SEGUNDO
MOVLW D'255'
MOVWF DATO
PRIMERO
NOP;PERDER TIEMPO
DECFSZ DATO; DECREMENTO Y SALTA SI IGUAL 0
GOTO PRIMERO
DECFSZ DATO1; DECREMENTO Y SALTA SI IGUAL 0
GOTO SEGUNDO
RETURN
END