TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: AzucenaXP en 02 de Abril de 2004, 16:34:00

Título: adquisicion datos¿?
Publicado por: AzucenaXP en 02 de Abril de 2004, 16:34:00
Hola a todos!

Alguien sabe como puedo realizar un sistema de adquisicion de datos empleando el pic 16f877a?, ...tambien me sirve con un adc0808 conectado al puerto paralelo (no he podido ponerlo a funcionar).

Necesito adquirir voz para realizar un sistema de modulacion qpsk, por medio de labView o Matlab pero he tenido problemas con la adquisicion de los datos en el pc.

Saludos!
Título: RE: adquisicion datos¿?
Publicado por: Epacho en 03 de Abril de 2004, 11:27:00
hola Azucena
Tengo una subrutina de configuracion del A/D en un pic 16F871 el cual lo puedes adaptar al 16F877 nose que resultado tenga en el 16F877A pero tienes que probarlo. Suerte

list p=16f871
   #include <p16f871.inc>

   __config h"3939"   


TEMP0      equ   0x21         ;DECLARA VARIABLES EN RAM
TEMP1      equ   0x22
Contador1   equ   0x23      ;variable para demora

   org   0x00
   goto   princi



;;;;;;;;Configurar puertos de entrada y salida
;;;;;;;;;;configurar A/D
princi
   bsf   STATUS,RP0      ;Pasamos al banco1 de la memoria
   clrf   TRISD         ;Puerto D sea como salida
   clrf   TRISC
   movlw   0xFF
   movwf   TRISB
   movlw   0x00
   movwf   OPTION_REG         
   bsf   TRISA,0         ;ingreso RA0
   bcf   STATUS,RP0      ;Pasamos al banco 0
   clrf   PORTD         ;Reset puerto D
   clrf   TEMP0         ;Enceramos registros temporales
   clrf   TEMP1


   


lup   bsf   STATUS,RP0      ;Pasamos al banco 1
   movlw   b"00001110"      ;CONFIGURA ENTRADA ANALOGIA AN0
   movwf   ADCON1
   bcf   STATUS,RP0      ;bank0
   movlw   b"10000001"      ;  DE Fosc/32
   movwf   ADCON0   
      
;;;;;demora de tiempo de adquisicion
   call   t_ad
   
;;;;START CONVERSION;;;;;;;;;;;;;;;;;;;;;;;;;;   
   bcf   STATUS,RP0      ;bank0
   bsf   ADCON0,2      ;GO/DONE=1   

;;;;;;;;;espera si se completa la conversion
lupe_con btfsc   ADCON0,2
   goto   lupe_con
   bsf   STATUS,RP0      ;bank1
   movf   ADRESL,w      ;COLOCA ADRESH:ADRESL
   movwf   TEMP0      
   bcf   STATUS,RP0      ;bank0
   movf   ADRESH,w
   movwf   TEMP1
   bcf   STATUS,C
   movf   TEMP1,w         
   movwf   PORTD         ;mandamos dato a PORTD
   call   t_ad   
   call   t_ad
   goto   lup

;Demora
t_ad   movlw   d"26"
   movwf   Contador1
bucle   decfsz   Contador1,f
   goto   bucle
   return   

   end
Título: RE: adquisicion datos¿?
Publicado por: AzucenaXP en 03 de Abril de 2004, 15:57:00
Gracias!

Lo voy a adaptar al chip que tengo y ojala me funcione pues solo tengo esta semana para terminar el proyecto.

Saludos!