Вы находитесь на странице: 1из 48

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Programa Ingeniera Electrnica

Asignatura Instrumentacin Mdica Trabajo Colaborativo Unidad 2

Presentado a: Tutor SAULO A. GMEZ

Presentado por: ALVARO J. GOMEZ HERNANDEZ COD. 91297153 JAVIER ALEXANDER COLMENARES MOLINA DAVID STIVEL NOY VERGARA COD. 81754732 MARCO ALEXANDER HERNANDEZ RAMIREZ COD. 81754413 ARMANDO ROSALES R

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD INSTRUMENTACIN MDICA 299016 INGENIERA ELECTRNICA Mayo de 2012

TABLA DE CONTENIDO 1. INTRODUCCION 2. OBJETIVOS 3. MARCO TEORICO

4. DESARROLLO DEL PROBLEMA

5. CONCLUSIONES

6. BIBLIOGRAFIA

1. INTRODUCCIN

A travs de este informe escrito, se presenta el desarrollo del segundo trabajo colaborativo-prctico, del curso Instrumentacin Mdica, en el cual se plantea el diseo y programacin de un sistema TENS y TEMS a partir de un microcontrolador para la generacin y aplicacin de cinco tipos de forma de onda a pacientes mdicos. Con este trabajo se detalla y profundiza otro de los conceptos importantes en instrumentacin mdica como lo es la electroterapia, tema fundamental contemplado en esta unidad de la materia.

Para comprender un poco sobre el tema debemos saber que Suele existir cierto nivel de confusin o falta de claridad en las diferencias entre un TENS y un EMS. El TENS es un pequeo aparato generador de pulsos elctricos destinado a conseguir analgesia. El EMS es otro pequeo aparato destinado al trabajo muscular en conjuntos neuromsculo normales. El TENS est basado en sus precursores estimuladores chinos y porttiles para aplicar ELECTROPUNTURA, a la vez buscadores de puntos. Los TENS no poseen la cualidad de busca-puntos y tampoco siguen totalmente las caractersticas de las corrientes generadas en los estimuladores de electropuntura. Los electropuntores no solamente sirven para conectar a las agujas, tambin se pueden aplicar a electrodos estndar. El EMS, de posterior aparicin al TENS, y como se dice ms arriba, se destina a la electro estimulacin neuromuscular siempre que no estemos ante procesos patolgicos, o si existen, que sean muy moderados.

2. OBJETIVOS

Profundizar y practicar los conceptos de la Unidad 2 del Curso Instrumentacin Mdica, teniendo en cuenta la importancia de la electroterapia para el campo medico.

Identificar y comprender la importancia de realizar un buen diseo debido a que la instrumentacin de medida de electroterapia ha de ser aplicada a pacientes mdicos se debe realizar con sumo cuidado.

Practicar y profundizar los conocimientos y la metodologa a emplear en el circuito a implementar para el correcto funcionamiento del sistema de generacin de formas de ondas y trenes de pulsos, con los requerimientos correctos, precisin y exactitud debida.

Disear un prototipo de sistema microelectrnica mvil para el monitoreo de los signos vitales como temperatura, y frecuencia cardiaca.

3. MARCO TEORICO CMO ACTUA LA EEM (ELECTROESTIMULACION)?

La electricidad est en nuestro cuerpo, es utilizada para transmitir las rdenes del sistema nervioso. Para entender la accin de la EEM debemos compararla a la accin muscular voluntaria. En una accin voluntaria el sistema nervioso central enva un mensaje en forma de estmulo elctrico hasta la placa motora que se halla en el msculo y ste se contrae. La EEM enva el estmulo directamente a la placa motora y logra el mismo resultado: la contraccin de las fibras. Algunos estudios recientes (LIEBER, 1996) demuestran que a una cantidad y naturaleza de trabajo idnticas, sea hecho en voluntario o por EEM, el resultado para el msculo es el mismo. La EEM permite hacer trabajar selectivamente el tipo de fibras musculares. El parmetro que permite seleccionar el tipo de fibras a reclutar es la frecuencia del estmulo, se mide en Hercios Hz. La frecuencia representa el nmero de impulsos por segundo. En funcin de la frecuencia (en Hz) aplicada, se obtienen resultados distintos.

EFECTOS DE LAS DISTINTAS FRECUENCIAS

1 a 3 Hz - Tiene un efecto descontracturante y relajante, es ideal para contracturas musculares. Algunos electro estimuladores lo denominan programa descontracturante. Provoca un efecto descontracturante en los grupos musculares aplicados. La utilizacin mdica de la EEM para disminuir el tono muscular existe desde hace aos. Este efecto descontracturante se mantiene varias horas despus de la sesin de electro estimulacin y permite un mejor control de los movimientos efectuados. Est indicada su aplicacin en molestias o dolores musculares ocasionados por contracturas. Se puede utilizar en cualquier momento y si el dolor es importante o persistente, se recomienda consultar a un mdico. 4 a 7 Hz - Aumenta la segregacin de endorfinas y encefalinas, logrando una disminucin del dolor y la ansiedad. En el electro estimulador se suele encontrar como programa de relajacin o recuperacin activa. Logra un efecto endorfnico mximo (5 Hz) provocando una anestesia local natural, una disminucin del dolor (efecto antlgico) as como una relajacin general de la musculatura y una disminucin de la ansiedad. Facilita el sueo. A 7 Hz se consigue un aumento del flujo sanguneo y una hiperoxigenacin. Su aplicacin es idnea para evitar calambres, re oxigenar tejidos, acelerar el retorno venoso, eliminar edemas y los metabolitos acumulados. 8 a 10 Hz - El aumento del flujo sanguneo es mximo, se multiplica por cinco. Los electro estimuladores suelen tenerlo con el nombre de capilarizacin. Crea nuevos capilares, permite una restauracin de los tejidos y un verdadero drenaje venoso y parece ser que linftico. Al aumentar los capilares evita tener contracturas musculares. Es particularmente eficaz para el cansancio localizado y en la disminucin del lactato. Este aumento del riego sanguneo facilita la restauracin de tejidos y, bajo consejo mdico o fisioteraputico, es de gran ayuda en problemas articulares. 10 a 33 Hz - Recluta las fibras ST, lentas, (tipo I) y aumenta la resistencia de las mismas. Los electro estimuladores tienen este programa con el nombre de resistencia aerbica o firmeza muscular. Las investigaciones demuestran la transformacin de fibras FTa, rpidas, (tipo IIa) en ST, lentas, (tipo I) con lo que aumenta el VO2 localizado L. W. STEPHENSON y otros 1987 Es idnea para el aumento del tono muscular y en la mejora de la resistencia muscular localizada. Su aplicacin para la mejora esttica (abdominales o glteos) conjuntamente con un entrenamiento que gaste caloras, cardiovascular (correr, bicicleta,) permite aunar esfuerzos y aumentar el tono a la vez que se utiliza la grasa como mecanismo de energa. 33 a 50 Hz Solicita fibras intermedias, concretamente las IIa. Logra el mayor aumento de resistencia a la fatiga, es ideal para deportes de resistencia. En los electro estimuladores se encuentran estos programas con el nombre de resistencia aerbica o firmeza muscular a niveles altos. Proporciona un mayor aumento del tono muscular sin desarrollar la musculatura. La sensacin de potencia de contraccin en grupos musculares determinados (glteos, aductores, abdominales,) es inalcanzable con ejercicios voluntarios. 50 a 75 Hz Se estimulan preferentemente las fibras intermedias tipo IIb, proporciona un aumento de la fuerza y de la resistencia localizada. En los electro estimuladores hallamos los trminos body building o fuerza resistencia. Los estudios que comparan la EEM con el entrenamiento voluntario muestran un mayor aumento de la fuerza, de la potencia y de la muscular en la EEM y todo ello sin sobrecargar las articulaciones G. COMETTI, J. TUROSTOWSKI, M. CORDANO, 1999. La hipertrofia es mxima a 70-75Hz y los resultados se pueden comprobar en pocas semanas, las investigaciones as lo demuestran. Combinar el entrenamiento voluntario en sala de Fitness con la EEM en la misma sesin, proporciona un eficaz aumento de volumen muscular y preserva las articulaciones. La EEM

