Sie sind auf Seite 1von 22

TRABAJO COLABORATIVO 2

ARNULFO LIZCANO ALEXANDER JESUS MORA RAUL EFRAIN ENRIQUEZ DAVID PASTOR MORALES

TUTOR SAULO ANDRES GOMEZ

INSTRUMENTACION MDICA 299016_3

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA INGENIERIA ELECTRONICA OCTUBRE DE 2010

INTRODUCCION

La electroterapia es una va eficiente empleada mundialmente como tratamiento para el alivio del dolor, el fortalecimiento muscular, la insercin de sustancias medicamentosas (iontoforesis), la aceleracin de la curacin de heridas y lceras, entre otras aplicaciones. El uso de la estimulacin elctrica con fines teraputicos se encuentra ampliamente extendido por su eficacia y por las ventajas que reporta, entre ellas la carencia de efectos secundarios la sustitucin de sustancias qumicas medicamentosas. Con el desarrollo de este trabajo los estudiantes, realizaremos la programacin de un PIC 16f87 con el fin de que nos genere las ondas adecuadas para la estimulacin de los msculos del cuerpo humano y as crear un equipo de electroterapia.

MARCO TEORICO

Para que el microcontrolador sea capaz de funcionar en cualquier proyecto, se necesita al menos la siguiente circuitera externa:

La alimentacin. El reloj (oscilador).

Tambin, y de manera opcional:

El circuito de reinicio

1.- LA ALIMENTACIN Los dispositivos de la familia PIC16F87 admiten un amplio rango de tensiones de alimentacin, que va de 2,0 V a 5,5 V. La tensin a la cual se alimenten determinar la frecuencia mxima de trabajo. La potencia mxima disipada es de 1 W y se calcula mediante la siguiente formula:

donde: VDD es la tensin suministrada por la fuente de alimentacin. IOH es la corriente suministrada por las salidas del PIC en estado alto. IOL es la corriente absorbida por las salidas del PIC en estado bajo. VOH es la tensin entregada por los terminales en estado alto. VOL es la tensin presente en los terminales en estado bajo.

LA ALIMENTACIN

Los dispositivos de la familia PIC16F87 admiten un amplio rango de tensiones de alimentacin, que va de 2,0 V a 5,5 V. La tensin a la cual se alimenten determinar la frecuencia mxima de trabajo.

La [[potencia]] mxima disipada es de 1 [[Vatio|W]] y se calcula mediante la siguiente formula:

<math>\,\!P_{disipada}=V_{DD}(I_{DD} - \Sigma I_{OH}) + \Sigma [(V_{DD} V_{OH})I_{OH}]+ \Sigma (V_{OL} I_{OL}) </math>

donde: *<math>V_{DD}</math> es la [[Tensin elctrica|tensin]] suministrada por la fuente de alimentacin. *<math>I_{OH}</math> es la [[Corriente elctrica|corriente]] suministrada por las salidas del PIC en estado alto. *<math>I_{OL}</math> es la corriente absorbida por las salidas del PIC en estado bajo. *<math>V_{OH}</math> es la tensin entregada por los terminales en estado alto. *<math>V_{OL}</math> es la tensin presente en los terminales en estado bajo.

2.- EL RELOJ El reloj u oscilador se utiliza para generar la base de tiempo del microcontrolador. Para la conexin del oscilador se emplean los terminales OSC1 y OSC2 del dispositivo. Los microcontroladores PIC16F87 emplean por cada ciclo de instruccin cuatro ciclos de reloj. Esto significa que por ejemplo, si el microcontrolador debe ejecutar un programa de 1000 instrucciones con un reloj de 10 MHz (periodo de reloj de 100 ns), el tiempo total que emplear para ejecutar todo el programa (asumiendo que todas las instrucciones fueran de un ciclo de instruccin) ser de:

La serie PIC16F87 puede trabajar a una frecuencia de reloj mxima de 20 MHz. Esto quiere decir que, a esta frecuencia, el tiempo necesario para ejecutar las instrucciones de un ciclo de instruccin es de 200 ns, y de 400 ns para las de dos ciclos de instruccin (instrucciones de salto). La seal de reloj puede generarse mediante una red resistencia y condensador, un cristal de cuarzo piezoelctrico o un resonador y cermico aunque empleando cristales de cuarzo se consiguen frecuencias de oscilacin muy exactas, lo cual es til para calcular tiempos de ejecucin, temporizaciones precisas, etc.

