Está en la página 1de 2

El conversor anlogo a digital es un dispositivo que me permite digitalizar seales, en este caso vamos a medir el voltaje por el pin

AN1 y si es mayor a 2.5 voltio s activamos el LED conectado en GP2. LIST P=12F675 INCLUDE P12F675.INC ERRORLEVEL -302 ; Trabajamos con un oscilador interno a 4Mhz __CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _I NTRC_OSC_NOCLKOUT CBLOCK 0X20 d1, d2, VALOR ENDC ORG 00 GOTO INICIO RET10MS ;9998 cycles movlw 0xCF movwf d1 movlw 0x08 movwf d2 Delay_0 decfsz d1, f goto $+2 decfsz d2, f goto Delay_0 ;2 cycles goto $+1 RETURN INICIO NOP CLRF GPIO MOVLW B'00000111' ; 07H Configuro GP1, GP2, GP3 como pines MOVWF CMCON ; digitales y no del comparador del micro BANKSEL OSCCAL CALL 3FFH ; Obtengo el valor de calibracion del oscilador MOVWF OSCCAL ; y lo calibro con el OSCCAL BANKSEL ADCON0 ; Configuro el AD MOVLW B'00000101' ; 7 6 5 4 3 2 1 0 MOVWF ADCON0 ; justifico derecha, no uso, no uso, Vdd, canal AN1, GO, ad ON BANKSEL ANSEL MOVLW .2 MOVWF ANSEL ;CONFIGURO GP1/AN1 COMO ENTRADA ANALOGA MOVLW .2 MOVWF TRISIO BANKSEL GPIO CICLO CALL RET10MS BSF ADCON0,GO ; Inicio conversion BTFSS ADCON0,GO ; Espero a que finalice la conversion

GOTO $-1 ; Conversion finalizada BANKSEL ADRESH MOVF ADRESH,W ; Paso el dato tomado por el conversor a W BANKSEL VALOR MOVWF VALOR ; Almaceno el dato MOVLW .128 ; pregunto si el dato es mayor a .128 SUBWF VALOR,W BTFSS STATUS,C GOTO MENOR ; Si el dato es Menor GOTO MAYOR ; Si el dato es Mayor MENOR BCF GPIO,2 BSF GPIO,0 GOTO CICLO MAYOR BSF GPIO,2 BCF GPIO,0 GOTO CICLO END

También podría gustarte