posibilita aumentar determinadas zonas musculares difciles de localizar con entrenamiento voluntario. La EEM selectiva del pectoral alto es indicada en todos los casos en los que es necesario estabilizar la clavcula como la subluxacin acromio-clavicular. En estas circunstancias la EEM tiene una ventaja con respeto a los ejercicios voluntariosUn buen campo elctrico permite un aislamiento igual o mejor que el que se obtiene con ejercicios convencionales A. LANZANI, 2000 75 a 120 Hz Consigue una supratetanizacin de las fibras FT, rpidas, (tipo IIm). Las mejoras en fuerza y explosividad son mayores que las conseguidas con esfuerzos voluntarios y todo ello sin lesionar. Algunos electro estimuladores tienen programas con el nombre de fuerza y fuerza explosiva. En determinados deportes como el esqu alpino, el concepto de entrenamiento es reemplazar parte de la musculacin clsica por la EEM. Esta tendencia es seguida por otros deportes. Es as como en Italia, los equipos de voleibol disminuyen los entrenamientos muy traumticos de pliometra o musculacin con cargas pesadas en provecho de la EEM. Las lesiones han disminuido y los equipos italianos alinean jugadores con 110 cm de salto vertical. El ftbol es otro deporte que se beneficia de las ventajas de entrenar con la EEM para proteger los ya castigados cartlagos articulares. Es de crucial importancia para mejorar la fuerza en altas velocidades de contraccin (V. ORTIZ, 1996). Impone regmenes de actividad a las fibras musculares que habitualmente slo se pueden conseguir de forma voluntaria con esfuerzos brutales y de fuerza mxima, es decir, muy traumatizantes (P. Rigaux, 1999) Los electro estimuladores ms avanzados tienen pues ya programados los Hercios para facilitar el uso y en funcin de la frecuencia, poseen una terminologa apropiada para la mejora del rendimiento deportivo (fuerza explosiva, fuerza, fuerza-resistencia,), la bsqueda de una mejora esttica (firmeza muscular, bodybuilding,), la recuperacin funcional y la mejora de la calidad de vida (recuperacin activa, capilarizacin, relajacin,)

DIFERENCIA ENTRE TENS Y EMS

TENS Destinado a analgesia. Suelen tener 2 salidas. Intensidad hasta 50 mA. Modos de trabajo en burst, FF frecuencia fija y modulaciones (algunos ofrecen una opcin de trenes). Frecuencia regulable entre 1 a 150 200 Hz.

EMS Destinado a trabajo muscular. Suelen tener 2 salidas. Intensidad hasta 80 100 mA. Modos de trabajo en trenes (algunos ofrecen la posibilidad de frecuencia fija FF). Frecuencia regulable entre 10 a 100 Hz (algunos ofrecen frecuencia por debajo de 10 Hz). El tiempo de sesin tiende a ser ms corto que en el

El tiempo de sesin tiende a ser relativamente largo (15,

20, 30 minutos). En modulaciones pueden modularse la anchura de pulso AP, modulaciones en amplitud AM, y modulaciones de frecuencia MF. En las modulaciones de frecuencia, debiramos tener la opcin de ajustar sus lmites con FRECUENCIA MENOR y FRECUENCIA MAYOR. Algunos (raros) ofrecen posibilidad de trenes.

TENS (10, 15, 20 minutos). No tiene modulaciones.

Los trenes son regulables entre 1 y 20 segundos. Las pausas entre trenes son regulables desde 1 a 60 segundos. La RAMPA de subida del tren debe regularse para que se establezca ms o menos bruscamente. Unos ajustan el tiempo de subida y otros un porcentaje del tiempo ocupado por el tren.

Los BURST son pequeas rfagas, 2 por segundo, que pueden utilizarse para vibracin muscular.

Es muy interesante que los ENS posean frecuencia fija muy baja (entre 1 y 10 Hz) para aplicar vibraciones musculares. Suelen alimentarse con una o dos pilas de 9 Volt. Algunos ofrecen la opcin de que los trenes surjan simultneamente por ambas salidas o que se alternen para trabajar los antagonistas cuando los agonistas se relajan.

Suelen alimentarse con una pila de 9 Volt.

Trabajan en voltaje constante (VC). Las formas de pulso pretenden ser monofsicas cuadrangulares con algn pico negativo procedente de las deformaciones propias de los transformadores de salida.

Trabajan en voltaje constante (VC). Las formas de pulso pretenden ser monofsicas cuadrangulares con algn pico negativo procedente de las deformaciones propias de los transformadores de salida. Algunos poseen ondas cuadrangulares bifsicas digitales. En general los EMS cuidan ms las ondas de salida.

Los electrodos suelen ser pequeos e iguales.

Es importante que el tamao de electrodos sea variado para combinarlos y adaptarlos a los diferentes msculos y mtodos de estimulacin. Los EMS suelen ser bastante ms caros, sin causa tecnolgica razonable, salvo que se venden menos. (Debieran ser algo ms caros).

Los TENS suelen ser ms baratos.

Con el TENS no se debe superar las respuestas motoras salvo cuando se genere alternancia en el trabajo muscular.

Con el EMS se supera el umbral motor para tonificar y potenciar musculatura, excepto cuando se aplique frecuencia fija, que solamente debe quedarse en estmulo sensitivo. El EMS se destina al estmulo de fibras nerviosas motoras. Tiempo de pulso regulable entre 0,1 a 0,75 msg (dos o tres opciones).

El TENS se destina al estmulo de fibras nerviosas sensitivas. Tiempo de pulso regulable entre 0,05 a 0,3 msg (pasando por toda la gama).

DURACIN DE LOS PULSOS Es fundamental combinar la forma, la intensidad y la duracin de los pulsos, ya que (dependiendo de la normalidad o patologa del conjunto neuromuscular) las respuestas sern diferentes en cada circunstancia. La exploracin de las curvas (I/T) - (A/T) nos indicarn el estado y los mejores parmetros para utilizar en tratamientos e, igualmente, para disear las corrientes que pretendemos utilizar. En las siguientes figuras podemos observar las curvas caractersticas de normalidad y de severa denervacin parcial:

l Por otra parte, es interesante saber que de estos fenmenos se basan los generadores de estmulos elctricos destinados a estimulacin transcutnea. As los TENS ofrecen una gama de tiempos algo diferente a los EMS o a los estimuladores estndar.

Los TENS y los EMS poseen una gama de pulsos pensados para estmulo de las fibras nerviosas

. Los faradizadores estndar deben estimular tanto a fibra nerviosa como a muscular.

Los estimuladores clsicos (adems de cubrir las posibilidades de los anteriores) amplan sus posibilidades para poder tratar las parlisis con su banda de anchura en los pulsos caracterstica.

Todo esto se ha referido a baja frecuencia, pero tambin aplicamos media y alta. CLASIFICACIN DE LAS CORRIENTES Las corrientes en electroterapia podemos clasificarlas de varias formas:

Segn metodologa Segn los efectos generados Segn las frecuencias Segn las formas