Estos microprocesadores permiten escoger entre cinco tipos distintos de osciladores: LP (Low Power): reloj de bajo consumo, estable, con frecuencia de oscilacin de hasta 200 kHz. XT (Xtal, Crystal): estable, frecuencia de oscilacin de hasta 4 MHz. HS (High Speed): estable, frecuencia de oscilacin de hasta 20 MHz. RC (Resistor/Capacitor): frecuencia de oscilacin dependiente de resistencia, condensador, voltaje de alimentacin y temperatura de trabajo. Es el tipo ms econmico, pero tambin el ms inestable. Externo: cuando la seal de reloj es externa, generada por otro circuito. Los modos LP, XT y HS suponen la conexin de un cristal de cuarzo o resonador cermico entre las patitas OSC1/CLKIN y OSC2/CLKOUT del dispositivo, mientras que el modo RC y Externo solo ocupan la patita OSC1/CLKIN.

EL RELOJ

El reloj u oscilador se utiliza para generar la base de tiempo del microcontrolador. Para la conexin del oscilador se emplean los terminales OSC1 y OSC2 del dispositivo.

Los microcontroladores PIC16F87 emplean por cada ciclo de instruccin cuatro ciclos de reloj. Esto significa que por ejemplo, si el microcontrolador debe ejecutar un programa de 1000 instrucciones con un reloj de 10 MHz (periodo de reloj de 100 ns), el tiempo total que emplear para ejecutar todo el programa (asumiendo que todas las instrucciones fueran de un ciclo de instruccin) ser de:

<math>T={1000*4 \over {10*10^6}}=400 \mu s</math>

La serie PIC16F87 puede trabajar a una frecuencia de reloj mxima de 20 MHz. Esto quiere decir que, a esta frecuencia, el tiempo necesario para ejecutar las instrucciones de un ciclo de instruccin es de 200 ns, y de 400 ns para las de dos ciclos de instruccin (instrucciones de salto).

La seal de reloj puede generarse mediante una red [[Circuitos ResistenciaCondensador|resistencia-condensador]], un cristal de [[cuarzo]] [[Piezoelectricidad|piezoelctrico]] o un [[Resonancia elctrica|resonador cermico]], aunque empleando cristales de cuarzo se consiguen frecuencias de [[oscilacin]] muy exactas, lo cual es til para calcular tiempos de ejecucin, temporizaciones precisas, etc.

Estos microprocesadores permiten escoger entre cinco tipos distintos de osciladores:

* LP (Low Power): reloj de bajo consumo, estable, con frecuencia de oscilacin de hasta 200 kHz. * XT (Xtal, Crystal): estable, frecuencia de oscilacin de hasta 4 MHz. * HS (High Speed): estable, frecuencia de oscilacin de hasta 20 MHz. * RC (Resistor/Capacitor): frecuencia de oscilacin dependiente de resistencia, condensador, voltaje de alimentacin y temperatura de trabajo. Es el tipo ms econmico, pero tambin el ms inestable. * Externo: cuando la seal de reloj es externa, generada por otro circuito.

Los modos LP, XT y HS suponen la conexin de un cristal de cuarzo o resonador cermico entre las patitas OSC1/CLKIN y OSC2/CLKOUT del dispositivo, mientras que el modo RC y Externo solo ocupan la patita OSC1/CLKIN.

3.- EL CIRCUITO DE REINICIO El terminal MCLR (Master Clear) debe estar a valor lgico alto para que el dispositivo funcione normalmente, esto es, sin irse a reinicio. Con un valor lgico bajo el dispositivo se reinicia, comenzando la ejecucin desde el principio del programa que tenga cargado en memoria. Lo ms prctico, para facilitar el hecho de poder realizar un reinicio manual, es utilizar un pulsador (pulsador de reinicio), similar al que se puede encontrar en la mayora de ordenadores. El fabricante recomienda que se intercale una resistencia de 50 a 100 ohmios entre el pulsador y la patita MCLR, para evitar posibles corrientes inducidas de ms de 80 mA que podran bloquear el dispositivo cuando este se lleva a masa (reinicio).

