Programación Específica > Microcontroladores

 Codigo Adc Pic18f877

(1/1)

jcjorque:
hola: si alguien me puede ayudar, prestar o regalar  un codigo para transformar señales analogas en digitales en un PIC18F877, seria de gran ayuda para mi proyecto, muchas gracias.

© Jonathan ©:
HOla, Aqui te paso un codigo verificado. Saludos :)


--- Código: Text --- ;*****************************************************;lee un valor analogico por el AN0;y escribe el resultado binario por el puerto D;;*****************************************************   List  p=16F877a  &#59;procesador  #include  <P16F877a.INC>&#59;registros internos    org    0x000  &#59;vector reset  goto  inicio  &#59;va a inicio  nop  org    0x005  &#59;vector interrupcioninicio  clrwdt      &#59;borra watch-dog  bcf    STATUS,RP1      bsf    STATUS,RP0 &#59;banco 1            movlw  B'11111111'    movwf  TRISB      movlw  b'00000000'  movwf  TRISD  movwf  TRISC  &#59;portc salida    movwf  PIE2  movlw  b'00000010'  movwf  PIE1  &#59;cambiar bit 6  movlw  b'00000111'&#59;prescaler TMR0 1:256  movwf  OPTION_REG  movwf  b'00100000'&#59;habilitada intrr TMR0  movwf  INTCON  movlw  b'11111111'  movwf  PR2  movlw  B'10000000'    movwf  ADCON1  &#59;justificacion<7>,conf port<3:0>          &#59;se activan todos los ADC,vref+=RA<3>,vref-=vss            bcf    STATUS,RP0&#59;banco 0  movlw  b'00101101'  movwf  CCPR1L  movlw  b'00111111'  movwf  CCP1CON  movlw  b'01111111'  movwf  T2CONconv0  clrwdt        &#59;borra watch-dog  movlw  B'10000001'     &#59;81h-->w  movwf  ADCON0         &#59;fosc/32<7:6>,adc0<5:3>,go/done<2>,adc on<0>  bcf    PIR1,ADIF  &#59;borra PIR1adc0   clrwdt        &#59;borra watch-dog  btfss  INTCON,T0IF    &#59;T0IF indica interrupcion por final            &#59;de temorizacion(overflow)            &#59;intcon<2>=1?  goto  adc0           &#59;si.va a conv  bcf    INTCON,T0IF    &#59;no.borra intcon<2>  bsf    ADCON0,GO     &#59;adcon0<2>=1            &#59;GO/DONE=estado de conversion            &#59;GO/DONE=0-->done            &#59;GO/DONE=1-->go            &#59;comienza conversion A/D                  retraso0  clrwdt        &#59;borra watch-dog  btfss  PIR1,ADIF  &#59;pir1<6>=1?  goto   retraso0       &#59;no.va a retraso   bsf    STATUS,RP0  &#59;banco 1                    banksel ADRESL         &#59;si.adc_lsb-->w  movf    ADRESL,w       &#59;adc_lsb-->w  bcf    STATUS,RP0    movwf  PORTD    movwf  CCPR1Lbucle  btfss  PIR1,TMR2IF  goto  bucle  clrf  PIR1  goto conv0  end   

Navegación

[0] Índice de Mensajes

Ir a la versión completa