Segn metodologa Todas las corrientes se aplican en general de acuerdo a cuatro mtodos regulables en los equipos:

Como pulsos aislados En rfagas o trenes Frecuencia fija Modulaciones o cambios constantes y repetitivos

Segn los efectos generados Cuando aplicamos electroterapia en todas sus posibilidades podemos buscar efectos de:

Cambios bioqumicos Estmulo sensitivo en fibra nerviosa Estmulo motor en fibra nerviosa o fibra muscular

Aporte energtico para que el organismo absorba la energa y la aproveche en sus cambios metablicos.

Segn las frecuencias


Baja frecuencia.- de 0 a 1000 Hz (aproximadamente) Media frecuencia.- de 2.000 a 10.000 Hz Alta frecuencia.- de 500.000 hasta el lmite de las radiaciones no ionizantes en los ultravioletas tipo UVA.

Los lmites de la baja frecuencia son muy relativos y depende de unos aparatos a otros. Algunos de baja (combinando pulsos con reposos) generan corrientes consideradas de media frecuencia, mientras que otros no van ms all de los 200 Hz. La banda de media frecuencia es muy amplia, pero en la actualidad nicamente se emplean desde los 2.000 hasta los 10.000 Hz. En alta frecuencia aplicamos puntos concretos de la banda, aunque disponemos de un espectro muy amplio, solamente podemos usar puntos controlados por la legislacin. Segn las formas Adems de lo aclarado anteriormente en la introduccin, referente a baja frecuencia, debemos clasificar las corrientes en grandes grupos en lugar de dispersarlas para estudiarlas de una en una porque ello conducir a confusin:

Galvnica Interrumpidas galvnicas Alternas Interrumpidas alternas Moduladas

Galvnica La galvnica tiene polaridad, es nica en su grupo y se destina a provocar cambios electroqumicos en el organismo.

Interrumpidas galvnicas Todas aquellas que estn conformadas por pulsos positivos o negativos, pero todos en el mismo sentido, luego, poseen polaridad. Los pulsos pueden ser de diferentes formas y frecuencias, as como agrupados en trenes,

impulsos aislados, modulados o frecuencia fija. Son las ms caractersticas de la baja frecuencia. Veamos algunos ejemplos:

Alternas Reciben el nombre de alternas porque su caracterstica fundamental se manifiesta en el constante cambio de polaridad, en consecuencia, no poseen polaridad. La forma ms caracterstica es la sinusoidal perfecta de mayor o menor frecuencia, empleada en media y alta frecuencia. Existen otras corrientes cuya forma no es la tpica sinusoidal, sino que pueden dibujarse como cuadrangulares, triangulares, etctera, pero que, aunque siguen manteniendo la alternancia en la polaridad, realmente se les denomina como bifsicas.

Interrumpidas alternas En este grupo entran un gran conjunto de corrientes no bien definidas y difciles de clasificar, pero que normalmente consisten en aplicar interrupciones en una alterna para formar pequeas rfagas o paquetes denominados pulsos. Es muy frecuente encontrar estos pequeos paquetes de alterna en magnetoterapia, alta frecuencia, pulsos de lser, media frecuencia e incluso en algunos TENS.

Moduladas Las moduladas son corrientes que estn sufriendo cambios constantes durante toda la sesin. Pueden pertenecer al grupo de las interrumpidas galvnicas o al de las alternas. Las modulaciones ms habituales son las de amplitud, modulaciones en frecuencia y modulaciones en anchura de pulso.

Por lo que se refiere a la forma de la modulacin, en media frecuencia las ms habituales son la sinusoidal y la cuadrangular.

1. DESARROLLO DEL PROBLEMA DISEO N 1

El grupo debe desarrollar el software de programacin de un microcontrolador PIC16F87 en lenguaje asembler, simulado con Proteus, aplicado al modulo de puente H de un equipo de electroterapia del captulo 10, numeral 10.5 para generar las ondas electro teraputicas de las figuras 121 a 125. Para iniciar el diseo del circuito que pueda aplicar los tipos de onda dispuestos para el equipo TENS y TEMS, debemos disponer como primera medida que son cuatro tipos de onda que se deben generar. Para ello contamos con los programas: Proteus Ver. 7.7 SP2, con licencia autorizada para este servidor, con sus paquetes Isis y Ares. El programa MPLAB IDE Ver. 8.84.00, paquete libre de Microchip, el cual nos permite programar en lenguaje ensamblador, y el software freeware PIC C Compiler, Ver. 4.104, el cual nos permite realizar la programacin inicial en lenguaje C, compilar y enlazar con MPLAB para realizar ensamblado y desensamblado del programa, y generacin del archivo hexadecimal, que es el archivo que finalmente se debe vincular con el microcontrolador a simular en el pad de trabajo de Proteus. Estos paquetes ya los tenemos instalados y disponibles con motivo del trabajo de la Unidad 1. Hecho esto, y conocidas las caractersticas tcnicas del dispositivo, y set de instrucciones, procedemos a ubicar dentro de Proteus el microcontrolador PIC16F877, con su respectiva fuente de poder a 5 Volts. DC, su reloj interno con un cristal a 4 MHz, y un par de condensadores a tierra de 15 pF cada uno. Como ya hemos tenido acceso a la estructura del programa en lenguaje C, directivas, funciones y conjunto de instrucciones a emplear en este programa, procedemos a realizar la programacin en lenguaje C. Debemos definir tipos de datos, constantes, declaraciones de control, variables, y operadores a emplear que nos definan cada tipo de forma de onda a generar de manera individual. Junto a lo anterior debemos analizar el circuito o aplicacin a realizar. Una de las caractersticas ms importantes del equipo generador de pulsos para TENS y TEMS, es que la botonera o mando en donde se escoja el tipo de onda, debe dar una orden nica, y se garantice la independencia de las funciones. Se debe evitar generar mezcla de ondas. Por tanto el tipo de funcin que usaremos en el programa debe ser exclusiva o excluyente, de tal manera que si el usuario presiona ms de un botn o tipo de onda, la salida se haga cero o quede deshabilitada. En este orden de ideas, los pulsadores que hemos usado en el programa cuatro-, tambin se pueden usar con retencin. Simplemente en el momento de activarlos con el puntero del mouse, se pulsa la tecla de espaciado en el mismo instante y el pulsador queda retenido, o se utiliza el punto rojo de activacin que est al lado derecho superior de cada botn como podemos observar en la siguiente imagen del pad de Proteus. Para el ajuste variable, dinmico y en tiempo real de la duracin de los pulsos, disponemos un potencimetro RV1, con el cual podemos establecer el ajuste de los tiempos de trabajo Ton y descanso Toff, para ello habilitamos la primera entrada analgica RA0, y el conversor DAC de 8 bits, y con el podemos guardar constantemente el valor de la entrada, como realizamos en trabajo de Unidad 1, para adquirir la variable de temperatura. En la configuracin que habamos realizado, obtenamos una variable con extrusin entre 0 y 5, que guardamos en la variable p, garantizando su valor mximo, en 5 milisegundos. Pero de igual manera se pueden establecer memorias para alterar el tiempo, utilizando

multiplicadores/demultiplicadores, para ajustar a las lecturas correctas y exactas de las formas de onda en el osciloscopio. Tal es el caso de la variables on, off, y off2.