Debido a que el pulsador no produce una respuesta instantnea, producto de los rebotes de ste (transitorio), se generan una serie de pulsos hasta quedar estabilizado en su estado permanente. Para evitar esto se puede usar un condensador instalado en paralelo con la entrada MCLR (filtro pasa bajo). Tambin resulta muy efectivo el uso de un filtro pasa alto para hacer la seal de reinicio independiente del tiempo en que se presiona el pulsador. Inmediatamente despus de pulsar el pulsador el C se reinicia, sin tener en cuenta cunto tiempo se mantiene presionado dicho pulsador. Estas tcnicas de reinicio son muy efectivas, pero no son las nicas. Existe infinidad de circuitos y posibilidades para provocar el reinicio externo en los microcontroladores, adecundose cada solucin a la necesidad o al criterio de diseo del circuito y su funcin especifica. Memoria interna Existen tres bloques bien diferenciados de memoria. Estos son:

Memoria de programa EEPROM Flash: es el lugar fsico donde se guarda el programa de usuario. Es de tipo no voltil. Memoria de datos SRAM: es el lugar fsico donde se guardan datos. Es de tipo voltil. Memoria de datos EEPROM: es el lugar fsico donde se guardan datos. Es de tipo no voltil.

Memoria de datos SRAM Esta memoria es de tipo voltil, lo que significa que no conserva su contenido despus de un apagado de alimentacin. En esta memoria se encuentran los registros de funciones especiales (SFR) y los registros de propsito general (GPR), y est particionada en cuatro bancos (0, 1, 2 y 3), seleccionables independientemente. El banco 0 es el banco seleccionado por defecto cuando se alimenta al microcontrolador. Registros de funciones especiales (SFR) Todos los microcontroladores cuentan con registro internos que permiten controlar y supervisar las funciones y recursos disponibles del dispositivo. Los registros de los microcontroladores PIC se encuentran en un espacio especial de la memoria de datos, el SFR (Special Function Registers). En los dispositivos PIC16F87X estos registros son de 8 bits, la mayora de lectura y escritura. Se puede acceder a dichos bits de manera individual, o bien a todo el registro a la vez. Determinados pares de registros tienen funciones especiales para las cuales se pueden considerar unidos en un nico registro de 16 bits, aunque fsicamente siguen estando separados.

El registro STATUS El registro de estado (STATUS) es uno de los ms importantes y empleados en el microcontrolador. Proporciona informacin acerca del resultado de operaciones aritmticas, operaciones lgicas y causa de reinicios, adems de permitir la seleccin del banco de memoria de datos. El registro W El registro de trabajo W (Working Register) es un registro relevante especial de 8 bits que participa en la mayora de instrucciones. A diferencia de los SFR, se encuentra dentro de la misma CPU, y puede ser accedido tanto para lectura como para escritura. Set de instrucciones y sintaxis Los PIC16F87X son microcontroladores RISC. Esto se refleja en que tienen un repertorio reducido de 35 instrucciones ortogonales (prcticamente todas las instrucciones pueden utilizar cualquier operando), stas son rpidas y todas tienen una longitud fija de 14 bits. Las instrucciones se pueden clasificar en:

Instrucciones de carga. Instrucciones de bits. Instrucciones aritmticas. Instrucciones lgicas. Instrucciones de salto. Instrucciones de manejo de subrutinas. Instrucciones especiales.

Tabla resumen de instrucciones Ciclos de Instrucci n

Sintaxis

Descripcin

Instrucciones de carga CLRF f CLRW Borra el contenido del registro f Borra el contenido del registro W 1 1

MOVF f,d

Mueve el contenido del registro f

MOVWF f

Mueve el contenido del registro W al 1 registro f Guarda en el registro W el valor k 1

MOVLW k

Instrucciones de bit BCF f,b BSF f,b Pone en "0" el bit b del registro f Pone en "1" el bit b del registro f 1 1

Instrucciones aritmticas ADDLW k Suma el valor k al registro W Suma el contenido del registro W con el de f Decrementa en una contenido del registro f Incrementa en una contenido del registro f unidad unidad el el 1

