Autor Tema: COMO MEDIR PULSO CARIADIACOS  (Leído 2332 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jhefren

  • PIC10
  • *
  • Mensajes: 42
COMO MEDIR PULSO CARIADIACOS
« en: 26 de Octubre de 2005, 09:14:00 »
Quiero realizar una practica donde se puedan medir los pulsos del
corazon y mostrarlos en una pantalla de lcd. En este foro he leido
algo sobre como medirlos.  Uno de los métodos consisten en usar los
latidos del corazon para activar una interrupcion externa y medir la
longitud entre pulso y pulso



configure un pic 16f84 para que entrara en interrupcion por el portb,0
cada vez que entra en interrupción, utilizo un bit testigo, para indicar
inicio o parada de conteo en un registro X, cuando entra en la interrupcion
testeo un bit, si este bit esta a uno comienza conteo. despues use un
retardo para que incrementara un registro cada milisegundo. a continuacion
muestro una parte de como incrementa:

#DEFINE         BIT_CONTEO CONTEO,0   ;BIT TESTIGO QUE ACTIVO O DESACTIVA CONTEO


bucle:       BTFSS  BIT_CONTEO  ;PREGUNTA SI EMPIEZA A CONTA, SINO SIGUE
                GOTO   NO_CUENTA
                INCFSZ CON_P,1     ;INCREMENTA registro CON_P Y SALTA SI ES CERO
                GOTO   DEL_1
                INCF   CONTA_1,1   ;VERIFICA SI HAY DESBORDAMIENTO DE REGISTRO
                BCF    PORTA,2
DEL_1      CALL   DELAY_1MS   ;
                BSF    PORTA,2
                GOTO   bucle

NO_CUENTA       BTFSC  BIT_CONTEO  ;PREGUNTA SI EMPIEZA A CONTA, SINO SIGUE
                NOP
                CLRF   CON_P
                CLRF   CONTA_1
                GOTO   bucle

como se ve uso dos registros para contar uno llamado CON_P y otro llamado CONTA_1
esto es para tener una resolucion de 16 bit o 65535. cuando entra en interrupcion
hice el siguente condigo:


INTER:      BTFSS  INTCON,1    ;VERIFICO SI ES UNA INT EXTERNA SI LO ES SALTA
                RETFIE             ;FIN DE INTERRUPCION
START_CON       MOVLW  B"00000000"  ;DESACTIVO INTERRUPCION EXTERNA RB0 Y RB4-RB7
                MOVWF  INTCON
                BTFSC  BIT_CONTEO  ;SALTA A INICIAR CONTEO
                GOTO   STOP_CON    ;SALTA A PARAR CONTEO
                BSF    BIT_CONTEO  ;SEÑALIZADOR DE INICIO DE CONTEO A 1
                MOVLW  B"10010000" ;ACTIVO INTERRUPCION EXTERNA RB0 Y RB4-RB7
                MOVWF  INTCON
                RETFIE
                ;
STOP_CON:       ;
                MOVF   CONTA_1,0
                MOVWF  H_BYTE      ;SACO DATO DE REGISTRO BAJO Y LO GURADOEN L_BYTE
                MOVF   CON_P,0
                MOVWF  L_BYTE      ;SACO DATO DE REGISTRO ALTO Y LO GUARDO EN H_BYTE
                CALL   B2_BCD      ;CONVIERTE EN BCD
                CALL   MUESTRA     ;MUESTRA EN DISPLAY LCD

                BCF    BIT_CONTEO  ;SAÑALIZADOR DE INICIO A 0    
                MOVLW  B"10010000" ;ACTIVO INTERRUPCION EXTERNA RB0 Y RB4-RB7
                MOVWF  INTCON
                RETFIE

Con estas rutina y usando como circuito de prueba un 555 en modo astable para
generar un oscilador de 1 Hz, tengo que en la pantalla de el LCD me muestra el
valor 62720 hasta 62976, hay variancion cuando cuenta y como retardo hice lo
siguiente:

DELAY_1MS:      CLRF   TOPTION  
                MOVLW  04H
                MOVWF  TOPTION  ;cargo registro TMR0 con 4
DECRE_A:        BTFSS  INTCON,2 ;espera que se desborde TMR0 y sale
                GOTO   DECRE_A
                BCF    INTCON,2
                RETURN

Esto me da un retardo creo que de 1 mseg.  no se si esto esta malo si me puede
ayudad muchas gracias.

Yo se que hay una forma de usar el contador interno, he tratado de hacerlo, pero no
he podido configurar el registro option para que me inicie un conteo cada vez
que entra en interrupcion y luego parar cuando salga de él y ademas
tengo muchas confusiones con el uso de los retardos no se si lo hago bien

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: COMO MEDIR PULSO CARIADIACOS
« Respuesta #1 en: 26 de Octubre de 2005, 14:34:00 »
Creo haber leido aquí que usan un transductor basado en un led y una LDR, que atraves del deo con los latidos varia la luminosidad que recibe la LDR.

Y según recuerdo esto lo metian al conversor Analogico/Digital, pero puedes seguir usando el 84A, y hacerlo pasar por un comparador basado en un AO y de ahi al PIC.
Si juegas contra el mejor, pierdes como los demás.

Desconectado jhefren

  • PIC10
  • *
  • Mensajes: 42
RE: COMO MEDIR PULSO CARIADIACOS
« Respuesta #2 en: 27 de Octubre de 2005, 14:28:00 »
 Si Radon es verdad, pero estuve buscando y una solucion posible es activar el contador tmr con el con cada latido eso se haria analizando la llegado de los pulsos
cuando el pulso este en alto en espera para conta y despues cuando esta en bajo el cuenta, una aplicacion de microchip tiene una rutina para un frecuencimetro que es la AN592, estoy analizando la rutina donde hace conteos de baja frecuencia



 

anything