Por tanto el programa en lenguaje C queda as (se adjunta el archivo .C): #if defined(__PCM__) #include <16f877.h> //se determina el modelo de PIC #device ADC=8 //se ajusta el ADC con 8 bits #use delay(clock = 4000000) //se ajusta el oscilador #fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT #use standard_io(A) #use standard_io(B) int valor=0x00; //se inicializa la memoria valoron int p; //se declara variable para tiempo on int on; int off; int off2; void toma_adc(void) //programa de toma de ADC { setup_adc(ADC_CLOCK_INTERNAL); //configura el conversor setup_adc_ports(RA0_analog); //entrada 0 como analgica set_adc_channel(0); valor=read_adc(); //se asocia la lectura con la memoria valor } void main() //programa principal { do { p = (5.0*valor/256.0); //se establece formula de valor on = (p*1.4); off = (p*4.25); off2 = (p*0.4); if ((input(PIN_A2) == 1)&&(input(PIN_A3) == 0)&&(input(PIN_A4) == 0)&&(input(PIN_A5) == 0)) { output_high(PIN_B0); delay_ms(on); output_low(PIN_B0); delay_ms(off); } if ((input(PIN_A3) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A4) == 0)&&(input(PIN_A5) == 0)) { output_high(PIN_B1); delay_ms(on); output_low(PIN_B1); delay_ms(off); } if ((input(PIN_A4) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A3) == 0)&&(input(PIN_A5) == 0))

{ output_high(PIN_B0); delay_ms(on); output_low(PIN_B0); delay_ms(off2); } if ((input(PIN_A5) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A3) == 0)&&(input(PIN_A4) == 0)) { output_high(PIN_B0); delay_ms(on); output_low(PIN_B0); output_high(PIN_B1); delay_ms(on); output_low(PIN_B1); delay_ms(off); } toma_adc(); } while(true); }

Y el cdigo Assembler a tres columnas, queda as (se adjunta el archivo .asm): 0000: DECF 0x17,F L006C L0001 SUBWF L0038 ADDWF L006D 0xA,W 0x18,F IORLW 0xB1 L0002 ADDWF 0x19,F IORLW 0xFA NOP ADDWF 0x1A,F L0071 IORLW 0xF9 DECF 0x17,F RETLW 0x26 IORLW 0xF8 RETLW 0x26 SUBWF 0x11,F L0073 INCFSZ DECF 0x18,F L003D 0x17,F RETLW 0x25 RETLW 0x27 L0074 DECF 0x19,F SUBWF 0x10,F L0078 GOTO L00FA ADDWF 0x1A,F RETLW 0x28 L007A RETLW 0xF8 L0041 SUBWF L007B GOTO L00F9 RETLW 0x79 0xF,F L007C L000F DECF 0x18,F SUBWF 0xD,F L007E GOTO L00F8 ADDWF 0x19,F L0044 XORWF MOVLW 0xF8 DECFSZ 0x17,F 0xE,F MOVLW 0xF9 RETLW 0xF8 L0047 RETLW 0x2C MOVLW 0xFA L0015 BTFSS 0x1A,7 GOTO L00F7 ADDWF 0x17,F L004A L0085 L0017 GOTO L00F9 L0086 L0018 L004C RETLW 0x26 L001A L004D SUBWF 0xE,F IORLW 0xF9 GOTO L00F8 RETLW 0x2A IORLW 0xF8 L004F BTFSC 0xE,5 INCFSZ 0x17,F RETLW 0x2B L008B ??? BTFSS 0x19,7 L008D RETLW 0x25 GOTO L00F8 L0091 ADDWF L0022 L0056 0x17,F L0023 L0058 RETLW 0x2A L0092 ADDWF SUBWF 0xD,F SUBWF 7,F 0x18,F RETLW 0x29 L005A ADDWF 0x19,F L0026 RETLW 0x27 L0094 ADDWF L0027 BTFSS 0x18,7 0x1A,F BTFSS 0xD,5 IORLW 0xAE ??? L002A MOVLW 0xF8 RETLW 0x29 INCF 0xD,F L0061 MOVLW 0xF9 L0097 L002D MOVLW 0xFA L0098 L002F MOVLW 0xB1 SUBWF 0x15,F L0031 MOVLW 0xB0 RETLW 0x2D BTFSS 0xD,5 MOVLW 0xAF L009B L0035 GOTO L00AD RETLW 0x2D BTFSS 0x17,7

L009C INCF 0x15,F BTFSS 0x15,5 L00A3 L00A5 INCF 0x15,F L00A8 L00A9 L00AA RETLW 0x35 DECF 0x17,F ADDWF 0x18,F ADDWF 0x19,F ADDWF 0x1A,F XORWF 0x14,F RETLW 0x2A L00B2 SUBWF 0x13,F L00B3 L00B4 RETLW 0x2B SUBWF 0x12,F RETLW 0x2C SUBWF 0x11,F SUBWF 0x15,F RETLW 0x30 INCF 0x11,F INCF 0x12,F INCF 0x13,F INCF 0x14,F GOTO L00B4 GOTO L00B3 GOTO L00B2 RETLW 0x30 BTFSS 0x11,5 L00CD RETLW 0x2F INCF 0x12,F INCF 0x13,F INCF 0x14,F GOTO L00B4 GOTO L00B3 RETLW 0x2F

BTFSS 0x12,5 RETLW 0x30 L00DE BTFSS 0x11,5 L00E0 GOTO L00B2 L00E3 GOTO L00B3 L00E6 GOTO L00B4 L00E8 RETLW 0x2E INCF 0x13,F INCF 0x14,F GOTO L00B4 RETLW 0x2E BTFSS 0x13,5 RETLW 0x2F L00F7 BTFSS 0x12,5 L00F8 L00F9 L00FA GOTO L00B3 GOTO L00B4 GOTO L00B5 IORLW 0xB1 IORLW 0xB2 IORLW 0xB3 IORLW 0xB4 IORLW 0xFA IORLW 0xF9 IORLW 0xF8 IORLW 0xB6 MOVLW 0xF8 MOVLW 0xF9 MOVLW 0xFA MOVLW 0xB6 INCFSZ 0x17,F IORLW 0xB1 IORLW 0xB2 IORLW 0xB3

IORLW 0xB4 RETLW 0x30 INCF 0x11,F INCF 0x12,F INCF 0x13,F INCF 0x14,F RETLW 0x2F INCF 0x12,F INCF 0x13,F INCF 0x14,F RETLW 0x2E INCF 0x13,F INCF 0x14,F GOTO L00FA GOTO L00F9 GOTO L00F8 GOTO L00F7 MOVLW 0xF8 MOVLW 0xF9 MOVLW 0xFA RETLW 0x2A SUBWF 0x15,F RETLW 0x2E BTFSC 0x15,5 ADDWF 0x17,F ADDWF 0x18,F ADDWF 0x19,F ADDWF 0x1A,F

DECF 0x17,F RETLW 0x25 DECFSZ 0x17,F RETLW 0x26 DECF 0x19,F RETLW 0x27 DECF 0x18,F RETLW 0xF7 RETLW 0xF9 RETLW 0xF8 MOVLW 0xF9 MOVLW 0xF8 GOTO L00F7 CALL L00F8 CALL L00F9 GOTO L00F8 GOTO L00F9 L0180 ??? SUBWF 4,W RETLW 0 DECF 0x18,F ADDWF 0x17,F GOTO L00F7 GOTO L00F8 DECF 0x17,F GOTO L00F7 GOTO L0080 ??? DECF 0x18,F RETLW 0x1F BCF 0x18,3 SUBWF 0x1F,W RETLW 0x1E SUBWF 0,F L01AD XORWF 4,W BSF 3,4 XORWF 0,F L01B5 L01B6 XORWF 6,F RETLW 0x20 SUBWF 5,F XORWF 8,F XORWF 7,F SUBWF 6,F SUBWF 5,F RETLW 0x7A SUBWF 0xC,F RETLW 0x79 SUBWF 0xB,F RETLW 0x78