ADDWF f,d

DECF f,d INCF f,d SUBLW k SUBWF f,d

1 1 1 1

Resta el valor k al registro W Resta el contenido del registro W al registro f

Instrucciones lgicas ANDLW k Realiza la operacin lgica AND entre el valor k y el registro W Realiza la operacin lgica AND entre el contenido del registro W y el de f Niega el valor del registro f Realiza la operacin lgica OR entre 1

ANDWF f,d COMF f,d IORLW k

1 1 1

el valor k y el registro W IORWF f,d RLF f,d RRF f,d SWAPF f,d XORLW Realiza la operacin lgica OR entre el contenido del registro W y el de f Rota el contenido del registro f hacia la izquierda a travs del carry bit Rota el contenido del registro f hacia la derecha a travs del carry bit Intercambia los cuatro primeros bits con los cuatro ltimos del registro f Realiza la operacin lgica XOR entre el valor k y el registro W 1 1 1 1 1

XORWF f,d

Realiza la operacin lgica XOR entre el contenido del registro W con 1 el de f

Instrucciones de salto BTFSC f,b BTFSS f,b DECFSZ f,d Lee el bit b del registro f y salta la 1 (2 instruccin siguiente si est en 0 salta) Lee el bit b del registro f y salta la 1 (2 instruccin siguiente si est en 1 salta) Decrementa en una unidad el 1 (2 contenido del registro f y salta la salta) instruccin siguiente si es cero Incrementa en una unidad el 1 (2 contenido del registro f y salta la salta) instruccin siguiente si es cero Salto incondicional a la etiqueta k 2 si si

si

INCFSZ f,d GOTO k

si

Instrucciones de manejo de subrutinas CALL k RETFIE RETLW RETURN Llamada a la subrutina k Retorno de una interrupcin Retorno de una subrutina con el valor k en el registro W Retorno de una subrutina 2 2 2 2

Instrucciones especiales

CLRWDT NOP SLEEP

Borra el timer del Watchdog No realiza ninguna operacin (pero consume tiempo de ejecucin)

1 1

Se pone el PIC en estado de reposo 1 (dormido)

En todas las instrucciones donde aparece una d como operando:


Si d = 0, el resultado de la operacin se guarda en W. Si d = 1, el resultado de la operacin se guarda en el registro f. Es el valor por defecto.

Registro de configuracin Estos microcontroladores cuentan con un registro especial llamado palabra de configuracin (Configuration Word) de 14 bits, que se encuentra en la direccin 2007h de la memoria de programa. Este registro debe escribirse durante el proceso de grabacin del microcontrolador ya que no puede ser modificado durante el tiempo de ejecucin de un programa. Su funcin es especificar ciertas caractersticas de funcionamiento del microcontrolador, como son:

Proteccin de memoria de programa. Uso del modo de depuracin en circuito. Permiso de escritura en memoria Flash. Proteccin de memoria EEPROM de datos. Uso de programacin en modo de bajo voltaje. Uso de reinicio por cada de tensin. Uso del temporizador de conexin de alimentacin. Uso del Watchdog. Tipo de oscilador empleado.

