Está en la página 1de 4

;Convertidor Analógico Digital

;el ADC del pic es de 10 bits lo que hace 1024 niveles de voltaje

;Palabra de configuración

__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_ON & _BOR_OFF &
_CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC

__CONFIG _CONFIG2, _WRT_OFF & _BOR40V

LIST P=16f887

#include "p16f887.inc"

;********************************

Pricipal

org 0x0000 ;

;acceso a los bancos

banksel TRISB ; acceso al banco que contiene TRISB

clrf TRISB ; El puerto B se configura como salida

movlw B'00001100' ; mueve una literal en binario al registro W

movwf TRISA ; el valor dell registro W se mueve a los


pines RA2,A3 para ser configurados como entradas
banksel ANSEL ; acceso al banco que contiene el registro
ANSEL

movlw B'00001100' ; el Canal AN2,AN3 son analógicos

movwf ANSEL ; los demás bits de ansel son digitales

clrf ANSELH ;

banksel ADCON1 ; acceso al registro ADCON1

bsf ADCON1,ADFM ; el resultado de la conversión es justificado a


la derecha

bcf ADCON1,VCFG1 ; el voltaje de referencia es negativo

bsf ADCON1,VCFG0 ; el Voltaje de referencia es positivo a


través del pin RA3

banksel ADCON0 ; selección del banco que contiene ADCON0

movlw B'00001001' ; mueve una literal al registro W

movwf ADCON0 ; el valor de W habilita al convertidor AD


para una frecuencua de reloj Fosc/2 [ADCS1=0, ADCS0=0], [Canal CHS1=1,
ADON=1]

;CHS3=0 CHS2=0 CHS1=1 CHS0=0 Channel,


Pin RA2 es el bit para la conversión

loop

banksel ADCON0 ; acceso al registro ADCON0

btfsc ADCON0,1 ; Tests bit GO/DONE

goto loop ; Conversión en progreso

banksel ADRESL ; acceso al registro ADRESL

movf ADRESL,w ; el bit de menor valor se mueve a W

banksel PORTB ; acceso al puerto B

movwf PORTB ; el valor de W se mueve al PiertoB

bsf ADCON0,1 ; emoieza otra conversión


goto loop ; lazo

end ; fin

Ya

;Segundo MICRo 
;

;Palabra de configuración 

__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

LIST P=16f887
#include "p16f887.inc"

;***** Variables *****


    Cblock 0x20 ; 

    endc ; 
;;***** Estructura *****
    ORG 0x00 ; 

;goto Main ; 
    ORG 0x04 ; 
goto Main ; 
Main ; 
    banksel TRISB ; 
    clrf TRISB ; 
    banksel PORTB ; 
    movlw 0xff ; 
    movwf PORTB ; 
Loop 
    goto Loop ; 
    End
 
;rOTAR UN BIT
;
;

;Palabra de configuraci󮠍

__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

LIST P=16f887
#include "p16f887.inc"

;********************************
cblock 0x20 ;
counter1 ;
endc

org 0x0000 ;
banksel OSCCON ;

bcf OSCCON,6 ;
bcf OSCCON,5 ;
bcf OSCCON,4
bsf OSCCON,0 ;
banksel TRISB ;
clrf TRISB ;
banksel PORTB ;
loop
movlw B'01010101' ;
movwf PORTB ;
movlw h'FF' ;
movwf counter1 ;
loop1
decfsz counter1 ;
goto loop1 ;

movlw B'10101010' ;
movwf PORTB ;
movlw h'FF' ;
movwf counter1 ;
loop2
decfsz counter1 ;
goto loop2 ;
goto loop
end

También podría gustarte