SUBWF 0xA,F RETLW 0x77 SUBWF 9,F RETLW 0x77 SUBWF 5,F RETLW 0x78 SUBWF 6,F RETLW 0x79 SUBWF 7,F RETLW 0x7A SUBWF 8,F SUBWF 0xC,F RETLW 0x79 SUBWF 0xB,F RETLW 0x78 SUBWF 0xA,F RETLW 0x77 SUBWF 9,F XORWF 0x10,F XORWF 0xF,F XORWF 0xE,F SUBWF 0xD,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 SUBWF 6,F RETLW 0x77 SUBWF 5,F RETLW 0x78 SUBWF 1,F XORWF 6,F RETLW 0x21 SUBWF 5,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 L01F7 SUBWF 6,F L01F8 RETLW 0x77 SUBWF 5,F SUBWF 0xC,F SUBWF 0xB,F SUBWF 0xA,F SUBWF 9,F RETLW 0x7A SUBWF 8,F RETLW 0x79

SUBWF 7,F L0205 RETLW 0x78 SUBWF 6,F RETLW 0x77 SUBWF 5,F RETLW 0x78 SUBWF 2,F XORWF 6,F RETLW 0x21 SUBWF 5,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 SUBWF 6,F

RETLW 0x77 SUBWF 5,F XORWF 0xC,F XORWF 0xB,F SUBWF 0xA,F SUBWF 9,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 SUBWF 6,F RETLW 0x77 SUBWF 5,F RETLW 0x78 SUBWF 3,F XORWF 6,F RETLW 0x21 SUBWF 5,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 SUBWF 6,F RETLW 0x77 SUBWF 5,F SUBWF 0xC,F SUBWF 0xB,F SUBWF 0xA,F SUBWF 9,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 SUBWF 6,F RETLW 0x77 SUBWF 5,F RETLW 0x78 SUBWF 4,F L0252 RETLW 0x22 SUBWF 5,F RETLW 0x23 SUBWF 5,F L026C L0274 RETLW 0x22

L0285 SUBWF 5,F RETLW 0x23 SUBWF 5,F L028E L0296 L029B RETLW 0x22 SUBWF 5,F RETLW 0x24 SUBWF 5,F L02B0 L02B8 L02BD RETLW 0x22 SUBWF 5,F RETLW 0x22 SUBWF 5,F RETLW 0x23 SUBWF 5,F L02DD L02DE CLRF 3
2007: 3F71

1. DESARROLLO DEL PROBLEMA DISEO N 1

El grupo debe desarrollar el software de programacin de un microcontrolador PIC16F87 en lenguaje asembler, simulado con Proteus, aplicado al modulo de puente H de un equipo de electroterapia del captulo 10, numeral 10.5 para generar las ondas electro teraputicas de las figuras 121 a 125. Para iniciar el diseo del circuito que pueda aplicar los tipos de onda dispuestos para el equipo TENS y TEMS, debemos disponer como primera medida que son cuatro tipos de onda que se deben generar. Para ello contamos con los programas: Proteus Ver. 7.7 SP2, con licencia autorizada para este servidor, con sus paquetes Isis y Ares. El programa MPLAB IDE Ver. 8.84.00, paquete libre de Microchip, el cual nos permite programar en lenguaje ensamblador, y el software freeware PIC C Compiler, Ver. 4.104, el cual nos permite realizar la programacin inicial en lenguaje C, compilar y enlazar con MPLAB para realizar ensamblado y desensamblado del programa, y generacin del archivo hexadecimal, que es el archivo que finalmente se debe vincular con el microcontrolador a simular en el pad de trabajo de Proteus. Estos paquetes ya los tenemos instalados y disponibles con motivo del trabajo de la Unidad 1. Hecho esto, y conocidas las caractersticas tcnicas del dispositivo, y set de instrucciones, procedemos a ubicar dentro de Proteus el microcontrolador PIC16F877, con su respectiva fuente de poder a 5 Volts. DC, su reloj interno con un cristal a 4 MHz, y un par de condensadores a tierra de 15 pF cada uno. Como ya hemos tenido acceso a la estructura del programa en lenguaje C, directivas, funciones y conjunto de instrucciones a emplear en este programa, procedemos a realizar la programacin en lenguaje C. Debemos definir tipos de datos, constantes, declaraciones de control, variables, y operadores a emplear que nos definan cada tipo de forma de onda a generar de manera individual. Junto a lo anterior debemos analizar el circuito o aplicacin a realizar. Una de las caractersticas ms importantes del equipo generador de pulsos para TENS y TEMS, es que la botonera o mando en donde se escoja el tipo de onda, debe dar una orden nica, y se garantice la independencia de las funciones. Se debe evitar generar mezcla de ondas. Por tanto el tipo de funcin que usaremos en el programa debe ser exclusiva o excluyente, de tal manera que si el usuario presiona ms de un botn o tipo de onda, la salida se haga cero o quede deshabilitada. En este orden de ideas, los pulsadores que hemos usado en el programa cuatro-, tambin se pueden usar con retencin. Simplemente en el momento de activarlos con el puntero del mouse, se pulsa la tecla de espaciado en el mismo instante y el pulsador queda retenido, o se utiliza el punto rojo de activacin que est al lado derecho superior de cada botn como podemos observar en la siguiente imagen del pad de Proteus. Para el ajuste variable, dinmico y en tiempo real de la duracin de los pulsos, disponemos un potencimetro RV1, con el cual podemos establecer el ajuste de los tiempos de trabajo Ton y descanso Toff, para ello habilitamos la primera entrada analgica RA0, y el conversor DAC de 8 bits, y con el podemos guardar constantemente el valor de la entrada, como realizamos en trabajo de Unidad 1, para adquirir la variable de temperatura. En la configuracin que habamos realizado, obtenamos una variable con extrusin entre 0 y 5, que guardamos en la variable p, garantizando su valor mximo, en 5 milisegundos. Pero de igual manera se pueden establecer memorias para alterar el tiempo, utilizando

multiplicadores/demultiplicadores, para ajustar a las lecturas correctas y exactas de las formas de onda en el osciloscopio. Tal es el caso de la variables on, off, y off2.

Por tanto el programa en lenguaje C queda as (se adjunta el archivo .C): #if defined(__PCM__) #include <16f877.h> //se determina el modelo de PIC #device ADC=8 //se ajusta el ADC con 8 bits #use delay(clock = 4000000) //se ajusta el oscilador #fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT #use standard_io(A) #use standard_io(B) int valor=0x00; //se inicializa la memoria valoron int p; //se declara variable para tiempo on int on; int off; int off2; void toma_adc(void) //programa de toma de ADC { setup_adc(ADC_CLOCK_INTERNAL); //configura el conversor setup_adc_ports(RA0_analog); //entrada 0 como analgica set_adc_channel(0); valor=read_adc(); //se asocia la lectura con la memoria valor } void main() //programa principal { do { p = (5.0*valor/256.0); //se establece formula de valor on = (p*1.4); off = (p*4.25); off2 = (p*0.4); if ((input(PIN_A2) == 1)&&(input(PIN_A3) == 0)&&(input(PIN_A4) == 0)&&(input(PIN_A5) == 0)) { output_high(PIN_B0); delay_ms(on); output_low(PIN_B0); delay_ms(off); } if ((input(PIN_A3) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A4) == 0)&&(input(PIN_A5) == 0)) { output_high(PIN_B1); delay_ms(on); output_low(PIN_B1); delay_ms(off); } if ((input(PIN_A4) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A3) == 0)&&(input(PIN_A5) == 0))