Existen dos formas de configurar estos bits: una de ellas es desde MPLAB, mediante la opcin Configuration bits del men configure. La otra es mediante la directiva _ _CONFIG dentro del programa ensamblador. [El conversor analgico-digital El conversor analgico-digital (ADC en ingls) que llevan incorporados los microcontroladores de la subfamilia PIC16F87X es de 10 bits. Su funcionamiento es bastante simple, comparado con los conversores A/D R2R, los de resistencia ponderada, etc. Controlando el conversor A/D

Los registros asociados al conversor A/D son:


ADRESH (completo) ADRESL (completo) ADCON0 (completo) ADCON1 (completo)

Conversin Terminada El tiempo que le toma al C realizar la conversin se denomina TAD y nunca debe ser menor que 1,6 s para la familia 16F87. el tiempo TAD es configurado por software segn la relacin TAD = kTOSC donde K es el divisor de la frecuencia del conversor. Por ejemplo, si trabajamos con TOSC = 1s y en los bits 7 y 6 del registro ADCON0 ponemos 00,quedar: TAD = 2TOSC = 2 * 1s = 2s lo cual est dentro del rango permitido. Una vez terminada la conversin, el resultado se almacena en los registros ADRESH y ADRESL segn estn configurados en el bit 7 del registro ADCON1. La "justificacin" a la derecha o izquierda es sencilla de comprender; se trata de guardar el resultado de 10 bits en dos registros de 8 bits c/u, sea que se elegir si se quieren los 8 primeros bits en el ADRESL y los dos restantes en el ADRESH o viceversa. Generalmente la eleccin de la justificacin est directamente emparentada con la resolucin que queremos leer, es decir, si se quiere conectar un potencimetro y segn la tensin aumentar o disminuir el tiempo de parpadeo de un led, se puede justificar a la izquierda y leer como resultado de la conversin solo los 8 bits del ADRESH y descartar o despreciar los dos bits de menor peso significativo que se guardarn en el ADRESL. Pasos necesarios para la conversin A/D A modo de algoritmo los pasos necesarios para una correcta utilizacin del modulo A/D son los siguientes: 1. Configurar el mdulo A/D: 1. Terminales de entrada analgica y de referencia. 2. Seleccionar el canal adecuado. 3. Seleccionar la velocidad de conversin. 4. Prender el conversor: Setear el bit 0 del registro ADCON0 2. Empezar la conversin: Setear el bit 2 del registro ADCON0 3. Esperar que el bit 2 del registro ADCON0 se ponga a 0 4. Leer el resultado en los registros ADRESH:ADRESL En estos pasos no se tiene en cuenta que se pueden necesitar ms de una conversin por distintos canales o bien que se realicen varias conversiones y luego tomar un promedio. Esta ultima tcnica es muy usada cuando las variaciones de tensin son rpidas y promediando tres o cuatro conversiones se tiene as el resultado, hasta que se realice una segunda conversin.

Acerca de la programacin de los dispositivos La familia de los PIC16F87 cuenta con un set reducido de 35 instrucciones, lo que facilita enormemente su memorizacin. La mayora de estas instrucciones se ejecutan en un solo ciclo de instruccin, mientras que aquellas instrucciones que realizan saltos de ejecucin lo hacen en dos ciclos de instruccin. Cada una de estas instrucciones se codifica en una palabra de 14 bits nica e inequvoca, que conforman en conjunto lo que se conoce como cdigo maquina del dispositivo. Aunque podra emplearse directamente este cdigo mquina para programar el dispositivo (ya fuera en formato binario o en hexadecimal), resultara demasiado lento y complicado. Por esta razn, cada una de las instrucciones se representa de manera equivalente con un nemnico, que es ms fcil de recordar y de interpretar por el programador. A este tipo de lenguaje de programacin se le llama lenguaje ensamblador. Actualmente, para la programacin de microcontroladores puede emplearse tanto el lenguaje ensamblador como lenguajes de ms alto nivel, tipo C o Pascal, empleando el compilador adecuado. Los microcontroladores tienen un espacio de memoria que vara segn el modelo y este espacio de memoria es limitado. Hay que tener en cuenta que a cada instruccin escrita en lenguaje de alto nivel le correspondern por lo general varias instrucciones en lenguaje ensamblador, lo que significa que un programa escrito en lenguaje de alto nivel ocupa ms espacio de memoria que uno escrito en lenguaje ensamblador. Por este motivo, la eleccin de uno u otro tipo de lenguaje a la hora de programar deber hacerse teniendo en cuenta el espacio de memoria disponible. En caso de utilizar un lenguaje de alto nivel, siempre se requerir compilar el programa terminado para obtener el archivo hexadecimal (lenguaje mquina) con el cual se programar el microcontrolador. La programacin fsica del dispositivo se har normalmente mediante un programador, capaz de grabar el programa de usuario en la memoria del microcontrolador.

ACTIVIDAD
Desarrollar el software de programacin de un micro controlador en lenguaje asembler, aplicado al mdulo 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, que cumpla con las siguientes condiciones: 1. El micro controlador ser el PIC16F87. 2. Debe simularse con Proteus. SOFTWARE DE PROGRAMACIN DEL MICROCONTROLADOR PIC 16F87 EN LENGUAJE ASEMBLER Cdigo .asm
Device = 16F87 XTAL = 4

LCD_DTPIN = PORTB.4 LCD_RSPIN = PORTB.0 LCD_ENPIN = PORTB.1 LCD_INTERFACE = 4 ' 4-bit Interface LCD_LINES = 2 LCD_TYPE = 0 Dim var1 As Byte Dim var2 As Byte var1=0 var2=0

inicio1:

If var1=2 And PORTC.3=1 Then GoTo tems EndIf If PORTC.3=1 And var1=1 Then GoTo tens

EndIf If PORTC.2=1 Then Inc var1 EndIf inicio2: If var1 =1 Then Cls Inc var2 Print At 1,1,"PARA SELECCIONAR" Print At 2,1,"TENS PULSE ENTER" DelayMS 25 GoTo inicio1 EndIf If var1 = 2 Then Cls Print At 1,1,"PARA SELECCIONAR" Print At 2,1,"TEMS PULSE ENTER" DelayMS 25 GoTo inicio1 EndIf If var1=3 Then var1=1 GoTo inicio2 EndIf GoTo inicio3 inicio3: Low PORTC.1 GoTo inicio1 tems: Cls

Print At 1,3,"SELECCIONO" Print At 2,4,"TEMS" High PORTC.1 DelayMS 25 GoTo tems tens: Cls High PORTC.0 Print At 1,3,"SELECCIONO" Print At 2,4,"TENS" DelayMS 25 GoTo tens

Device = 16F870 XTAL = 4

LCD_DTPIN = PORTB.4 LCD_RSPIN = PORTB.0 LCD_ENPIN = PORTB.1 LCD_INTERFACE = 4 ' 4-bit Interface LCD_LINES = 2 LCD_TYPE = 0 Dim var1 As Byte Dim var2 As Byte var1=0 var2=0

inicio1:

If var1=2 And PORTC.3=1 Then GoTo tems EndIf If PORTC.3=1 And var1=1 Then GoTo tens EndIf If PORTC.2=1 Then Inc var1 EndIf inicio2: If var1 =1 Then Cls Inc var2 Print At 1,1,"PARA SELECCIONAR" Print At 2,1,"TENS PULSE ENTER" DelayMS 25 GoTo inicio1 EndIf If var1 = 2 Then Cls Print At 1,1,"PARA SELECCIONAR" Print At 2,1,"TEMS PULSE ENTER" DelayMS 25 GoTo inicio1 EndIf If var1=3 Then var1=1 GoTo inicio2 EndIf

GoTo inicio3 inicio3: Low PORTC.1 GoTo inicio1 tems: Cls Print At 1,3,"SELECCIONO" Print At 2,4,"TEMS"

DelayMS 25 GoTo tems tens: Cls

Print At 1,3,"SELECCIONO" Print At 2,4,"TENS" DelayMS 1000 Cls Print At 1,4,"MENU" DelayMS 1000 Cls neg: Print At 1,1,"PULSOS AISLADOS" Print At 2,4," POSITIVOS" If PORTC.3=1 Then GoTo ONDAS EndIf DelayMS 25 GoTo neg ONDAS: ' PULSOS AISLADOS'

High PORTC.0 'vg1-2' Low PORTC.1 DelayUS 995 Low PORTC.0 DelayUS 1000 GoTo ONDAS 'vg3-4 '

Conclusiones

Al terminar este trabajo se puede concluir que: Las contraindicaciones fisiolgicas producidas por el electro estimulador permiten que los msculos adquieran volumen, fuerza y resistencia; y que, adems, quemen las reservas de grasa localizadas. En pocas palabras, con el electro estimulador se pueden estimular los msculos como si hicieran ejercicio fsico. El electro estimulador, puede actuar slo en uno o dos msculos a la vez. Resulta, muy til durante la rehabilitacin de los msculos en extremidades que por alguna lesin hayan quedado inmovilizados. No puede reemplazar un tratamiento rehabilitador, pero si lo puede integrar de manera eficiente.

BIBLIOGRAFIA

http://www.electroterapia.com/nomencl.htm http://www.monografias.com/trabajos80/electroterapia/electroterapia2.shtml Modulo de Instrumentacin Mdica

Das könnte Ihnen auch gefallen