• Domingo 17 de Noviembre de 2024, 03:32

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - propic_00

Páginas: [1]
1
Microcontroladores / calculo de la frecuencia de muestreo
« en: Viernes 30 de Abril de 2010, 07:22 »
Hola a todos quiero comentarles lo siguiente estoy realizando un sistema de adquisición de datos y no puedo configurar la frecuencia de muestreo  del conversor análogo digital para poder transmitir las muestras adecuada mente estoy tratando de asarlo por software y estoy utilizando el pic 16f877a programado en assembler  no logro entender bien como secar la frecuencia de muestreo necesito de su ayuda por favor envínenme ejemplos o explicaciones que serán de gran utilidad para culminar mi proyecto se los agradezco :mellow:  :mellow:

2
Microcontroladores / transmicion serial de la señal ECG a una PC
« en: Sábado 10 de Abril de 2010, 20:24 »
Hola todos me urge salir de esta dificultad bueno les cuento estoy transmitiendo datos de la señal ecg a través del pic 16f877a de forma serial a una pc paro estos datos cuando los visualizo la señal me sale incompleta  osea parese que se perdiera infornacion.
Como puedo almacenar cierta cantidad de datos por lo menos 150 datos en la memoria del pic para luego enviarlas en paquetes de datos  en forma serial a la pc y poder eliminar este problema
por favor necesito ayuda si me pueden mandar algunos ejemplos de cómo hacerlo a alguna explicación se los agradecería
 aqui les dejo el codigo de programa;
list      p=16f877a                   ; list directive to define processor
   #include <p16f877a.inc>        ; INCLUIMOS LAS DEFINICIONES DEL PIC  TILIZADO
   
   #define BANCO_1 bsf STATUS,RP0   ;DEFINICION DE BANCO 1
   #define BANCO_0 bcf STATUS,RP0  ;DEFINICION DE BANCO 0
   ERRORLEVEL -306, -302            ;QUITAMOS LOS ERRORES DE BANCO EN MPLAB  
   RADIX HEX                       ; sistema de numeracion hexadecimal

   __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _LVP_ON& _DEBUG_OFF & _CPD_OFF
 
  Contador   equ   0x21   ; Registro utilizado para demora.
; ***********************************
; *    DEFINICION DE ETIQUETAS      *
; ***********************************
   org 0
   goto inicio
 
; **************************************************
; *    RUTINA DE INICIO, AUQI CONFIGURAMOS EL PIC  *
; **************************************************
inicio
    clrf       PORTA
    clrf   PORTB
    bsf   STATUS,RP0   ;Selecciona banco 1
    movlw   b'00001110'
    movwf   ADCON1      ;Puerta A E/S digitales
    clrf   TRISB      ;Puerta B se configura como
 
 BANCO_1
   clrf   PORTC  
   movlw      b'10111111'
   movwf      TRISC
   movlw      b'00100100'   ; SYNC=0 (asincrono) y BRGH = 1 (alta velocidad)
   movwf      TXSTA
   movlw      .129                            
   movwf      SPBRG     ;9600 CON UN CRISTAL DE 20MHz
   BANCO_0
   bsf   RCSTA,SPEN   ;USART en On
 

Init_ADC
         BANCO_0
          movlw   b'10000001'
          movwf   ADCON0
 Loop     bsf   STATUS,RP0   ;Selecciona página 1
          movlw b'00000001'
          movwf TRISA      ;Puerta A entradas
          clrf   ADCON1      ;Puerta A entradas analógicas
          bcf   STATUS,RP0                 ;Selecciona página 0
          bcf   PIR1,ADIF                 ;Restaura el flag del
          nop
          nop    
          bsf     ADCON0,GO_DONE      ;inicializa la conversion