{ output_high(PIN_B0); delay_ms(on); output_low(PIN_B0); delay_ms(off2); } if ((input(PIN_A5) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A3) == 0)&&(input(PIN_A4) == 0)) { output_high(PIN_B0); delay_ms(on); output_low(PIN_B0); output_high(PIN_B1); delay_ms(on); output_low(PIN_B1); delay_ms(off); } toma_adc(); } while(true); }

Y el cdigo Assembler a tres columnas, queda as (se adjunta el archivo .asm): 0000: DECF 0x17,F L006C L0001 SUBWF L0038 ADDWF L006D 0xA,W 0x18,F IORLW 0xB1 L0002 ADDWF 0x19,F IORLW 0xFA NOP ADDWF 0x1A,F L0071 IORLW 0xF9 DECF 0x17,F RETLW 0x26 IORLW 0xF8 RETLW 0x26 SUBWF 0x11,F L0073 INCFSZ DECF 0x18,F L003D 0x17,F RETLW 0x25 RETLW 0x27 L0074 DECF 0x19,F SUBWF 0x10,F L0078 GOTO L00FA ADDWF 0x1A,F RETLW 0x28 L007A RETLW 0xF8 L0041 SUBWF L007B GOTO L00F9 RETLW 0x79 0xF,F L007C L000F DECF 0x18,F SUBWF 0xD,F L007E GOTO L00F8 ADDWF 0x19,F L0044 XORWF MOVLW 0xF8 DECFSZ 0x17,F 0xE,F MOVLW 0xF9 RETLW 0xF8 L0047 RETLW 0x2C MOVLW 0xFA L0015 BTFSS 0x1A,7 GOTO L00F7 ADDWF 0x17,F L004A L0085 L0017 GOTO L00F9 L0086 L0018 L004C RETLW 0x26 L001A L004D SUBWF 0xE,F IORLW 0xF9 GOTO L00F8 RETLW 0x2A IORLW 0xF8 L004F BTFSC 0xE,5 INCFSZ 0x17,F RETLW 0x2B L008B ??? BTFSS 0x19,7 L008D RETLW 0x25 GOTO L00F8 L0091 ADDWF L0022 L0056 0x17,F L0023 L0058 RETLW 0x2A L0092 ADDWF SUBWF 0xD,F SUBWF 7,F 0x18,F RETLW 0x29 L005A ADDWF 0x19,F L0026 RETLW 0x27 L0094 ADDWF L0027 BTFSS 0x18,7 0x1A,F BTFSS 0xD,5 IORLW 0xAE ??? L002A MOVLW 0xF8 RETLW 0x29 INCF 0xD,F L0061 MOVLW 0xF9 L0097 L002D MOVLW 0xFA L0098 L002F MOVLW 0xB1 SUBWF 0x15,F L0031 MOVLW 0xB0 RETLW 0x2D BTFSS 0xD,5 MOVLW 0xAF L009B L0035 GOTO L00AD RETLW 0x2D BTFSS 0x17,7

L009C INCF 0x15,F BTFSS 0x15,5 L00A3 L00A5 INCF 0x15,F L00A8 L00A9 L00AA RETLW 0x35 DECF 0x17,F ADDWF 0x18,F ADDWF 0x19,F ADDWF 0x1A,F XORWF 0x14,F RETLW 0x2A L00B2 SUBWF 0x13,F L00B3 L00B4 RETLW 0x2B SUBWF 0x12,F RETLW 0x2C SUBWF 0x11,F SUBWF 0x15,F RETLW 0x30 INCF 0x11,F INCF 0x12,F INCF 0x13,F INCF 0x14,F GOTO L00B4 GOTO L00B3 GOTO L00B2 RETLW 0x30 BTFSS 0x11,5 L00CD RETLW 0x2F INCF 0x12,F INCF 0x13,F INCF 0x14,F GOTO L00B4 GOTO L00B3 RETLW 0x2F

BTFSS 0x12,5 RETLW 0x30 L00DE BTFSS 0x11,5 L00E0 GOTO L00B2 L00E3 GOTO L00B3 L00E6 GOTO L00B4 L00E8 RETLW 0x2E INCF 0x13,F INCF 0x14,F GOTO L00B4 RETLW 0x2E BTFSS 0x13,5 RETLW 0x2F L00F7 BTFSS 0x12,5 L00F8 L00F9 L00FA GOTO L00B3 GOTO L00B4 GOTO L00B5 IORLW 0xB1 IORLW 0xB2 IORLW 0xB3 IORLW 0xB4 IORLW 0xFA IORLW 0xF9 IORLW 0xF8 IORLW 0xB6 MOVLW 0xF8 MOVLW 0xF9 MOVLW 0xFA MOVLW 0xB6 INCFSZ 0x17,F IORLW 0xB1 IORLW 0xB2 IORLW 0xB3

IORLW 0xB4 RETLW 0x30 INCF 0x11,F INCF 0x12,F INCF 0x13,F INCF 0x14,F RETLW 0x2F INCF 0x12,F INCF 0x13,F INCF 0x14,F RETLW 0x2E INCF 0x13,F INCF 0x14,F GOTO L00FA GOTO L00F9 GOTO L00F8 GOTO L00F7 MOVLW 0xF8 MOVLW 0xF9 MOVLW 0xFA RETLW 0x2A SUBWF 0x15,F RETLW 0x2E BTFSC 0x15,5 ADDWF 0x17,F ADDWF 0x18,F ADDWF 0x19,F ADDWF 0x1A,F

DECF 0x17,F RETLW 0x25 DECFSZ 0x17,F RETLW 0x26 DECF 0x19,F RETLW 0x27 DECF 0x18,F RETLW 0xF7 RETLW 0xF9 RETLW 0xF8 MOVLW 0xF9 MOVLW 0xF8 GOTO L00F7 CALL L00F8 CALL L00F9 GOTO L00F8 GOTO L00F9 L0180 ??? SUBWF 4,W RETLW 0 DECF 0x18,F ADDWF 0x17,F GOTO L00F7 GOTO L00F8 DECF 0x17,F GOTO L00F7 GOTO L0080 ??? DECF 0x18,F RETLW 0x1F BCF 0x18,3 SUBWF 0x1F,W RETLW 0x1E SUBWF 0,F L01AD XORWF 4,W BSF 3,4 XORWF 0,F L01B5 L01B6 XORWF 6,F RETLW 0x20 SUBWF 5,F XORWF 8,F XORWF 7,F SUBWF 6,F SUBWF 5,F RETLW 0x7A SUBWF 0xC,F RETLW 0x79 SUBWF 0xB,F RETLW 0x78

SUBWF 0xA,F RETLW 0x77 SUBWF 9,F RETLW 0x77 SUBWF 5,F RETLW 0x78 SUBWF 6,F RETLW 0x79 SUBWF 7,F RETLW 0x7A SUBWF 8,F SUBWF 0xC,F RETLW 0x79 SUBWF 0xB,F RETLW 0x78 SUBWF 0xA,F RETLW 0x77 SUBWF 9,F XORWF 0x10,F XORWF 0xF,F XORWF 0xE,F SUBWF 0xD,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 SUBWF 6,F RETLW 0x77 SUBWF 5,F RETLW 0x78 SUBWF 1,F XORWF 6,F RETLW 0x21 SUBWF 5,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 L01F7 SUBWF 6,F L01F8 RETLW 0x77 SUBWF 5,F SUBWF 0xC,F SUBWF 0xB,F SUBWF 0xA,F SUBWF 9,F RETLW 0x7A SUBWF 8,F RETLW 0x79

SUBWF 7,F L0205 RETLW 0x78 SUBWF 6,F RETLW 0x77 SUBWF 5,F RETLW 0x78 SUBWF 2,F XORWF 6,F RETLW 0x21 SUBWF 5,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 SUBWF 6,F

RETLW 0x77 SUBWF 5,F XORWF 0xC,F XORWF 0xB,F SUBWF 0xA,F SUBWF 9,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 SUBWF 6,F RETLW 0x77 SUBWF 5,F RETLW 0x78 SUBWF 3,F XORWF 6,F RETLW 0x21 SUBWF 5,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 SUBWF 6,F RETLW 0x77 SUBWF 5,F SUBWF 0xC,F SUBWF 0xB,F SUBWF 0xA,F SUBWF 9,F RETLW 0x7A SUBWF 8,F RETLW 0x79 SUBWF 7,F RETLW 0x78 SUBWF 6,F RETLW 0x77 SUBWF 5,F RETLW 0x78 SUBWF 4,F L0252 RETLW 0x22 SUBWF 5,F RETLW 0x23 SUBWF 5,F L026C L0274 RETLW 0x22

L0285 SUBWF 5,F RETLW 0x23 SUBWF 5,F L028E L0296 L029B RETLW 0x22 SUBWF 5,F RETLW 0x24 SUBWF 5,F L02B0 L02B8 L02BD RETLW 0x22 SUBWF 5,F RETLW 0x22 SUBWF 5,F RETLW 0x23 SUBWF 5,F L02DD L02DE CLRF 3
2007: 3F71

DISEO N 2

Con el diseo Numero 2, se realizan 8 Formas de onda diferentes con un periodo aproximado de duracin de 30 minutos en los cuales se seleccionara inicialmente el tipo de onda y despus se iniciara con el proceso de terapia con un pulsador. Tambin cuenta con dos pulsadores uno de ascenso de nivel y otro de descenso.
Arranca Baja Sube

R2
10k

R3
10k

R1
10k

U1
16 15 4 RA7/OSC1/CLKIN RA6/OSC2/CLKOUT RA5/MCLR RA0/AN0 RA1/AN1 RA2/AN2/VREF RA3/AN3/CMP1 RA4/T0CKI/CMP2 17 18 1 2 3 6 Punto 7 8 9 10 11 12 13 A

A B C D E F G

B C D

RB0/INT RB1/RX/DT RB2/TX/CK RB3/CCP1 RB4 RB5 RB6/T1OSO/T1CKI RB7/T1OSI PIC16F87

Forma de onda N 1

Forma de onda N2

Forma de Onda N 3

Forma de Onda N 4

Forma de onda N 5

Forma de onda N6

Forma de onda N 7

A continuacin se muestra la programacin en C y el archivo en .Asm se encuentra en un block de notas con los archivos adjuntos. #include <16F628A.h> #FUSES NOWDT // No para el Watch Dog Timer

#FUSES INTRC_IO #FUSES NOPUT #FUSES NOPROTECT #FUSES NOBROWNOUT #FUSES MCLR #FUSES NOLVP #FUSES NOCPD

// Reloj interno RC Osc, no CLKOUT // No para el Power Up Timer // No para proteccin de lectura del cdigo // No para el brownout reset // MCLR habilitado para Reset por botn // No para programado por bajo voltaje. El Pin se usa como I/O // No para protecin de lectura de EEprom // Se informa la frecuencia del reloj

#use delay(clock=4000000) #use fast_io(A) #use fast_io(B) //

// Para trabajar con la memoria // Para trabajar con la memoria

= Nmeros del registro (Memoria) que le corresponden = 0x005.1 // RA1 Seal de arranque // RA2 Salida // RA3 Salida // RA4 Pulsador Sube (Entrada) // RA0 Pulsador Baja (Entrada) // Todo PortB Salida al Display // Muestra cdigo de programa

#bit Arranque

#bit OndaPositiva = 0x005.2 #bit OndaNegativa = 0x005.3 #bit PulsadorSube = 0x005.4 #bit PulsadorBaja = 0x005.0 #byte Mostrar = 0x006

void Display(void);

void GenerarTrenPulsos(void); // Genera un tren de pulsos void SesionCompleta(void); int PulsadorPulsado = 0; int Programa; long Ancho; long Separacion; int Frecuencia; long Periodo; long Descanso; // Genera la sesin completa de por ejemplo 30 minutos // Pulsador seleccionador de programa // Nmero del programa de 1 en adelante // Ancho del pulso pos o neg en mseg, de 1 a 5 // Separacin entre pulsos pos y neg en mseg, de 0 a 5 // Frecuencia de una Onda de 66 a 2 Hz // Perodo de una onda se calcula a partir de la frecuencia // Tiempo de descanso es 2000, 1500 o 1000 milisegundos

int Bifasica; int t; long Ciclos; long x; long y; long z; long Tiempo1; long Tiempo2; long Tiempo3;

// Selecciona Onda Bifsica // Contador de FOR // Contador de ciclos de sesin completa // Variable transitoria para clculos // Variable transitoria para clculos // Variable transitoria para clculos // Tiempo 1 de aplicacin, de 1 a 30 minutos // Tiempo 2 de aplicacin, de 0 a 15 minutos // Tiempo 3 de aplicacin, de 0 a 15 minutos // Cantidad de programas usados