ADC_TERNINO
          btfss    PIR1,ADIF   ;Fin de conversión ??
          goto     ADC_TERNINO          ;espera a terminar la conversion
          bsf   STATUS,RP0   ;Selecciona banco 1
          movlw b'00001110'
          movwf ADCON1          
          BANCO_0
          movf      ADRESH,w
          andlw     b'11111111'        
          BANCO_0
          movwf     TXREG   ;el resultado es retornado  (8bits)
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
   allsend
         BANCO_1       ; Banco 1  
         btfss  TXSTA,TRMT        ; byte transmitido ?????
         goto    allsend         ; No pues espera
         BANCO_0
         call  Demora_150us  
         goto Loop

Demora_150us   
              movlw   d'48'
              movwf   Contador
              decfsz   Contador
              goto   $-1
              return

    END:

3
Microcontroladores / Comunicación serial pic 16f877 graficar datos en labview
« en: Jueves 18 de Marzo de 2010, 01:34 »
Hola ha todos estoy tratando de realizar la comunicación del puerto seria con labview  pero ni problema esta que cuando trato de graficar la  los datos que llagan por el puerto serial no me funciona la grafica de la señal ECG,  debería ser igual a la del osciloscopio pero no lo es no sé si es el software que está mal diseñado o la Interfax   porfa  si alguien puede ayudarme se lo agradecería  
Aquí le dejo el programa que diseñe

list      p=16f877a            ; list directive to define processor
   #include <p16f877a.inc>        ; INCLUIMOS LAS DEFINICIONES DEL PIC  TILIZADO
   
   #define BANCO_1 bsf STATUS,RP0   ;DEFINICION DE BANCO 1
   #define BANCO_0 bcf STATUS,RP0  ;DEFINICION DE BANCO 0
   ERRORLEVEL -306, -302            ;QUITAMOS LOS ERRORES DE BANCO EN MPLAB  
   RADIX HEX                       ; sistema de numeracion hexadecimal

   __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _LVP_ON& _DEBUG_OFF & _CPD_OFF
 
; ***********************************
; *    DEFINICION DE ETIQUETAS      *
; ***********************************
   org 0
   goto inicio
 
; **************************************************
; *    RUTINA DE INICIO, AUQI CONFIGURAMOS EL PIC  *
; **************************************************
inicio
    clrf       PORTA
    clrf   PORTB
    bsf   STATUS,RP0   ;Selecciona banco 1
    movlw   b'00000110'
    movwf   ADCON1      ;Puerta A E/S digitales
    clrf   TRISB      ;Puerta B se configura como
 
 BANCO_1
   clrf   PORTC   
   movlw      b'10111111'
   movwf      TRISC
   movlw      b'00100100'   ; SYNC=0 (asincrono) y BRGH = 1 (alta velocidad)
   movwf      TXSTA
   movlw      .129                            
   movwf      SPBRG     ;9600 CON UN CRISTAL DE 20MHz
   BANCO_0
   bsf   RCSTA,SPEN   ;USART en On
 

Init_ADC
         BANCO_0
          movlw   b'10000001'
          movwf   ADCON0
 Loop     bsf   STATUS,RP0   ;Selecciona página 1
          movlw b'00000001'
          movwf TRISA      ;Puerta A entradas
          clrf   ADCON1      ;Puerta A entradas analógicas
          bcf   STATUS,RP0                 ;Selecciona página 0
          bcf   PIR1,ADIF                 ;Restaura el flag del
          nop
          nop    
          bsf     ADCON0,GO_DONE      ;inicializa la conversion
ADC_TERNINO
          btfss    PIR1,ADIF   ;Fin de conversión ??
          goto     ADC_TERNINO          ;espera a terminar la conversion
          bsf   STATUS,RP0   ;Selecciona banco 1
          movlw b'00000110'
          movwf ADCON1           
          BANCO_0
          movf      ADRESH,w
          andlw     b'11111111'        
          BANCO_0
          movwf     TXREG   ;el resultado es retornado  (8bits)
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
 
 allsend
         BANCO_1       ; Banco 1  
         btfss  TXSTA,TRMT        ; byte transmitido ?????
         goto    allsend         ; No pues espera

         goto Loop
    END

Páginas: [1]