int CantProgramas = 8; void main() { //////////// 76543210 set_tris_a(0b00010011); set_tris_b(0b00000000);

// 1 entrada 0 salida // 1 entrada 0 salida

OndaPositiva = 0; OndaNegativa = 0; // Arrancar en cero Mostrar = 0b00000000; // Todos apagados

Programa = read_eeprom(0); // Lee de la EEPROM el valor de Programa. 0 es la direccin Display(); // Muestra el nmero de programa seleccionado al arrancar

// Despus de grabar el PIC no muestra Programa porque se borra la EEPROM while(true) { if(PulsadorSube == PulsadorPulsado ) { // La primera vuelta la da con el Programa de la EEPROM delay_ms(800); Programa = Programa + 1;

if (Programa > CantProgramas){Programa = 1;} Display(); write_eeprom(0,Programa); // Escribe en la EEPROM el valor de Programa. 0 es la direccin } if(PulsadorBaja == PulsadorPulsado ) { // La primera vuelta la da con el Programa de la EEPROM delay_ms(800); Programa = Programa - 1; if (Programa < 1){Programa = CantProgramas;} Display(); write_eeprom(0,Programa); // Escribe en la EEPROM el valor de Programa. 0 es la direccin } if (Arranque == 1) {delay_ms(800);SesionCompleta();} //if (Arranque == 1) {GenerarTrenPulsos();} // Para Pruebas } }

void Display(void) { switch(Programa) { // ABCDEFG. letras de la barrita LED case 1: Mostrar = 0b01100000; Ancho=5;Separacion=0;Frecuencia=3;Descanso=3000;Bifasica=1; Tiempo1=10;Tiempo2=10;Tiempo3=10; Periodo=1000/Frecuencia;break; // nmero 1 case 2: Mostrar = 0b11011010; Ancho=5;Separacion=0;Frecuencia=5;Descanso=3000;Bifasica=1;

Tiempo1=10;Tiempo2=10;Tiempo3=10; Periodo=1000/Frecuencia;break; // nmero 2 case 3: Mostrar = 0b11110010; Ancho=5;Separacion=0;Frecuencia=10;Descanso=3000;Bifasica=1; Tiempo1=10;Tiempo2=10;Tiempo3=10; Periodo=1000/Frecuencia;break; // nmero 3 case 4: Mostrar = 0b01100110; Ancho=1;Separacion=1;Frecuencia=255;Descanso=0;Bifasica=1; Tiempo1=1;Tiempo2=0;Tiempo3=0; Periodo=1000/Frecuencia;break; // nmero 4 case 5: Mostrar = 0b10110110; Ancho=333;Separacion=333;Frecuencia=1;Descanso=0;Bifasica=1; Tiempo1=1;Tiempo2=0;Tiempo3=0; Periodo=1000/Frecuencia;break; // nmero 5 case 6: Mostrar = 0b10111110; Ancho=100;Separacion=100;Frecuencia=3;Descanso=0;Bifasica=0; Tiempo1=1;Tiempo2=0;Tiempo3=0; Periodo=1000/Frecuencia;break; // nmero 6 case 7: Mostrar = 0b11100100; Ancho=10;Separacion=10;Frecuencia=33;Descanso=0;Bifasica=1; Tiempo1=1;Tiempo2=0;Tiempo3=0; Periodo=1000/Frecuencia;break; // nmero 7 case 8: Mostrar = 0b11111110; Ancho=100;Separacion=100;Frecuencia=3;Descanso=0;Bifasica=1; Tiempo1=1;Tiempo2=0;Tiempo3=0; Periodo=1000/Frecuencia;break; // nmero 8 } }

void SesionCompleta(void) // Genera la sesin completa de por ejemplo 30 minutos { // Tiempo1 Mostrar = 0b01100001; // nmero 1 con punto x=Tiempo1*60*10;

y=(Descanso+1000)/100; //(Descanso+1000)=Perodo de un tren de pulsos z=x/y; for(Ciclos=1;Ciclos<=z;Ciclos++) { GenerarTrenPulsos(); // Descanso del tren de pulsos segn programa elegido delay_ms(Descanso); } // Tiempo2 Mostrar = 0b11011011; // nmero 2 con punto // Descanso fijo = 2500 x=Tiempo2*60*10; y=(2500+1000)/100; //(2500+1000)=Perodo de un tren de pulsos z=x/y; for(Ciclos=1;Ciclos<=z;Ciclos++) { GenerarTrenPulsos(); // Descanso del tren de pulsos. Descanso fijo de 2500 mseg delay_ms(2500); } // Tiempo3 Mostrar = 0b11110011; // nmero 3 con punto // Descanso fijo = 2000 x=Tiempo3*60*10; y=(2000+1000)/100; //(2000+1000)=Perodo de un tren de pulsos z=x/y; for(Ciclos=1;Ciclos<=z;Ciclos++)

{ GenerarTrenPulsos(); // Descanso del tren de pulsos. Descanso fijo de 2000 mseg delay_ms(2500); } Mostrar = 0b10001111; // carcter F (Final de los tiempos) con punto }

void GenerarTrenPulsos(void) { for(t=1;t<=1000/Periodo;t++) { // Onda Positiva en un pulso OndaPositiva = 1; delay_ms(Ancho); OndaPositiva = 0; // Separacin entre ondas en un pulso delay_ms(Separacion); // Onda Negativa if (Bifasica == 1) { OndaNegativa = 1; delay_ms(Ancho); OndaNegativa = 0; // Descanso en un pulso delay_ms(Periodo-2*Ancho-Separacion); } else {delay_ms(Periodo-Ancho-Separacion);} }

4. CONCLUSIONES

Esta es una de las temticas ms importantes en este curso, que se convierte en base para el desarrollo futuro a lo largo de nuestras carreras, en la aplicacin de las habilidades, conocimientos y competencias, para un buen desempeo en el rea profesional especfica. Si fuese requisito para el sistema poder manipular independientemente los tiempos de trabajo y descanso, sera menester habilitar el segundo DAC, conversor anlogo digital AN1 en RA1, para poder adquirir y ajustar dos variables independientes para modo de aplicarlos a la variacin de los tiempos Ton y Toff. Como en la electroterapia es muy importante garantizar la seguridad al paciente, en cuanto a los tiempos de ciclos de trabajo. Si bien sera nocivo y peligroso para el paciente soportar tensiones de ms de 100 Volts. En DC., por tiempos ms prolongados, a los ya establecidos por estas formas y tipos de ondas, creo que es conveniente, aunque se sacrifica un poco la linealidad del ajuste, el instalar en la entrada, entre el potencimetro de 5 Volts. Y el conversor DAC un circuito de proteccin en base a un zener de 5 Volts. De DC., que nos garantice que en presencia de ruido, de dao de la fuente, o dao del o los potencimetros, la mxima tensin fijada a la entrada del conversor o conversores nunca sea mayor a 5. La forma correcta de ver la cada de tensin en la resistencia de carga en el puente H Mosfet, es como se encuentra configurado el osciloscopio en la simulacin. Sucede que los canales del osciloscopio, estn chequeando la cada de tensin entre el vivo cable que se conecta- y la referencia o tierra del circuito, pero lo que nos interesa es ver la cada de tensin en la resistencia de carga, la cual est simulando al paciente. Por tanto se requiere, invertir el canal que se conecte a la derecha de la resistencia, y ese restrselo al canal que se ubica a la izquierda de la resistencia. As obtenemos la ddp en el tiempo sobre el paciente. Pese a que no fue posible implementar el diseo en el microcontrolador PIC 16F87, debido a que al parecer no se encontraba cargado en las libreras, se trabajo con el PIC 16F877, el cual es ms generoso en caractersticas, puertos y memoria, y si bien se pudiera decir que al realizarlo con este modelo se incurre en un desperdicio de recursos, se puede aprovechar la disponibilidad de puertos adicionales, para instalar una pantalla o display en el puerto RD para monitorear el tipo de seal escogida por el usuario y que se est produciendo, informar si se ha pulsado ms de un botn al tiempo -incluyendo un zumbador-, y el ajuste regulado en milisegundos de los tiempos de trabajo y descanso, lo cual hace ms interesante el ejercicio. Falta la quinta forma de onda en donde se envan trenes de 5 pulsos con un tiempo de descanso largo. La forma de implementar esta forma de onda es con un contador que vaya decrementando dentro del ciclo de generacin de los tiempos Ton y Toff, y generando por ultimo un tiempo de off muy largo. Para terminar cabe destacar el papel protagnico que desempea el programa Proteus, al permitirnos realizar toda la simulacin del dispositivo microcontrolador, solo vinculando el archivo hexadecimal generado al ensamblar el programa. La bondad radica en que podemos chequear y probar hasta estar

Completamente seguros de que el programa funciona de manera adecuada, realizando ajustes, adiciones o correcciones al programa, antes de quemarlo en el dispositivo real definitivamente.

Las caracterstica de diseo de de estos instrumentos los hacen extraordinarios utiles para la calibrar los conductos. La ausencia de conicidad nos permitir en todo momento saber cual es el dimetro menor de la porcin apical del conducto, as como determinar la existencia o no de un tope epical claro con determinado calibre de instrumentos. Para ello pueden utilizar se los instrumentos manualmente.

BIBLIOGRAFIA

Jorge E. Quintero Muoz, (2012) Mdulo 299016 Instrumentacin Mdica, Unidad 1 Instrumentacin Diagnostica, Unidad 2 Instrumentacin Teraputica, Unidad 3 Instrumentacin de Imgenes Mdicas, Universidad Nacional Abierta y a Distancia, Bogot D.C.

Jos Ma. Angulo U., Susana Romero Y., Ignacio Angulo M., (2000) Microcontroladores PIC, Diseo Prctico de Aplicaciones, Mc Graw Hill Interamericana, Madrid, Espaa.

Eduardo Garca Breijo, (2008) Compilador C CCS y Simulador Proteus para Microcontroladores PIC, Marc

Вам также может понравиться