universidad autÓnoma metropolitana148.206.53.84/tesiuami/uami13200.pdf · 4.2 paquete para la...

158
UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA CIENCIAS BÁSICAS E INGENIERÍA LICENCIATURA EN INGENIERÍA BIOMÉDICA REPORTE DE PROYECTO FINAL “SIMULADOR DE ECG PORTÁTIL” INTEGRANTES: CRUZ MORALES ARACELI 96319770 HERNÁNDEZ ARIAS ANTONIO 99217824 MÉXICO, D.F., JULIO 2006

Upload: trinhduong

Post on 05-Feb-2018

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA

CIENCIAS BÁSICAS E INGENIERÍA LICENCIATURA EN INGENIERÍA BIOMÉDICA

REPORTE DE PROYECTO FINAL

“SIMULADOR DE ECG PORTÁTIL”

INTEGRANTES:

CRUZ MORALES ARACELI 96319770

HERNÁNDEZ ARIAS ANTONIO 99217824

MÉXICO, D.F., JULIO 2006

Page 2: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

1

Indice Indice………………………………………………………………………………………………………….01 Objetivo .........................................................................................................04 Introducción ...................................................................................................05 CAPITULO 1. Microcontrolador 16F84 Y 16F877

1.1 Arquitectura interna 16F84....................................................................06 1.2 El contador de programas (PC) 16F84....................................................09 1.3 La pila 16F84.......................................................................................10 1.4 Palabras de configuración e identificación 16F84....................................11

1.4.1 Palabras de configuración del PIC 16F84.....................................13 1.4.2 Registros de propósito especial...................................................18 1.4.3 Registro de STATUS (Posición 03h o 83h)....................................19 1.4.4 Registro OPTION (Posición 81h)..................................................20 1.4.5 Registro de interrupciones INTCON (posición 0Bh o 8Bh)..............24 1.4.6 Registro de interrupciones EEDATA (Posición 08h)........................25

1.5 Configuración de pines del PIC 16F84.....................................................26 1.6 Arquitectura interna PIC 16F877..............................................................29 1.7 El contador de programas (PC) del PIC16F877..........................................30 1.8 La pila del PIC16F877..............................................................................31 1.9 Palabras de configuración e identificación del PIC16F877............................31

1.9.1 Palabras de configuración..............................................................32 1.9.2 Registros de función especial.........................................................33 1.9.3 Registro de STATUS (Posición 03h o 83h) ......................................36 1.9.4 Registro OPTION_REG (Posición 81h o 181h) .................................37 1.9.5 Registro de interrupciones INTCON (Posición 0Bh o 8Bh) ................38 1.9.6 Registro de interrupciones EEDATA (Posición 10Ch) ........................39

1.10 Configuración de pines del PIC16F877.....................................................40 CAPITULO 2. MPLAB

2.1 Instalación y configuración.................................................................43 2.2 Como crear un proyecto con MLAB.....................................................52 CAPITULO 3. NIPLE

3.1 Introducción.......................................................................................56 3.2 Funciones disponibles..........................................................................56 3.3 Metodología de programación .............................................................56 3.4 Bloques…………………………………………………………………………………………..57 3.4.1 Interpretación de los bloques .................................................57 3.4.2 Insertar bloques ....................................................................60 3.4.3 Editar bloques .......................................................................61 3.5 Vínculos .............................................................................................61 3.6 Control de ingreso de nombres de registros...........................................62

Page 3: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

2

3.6.1 Control de ingresos de valores literales.....................................63 3.6.2 Declaración de registros..............................................................63 3.6.3 Registros predefinidos por el PIC..................................................63 3.6.4 Registros de usuarios..................................................................63 3.6.5 Registros de deshabilitados..........................................................63 3.6.6 Declaración de un registro de usuario...........................................63 3.6.7 Asignar un valor a un registro......................................................64 3.7 Configuración del puerto A........................................................................65 3.8 Configuración del puerto B........................................................................66 3.9 Leer datos de puerto................................................................................67 3.10 Escribir puerto.........................................................................................68 CAPITULO 4. Tarjeta de programación y desarrollo de PIC’s S103 4.1 Introducción..............................................................................................70 4.2 Paquete para la tarjeta de programación y desarrollo IC-PROG.....................70 CAPITULO 5. Señales Electrocardiográficas 5.1 Introducción..............................................................................................73 5.2 Electrocardiograma....................................................................................74

5.3 Derivaciones Electrocardiográficas...............................................................75 CAPITULO 6. Implementación del proyecto 6.1 PIC 16F877...............................................................................................78 6.2 PIC 16F84.................................................................................................78 6.3 Convertidor Digital Analógico 0808.............................................................79 6.4 Push botón, switch de 3 estados y osciladores 4MHz, 8MHz y 16MHz.............79 6.5 Reguladores de Voltaje (LM7805-LM7905) y Baterias (9V)............................80 6.6 Teclado de Matriz 4X4................................................................................81 CAPITULO 7. Desarrollo 7.1 Muestreo: 12 Derivaciones.........................................................................84 7.2 Programación con NIPLE............................................................................88 7.3 Programa en lenguaje ensamblador............................................................91 7.4 Grabación del PIC 16F877 y 16F84.............................................................91

7.5 Conexión de teclado, osciladores y DAC 0808.............................................91 7.6 Ensamblado del dispositivo………………………………………………………………………92

Page 4: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

3

Conclusiones………………………………………………………………………………………………………….94 Apéndice A Numeración binaria y su correspondiente voltaje………………………………………95 Apéndice B Gráficas obtenidas teóricamente………………………………………………………………98 Apéndice C Gráficas generadas por el ECG y desplegadas en un osciloscopio………………127 Apéndice D Código………………………………………………………………………………………………..133 Bibliografía……………………………………………………………………………………………………………156 Referencias…………………………………………………………………………………………………………..156

Page 5: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

4

Objetivo Con las habilidades adquiridas durante nuestra formación como Ingenieros Biomédicos realizaremos un proyecto, el cual partirá desde el diseño, desarrollo e implementación de un dispositivo electrónico portátil, que sea capaz de generar las señales electrocardiográficas normales de las seis derivaciones periféricas (I, II, III, aVR, aVL, aVF) y de las seis derivaciones precordiales (V1, V2, V3, V4, V5, V6) a distintas frecuencias de latidos por minuto.

Page 6: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

5

Introducción

La tecnología

Etimológicamente "tecnología" proviene de las palabras griegas tecné, que significa "arte" u "oficio", y logos "conocimiento" o "ciencia", área de estudio; por tanto, la tecnología es el estudio o ciencia de los oficios. Significa "cómo hacer las cosas", el "estudio de las artes prácticas."

En el sentido más amplio, la tecnología posibilita transformar el mundo, según las necesidades del hombre. Estas transformaciones pueden obedecer a requerimientos de supervivencia como alimento, higiene, servicios médicos; refugio o defensa o pueden relacionarse con aspiraciones humanas como el conocimiento, el arte o el control. La tecnología es un medio importante para crear entornos físicos y humanos nuevos. Sin embargo, los resultados de cambiar el mundo son impredecibles con frecuencia. Anticiparse a los efectos de la tecnología es tan importante como prever y comprender sus potencialidades.

Durante el siglo XX, muchos se preguntaron si la tecnología destruiría total o parcialmente la civilización creada por el ser humano.

Como creación humana, la tecnología tiene su propia historia e identidad, desligadas de la ciencia. Históricamente, antecedió a la ciencia y sólo paulatinamente llegó a igualarse con ella. Presenta una profunda interrelación con esta última.

Se asocia particularmente con la innovación, la transformación de una idea en un producto, en un proceso productivo, nuevo enfoque o procedimiento para la organización social y que transcurre por una serie de etapas científicas, técnicas, comerciales y financieras necesarias para su desarrollo y comercialización con éxito.

Constituye una actividad -la transformación- y también un resultado, porque sólo después que aquella ha finalizado con éxito puede considerarse que se ha generado la innovación. Esta definición incluye, consecuentemente, la innovación en el ámbito de lo social.

Hoy, la tecnología puede definirse como la aplicación del conocimiento científico a la solución de problemas prácticos y la obtención de metas humanas; un cuerpo de conocimientos desarrollados por una cultura que provee métodos o medios para controlar el entorno, extraer las fuentes, producir bienes y servicios, así como mejorar las condiciones de vida.

Nosotros como Ingenieros Biomédicos queremos aportar tal vez no un proyecto grande, pero si la idea de poner nuestros conocimientos adquiridos a lo largo de nuestra formación y demostrarnos a nosotros mismos que somos capaces de desarrollar tecnología que ayude en el ámbito social.

Page 7: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

6

CAPITULO 1 MICROCONTROLADORES 16F84 Y 16F877 1.1 Arquitectura interna El PIC 16C84 al igual que los demás miembros de su familia, se caracterizan por que:

• Su procesador es segmentado, "pipe-line" • Su procesador es tipo RISC • Tiene una arquitectura HARVARD • El formato de las instrucciones es ortogonal • Todas las instrucciones tienen la misma longitud (14 bits) • La arquitectura está basada en banco de registros

¿Pero que significa todo esto? Pues vamos a intentar aclarar estos conceptos: Procesador segmentado "pipe-line": quiere decir que aplica la técnica de segmentación que permite al procesador realizar simultáneamente la ejecución de una instrucción y la búsqueda de código de la siguiente. De esta manera, se puede ejecutar una instrucción en un ciclo. (Cada ciclo de instrucción son cuatro ciclos de reloj).

Figura 1.1.1. Ciclos de instrucción.

Ejemplo: Búsqueda 1

Ejecuta 1

1. MOVLW 55h

Búsqueda 2

Ejecuta2

2 .MOVWF PORTB

Búsqueda 3

Ejecuta 3

3. CALL SUB_1

Búsqueda 4

Salir

4. BSF PORTA,BIT3

Búsqueda SUB_1

Ejecuta SUB_1

Ejemplo 1.1.1. Ejecución de una instrucción.

Page 8: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

7

En el procesador tipo RISC: Las CPU´s atendiendo al tipo de instrucciones que utilizan pueden clasificarse en:

• CISC: (Complex Instruction Set Computer) Computadores de juego de instrucciones complejo, que disponen de un repertorio de instrucciones elevado (unas 80), algunas de ellas muy sofisticadas y potentes, pero que como contrapartida requieren muchos ciclos de máquina para ejecutar las instrucciones complejas.

• RISC: (Reduced Instruction Set Computer) Computadores de juego de instrucciones reducido, en los que el repertorio de instrucciones es muy reducido (en nuestro caso 35), las instrucciones son muy simples y suelen ejecutarse en un ciclo máquina. Además los RISC deben tener una estructura pipeline y ejecutar todas las instrucciones a la misma velocidad.

• SISC. (Specific Instruction Set Computer) Computadores de juego de instrucciones específico.

Arquitectura Harvard: Tradicionalmente los microprocesadores se basan en la estructura de Von Neumann, como la de la figura siguiente, que se caracteriza por disponer de una única memoria principal en la que se almacenan los datos y las instrucciones. A esta memoria se accede a través de un sistema de buses único:

• Bus de datos • Bus de direcciones • Bus de control

Figura 1.1.2. Arquitectura según el modelo de Von Neumann. El modelo Harvard, representado en la figura siguiente, dispone de dos memorias:

• Memoria de datos • Memoria de Programa

Además cada memoria dispone de su respectivo bus, lo que permite, que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones.

Page 9: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

8

Como los buses son independientes éstos pueden tener distintos contenidos en la misma dirección.

Figura 1.1.3. Arquitectura según el modelo Harvard.

La arquitectura ortogonal es cualquier instrucción puede utilizar cualquier elemento de la arquitectura como fuente o destino. Arquitectura basada en banco de registros, implica que todos los elementos del sistema, es decir, temporizadores, puertos de entrada/salida, posiciones de memoria, etc., están implementados físicamente como registros. En los PIC el manejo del banco de registros, que participan activamente en la ejecución de las instrucciones, es muy interesante al ser ortogonales. En la figura 1.1.4 se muestra como la ALU (Unidad Aritmético-Lógica) efectúa sus operaciones con dos operandos, uno que proviene del registro W (Work), que en otras CPUs recibe el nombre de Acumulador, y el otro que se encuentra en cualquier otro registro o del propio código de instrucción.

Figura 1.1.4. Registros que pueden enviar datos a la ALU. El resultado puede ir a cualquier

registro o al registro W Del PIC 16C84 del que podemos resaltar las siguientes características:

• Memoria de programa EEPROM de 1Kx14 bits • Memoria de datos dividida en 2 áreas:

Page 10: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

9

Área RAM formada por 22 registros de propósito específico (SFR) y 36 de propósito general (GPR). Área EEPROM formada por 64 bytes.

• ALU de 8 bits y registro de trabajo W del que normalmente recibe un operando que puede ser cualquier registro, memoria, puerto de Entrada/Salida o el propio código de instrucción. • Recursos conectados al bus de datos: PortA de 5 bits <RA0:RA4>, PortB de 8 bits <RB0:RB7>, Temporizador con Preescaler TMR0, etc. • Contador de programa de 13 bit (lo que en teoría permitiría direccionar 4 KB de memoria, aunque el 16C84 solo dispone de 1KB de memoria implementada). • Pila de 8 niveles.

La arquitectura del PIC16C84 se mantiene para todos los microcontroladores de esta subfamilia, diferenciándose unos de otros por las siguientes características:

• PIC 16F84: La memoria de programa es de 1 k palabras de l4 bits, pero de tipo Flash. La memoria de datos RAM tiene 68 registros de tamaño byte de propósito general, en lugar de 36. • PIC16CR84: La memoria de programa es de 1 k palabras de 14 bits tipo ROM y la de datos tiene iguales características que el PIC16F84. La memoria de programa es de 1 k palabras de 14 bits tipo ROM y la de datos tiene iguales características que el PIC16F84. • PIC16F83: La memoria de programa es de 512 palabras de 14 bits y la RAM de datos tiene 36 bytes de registros de propósito general. • PIC16CR83: Igual que el PIC16F83, pero la memoria de instrucciones es de tipo ROM, o sea, sólo grabable durante el proceso de fabricación y utilizada en grandes series.

El elemento diferencial más importante del PIC16C84 respecto al resto de los elementos de la familia media de los PIC, es que la su memoria de programa es del tipo EEPROM y en el caso del PIC16F84 es que su memoria es del tipo Flash, por lo demás, otros dispositivos de esta familia disponen de más memoria, tienen más periféricos, etc. 1.2 El contador de programas (PC) Los microcontroladores de la gama media disponen de un Contador de Programa (PC) de 13 bits, cuyos bits de menor peso corresponden a los 8 bits del registro PCL, implementado en la posición de memoria RAM 02h (y duplicado en la posición 82h),y los 5 bits de mayor peso del PC corresponden con los 5 bits de menor peso del registro PCLATCH, implementado en la posición de memoria RAM 0Ah (y duplicado en la posición 8Ah), lo que le permite direccionar hasta 8 k x 14 bits dividido en páginas de 2 k x 14 bits. Sin embargo, el PIC16C84 dispone tan solo de 1 k x14 bits de memoria implementada, desde la posición 0000h hasta la 03FFh, los 3 bits de mayor peso del PC no los tiene en cuenta, así pues la dirección 30h, 430h, 830h, C30h, 1430h, 1830 y 1C30h se considera como la misma.

Page 11: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

10

Figura 1.2.1. Contador de programa.

En las instrucciones CALL y GOTO los 11 <10:0> bits de menos peso corresponden al código de operación, mientras que los 2 bit de mayor peso <12:11> los suministran respectivamente los bits 4 y 3 del registro PCLATH que realmente apuntan a una de las 4 páginas del mapa de memoria que puede direccionar el PC. Un Reset provoca que se pongan a cero todos los bits de los registros PCL y PCLATCH, forzando que la dirección de inicio sea la 0000h. El vector de reset se almacena en la dirección 0000h, mientras que el vector de interrupción está en la dirección 0004h. La memoria de programa de usuario propiamente dicha, comienza en la posición 0005h y llega hasta la 03FFh 1.3 La pila La pila es una zona de memoria, que se encuentra separada tanto de la memoria de programa como de la de datos. Tiene una estructura LIFO (Last In First Out), por lo que el último valor que se guarda es el primero que sale. Dispone de 8 niveles de profundidad cada uno de ellos con una longitud de 13 bits. Su funcionamiento es como el de un buffer circular, de tal forma que el valor que se obtiene al realizar nueve desplazamientos, es igual al primer desplazamiento. La única manera de cargar la Pila es a través de la instrucción CALL (llamada a subrutina) o por una interrupción que hacen que con cada una de ellas, se cargue el contenido del PC en el valor superior de la Pila. Para recuperar el contenido de la Pila en el PC hay que ejecutar una instrucción RETURN, RETLW o RETFIE (vuelta del programa de atención a una subrutina o interrupción). No se dispone de ninguna bandera (identificador) que indique un desbordamiento de la Pila.

Page 12: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

11

Figura 1.3.1. Diagrama de la Pila.

1.4 Palabras de configuración e identificación Los PIC de la gama media disponen de una palabra de configuración de 14 bits que se escribe durante el proceso de grabación del dispositivo y que debe hacerse de acuerdo con el sistema en el que se va a insertar. Dichos bits ocupan la posición reservada de memoria de programa 2007h. En la tabla siguiente se muestra la estructura de la Palabra de configuración

CP PWRTE WDTE FOSC1 FOSC2

bit 13

bit12 bit11 bit 10

bit 9

bit 8

bit 7

bit 6

bit 5

bit 4

bit 3 bit 2 bit 1 bit 0

Tabla 1.4.1. Palabra de configuración.

• Bit 4: CP, bit de configuración protección de código

1 = Protección de código desactivado 0 = Protección de código activado

• Bit 3: PWRTE, Activación del temporizador "Power-Up"

1 = Desactivado 0 = Activado

Page 13: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

12

Bit 2: bit de configuración habilitación del Watchdog (WDT)

1: WDT activado 0: WDT desactivado

• Bit 1 y 2: FOSC<1:0>

11: Oscilador RC 10: Oscilador HS ( 8 - 20 MHz) 01: Oscilador XT ( 100 kHz - 4 MHz) 00: Oscilador LP (Bajo consumo 32 - 200 Hz)

Page 14: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

13

1.4.1 Palabras de Configuración del PIC16F84 Además dispone de cuatro posiciones de memoria de programa ubicadas en las direcciones <2000h : 2003h>, reservadas para las Palabras de Identificación ID. Estas palabras que se escriben durante el proceso de grabación, sólo emplean los 4 bits de menos peso y se utilizan por el programador para indicar el código del dispositivo, el número de serie, la versión del programa, etc. El diagrama de bloques del PIC16F84 es el siguiente:

Figura 1.4.1.1 Diagrama de bloques del PIC16F84.

Page 15: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

14

MNEMÓNICO DESCRIPCIÓN CÓDIGO OP

FLAGS AFECTADOS

NOTAS

Instrucciones Orientadas a Registros

ADDWF f,d

ANDWF f,d

CLRF f

CLRW

COMF f,d

DECF f,d

DECFSZ f,d

INCF f,d

INCFSZ f,d

IORWF f,d

MOVF f,d

MOVWF f

NOP

RLF f,d

RRF f,d

SUBWF f,d

SWAPF f,d

XORWF f,d

(W)+(f) � (destino)

(W) AND (f) � (destino)

00 � (f)

00 � (W)

Complemento de f [(#f)� (destino)]

(f)-1 � destino

(f)-1 � destino y si resultado es 0 salta

(f)+1 � destino

(f)+1 � destino y si resultado es 0 salta

(W) OR (f) � destino

Mueve f � destino

(W) � (f)

No operación

Rota f a la izq a través del carry � destino

Rota f a la dcha a través del cary � destino

00 0111 dfff ffff

00 0101 dfff ffff

00 0001 1fff ffff

00 0001 0000 0011

00 1001 dfff ffff

00 0011 dfff ffff

00 1011 dfff ffff

00 1010 dfff ffff

00 1111 dfff ffff

00 0100 dfff ffff

00 1000 dfff ffff

00 0000 1fff ffff

00 0000 0xx0

C, DC, Z

Z

Z

Z

Z

Z

Ninguno

Z

Ninguno

Z

Z

Ninguno

Ninguno

C

C

C,DC,Z

Ninguno

Z

1,2

1,2

2

1,2

1,2

1,2,3

1,2

1,2,3

1,2

1,2

1,2

1,2

1,2

1,2

1,2

Page 16: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

15

(f)–(W) � (destino)

Intercambia los nibbles de f � destino

(W) XOR (f) � (destino)

0000

00 1101 dfff ffff

00 1100 dfff ffff

00 0010 dfff ffff

00 1110 dfff ffff

00 0110 dfff ffff

Page 17: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

16

Instrucciones orientadas a Bit

BCF f,b

BSF f,b

BTFSC f,b

BTFSS f,b

Pone a 0 el bit b del registro f

Pone a 1 el bit b del registro f

Skip si el bit b del reg. f es 0

Skip si el bit b del reg. f es 1

01 00bb bfff ffff

01 01bb bfff ffff

01 10bb bfff ffff

01 11bb bfff ffff

Ninguno

Ninguno

Ninguno

Ninguno

1,2

1,2

3

3

Instrucciones con literales y de control

ADDLW K

ANDLW K

CALL K

CLRWDT

GOTO K

IORLW K

MOVLW K

RETFIE

RETLW K

RETURN

SLEEP

SUBLW K

XORLW K

(W)+ K � (W)

(W) AND K � (W)

Llamada a subrutina

Clear del temporizador del WD

Go To dirección

(W) OR K � (W)

K � (W)

Retorno de una interrupción

Retorno con un literal en W

Retorno de una subrutina

Modo Standby

K – (W) � W

(W) XOR K � (W)

11 111x kkkk kkkk

11 1001 kkkk kkkk

10 0kkk kkkk kkkk

00 0000 0110 0100

10 1kkk kkkk kkkk

11 1000 kkkk kkkk

11 00xx kkkk kkkk

00 0000 0000 1001

11 01xx kkkk kkkk

00 0000

C,DC,Z

Z

Ninguno

Z

Ninguno

Ninguno

Ninguno

Ninguno

C,DC,Z

Z

Page 18: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

17

0000 1000

00 0000 0110 0011

11 110x kkkk kkkk

11 1010 kkkk kkkk

Page 19: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

18

1.4.2 Registros de propósito especial (SFR)

Dirección Nombre bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit1 bit0

BANCO DE REGISTROS 0

00h INDF Contenido utilizado de FSR a la dirección de memoria de datos (no es un registro físico)

01h TMR0 Contador de 8 bit en tiempo real

02h PCL 8 bit más bajos del Contador de Programa

03h STATUS IRP RP1 RP0 T0# PD# Z DC C

04h FSR Puntero indirecto de direccionamiento de datos

05h PORTA -- -- -- RB4/TOCKI RA3 RA2 RA1 RA0

06h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

07h Posición no implementada, se lee como "00"

08h EEDATA Registro de datos EEPROM

09h EEADR Registro de direcciones EEPROM

0Ah PCLATH -- -- --

0Bh INTCON GIE EEIE TOIE INTE RBIE TOIF INTF RBIE

BANCO DE REGISTROS 1

80h INDF Contenido utilizado de FSR a la dirección de memoria de datos (no es un registro físico)

81h OPTION RBPU# INTEDG TOSC TOSE PSA PS2 PS1 PS0

82h PCL 8 bit más bajos del Contador de Programa

83h STATUS IRP RP1 RP0 T0# PD# Z DC C

84h FSR Puntero indirecto de direccionamiento de datos

85h TRISA -- -- -- Registro de direccionamiento de datos del PORTA

86h TRISB Registro de direccionamiento de datos del PORTB

87h Posición no implementada, se lee como "00"

88h EECON1 -- -- -- EEIF WRERR WRWN WR RD

89h EECON2 Registro de control de EEPROM (no es un registro físico)

8Ah PCLATH -- -- -- Buffer escrito con los 5 bit más altos del PC

8Bh INTCON GIE EEIE TOIE INTE RBIE TOIF INTF RBIE

Page 20: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

19

1.4.3 Registro de STATUS (POSICIÓN 03h o 83h)

� � � � �

R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-X R/W-X R/W-X

IRP RP1 RP0 T0# PD# Z DC C

Bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit1 bit0 Donde:

R = bit de lectura W = bit de escritura -n = Valor del bit después de un Reset

• bit 0 C : flag (�) de acarreo en el octavo bit

1: Acarreo en la suma y no en la resta 0: Acarreo en la resta y no en la suma

Este bit también se utiliza en las instrucciones de rotación

• bit 1 DC: flag (�) de acarreo en el 4º bit de menos peso. 1: Acarreo en la suma 0 : No acarreo en la suma. En la resta lo contrario

• bit 2 Z: flag (�) de cero

1: el resultado de la última operación aritmética o lógica es cero 0: El resultado de la última operación es distinto de cero

• bit 3 PD#: flag (�) Power Down

1: Tras conectar VDD o al ejecutar la instrucción CLRWDT 0: Al ejecutar la instrucción SLEEP

• bit 4 TO#: flag (�) Timer Out

1: Tras conectar VDD o ejecutar CLRWDT o SLEEP 0: Al desbordar el temporizador de WDT

• bit 5-6 RP<1:0>:Selección del banco para el direccionamiento directo

00 Banco 0 (00h-7Fh) 01 Banco 1 (80h-FFh) 10 Banco 2 (100h-17Fh) 11 Banco 3 (180h-1FFh)

• bit 7 IRP: Selección de bancos para el direccionamiento indirecto

1: el resultado de la última operación aritmética o lógica es cero 0: Bancos 0 y 1 (00h-FFh)

Page 21: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

20

1.4.4 Registro OPTION (POSICIÓN 81h) Ocupa la posición la 81h del banco de registro 1. En la siguiente tabla se muestra el significado de cada uno de sus 8 bits. Es recomendable darle otro nombre por ejemplo "OPTION" en el programa ensamblador, para que el programa ensamblador no de mensajes de error, ya que en los PIC de la gama baja existe la instrucción OPTION.

R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1

RBPU# INTEDG TOCS TOSE PSA PS2 PS1 PS0

bit 7 bit 6 Bit 5 bit 4 bit 3 bit 2 bit1 bit0 Donde:

R = bit de lectura W = bit de escritura -n = Valor del bit después de un Reset

• bit 2-0 PS2:PSO: Rango con el que actúa el Divisor de frecuencia

PS2 PS1 PS0 Divisor del TMRO Divisor del WDT

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

1:2

1:4

1:8

1:16

1:32

1:64

1:128

1:256

1:1

1:2

1:4

1:8

1:16

1:32

1:64

1:128

• bit 3 PSA: Asignación del divisor de frecuencia

1: El divisor de frecuencia se asigna al WDT 0: El divisor de frecuencia se asigna al TMR0

• bit 4 TOSE: Tipo de flanco en TOCK1

1: Incremento de TMR0 cada flanco descendente 0: Incremento de TMR0 cada flanco ascendente

Page 22: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

21

1.4.2 Registros de propósito especial (SFR)

Dirección Nombre bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit1 bit0

BANCO DE REGISTROS 0

00h INDF Contenido utilizado de FSR a la dirección de memoria de datos (no es un registro físico)

01h TMR0 Contador de 8 bit en tiempo real

02h PCL 8 bit más bajos del Contador de Programa

03h STATUS IRP RP1 RP0 T0# PD# Z DC C

04h FSR Puntero indirecto de direccionamiento de datos

05h PORTA -- -- -- RB4/TOCKI RA3 RA2 RA1 RA0

06h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

07h Posición no implementada, se lee como "00"

08h EEDATA Registro de datos EEPROM

09h EEADR Registro de direcciones EEPROM

0Ah PCLATH -- -- --

0Bh INTCON GIE EEIE TOIE INTE RBIE TOIF INTF RBIE

BANCO DE REGISTROS 1

80h INDF Contenido utilizado de FSR a la dirección de memoria de datos (no es un registro físico)

81h OPTION RBPU# INTEDG TOSC TOSE PSA PS2 PS1 PS0

82h PCL 8 bit más bajos del Contador de Programa

83h STATUS IRP RP1 RP0 T0# PD# Z DC C

84h FSR Puntero indirecto de direccionamiento de datos

85h TRISA -- -- -- Registro de direccionamiento de datos del PORTA

86h TRISB Registro de direccionamiento de datos del PORTB

87h Posición no implementada, se lee como "00"

88h EECON1 -- -- -- EEIF WRERR WRWN WR RD

89h EECON2 Registro de control de EEPROM (no es un registro físico)

8Ah PCLATH -- -- -- Buffer escrito con los 5 bit más altos del PC

8Bh INTCON GIE EEIE TOIE INTE RBIE TOIF INTF RBIE

Page 23: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

22

1.4.3 Registro de STATUS (POSICIÓN 03h o 83h)

� � � � �

R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-X R/W-X R/W-X

IRP RP1 RP0 T0# PD# Z DC C

Bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit1 bit0 Donde:

R = bit de lectura W = bit de escritura -n = Valor del bit después de un Reset

• bit 0 C : flag (�) de acarreo en el octavo bit

1: Acarreo en la suma y no en la resta 0: Acarreo en la resta y no en la suma

Este bit también se utiliza en las instrucciones de rotación

• bit 1 DC: flag (�) de acarreo en el 4º bit de menos peso. 1: Acarreo en la suma 0 : No acarreo en la suma. En la resta lo contrario

• bit 2 Z: flag (�) de cero

1: el resultado de la última operación aritmética o lógica es cero 0: El resultado de la última operación es distinto de cero

• bit 3 PD#: flag (�) Power Down

1: Tras conectar VDD o al ejecutar la instrucción CLRWDT 0: Al ejecutar la instrucción SLEEP

• bit 4 TO#: flag (�) Timer Out

1: Tras conectar VDD o ejecutar CLRWDT o SLEEP 0: Al desbordar el temporizador de WDT

• bit 5-6 RP<1:0>:Selección del banco para el direccionamiento directo

00 Banco 0 (00h-7Fh) 01 Banco 1 (80h-FFh) 10 Banco 2 (100h-17Fh) 11 Banco 3 (180h-1FFh)

• bit 7 IRP: Selección de bancos para el direccionamiento indirecto

1: el resultado de la última operación aritmética o lógica es cero 0: Bancos 0 y 1 (00h-FFh)

Page 24: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

23

1.4.4 Registro OPTION (POSICIÓN 81h) Ocupa la posición la 81h del banco de registro 1. En la siguiente tabla se muestra el significado de cada uno de sus 8 bits. Es recomendable darle otro nombre por ejemplo "OPTION" en el programa ensamblador, para que el programa ensamblador no de mensajes de error, ya que en los PIC de la gama baja existe la instrucción OPTION.

R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1

RBPU# INTEDG TOCS TOSE PSA PS2 PS1 PS0

bit 7 bit 6 Bit 5 bit 4 bit 3 bit 2 bit1 bit0 Donde:

R = bit de lectura W = bit de escritura -n = Valor del bit después de un Reset

• bit 2-0 PS2:PSO: Rango con el que actúa el Divisor de frecuencia

PS2 PS1 PS0 Divisor del TMRO Divisor del WDT

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

1:2

1:4

1:8

1:16

1:32

1:64

1:128

1:256

1:1

1:2

1:4

1:8

1:16

1:32

1:64

1:128

• bit 3 PSA: Asignación del divisor de frecuencia

1: El divisor de frecuencia se asigna al WDT 0: El divisor de frecuencia se asigna al TMR0

• bit 4 TOSE: Tipo de flanco en TOCK1

1: Incremento de TMR0 cada flanco descendente 0: Incremento de TMR0 cada flanco ascendente

Page 25: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

24

• bit 5 TOCS: Tipo de Reloj para TMR0 1: Pulsos introducidos a través de T0CK1 (Contador)

0: Pulsos de reloj interno Fosc/4 (Temporizador)

• bit 6 INTEDG: Flanco activo control de interrupciones

1: Flanco Ascendente 0: Flanco Descendente

• bit 7 BPRU : Resistencia Pull-up Puerto B

1: Desactivadas 0: Activadas

1.4.5 Registro de interrupciones INTCON (POSICIÓN 0Bh o 8Bh). Ocupa la posición 0Bh del banco de registro 0 y la 8Bh del banco de registro 1. En la siguiente tabla se muestra la estructura de cada uno de sus 8 bits de los cuales unos actúan como señaladores del estado de estado y otros como bit de permiso o autorización para que se pueda producir la interrupción. Cuando se estudien las interrupciones se entenderá mejor el funcionamiento del registro.

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-X

GIE EEIE TOIE INTE RBIE TOIF INTF RBIF

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit1 bit0 Donde: R = bit de lectura

W = bit de escritura -n = Valor del bit después de un Reset

• bit 0 RBIF: flag (�) de estado del Port B

1: Cuando cambia de estado cualquier línea de PB (RB<7:4>). Se borra por software 0: Ninguna entrada de PB ha cambiado

• bit 1 INTF: flag (�) de estado de la interrupción externa INT

1: La entrada de la interrupción se ha activado. Se borra por software 0: No hay interrupción externa

• bit 2 T0IF: flag (�) de rebosamiento del TMR0 1: El TMR0 se ha desbordado. Se borra por software 0: El TMR0 no se ha desbordado

• bit 3 RBIE: Activación de la interrupción del Port B

1: Interrupción activada 0: Interrupción desactivada

Page 26: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

25

bit 4 INTE: Activación de la interrupción externa INT 1: Interrupción activada 0: Interrupción desactivada

• bit 5 T0IE: Activación de la interrupción del TMR0

1: Interrupción activada 0: Interrupción desactivada

• bit 6 EEIE: Activación de la interrupción de la memoria EEPROM

1: Interrupción activada 0: Interrupción desactivada

bit 7 GIE: Activación Global de Interrupciones

1: Concedido el permiso de interrupciones 0: No hay posibilidad de interrupciones

1.4.6 Registro de Interrupciones EEDATA (POSICIÓN 08h): En el registro EEDATA, se encuentra en la posición 08h del banco 1; tiene misiones de control de las operaciones en la EEPROM y la distribución de sus bits se presenta en la siguiente tabla se muestra la estructura de cada uno de sus 8 bits.

U U U R/W-0 R/W-x R/W-0 R/W-0 R/W-0

EEIF WRERR WREN WR RD

Bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit1 bit0 Donde:

R = bit de lectura W = bit de escritura -n = Valor del bit después de un Reset S = bit no implementado se lee como 0

• bit 0: RD, Lectura .Se pone a 1 cuando se va a realizar un ciclo de lectura de la EEPROM, luego pasa a 0 automáticamente.

• bit 1: WR, Escritura. Se pone a 1 cuando comienza el ciclo de escritura de la EEPROM. Se pone a 0 cuando finaliza el ciclo de escritura de la EEPROM

• bit 2: WREN, Permiso de escritura

1 = Permite la escritura de la EEPROM 0 = Prohíbe la escritura de la EEPROM

• bit 3:WRWRR, Señalizador de error de escritura 1 = Se pone a 1 cuando una operación de escritura ha terminado

prematuramente 0 = La operación de escritura se ha completado correctamente

Page 27: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

26

• bit 4:EEIF, Señalizador de final de operación de escritura

1= La operación de escritura se ha completado con éxito 0 = La operación de escritura no se ha completado

1.5 Configuración de pines del PIC16F84 El microcontrolador PIC16F84 es un chip que como puede apreciarse en la figura siguiente, dispone de 18 patillas. Seguidamente describiremos cada una de ellas.

Figura 1.5.1. Pines del microcontrolador PIC16F84

VSS y VDD: (pines 5 y 14) son respectivamente las patillas de masa y alimentación. Está comprendida entre 2V y 6V. OSC1/CLKIN y OSC2/CLKOUT: (pines15 y 16) son los pines de la entrada de cristal / fuente externa de reloj y salida de oscilador a cristal respectivamente. Los distintos elementos de la familia 16X84X, dependiendo de la nomenclatura que utilizan tienen distintas características de:

• Frecuencia máxima de funcionamiento • Tipo de oscilador utilizado para generar frecuencias de reloj • Margen de la tensión de alimentación.

Los modelos que contienen las letras C, F o CR admiten tensiones de alimentación comprendidas entre 4V y 4,5V como mínimo hasta 5,5V a 6V como máximo. Los modelos que contienen las letras LC, LF o LCR admiten desde 2V a 6V. Los microcontroladores PIC, permiten cuatro tipos de osciladores externos para aplicarles la frecuencia de funcionamiento. Durante el proceso de grabación, antes de introducir el programa en memoria, debe indicarse el tipo de oscilador empleado en los bits FSOC1 y FSOC2 de la Palabra de Configuración. Los tipos de osciladores que puede utilizar nuestro microcontrolador son:

Page 28: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

27

• Oscilador de cristal o resonador de alta velocidad "HS"(High Speed Crytal / Resonator): Es un oscilador una frecuencia comprendida entre 4MHz y 20MHz.

Oscilador o resonador cerámico "XT" (Crystal / Resonator): Se trata de un oscilador estándar que permite una frecuencia de reloj comprendidas entre 100KHz y 4 MHz.

• Oscilador de cristal de cuarzo o resonador cerámico de baja potencia "LP" (Low Power Crystal): Se trata de un oscilador de bajo consumo con un cristal o resonador diseñado para trabajar con frecuencias comprendidas entre 32KHz y 200KHz.

El circuito para cualquiera de las configuraciones anteriores se representa en la siguiente figura y depende de los valores de C1, C2 y del cristal para el buen funcionamiento del mismo. Se recomienda ver la tabla de datos del fabricante.

Figura 1.5.2. Circuito de oscilación para el PIC.

Oscilador a cristal para el PIC16FXX valido para la configuración HS, XT y LP, la resistencia RS solo es necesaria para algunas versiones del tipo HS.

• Oscilador tipo "RC": Es un oscilador de bajo coste formado por una red RC. Su circuito de aplicación es el que se muestra en la siguiente figura Se trata de un oscilador de baja precisión que depende de la estabilidad de la red RC, pero como contrapartida está su bajo precio que lo hace interesante para muchas aplicaciones.

Figura 1.5.3. Circuito RC para oscilador del PIC.

Oscilador R-C externo conectado al pin OSC1/CLKIN, donde Rext. Debe ser un valor comprendido entre 5KW y 10KW.

Page 29: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

28

MLCR /Vpp: (pin 4) Entrada de Reset si está a nivel bajo y entrada de la tensión de programación cuando se está programando el dispositivo. Más adelante veremos como se realiza el reset del microcontrolador y que formas hay de hacerlo. RA0-RA4/TOCK1: (Pines 17, 18, 1, 2 y 3 respectivamente) Corresponden a cuatro líneas bidireccionales de E/S del PORTA. Es capaz de entregar niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. El pin RA4, si se programa como salida es de colector abierto. Como entrada puede programarse en funcionamiento normal o como entrada del contador/temporizador TMR0. RB0-RB7: (Pines 6, 7, 8, 9, 10, 11,12 y 13 respectivamente) Corresponden a ocho líneas bidireccionales de E/S del PORTB. Es capaz de entregar niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. RB0 puede programarse además como entrada de interrupciones externas INT. Los pines RB4 a RB7 pueden programarse para responder a interrupciones por cambio de estado. La patilla RB6 y RB7 corresponden con las líneas de entrada de reloj y entrada de datos respectivamente, cuando está en modo programación.

Page 30: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

29

1.6 Arquitectura interna del PIC16F877 El dispositivo se presenta en paquete de 40 pines. Con un puerto paralelo esclavo implementado. El siguiente diagrama de bloques corresponde al PIC 16F877, figura 1.

Figura 1.6.1. Diagrama a bloques del PIC 16F877.

Page 31: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

30

1.7 El contador de programas (PC) del PIC16F877 El dispositivo 16F877 tiene un contador de programa de 13-bits capaz de direccionar un espacio de memoria de 8k x 14. Tiene palabras de 8k x 14 de memoria de programa FLASH. El vector RESET está en 0000h y el vector está en 0004h. En la Figura 2 se muestra el mapa de memoria y la pila.

Figura 1.7.1. Mapa de memoria y pila

Page 32: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

31

1.8 La pila del PIC16F877 Cuenta con una pila de hardware que tiene 8-niveles de largo x 13-bits de ancho. El espacio en pila no es parte ni del programa ni de espacio de datos y el puntero de la pila no puede ser escrito o leído. El PC es introducido (PUSH) en la pila cuando una instrucción CALL es ejecutada, o una interrupción produce una bifurcación. La pila es extraída (POP) en el evento de ejecución de una instrucción RETURN, RETLW o RETFIE. PCLATH no es afectada por las operaciones de PUSH o POP. La pila opera como un buffer circular. Esto significa que después que la pila ha realizado ocho operaciones de PUSH, la novena operación de PUSH sobrescribe el valor que estaba almacenado desde el primer PUSH. El décimo PUSH sobrescribe el segundo PUSH (y así en adelante). No hay bits de estado que indiquen desbordamiento de la pila o condiciones de desborde de la misma. No hay instrucciones/mnemónicos llamados PUSH o POP. Estos son acciones que ocurren desde la ejecución de instrucciones CALL, RETURN, RETLW y RETFIE, o de hacer el vector de una dirección de interrupción. 1.9 Palabras de configuración e identificación del PIC16F877 La memoria de datos está particionada en bancos múltiples que contienen los Registros de Propósito General y los Registros de Función General. Bits RP1 (STATUS <6>) y RP0 (STATUS <5>) son los bits del banco seleccionado. Cada banco se extiende hasta 7Fh (128 bytes). Las localidades inferiores de cada banco están reservadas para los Registros de Función Especial. Sobre los Registros de Función Especial son Registros de Propósito General, implementados como RAM estática. Todos los bancos implementados contienen Registros de Función General. Algunos Registros de Función Especial de uso frecuente, de un banco a otro pueden ser espejos en otros bancos para reducción de código y acceso rápido.

Tabla 1.9.1.

Page 33: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

32

1.9.1 Palabras de configuración del PIC 16F877 El archivo de registro puede ser accesado directamente o indirectamente a través del Registro del Archivo Seleccionado (FSR). En la figura se muestra el mapa de registros de archivo.

Figura 1.9.1.1. Mapa de registros de archivo

Page 34: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

33

1.9.2 Registros de Función Especial del PIC16F877 Los Registros de Función Especial son registros usados por el CPU y módulos periféricos para controlar la operación deseada del dispositivo. Estos registros son implementados como RAM estática. La lista de estos registros está dada en la Tabla 2. Los Registros de Función Especial pueden ser clasificados en dos posiciones: centro (CPU) y periféricos.

Tabla 1.9.2.1 Sumario de Registro de Función Especial.

Page 35: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

34

Continuación Tabla 1.9.2.1

Page 36: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

35

Continuación Tabla 1.9.2.1.

Page 37: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

36

1.9.3 Registro de STATUS (Posición 03h o 83h) El registro STATUS contiene el estado aritmético de la ALU, el estado de RESET y los bits de la selección de banco para la memoria de datos. El registro STATUS puede ser destinado para cualquier instrucción, con cualquier otro registro. Si el registro STATUS es el destino de una instrucción que afecta los bits de Z, DC o C, entonces la escritura de estos bits es deshabilitada. Estos bits son escritos o blanqueados de acuerdo a la lógica del dispositivo. Además, los bits TO y PD no pueden escribirse y el resultado de una instrucción con el registro STATUS como destino puede ser diferente de la intención deseada. Registro STATUS (dirección 03h, 83h, 103h, 183h)

Bit 7 IRP: Bit de selección de banco de registro (usado por direccionamiento indirecto) 1 = Banco 2, 3 (100h – 1FFh) 0 = Banco 0, 1 (00h - FFh) Bit 6-5 RP1:RP0: Bit de selección de banco de registro (usado por direccionamiento directo) 11 = Banco 3 (180h – 1FFh) 10 = Banco 2 (100h – 17Fh) 01 = Banco 1 (80h - FFh) 00 = Banco 0 (00h – 7Fh) Bit 4 TO: Bit de Time-out 1 = Después de encendido, instrucción CLRWDT o SLEEP 0 = Ocurrió un Time-out WDT Bit 3 PD: Bit de apagado 1 = Después de encendido o por la instrucción CLRWDT 0 = Por ejecución de la instrucción SLEEP Bit 2 Z: Bit cero 1 = El resultado de una operación aritmética o lógica es cero 0 = El resultado de una operación aritmética o lógica no es cero. Bit 1 DC: Bit acarreo de dígito (instrucciones ADDWF, ADDLW, SUBLW, SUBWF) 1 = Ocurrió del resultado un acarreo del 4to bit bajo 0 = No hubo acarreo del 4to bit bajo del resultado Bit 0 C: Bit de acarreo (instrucciones ADDWF, ADDLW, SUBLW, SUBWF) 1 = Ocurrió un acarreo de MSB del resultado 0 = No ocurrió un acarreo de MSB del resultado

Page 38: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

37

1.9.4 Registro OPTION_REG (Posición 81h o 181h) El registro OPTION_REG es un registro que puede ser leído o escrito, el cual contiene varios bits de control para configurar el TMR0 prescalador/WDT postescalador (registro simple asignable también conocido como el prescalador), la interrupción externa INT, TMR0 y los débiles switches del PORTB. Para alcanzar una asignación del prescalador 1:1 para el registro TMR0, asigna el prescalador al Watchdog timer. Registro OPTION_REG (dirección 81h, 181h)

____ Bit 7 RBPU: Bit que habilita PORTB 1 = PORTB está deshabilitado 0 = PORTB está habilitado por valores de latch individuales Bit 6 INTEDG: Bit de selección de interrupción de subida o bajada 1 = Interrupción en cambio de subida de pin RB0/INT 0 = Interrupción en cambio de bajada de pin RB0/INT Bit 5 T0CS: Bit de selección de fuente de reloj de TMR0 1 = Transición en pin RA4/T0CKI 0 = Reloj interno de ciclo de instrucción (CLKOUT) Bit 4 T0SE: Bit de selección de subida o bajada de TMR0 1 = Incremento en transición alto a bajo en pin RA4/T0CKI 0 = Incremento en transición bajo a alto en pin RA4/T0CKI Bit 3 PSA: Bit de asignación del prescalador 1 = El prescalador es asignado a WDT 0 = El prescalador es asignado al módulo Timer0 Bit 2-0 PS2:PS0: Bits de selección de rango de prescalador

Valor de bit Rango TMR0 Rango WDT 000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1:16 1:8 100 1:32 1:16 101 1:64 1:32 110 1:128 1:64 111 1:256 1:128

Tabla 1.9.4.1.

Page 39: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

38

1.9.5 Registro de interrupciones INTCON (Posición 0Bh o 8Bh) El registro INTCON es un registro que puede ser leído o escrito, el cual contiene varias banderas de bits habilitadoras para el desborde del registro TMR0, cambio del puerto RB e interrupciones externas en pin RB0/INT. Bits de bandera de interrupción son puestos cuando una condición de interrupción ocurre, a pesar del estado de su correspondiente bit de habilitación o el bit global de habilitación, GIE (INTCON <7>). Usando software se debe asegurar que los bits de bandera apropiados estén limpios para la habilitación de una interrupción. Registro INTCON (Dirección 0Bh, 8Bh, 10Bh, 18Bh)

Bit 7 GIE: Bit global de habilitación de interrupciones 1 = Habilita todas las interrupciones no enmascaradas 0 = Deshabilita todas las interrupciones Bit 6 PEIE: Bit que habilita las interrupciones periféricas 1 = Habilita todas las interrupciones no enmascaradas periféricas 0 = Deshabilita todas las interrupciones periféricas Bit 5 T0IE: Bit TMR0 de habilitación de interrupción de desborde 1 = Habilita la interrupción de TMR0 0 = Deshabilita la interrupción TMR0 Bit 4 INTE: Bit RB0/INT de habilitación interrupción externa 1 = Habilita la interrupción externa de RB0/INT 0 = Deshabilita la interrupción externa de RB0/INT Bit 3 RBIE: Bit de habilitación de cambio de puerto RB 1 = Habilita la interrupción de cambio de puerto RB 0 = Deshabilita la interrupción de cambio de puerto RB Bit 2 T0IF: Bit de bandera de desborde de TMR0 1 = Registro TMR0 desbordado (debe ser limpiado por software) 0 = Registro TMR0 no ha desbordado Bit 1 INTF: Bit de bandera de interrupción externa RB0/INT

1 = Ocurrió una interrupción externa RB0/INT (debe ser limpiado por software)

0 = No ha ocurrido una interrupción externa en RB0/INT Bit 0 RBIF: Bit de bandera de interrupción de cambio de puerto RB

1 = Al menos uno de los pines RB7:RB4 cambió su estado (debe ser limpiado por software) 0 = Ninguno de los pines RB7:RB4 cambió su estado

Page 40: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

39

1.9.6 Registro de interrupciones EEDATA (Posición 10Ch) El PIC cuenta con dos tipos de memoria que son la Memoria de Datos EEPROM y la Memoria de Programa FLASH, que pueden ser leídas o puede escribirse durante la operación normal sobre el rango completo de VDD. Leer y escribir en ambas memorias toma lugar indirectamente a través de un conjunto de Registros de Función Especial (SFR). Estos son seis:

• EEDATA • EEDATH • EEADR • EEADRH • EECON1 • EECON2

Dependiendo de la operación, el registro EEDATA mantiene los datos a ser escritos, o los datos a ser leídos en la dirección de EEADR. La memoria FLASH permite acceso de lectura no invasivo, pero operaciones de escritura causarán que el dispositivo detenga la ejecución de instrucciones, hasta que completa la escritura. La combinación de los registros EEDATH:EEDATA tiene para escritura 14-bits de datos, o refleja el valor de la memoria de programa después de una operación de lectura. La lectura de la Memoria de Datos EEPROM solo requiere que la dirección deseada a acceder para ser escrita en el registro EEADR y limpiando el bit EEPGD. Después de que el bit RD es puesto en alto, los datos estarán disponibles en el registro EEDATA en el siguiente ciclo de instrucción. El registro EEDATA contendrá este valor hasta que otra operación de lectura sea inicializada o hasta que sea escrito. Los pasos para leer de la Memoria de Datos son:

1 Escribir la dirección de EEDATA. Asegurarse que la dirección no es más larga que el tamaño de la memoria del dispositivo. 2 Limpiar el bit EEPGD para direccionar la Memoria de Datos EEPROM. 3 Poner en alto el bit RD para empezar la operación de lectura. 4 Leer los datos del registro EEDATA.

Ejemplo 1.9.6.1 Lectura de datos de EEPROM.

Page 41: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

40

1.10 Configuración de pines del PIC16F877 Configuración del 16F877 en circuito integrado (PDIP) de 40 pines, se muestra en la figura.

Figura 1.10.1. Diagrama del PIC 16F877

Page 42: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

41

En seguida se describen en la tabla los pines del PIC 16F877.

Tabla 1.10.1. Descripción de los pines de salida.

Page 43: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

42

Continuación Tabla 1.10.1.

Page 44: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

43

CAPITULO 2 MPLAB

2.1 Instalación y configuración Alguien dijo por ahí que cuando lo instales, le saques las tildes a todo lo referente a PICMASTER, PROMATE, MPLAB-ICE, MPLAB-ICD, ICEPIC, dado que se refieren a herramientas hard de microchip, y que nosotros no tenemos:

Algunas de las cosas más importantes serían:

• Archivos MPLAB IDE • Archivos MPASM/MPLINK/MPLIB • Archivos de Protección del Simulador • MPLAB-SIM

Y por supuesto, los Archivos de Ayuda. Luego seleccionas los componentes de lenguaje Microchip que debes instalar (Todos por defecto), bien cuando termines la instalación, lo ejecutas y veras el IDE de MPLAB. Por las dudas surge algún cuadro de diálogo diciéndote algo de un proyecto, que si quieres crear uno o que no existe ninguno o bueno algo así, pues le das a que no y continúas, y no te preocupes demasiado que luego hablaremos de ese tema, por ahora haremos una inspección de nuestro entorno de trabajo luego entramos en materia.

Figura 2.1.1. Pantalla de MPLAB.

Ahora lo vamos a preparar para nuestra ardua tarea de programar y simular nuestros proyectos según el Micro del que disponemos, es decir, mi querido y bien amado 16F84. Te diriges al menú Options --> Development Mode... y verás un cuadro de diálogo algo así:

Page 45: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

44

Figura 2.1.2. Pantalla de Development mode.

En la pestaña Tools seleccionas el procesador PIC16F84 y del otro lado el modo en que lo vas a utilizar MPLAB-SIM Simulador eso te permitirá programar, depurar, simular, etc., el resto lo dejas como está, finalmente le das a Ok y verás en la barra de estado los cambios que hiciste:

Figura 2.1.3. Barra de estado.

Hasta aquí estamos listos para comenzar a trabajar. MPLAB pone a tu disposición 4 barras de herramientas personalizables según la tarea que estés realizando, se puede acceder a cada una de las opciones desde cualquiera de los menús, pero veamos cuales son esas barras:

Figura 2.1.4. Barra de herramientas personalizadas.

La primera es la barra USER, que por defecto es la única que utilizo. La segunda es la barra EDIT, todo lo relacionado a la Edición de texto. La tercera es la barra DEBUG, con todo lo necesario para simular nuestro programa, depurarlo, etc. Finalmente la barra PROJECT, todo lo referido al proyecto que estás realizando. Por cierto puedes cambiar de barra de herramientas simplemente presionando repetidas veces el primer botón, si colocas el cursor del mouse sobre este icono verás en la parte inferior de la ventana la función que cumple, en este caso... "Swap Toolbar" en entendible "Cambiar barra de herramientas", pues es como una ayuda emergente, coloca el cursor sobre otros botones y sabrás para que se utilizan.

Page 46: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

45

Ok, vamos por los menús, por ahora solo los más utilizados:

• Menú File:

NEW: Crea un nuevo archivo con extensión .asm. OPEN: Abre un archivo que puede ser .asm/ .obj/ .c/ .err/ .h/ .lkr/ .map/

hex/ .lst. VIEW: Abre un archivo en modo solo lectura. SAVE: Salvar. SAVE AS: Salvar como. SAVE ALL: Salvar todo. CLOSE: Cerrar un proyecto. CLOSE ALL: Cerrar todos los proyectos abiertos.

• Menú Project: Como MPLAB te permite trabajar con varios archivos y todos los elementos y herramientas a la vez es bueno crear un proyecto y tener en él todo lo necesario para realizar tu tarea, como puede ser: codificar, ensamblar, simular, etc., veamos que contiene este menú:

NEW PROJECT: Abre un cuadro de diálogo para crear un nuevo proyecto y

en él todo lo que necesites para tenerlo más a tu alcance. OPEN PROJECT: Abrir un proyecto CLOSE PROJECT: Cerrar un proyecto SAVE PROYECT: Guardar proyecto EDIT PROJECT: Similar a New Project, pero referido a un proyecto ya

abierto, al que se le puede agregar nodos, librerías y la forma en que desarrollaras el proyecto en cuestión. MAKE PROJECT: Según los que de todo saben dicen que ensamblara todo,

pero teniendo en cuenta la fecha de creación del archivo .HEX la cual compara con el archivo .asm del que ensamblo. Si este tiene una fecha mas reciente que el archivo .HEX asociado, debido digamos a una actualización del código, entonces ensamblará nuevamente el proyecto. En caso de que la fecha sea anterior al archivo .HEX generado (es decir, archivo .ASM mas viejo que el .HEX) este no hará nada. BUILD ALL: Le importa nada la fecha y ensambla todo. BUIL NODE: Ensamblar un nodo que hayamos asociado al proyecto. INSTALL LANGUAGE TOOL: Es para configurar el lenguaje a utilizar, que en

nuestro caso es el ASM de Microchip.

• Menú Edit:

UNDO: Deshacer, y en ese orden Cortar, Copiar y Pegar. SELECT ALL: Seleccionar todo. SELECT WORD: Selecciona la palabra sobre la que esta el cursor. DELETE LINE: Borra la línea sobre la que está el cursor. DELETE EOL: Borra desde donde esta el cursor hasta el final de la línea.

Page 47: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

46

GOTO LINE: Abre un cuadro de diálogo para saltar a una determinada línea

(Line to go to), te indica además la cantidad total de líneas (Last Line) y la línea en que tienes el cursor (Current Line), es algo así como el "Ir a" de Word. FIND: Es para buscar algún texto dentro de nuestro código, tiene algunas

opciones, pruébalas… REPLACE: Es para reemplazar un texto o una pequeña frase. REPEAT FIND: Es para repetir la búsqueda si es que hay otra palabra o

frase igual. REPEAT REPLACE: Es para repetir el reemplazo. TEMPLATE: Pues como todos los temporales, para crear unos archivos

personalizados o plantillas, y así no estas rescribiendo todo un código nuevamente. TEXT: También tiene sus opciones;

♦ Transpose: Intercambia los caracteres que están a ambos lados del cursor. ♦ Upper case: Cambiar a mayúsculas. ♦ Lower case: Cambiar a minúsculas. ♦ Indent: Mantiene la tabulación de la línea anterior. ♦ Un-Indent: Lo opuesto.

• Menú Debug: De lo más importante, desde aquí haremos las simulaciones de nuestro programa, los tres primeros submenús son los de mayor interés, veamos de que se trata cada uno de ellos:

Aquí tenemos varias opciones.

♦ RUN: Como su nombre lo indica, Runnnnnn... inicia la simulación a una velocidad que la verdad, no se distingue nada de lo que ocurre a lo largo del código, verás la parte inferior de la ventana toda pintada de amarillo (señal de que la simulación está en proceso). Útil cuando colocas algunos puntos de ruptura (breakpoints) para detener la ejecución y así no estar esperando que se ejecute todo aquello que sabes que esta correcto. ♦ RESET: Resetea el micro y te ubica en la primer línea donde comenzará la simulación (en ese caso verás toda la línea pintada de negro y las letras blancas) "listo para comenzar la simulación". ♦ HALT: Detiene la ejecución. ♦ HALT TRACE: Detiene un traceo que se este haciendo. ♦ ANIMATE: Es igual que RUN pero lo hace más lento, para que vayas siguiendo la ejecución, mostrándote línea por línea todo lo que se está ejecutando. ♦ STEP: Paso, es decir, un paso por cada vez que lo presionas (en la barra de herramientas verás dos huellas de zapato, pues es eso, paso a paso). Simplemente ejecuta una a una cada línea de código por cada vez que lo presionas. ♦ STEP OVER: Igual que el anterior pero con un pequeño detalle, cada vez que se encuentre con un call lo ejecuta de modo tan rápido que ni tu te enteras de que ya pasó, es decir, utilízalo si no quieres perder tiempo con el call.

Page 48: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

47

♦ UPDATE ALL REGISTER: Actualiza el valor de todos los registros. ♦ CHANGE PROGRAM COUNTER: Cambia el valor del PC (contador de programa) y te ubica en la etiqueta del código a la que quieres ir.

EXECUTE: Bueno, execute tiene dos opciones, veamos...

♦ EXECUTE AN OPCODE: Te permite ejecutar un código cualquiera desde cualquier sitio en el que te encuentras, por ejemplo ingresas un goto inicio y hacia allí irá. independiente a la secuencia del programa. ♦ CONDITIONAL BREAK: Para ejecutar un breakpoint en forma condicional, por ejemplo, por que cambió el valor de un registro, o por que quieres ver que pasó hasta ese punto, o bueno, en fin. (por si las moscas, para quien no tenga idea de que es un Breakpoint, es un punto de ruptura en el código del programa, es decir, si se está ejecutando..., cuando se encuentre con el breakpoint se detendrá y allí se quedará hasta que le des la orden de continuar).

SIMULATOR STIMULUS: Con este nos vamos a lucir, desde aquí podrás

simular que le envías señales al micro por uno de sus pines, este submenú tiene 4 opciones:

♦ ASYNCHRONOUS STIMULUS: te abrirá un pequeño diálogo con 12 botones como el que se muestra en la imagen, vendrían a ser como interruptores, nota que al primero le asigné el pin RA0 (pin 17) y entre paréntesis una T (de TOGGLE).

Figura 2.1.5. Cuadro de diálogo de Asynchronous Stimulus.

Si presionas con el botón derecho del mouse en uno de esos botones verás las opciones de configuración de estos estímulos desde donde los puedes configurar, es algo así:

Figura 2.1.6. Menú de opciones.

Page 49: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

48

• ASSIGN PIN: Muestra los pines del puerto para que selecciones aquel que llevará un estímulo. • PULSE: Un pulso. • LOW: Le asigna un nivel bajo permanente. • HIGH: Lo contrario, nivel alto permanente. • TOGGLE: Cada vez que lo pulses cambiará de nivel de alto a bajo o de bajo a alto.

♦ PIN STIMULUS: Es para cuando creas un archivo de texto con extensión .sti, desde aquí lo cargas o lo quitas, se trata de utilizar un archivo que creaste con esta extensión y que contiene los estímulos ya asignados para cada uno de los pines. ♦ CLOCK STIMULUS: Desde aquí puedes enviarle pulsos de reloj a un determinado pin, indicando el tiempo que se mantendrá en nivel alto y el tiempo en nivel bajo, tipo (timer).

Figura 2.1.7. Cuadro de diálogo de Clocked Stimulus.

♦ Tiene un par de opciones como ser; Guardarlo como un archivo .sti, Abrir alguno si es que ya lo tienes creado, Aplicar los cambios, agregarle mas impulsos a otros pines, y el help (por supuesto, la ayuda). ♦ REGISTER STIMULUS: Es exactamente lo mismo que con los pines, solo que lleva la extensión .reg y sirve para que en una determinada posición del programa se cargue un registro con el valor que tu le quieras dar.

CENTER DEBUG LOCATION: Te ubica en la posición en la cual el programa

se está ejecutando, por si perdiste la línea de ejecución, se suele utilizar cuando detienes la ejecución, empiezas a husmear por otro lado y luego no sabes donde andabas, pues bueno ahí te lo acercas... BREAK SETTINGS: Te muestra un diálogo para que le des nombre a los

breakpoints y luego desde aquí los habilitas, los quitas, los guardas etc. TRIGGER IN/OUT SETTINGS: Son para los emuladores MPLABICE y

PICMASTER. TRIGGER OUTPUT POINTS: Para cuando consigas PICMASTER. CLEAR ALL POINT: Limpia todos los breakpoints y los tracepoints que

pusiste a lo largo del programa. CLEAR PROGRAM MEMORY: Borra la memoria de programa. SYSTEM RESET: Resetea el sistema.

Page 50: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

49

POWER ON RESET: Para el caso en que se podría producir un reset en el

micro, y así saber que ocurre o que es lo que hace el micro si esto llegara a ocurrir.

Figura 2.1.8. Cuadro de diálogo de emulación de reset.

• Menú Options:

DEVELOPMENT MODE: Simplemente es donde hacemos las configuraciones

del proyecto. WINDOW SETUP: Como estamos en la sección de personalización, puedes

personalizar totalmente la forma en que vas a trabajar, tus preferencias, luego Guardarlas (Save Setup), Cargarlas (Load Setup) si es que ya las tienes guardadas, o utilizar una por defecto (Default Configuration). CURRENT EDITOR MODES: Es para que personalices el modo de edición,

por ejemplo las tabulaciones de 8 espacios, que se mantenga la identificación de la línea anterior, que se muestre el número de líneas al margen del código, hacer un backup cada cierto tiempo (por si olvidas que de vez en cuando es bueno guardar...), etc. aquí tienes una imagen de esas opciones...

Figura 2.1.9. Cuadro de diálogo de modo de editor.

RESET EDITOR MODES: Elimina los cambios que hiciste anteriormente ENVIRONMENT SETUP: Verás un inmenso cuadro de diálogo para una

personalización completa. PROGRAMMER OPTIONS: Son las opciones para configurar el programador

que utilizarás con MPLAB.

Page 51: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

50

• Menú Window. El más importante de todos, ya que desde aquí nos veremos cara a cara con cada uno de los bits de los registros del micro, el estado que tienen y como se modifican, claro que lo verás cuando lo ejecutes en modo "step" (paso a paso) o "Animate" (de forma animada).

PROGRAM MEMORY: Verás la memoria de programa, y así sabes cuanto

espacio te queda disponible. STACK: La pila, son de 8 posiciones y la ultima en ingresar es la primera en

salir, aquí la imagen de uno:

Figura 2.1.10. Pantalla de pila.

FILE REGISTER: Para que veas como se modifican los registros mientras el

programa se está ejecutando, solo en modo "Step" o "Animate".

Figura 2.1.11. Pantalla de registros de archivo.

SPECIAL FUNCTION REGISTER: Los Registros de funciones especiales, que

más da, con nombre y todo, trisa/b, porta/b, status, w, creo que lo que mas quieres es ver como se modifican los bits de entrada y salida de los puertos pues aquí los tienes, como antes, sólo los verás cuando lo ejecutas en modo "Step" o "Animate".

Page 52: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

51

Figura 2.1.12. Pantalla de SFR´s.

SHOW SIMBOL LIST: todos los símbolos utilizados y su respectiva ubicación (dirección de registro), aquello que definimos al iniciar nuestro código, como "status equ 0x03". Del otro lado las etiquetas utilizadas a lo largo del programa.

Figura 2.1.13. Pantalla de lista de símbolos.

STOPWATCH: Para que veas el tiempo en mili segundos consumidos por el

micro que cuenta con un XT de 4 MHz..

Figura 2.1.14. Cuadro de diálogo de reloj del microcontrolador.

PROJECT: Los datos del proyecto que estas realizando WATCH WINDOW: Para crear tu propia ventana de registros, cuando

encaremos un proyecto que la requiera hablaremos de ella.

Page 53: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

52

MODIFY: Para modificar los valores de algún registro determinado, en caso

de que no quieras esperar demasiado por ejemplo cuando haces un retardo. 2.2 Como crear un proyecto con MPLAB Bueno, Lo que voy a describir en este apartado es aplicable en general para cualquier proyecto que quieras realizar, por lo que cada uno de los procedimientos serán siempre los mismos. Lo primero es abrir MPLAB. Selecciona el menú File-->New y verás un diálogo como el siguiente...

Figura 2.2.1. Pantalla de nuevo proyecto.

Que dice algo así... "No existe ningún proyecto abierto, desea crear uno?", escoger "YES", nota que también se abrió una página en blanco "Untitled1", bueno, en ella es que introduciremos nuestro código. Luego de darle a Yes, verás una nueva ventana "New Project" en la que nos pide el nombre del proyecto y el directorio en que lo vamos a guardar, de nombre por ejemplo "cqpic.pjt" (.pjt es la extensión de project) y lo guardaré en una carpeta que tengo por ahí llamada proyect justamente.

Figura 2.2.2. Cuadro de diálogo de proyecto nuevo.

Pues bien, seleccionas OK y comenzaremos a crear nuestro proyecto desde la ventana Edit Project (Edición de Proyecto).

Page 54: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

53

Figura 2.2.3. Cuadro de diálogo de edición.

Un detalle a tener en cuenta es que MPLAB ya le asignó la extensión .hex al proyecto que estamos creando, el cual por defecto lleva el mismo nombre, de hecho la finalidad es esa, crear un archivo con extensión .hex para luego grabarla en la memoria del PIC. Si seleccionamos cqpic[.hex] en Projects Files (parte inferior de la ventana), podrás ver que se nos habilita el botón Node Properties, como se ve en la imagen anterior, haces un click en él, y verás la ventana desde la cual configuraremos la forma en que MPLAB debe generar el archivo .hex, te debería quedar algo así:

Figura 2.2.4. Pantalla de propiedades.

Bien, ahora presionamos OK y volvemos a la ventana anterior, seleccionas Add Node y verás el siguiente diálogo:

Page 55: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

54

Figura 2.2.5. Cuadro de diálogo de agregar nodo.

Desde aquí vamos a ligar al proyecto nuestro archivo .asm, que es el que codificaremos, y que todavía no hemos creado, de todos modos sabemos que se llamará cqpic.asm otra cosa que debes tener en cuenta es que deberás guardarlo en el mismo directorio en que creaste el proyecto, luego presionas Aceptar y regresarás al cuadro Edit Project pero de la mano de nuestro cqpic[.asm] observa:

Figura 2.2.6. Cuadro de diálogo de edición.

Listo, ya está, ahora presionas OK y regresas al IDE de MPLAB en el cual tienes esa página en blanco para ingresar el código, el tema es que aún sigue siendo Untitled1. Veamos... Anteriormente solo creamos un proyecto llamado cqpic.pjt, luego le ligamos un nodo con cqpic.asm (el cual aún no existe) e incluso le dijimos donde lo guardaremos, y nos pusimos de acuerdo con MPLAB la forma en que queremos crear el archivo .hex, pues bueno lo que estamos haciendo ahora, es crear cqpic.asm, así es que te diriges a File-->Save As y lo guardas como cqpic.asm.

Page 56: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

55

Figura 2.2.7. Cuadro de diálogo de guardar archivo.

Ahora ya estamos listos para utilizar el MPLAB y crear cualquier proyecto para nuestro pic.

Page 57: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

56

CAPITULO 3 NIPLE

3.1 Introducción Niple es un “Entorno Visual de Desarrollo para programación de Microcontroladores PIC”.Con él podrá programar los PIC a través del diseño de un diagrama de flujo de manera gráfica y de alto nivel de programación, sin necesidad de escribir código ensamblador, o escribiendo la menor cantidad de código, convirtiéndose en la forma más rápida y sencilla de desarrollar proyectos con PIC. 3.2 Funciones disponibles Asignación de valores a registros y bits:

• Configuración y manejo de interrupciones. • Manejo de rutinas de usuario. • Lectura / Escritura de puertos. • Lectura / Escritura de EEPROM. • Funciones de comparación de registros y bits (condiciones =, >, <, >=, <=, <>). • Manejo automático de tablas. • Temporizadores por bucle. • Visualización de datos en dígitos de 7 segmentos (Ánodo común y Cátodo común). • Ingreso de datos por teclado matricial (3x3 y 3x4). • Configuración y manejo de temporizador interno TMR0. • Comunicaciones RS232. • Cálculos matemáticos: (+, - , /, *, en 8 o 16 bits), conversión a BCD. • Escalado de valores de un rango a otro (a 8 y 16 bits). • Manejo de registros de desplazamiento.

3.3 Metodología de programación La metodología de programación en Niple consiste en el diseño de un diagrama de flujo de manera totalmente visual y de alto nivel de programación. El diagrama de flujo está formado por un conjunto de bloques “estandarizados”. Tanto la forma, como el color y el texto de cada bloque, le están presentando información y datos concretos acerca de cada parte del proceso, lo cual facilita aún más la interpretación del programa. Además, el diagrama de flujo le permite tener una “visión general” del proyecto. El proceso de diseño del diagrama de flujo consiste en insertar bloques y vincularlos por medio de flechas.

Page 58: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

57

Durante éste proceso, Niple controla y advierte de posibles errores, tanto de la lógica del programa como en la configuración del sistema (configuración de puertos, interrupciones, etc.). En el margen derecho de la pantalla (ventana principal del programa) se encuentra el “Árbol de Herramientas”. Este consiste en una estructura de árbol donde se encuentran todas las funciones que pueden ser insertadas como bloques en el diagrama de flujo y que generan un código ensamblador. 3.4 Bloques Un bloque es un símbolo que representa una parte del proceso. Cada bloque presenta información según su forma, su color y el texto que contiene, e identifican una función en particular. 3.4.1 Interpretación de los bloques Cada forma de bloque está directamente asociada a un tipo de función, esto facilita la interpretación del programa con sólo echarle un vistazo general. A continuación se presentan algunos de los bloques más comunes. Inicio – Fin. Se utiliza como inicio o fin de un entorno.

Instrucción. Cualquiera de las 35 instrucciones en código ensamblador.

Configuración de un Puerto.

Ingreso de datos. Leer el valor de un puerto (en paralelo), modo Captura, modo Comparación.

Page 59: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

58

Salida de datos. Escribir un valor en un puerto (en paralelo, no serial)

Asignación. Este bloque representa la asignación de un valor a un registro o un bit.

Leer un dato de la memoria EEPROM.

Almacenar un dato en la memoria EEPROM.

Condición. Evalúa una condición y deriva la ejecución del programa en función del resultado de la evaluación.

Configuración. Este bloque corresponde a configuración de Interrupción y módulos periféricos.

Page 60: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

59

Activar – Desactivar Interrupciones.

Cálculo matemático.

Conversión Decimal a BCD ó BCD a Decimal.

Consultar Tabla.

Comunicaciones Seriales RS232. Envío y recepción de un dato por RS232.

Comunicaciones Seriales RS232. Envío y recepción de un conjunto de datos por RS232 mediante protocolo de usuario diseñado en Niple.

Page 61: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

60

Temporización por bucle. Calcula y genera los bucles necesarios para esperar un tiempo determinado.

Visualizar valores en display de 7 segmentos por el método del multiplexado.

Registro de desplazamiento. Ingresar un valor y rotar.

Llamada a subrutina (call).

3.4.2 Insertar Bloques Tenga en cuenta que cada bloque debe estar unido a otro bloque por medio de un vínculo (flecha). Esta flecha indica el sentido de ejecución del programa. De ésta manera se establece la secuencia y el orden en que va a ser ejecutado el programa. El vínculo lo puede realizar de forma manual o de forma automática. Para que el vínculo se realice de forma automática debe seleccionar el bloque previo antes de insertar el nuevo bloque. Para insertar un bloque siga los siguientes pasos:

• Seleccione el bloque al cual vincular el nuevo bloque a ser insertado (para que el sistema realice el vínculo de manera automática y realice el chequeo de errores).

Page 62: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

61

• Haga doble clic para desplegar el “Árbol de Herramientas” y localice la función de que necesite, desplegando y recorriendo el árbol de herramientas.

• Una vez localizada la función que quiere insertar, haga doble clic en el nombre de la misma para cargar la pantalla con las opciones y parámetros de la función. Una vez seleccionadas las opciones e ingresados los parámetros, presione el botón “Ingresar”.

• De ésta manera se insertará el bloque y será vinculado de manera automática.

3.4.3 Editar Bloques Muchas veces es necesario cambiar el valor de algún parámetro u opción a un bloque ya insertado dentro del diagrama de flujo. Para esto tiene 2 opciones:

• Puede borrar el bloque e insertarlo nuevamente seleccionado los parámetros deseados. Si elige ésta opción deberá realizar los vínculos de manera manual.

• Puede editar el bloque y asignarle nuevos valores a los parámetros solicitados. Para esto no necesita borrar el bloque ni realizar los vínculos nuevamente.

Para editar un bloque, selecciónelo y luego haga un clic con el botón derecho del mouse para que se presente el menú contextual, y elija la opción “Editar”. Para que el menú contextual presente la opción “Editar”, sólo debe estar seleccionado el bloque a ser editado. Si selecciona más de un elemento, ya sean bloques o vínculos, el menú no presentará la opción “Editar” ya que el sistema no puede determinar cual es el bloque que desea editar. Se presentará la pantalla correspondiente al bloque seleccionado. La pantalla será cargada con todos los parámetros seleccionados. Proceda a cambiar los valores o las opciones y presione el botón “Ingresar”. 3.5 Vínculos (flechas) Un vínculo está representado por una Flecha que une a dos o más bloques y determina el flujo del proceso. Los vínculos determinan la secuencia y el orden de ejecución del programa.

Page 63: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

62

El bloque desde donde parte el vínculo se denomina “Bloque de Origen” y el bloque al cual llega “Bloque de Destino” y puede identificarlos visualmente porque el vínculo presenta una “Punta de Flecha” en extremo correspondiente al bloque de destino.

Figura 3.5.1. Vínculos entre bloques.

Existe un criterio a tener en cuenta a la hora de realizar vínculos entre bloques y Niple lo supervisa de manera automática:

• Cada Bloque debe tener solo un Vínculo de salida. A excepción de los bloques de decisión (Rombo) que necesariamente deben tener 2 salidas (si la condición se cumple y si la condición no se cumple).

• Los bloques “Inicio de Entorno” (elipses amarillas) no pueden utilizarse como “Bloques de destino”. O sea que, no pueden tener flechas que “ingresen” a éstos bloques.

• Los bloques “Fin de Entorno” (elipses amarillas) no pueden utilizarse como “Bloques de Origen”.O sea que, no pueden tener flechas que “salgan” desde éstos bloques.

3.6 Control de ingreso de nombres de registros Cuando necesite ingresar el nombre de un registro como parámetro para una función, Niple le presenta una lista con todos los registros declarados, donde se debe seleccionar el nombre del registro deseado. Esto garantiza que el registro a utilizar haya sido previamente declarado y además previene los posibles errores de “tipeo” por parte del usuario al ingresar el nombre del registro. En general, junto a la “lista de registros”, Niple presenta el Botón “Nuevo”. Este botón le carga la pantalla de declaración de registros. De ésta manera, si necesita ingresar como

Page 64: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

63

parámetro el nombre de un registro que aún no ha sido declarado, tiene la posibilidad de declararlo y seleccionarlo sin necesidad de cancelar la pantalla actual. 3.6.1 Control de ingreso de valores literales Niple le ofrece distintos formatos de ingreso de valores literales, éstos son, formato decimal, hexadecimal o binario. En general, cuando necesite ingresar un literal, primero debe seleccionar el “formato” en el cual desea ingresar el valor. De ésta manera, el programa supervisa de forma automática el ingreso de datos, y admite sólo los valores permitidos para el formato seleccionado. 3.6.2 Declaración de registros En Niple la declaración de registros se realiza de manera visual trabajando directamente sobre el mapa de memoria. Para ingresar a la pantalla de declaración de registros, seleccione el menú “Declaración \ Registros” o por medio de la combinación de teclas CTRL+R. En esta pantalla se presenta el mapa de memoria. Cada registro está identificado con una “dirección de registro” la cual está expresada en formato hexadecimal. El mapa de memoria de datos presenta los distintos los tipos de registros con diferentes colores. 3.6.3 Registros Predefinidos por el PIC (Color Naranja): Corresponde a registros de configuración y control del sistema. Estos registros se declaran de manera automática en el momento de crear el proyecto y no pueden ser borrados. Cada uno de estos registros ejecuta una función predeterminada. 3.6.4 Registros de Usuario (Color Verde): Corresponde a la memoria disponible para que el usuario declare sus propios registros. 3.6.5 Registros deshabilitados (Color Gris): Corresponde a la memoria no disponible. Estas direcciones de memoria no pueden ser utilizadas. 3.6.6 Declaración de un registro de usuario Para declarar un registro de usuario debe hacer un clic en una posición de memoria libre correspondiente a los registros de tipos “Usuario” (color verde). Al hacer clic, se le solicita que ingrese el nombre del registro a declarar. El programa controla la validez del nombre del registro que se está declarando, esto es:

• Que no esté siendo ya utilizado por otro registro o bit.

Page 65: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

64

• No se permiten nombres de registros como “A”, ó “B” que pueden llegar a confundirse con un nombre de puerto. • Que no contenga caracteres no válidos. • Que el nombre no contenga más de 20 caracteres de largo. • Que el nombre no corresponda a una instrucción o comando.

3.6.7 Asignar valor a un Registro Esta función permite asignarle un valor constante o variable a un registro.

Figura 3.6.7.1. Cuadro de diálogo de asignación de un valor a un registro.

En el campo Registro seleccione el registro al cual le asignará un valor, en la sintaxis corresponde al “destino”. Si desea asignarle un valor a un registro que aún no ha sido declarado, mediante el botón “Nuevo” puede declarar el registro sin necesidad de cancelar la operación actual. Una vez especificado el registro al cual asignar el valor, debe seleccionar que tipo de valor desea asignar. En la sintaxis corresponde al “Origen”. Las opciones disponibles son:

• Un valor Literal. Esto es, un valor constante.

• El valor de otro registro. Esta opción es equivalente a “copiar” el contenido de un registro. Si en tiempo de ejecución se modifica el contenido del registro, estamos frente a una asignación de tipo variable.

• Al igual que con el campo registro, el botón “Nuevo”, le permite declarar un nuevo registro sin necesidad de cancelar la operación. Por último puede ingresar un comentario.

Page 66: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

65

Representación gráfica:

Sintaxis: Destino = Origen Esto se interpreta como: “al registro ‘Destino’ se le asigna el valor de ‘Origen’”. Ejemplos:

Al Registro “Dato” se le asigna el valor Decimal 00.

Al registro “Dato” se le asigna el valor Binario 11011101.

Al registro “Dato” se le asigna el valor que contiene el registro “Dato1”.

3.7 Configuración del puerto A La configuración de los puertos se realiza de manera totalmente visual, trabajando directamente sobre una imagen del PIC. El puerto A está conformado sólo por 5 bits (RA0 – RA4).

Figura 3.7.1. Pantalla de configuración del puerto A.

Page 67: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

66

En la pantalla de configuración del Puerto A, se presenta una imagen del PIC con las descripciones de todos los pines. En cada pin correspondiente al puerto A se muestra una casilla de verificación, a través de la cual el pin es configurado como entrada o salida. Una vez seleccionada la configuración correcta, presione el botón “Ingresar”. Representación gráfica

Sintaxis:

Puerto = Valor_Configuración Esto se interpreta como: “el puerto ‘A’ es configurado como ‘Valor_Configuración’”. Donde el parámetro ‘Valor_Configuración’ puede contener alguno de los siguientes códigos:

S = Salida Digital E = Entrada Digital

Ejemplos

3.8 Configuración del puerto B En la pantalla de configuración del Puerto B, se presenta una imagen del PIC con las descripciones de todos los pines.

Figura 3.8.1. Pantalla de configuración del puerto B.

Page 68: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

67

En cada pin correspondiente al puerto B se muestra una casilla de verificación, a través de la cual el pin es configurado como entrada o salida. Una vez seleccionada la configuración deseada, presione el botón “Ingresar”. Representación gráfica

Sintaxis:

Puerto = Valor_Configuración Esto se interpreta como: “el puerto B es configurado como ‘Valor_Configuración’”. Donde el parámetro ‘Valor_Configuración’ puede contener alguno de los siguientes códigos:

S = Salida Digital E = Entrada Digital

Ejemplos

3.9 Leer datos del puerto Permite obtener el valor actual de un puerto y guardar el resultado en un registro. Esto significa que, se obtiene el estado de cada pin correspondiente al puerto seleccionado.

Figura 3.9.1. Pantalla de lectura de datos del puerto.

Page 69: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

68

En el campo “Puerto” seleccione el puerto que desea Leer. Niple supervisa la configuración del puerto seleccionado de manera automática y advierte si el puerto no está completamente como Entrada. Si bien el hecho de leer el estado de un pin configurado como salida no es considerado un error, igualmente se le advierte para asegurarse que tiene pleno conocimiento de la actual configuración. 3.10 Escribir datos en el puerto Permite escribir un valor en un puerto. Este valor puede ser un valor literal (constante) o el valor de un registro (variable). Lo primero que debe seleccionar es el tipo de dato que desea escribir en el puerto. Seleccione el tipo de dato y el valor a escribir en el puerto. El programa supervisa la configuración del puerto seleccionado de manera automática y advierte si el puerto no está completamente como Salida.

Figura 3.10.1 Pantalla de escribir datos en el puerto.

Si bien el hecho de escribir un pin configurado como entrada no es considerado un error, igualmente se le advierte para asegurarse que tiene pleno conocimiento de la actual configuración. Una vez ingresado los datos solicitados, presione el botón Ingresar. Representación gráfica

Sintaxis

Puerto = Valor

Page 70: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

69

Esto se interpreta como: “en el puerto ‘Puerto’, escribir el valor: ‘Valor’”. Donde: El parámetro ‘Puerto’ muestra el nombre del puerto:

A = Puerto A B = Puerto B

El parámetro ‘Valor’ corresponde a un registro (valor variable) o a un literal (valor constante). Ejemplos Escribir el valor que contiene el registro contador en el puerto B.

Escribir el valor B’10001111’ en el puerto B.

Page 71: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

70

CAPITULO 4

TARJETA DE PROGRAMACIÓN Y DESARROLLO DE PIC´S S103 4.1 Introducción La tarjeta programadora de PIC´s así como el paquete incluido con ella, son distribuidos por la empresa Solares Digital. Con estas herramientas nos apoyamos para desarrollar nuestro proyecto puesto que son de gran utilidad para la programación de PIC´s. En la siguiente sección nos dedicaremos a explicar el funcionamiento del paquete IC – PROG el cual es el incluido con la tarjeta. 4.2 Paquete para la tarjeta de programación y desarrollo: IC - PROG El ensamblador creará el archivo *.hex que el IC-PROG utilizara para grabar el PIC. La ventana siguiente es el escritorio de la ventana de IC-PROG, la cual es parecida a cualquier ventana de Windows, tiene una barra de menús y otra de herramientas:

Figura 4.2.1. Pantalla de IC – PROG.

Enseguida se explicaran las opciones de la barra de menú así como los iconos correspondientes a la barra de herramientas.

• En el menú Archivo se tienen las mismas opciones que en cualquier ventana de Windows como son abrir, guardar, imprimir, cerrar, etc.

Page 72: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

71

En el menú Edición tenemos los siguientes submenús:

Llenar buffer: Sirve para ver el total de datos del programa en diferentes formatos: decimal, ASCII y hexadecimal.

Llenar intervalo de buffer: Sirve solamente para tomar en cuenta los

datos que van a una dirección a otra dirección.

• En el menú Buffer se muestra el buffer que esta activo y además se pueden comparar los datos de un buffer con otro.

• En el menú Ajustes tenemos diferentes submenús que son:

Dispositivos: Aquí se escoge el dispositivo a grabar ya sea memoria o PIC.

También se puede realizar desde la parte superior derecha del programa.

Dispositivos recientes: Muestra los dispositivos con los cuales se ha trabajado últimamente.

Tipo de hardware: Se puede escoger el tipo de programador a utilizar, se

configura el puerto de comunicación serial, la interfaz a manejar así como la comunicación y el retardo a manejarse.

Prueba de hardware: Es para habilitar las salidas y ver si esta

funcionando.

Opciones: Desde aquí se configura gran parte del software IC-PROG como puede ser el idioma en que se ejecutará IC-PROG, así como activar algunos avisos y preguntas antes de comenzar a programar.

Smartcard (Phoenix): Sirve para programar tarjetas de teléfono.

Borrar ajustes: Borra todos los ajustes realizados anteriormente.

• En el menú Comando se pueden encontrar los siguientes submenús:

Leer todo: Lee el código del PIC así como sus datos y la configuración misma. Su icono en la barra de herramientas es el siguiente:

Programar todo: Programa el PIC con el archivo *.hex que se haya

generado en el ensamblador, su icono es el siguiente:

Programar los bits de configuración

Borrar todo: Borra cualquier dato del PIC. Su icono es el siguiente:

Verificar: Checa que se haya grabado el archivo o el programa correctamente en el PIC. Su icono es el siguiente:

Page 73: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

72

Asistente Smartcard: Configura el programador como programador de PIC o de tarjetas telefónicas, su icono es el siguiente:

• En el menú Herramientas se encuentra la opción Cargar fichero CDR.

• En el menú Ver encontraremos las opciones de mostrar La posición del PIC en el programador, así como Información del dispositivo seleccionado. Se tiene la opción de Refrescar a todo el programa para volver a inicializarlo. También encontraremos una opción en la cual nos mostrará ya sea la ventana del programa en ensamblador o en hexadecimal.

Page 74: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

73

CAPITULO 5

SEÑALES ELECTROCARDIOGRÁFICAS 5.1Introducción Las partes del corazón normalmente laten en sucesión ordenada: la contracción auricular (sístole auricular) va seguida de la contracción de los ventrículos (sístole ventricular) y durante la diástole las cuatro cámaras están relajadas. El latido cardiaco se origina en un sistema cardiaco de conducción especializado y se propaga a través de este sistema a todas las partes del miocardio. Las estructuras que constituyen el sistema de conducción (fig. 5.1.1) son el nodo sinoauricular (nodo SA), las vías auriculares internodales, el nodo auriculoventricular (nodo AV), el haz de His y sus ramas, el sistema de Purkinje. Las diversas partes del sistema de conducción y, en condiciones anormales, partes del miocardio, son capaces de descarga espontánea. Sin embargo, el nodo SA normalmente descarga de manera más frecuente propagándose la despolarización desde él a las otras regiones, antes de que éstas descarguen espontáneamente. El nodo SA es, por tanto, el marcapaso cardiaco y su frecuencia de descarga determina la frecuencia a la que late el corazón. Los impulsos generados en el nodo SA pasan a través del músculo auricular al nodo AV; de este nodo al haz de His; y a través de las ramas del haz de His por el sistema de Purkinje, al músculo ventricular.

Figura 5.1.1. Sistema conductor del corazón. Potenciales típicos de transmembrana para los nodos SA y AV, otras partes del sistema de conducción y los músculos auriculares y ventriculares se muestran junto con la correlación con la actividad eléctrica registrada extracelularmente, esto es, el ECG. Los potenciales de acción y el ECG están graficados sobre el mismo eje de tiempo pero con diferentes puntos de cero sobre la escala vertical.

Page 75: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

74

El potencial de acción transmembrana de las células cardiacas individuales está caracterizado por una rápida despolarización, una meseta, y un proceso de repolarización lento. La despolarización inicial es debida al aumento en la permeabilidad al ión Na+, seguida por un aumento lento en la permeabilidad al Ca2+, que produce la meseta. La repolarización después de la meseta es debida a un aumento retardado en la permeabilidad al K+. Registrada extracelularmente, la actividad eléctrica sumada de todas las fibras musculares cardiacas es el electrocardiograma (ECG). La propagación de la excitación cardiaca inicia con la despolarización en el nodo SA, propagándose radialmente a través de las aurículas, convergiendo sobre el nodo AV. La despolarización auricular se completa en 0.1 seg. aproximadamente. Debido a que la conducción en el nodo AV es lenta, hay un retardo cercano a 0.1 seg. (retardo nodal AV) antes de que la excitación se propague a los ventrículos. Este retardo se acorta por estimulación de los nervios simpáticos del corazón y se alarga por estimulación del vago. Desde la parte superior del tabique, la onda de despolarización se propaga por las fibras de Purkinje, de conducción rápida, a todas las partes de los ventrículos en 0.08 a 0.1 seg. En el hombre, la despolarización del músculo ventricular se inicia en el lado izquierdo del tabique hasta la punta del corazón. Esta regresa a lo largo de las paredes ventriculares hasta el surco AV, propagándose de la superficie endocárdica a la epicárdica. Las últimas partes del corazón en despolarizarse son la porción posterobasal del ventrículo izquierdo, el cono pulmonar y la porción más alta del tabique. A causa de que los líquidos corporales son buenos conductores (es decir, porque el cuerpo es un conductor de volumen), las fluctuaciones en el potencial, que representan la suma algebraica de los potenciales de acción de la fibras del miocardio, pueden ser registradas extracelularmente. El registro de estas fluctuaciones de los potenciales durante el ciclo cardiaco es el ECG. 5.2 Electrocardiograma El Electrocardiograma (ECG) puede ser registrado usando un electrodo activo o explorador conectado a un electrodo indiferente de potencial cero (registro unipolar) o entre dos electrodos activos (registro bipolar). En un conductor de volumen, la suma de los potenciales en los vértices de un triángulo equilátero con una fuente de corriente en el centro es cero en todo tiempo. Puede construirse aproximadamente un triángulo (triángulo de Einthoven) con el corazón en su centro colocando electrodos en ambos brazos y en la pierna izquierda. Estas son tres derivaciones estándar de los miembros que se usan en electrocardiografía. Si estos electrodos son conectados a una terminal común, se obtiene un electrodo indiferente que está casi a potencial cero. La despolarización que se desplaza hacia un electrodo activo en un conductor de volumen produce una deflexión positiva, mientras que la despolarización que se mueve en la dirección opuesta produce una deflexión negativa. Los nombres de las diversas ondas del ECG y su cronología en los seres humanos se muestran en la fig. 5.2.1. Por convención, se inscribe una deflexión hacia arriba cuando el electrodo activo se vuelve positivo en relación al electrodo indiferente y una deflexión hacia abajo cuando se vuelve negativo. La onda P es producida por la despolarización

Page 76: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

75

auricular, el complejo QRS por la despolarización ventricular, y el segmento ST y la onda T por la repolarización ventricular. Las manifestaciones de la repolarización auricular normalmente no aparecen porque son obscurecidas por el complejo QRS. La onda U no es un hallazgo constante; se piensa es debida a la despolarización lenta de los músculos papilares.

Figura 5.2.1. Ondas del ECG.

La magnitud y configuración de las ondas individuales del ECG varían con la situación de los electrodos. Cuando son registradas desde la superficie del cuerpo todas las ondas son pequeñas comparadas con los potenciales transmembrana de las fibras individuales porque el ECG es registrado a una distancia considerable del corazón. 5.3 Derivaciones Electrocardiográficas Las derivaciones bipolares fueron usadas antes de que se introdujeran las unipolares. Las derivaciones estándar de los miembros I, II, y III son registros de las diferencias de potencial entre dos miembros. Debido a que la corriente sólo fluye en los líquidos corporales, los registros obtenidos son aquéllos que se obtendrían si los electrodos estuvieran en los puntos de fijación de las extremidades, no importa dónde se coloquen los electrodos de las extremidades. En la derivación I, los electrodos se conectan de manera que una desviación hacia arriba sea inscrita cuando el brazo izquierdo se vuelva positivo con respecto al derecho (brazo izquierdo positivo). En la derivación II, los electrodos están en el brazo derecho y en la pierna izquierda, siendo la pierna positiva; y en la derivación III, los electrodos están en el brazo izquierdo y en la pierna izquierda con ésta positiva. Comúnmente se utilizan en electrocardiografía clínica nueve derivaciones unipolares adicionales; esto es, derivaciones que registran la diferencia de potencial entre un electrodo explorador y uno indiferente. Hay seis derivaciones torácicas unipolares

Page 77: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

76

(derivaciones precordiales) designadas V1 a V6 (Fig. 5.3.1) y tres derivaciones unipolares de extremidades: VR (brazo derecho), VL (brazo izquierdo), y VF (pie izquierdo). Generalmente se utilizan las derivaciones de extremidades aumentadas designadas por la letra a (aVR, aVL, aVF). Estas derivaciones son registros obtenidos entre el electrodo colocado en un miembro y los otros dos. Esto aumenta el tamaño de los potenciales en 50% sin cambiar la configuración del registro no aumentado.

Figura 5.3.1. Derivaciones unipolares del ECG. El ECG de un individuo normal se muestra en la fig. 5.4.1. El orden en que son despolarizadas las partes del corazón y la posición del mismo con respecto a los electrodos, son las condiciones importantes para interpretar las configuraciones de las ondas en cada derivación. Las aurículas están situadas en la parte posterior del tórax. Los ventrículos forman la base y la superficie anterior del corazón, y el ventrículo derecho es antero lateral al izquierdo. Así, aVR “mira a” las cavidades de los ventrículos. La despolarización auricular, la despolarización ventricular y la repolarización ventricular se alejan del electrodo explorador; y la onda P, el complejo QRS y la onda T son, por lo tanto, deflexiones negativas (hacia abajo); aVL y aVF miran a los ventrículos y las deflexiones son, en consecuencia, predominantemente positivas o bifásicas. No hay onda Q en V1 y V2, la porción inicial del complejo QRS es una pequeña deflexión hacia arriba porque la despolarización ventricular primero se mueve a través de la porción media del tabique, de izquierda a derecha, hacia el electrodo explorador. La onda de excitación se aleja luego del electrodo bajando por el tabique y entrando en el ventrículo izquierdo produciendo una gran onda S.

Page 78: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

77

Finalmente regresa a lo largo de la pared ventricular, hacia el electrodo, produciendo el retorno a la línea isoeléctrica. Por el contrario, en las derivaciones ventriculares izquierdas (V4-6) puede existir una pequeña onda Q inicial (despolarización del tabique de izquierda a derecha) y hay una gran onda R (despolarización septal y ventricular izquierda) seguida en V4 y V5 por una onda S moderada (despolarización tardía de las paredes ventriculares que retrocede hacia la unión AV). Con frecuencia el ECG se registra continuamente en las unidades de cuidados coronarios en los hospitales, con alarmas dispuestas para que suenen al comienzo de las arritmias que amenazan la vida del paciente. Mediante una memoria es posible registrar el ECG en pacientes ambulatorios cuando realizan sus actividades cotidianas. Se pueden obtener registros continuos a largo plazo. Este método es también útil en el diagnóstico de arritmias y la programación de actividades para la rehabilitación de enfermos que se recuperan de un infarto del miocardio.

Figura 5.4.1. ECG normal.

Page 79: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

78

CAPITULO 6.

IMPLEMENTACIÓN DEL PROYECTO 6.1 PIC 16F877 Para el PIC 16F877 se configuró el puerto B como salida, el puerto C y D como entrada para desplegar las derivaciones I, II, III, AVR, AVF, AVL, V1, V2, V3, V5.

Figura 6.1.1. Configuración del PIC 16F877.

6.2 PIC 16F84 Para el PIC 16F84 se configuró el puerto A como entrada y el puerto B como salida para desplegar las derivaciones V4 y V6.

Figura 6.2.1. Configuración del PIC 16F84.

Page 80: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

79

6.3 Convertidor Digital Analógico 0808 La configuración que se muestra del convertidor digital analógico, nos permite desplegar la salida de ambos PIC´s y observar en el pin 4 las derivaciones de forma analógica.

Figura 6.3.1. Diagrama de DAC 0808 6.4 Push botón, switch de 3 estados y osciladores 4MHz, 6MHz y 8MHz Por medio del Switch de tres estados podemos seleccionar la frecuencia a la cuál queremos funcione, por ejemplo utilizando el oscilador de 4MHz.nos muestra 60 Lpm, a 6 MHZ 90 lpm y a 8 MHz 120 lpm.

Figura 6.4.1. Diagrama de conexión de selección de frecuencia.

Page 81: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

80

6.5 Reguladores de voltaje (LM7805-LM7905) y las baterías (9V)

Figura 6.5.1. Reguladores de voltaje +5 V (LM7805) y –5V (LM7905) en la

parte superior y su conexión con las baterias (9V) en la parte inferior

Page 82: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

81

6.6 Teclado de Matriz 4X4 Los teclados de matriz son muy utilizados en los proyectos de electrónica debido a su versatilidad, pues permiten disponer de una completa interfaz de entrada consumiendo un número mínimo de puertos de E/S. Esto se puede ver en el teclado de matriz del esquema: en este se ocupan 7 bits (3 columnas + 4 filas), si el mismo teclado se implementase conectando cada uno de los pulsadores directamente a los puertos se ocuparían 12 (uno por cada pulsador). En este caso la diferencia no es muy grande, pero imaginemos un teclado de ordenador con más de 100 teclas, resultaría muy poco eficiente conectar cada una de las teclas a un pin de E/S del controlador del teclado. Esto consumiría 100 pins de E/S. En cambio siguiendo el esquema de los teclados de matriz con 20 pins de E/S tendríamos suficiente para rastrear las 100 teclas.

El teclado del esquema consta de 3 entradas (A, B y C) y 4 salidas (D, E, F y G). Las 3 entradas (A, B y C) del teclado van conectadas a 3 bits de salida de algún puerto del microcontrolador. Las 4 salidas del teclado (D,E,F y G) también van conectadas a 4 bits de un puerto del microcontrolador pero en este caso de entrada. Así, desde el microcontrolador se puede escribir sobre ABC (3bits) y leer lo que llega a través de DEFG (4bits).

Fig 6.6.1: Esquema de un teclado de matriz de 3x4

Page 83: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

82

Para montarlo por partes simplemente hay que seguir el esquema del ejemplo, aunque también se pueden encontrar teclados de matriz comerciales (3x4, 4x4...) en las tiendas de componentes electrónicos (no confundir con los teclados de punto común).

Las resistencias R1 son las resistencias de Pull-Down y para éstas es válido cualquier valor comprendido entre los 330 - 1000 Ohms. R2 son las resistencias de Pull-Up, y para estas es válido cualquier valor situado alrededor de los 75-100Ohms.

A grandes rasgos, la idea general del funcionamiento de los teclados de matriz, es hacer el siguiente ciclo de forma repetida: 1-Rastreo de la columna A:

1.1 Sacar desde el microcontrolador hacia A un ‘1’ (5V) y hacia B y C un ‘0’ (0V), así únicamente recibirán tensión las teclas ‘1’ ‘4’ ‘7’ y ‘*’. Estas son las teclas conectadas a la columna A, las teclas de las columnas restantes, por más que las presionemos permanecerán inactivas ya que no tienen alimentación, están a 0V.

1.2 Simultáneamente leer lo que llega por los bits de entrada del

microcontrolador provinentes desde D, E, F y G (salidas del teclado). En caso de que el usuario este presionando el botón ‘1’ (fila D a 5V) al leer se recibirá ‘1000’, en el caso del ‘4’ (fila E a 5V9 leeremos la combinación ‘0100’, para el ‘7’ leeremos ‘0010’ y para ‘*’ (fila G a 5V) leeríamos ‘0001’. Si en este momento el usuario presiona un pulsador de las otras columnas no pasa nada porque estas no tienen alimentación y no pueden influir sobre lo que esta llegando desde D, E, F y G

2-Rastreo de la columna B:

2.1- Ahora se envía un ‘1’ (5V) por la columna B, y por las columnas A y C un ‘0’ (0V). Así se activan todos los pulsadores de la columna B y los de las columnas A y C permanecen inactivos.

2.2 Se hace el paso idéntico al 2 pero teniendo en cuenta que ahora las teclas que son activas son: ‘2’ ‘5’ ‘8’ y ‘0’, por tanto si por D, E, F G llega ‘1000’ significa que el usuario esta apretando la tecla ‘2’, si llega ‘0100’ el usuario está apretando la tecla ‘5’, en caso de recibir ‘0010’ significa que el usuario esta apretando la tecla ‘8’, y para ‘0001’ sabremos que el usuario esta apretando la tecla ‘0’.

3-Rastreo de la columna C:

3.1 Ahora se envía el ‘1’ por la columna C, y el resto de columnas permanecen a ‘0’, de forma que solo están activas las teclas de la columna C.

Page 84: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

83

3.3 Se hace el paso idéntico al 1.2 y al 2.2 pero teniendo en cuenta que ahora las teclas activas son: ‘3’ ‘6’ ‘9’ y ‘#’, por tanto si por D, E, F, G nos llega ‘1000’ significa que el usuario esta apretando la tecla ‘3’, si llega un ‘0100’ significa que está apretando la tecla ‘6’, en el caso de recibir ‘0001’ el usuario está apretando la tecla ‘#’.

4-Volver al paso 1:

Por tanto se puede ver que la idea es ir rastreando de forma periódica cada una de las columnas del teclado de matriz, enviando un ‘1’ por cada columna y leyendo lo que nos llega a través de las filas en aquel “instante”. Como se trata de un proceso periódico hay que utilizar alguno de los temporizadores del microcontrolador para marcar el ritmo en que se realiza el ciclo aquí descrito.

Figura 6.6.2. Teclado de matriz de 4x4.

Para nuestro proyecto utilizamos un teclado de matriz de 4x4 y tienen el mismo funcionamiento que se muestra en la figura anterior.

Page 85: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

84

CAPITULO 7

DESARROLLO 7.1 Muestreo: 12 Derivaciones En este proyecto, a partir de las gráficas obtenidas de un ECG (fig 5.4.1 ) de un individuo normal realizamos el muestreo de las 12 derivaciones, un ejemplo es la siguiente gráfica: toda la gráfica equivale a un segundo aproximadamente, tomamos 133 muestras entonces tomamos el valor máximo en el punto 1, tomamos una muestra de nivel de voltaje y el tiempo el nivel de voltaje a partir de una tabla (ver apéndice A) la convertimos a un número binario para así codificar el voltaje y poder grabar en el PIC el nivel de referencia para el convertidor digital analógico CDA es 1000 0000 que equivale a 0V. Un ejemplo es el siguiente.

Figura 7.1.1. ECG normal.

Se tomaron los valores máximos, en el punto 1 el valor del voltaje es de 0.81V, el valor binario que le corresponde es 1010 0000, en el punto 2 el voltaje es de –0.095V el valor binario que le corresponde es el 1000 1001, en el punto 3 el valor del voltaje es de 1V, el valor binario que le corresponde es 0000 0000, en el punto 4 el voltaje es de 0.1V el valor binario que le corresponde es el 1000 1101, en el punto 5 el voltaje mayor es de 0.36V y el valor binario que le corresponde es el 0101 0001.

A partir de la gráfica anterior se muestrea la gráfica a los niveles de tiempo, voltaje y numeración binario, la numeración binaria se utiliza en la programación del PIC para así

Page 86: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

85

desplegar la gráfica pasando por el CDA y observar en el osciloscopio. En la siguiente tabla se muestran los valores de la gráfica D1 tiempo, voltaje y numeración binaria.

Tiempo (s) Voltajes

(V) Numeración

binaria 0.0000 1.000 0000 0000 0.0075 0.900 0000 1101 0.0150 0.700 0010 0111 0.0225 0.600 0011 0011 0.0300 0.450 0100 0110 0.0375 0.300 0101 1010 0.0450 0.200 0110 0111 0.0525 -0.008 1000 0001 0.0600 -0.100 1000 1101 0.0675 -0.095 1000 1001 0.0750 -0.050 1000 0110 0.0825 -0.003 1000 0011 0.0900 0.000 1000 0000 0.0975 0.020 0111 1101 0.1050 0.040 0111 1011 0.1125 0.060 0111 1000 0.1200 0.080 0111 0110 0.1275 0.090 0111 0100 0.1350 0.100 0111 0011 0.1425 0.100 0111 0011 0.1500 0.100 0111 0011 0.1575 0.100 0111 0011 0.1650 0.100 0111 0011 0.1725 0.100 0111 0011 0.1800 0.100 0111 0011 0.1875 0.100 0111 0011 0.1950 0.100 0111 0011 0.2025 0.100 0111 0011 0.2100 0.100 0111 0011 0.2175 0.100 0111 0011 0.2250 0.100 0111 0011 0.2325 0.100 0111 0011 0.2400 0.100 0111 0011 0.2475 0.100 0111 0011 0.2550 0.100 0111 0011 0.2625 0.100 0111 0011 0.2700 0.100 0111 0011 0.2775 0.100 0111 0011

0.2850 0.100 0111 0011 0.2925 0.100 0111 0011 0.3000 0.100 0111 0011 0.3075 0.110 0111 0001 0.3150 0.130 0110 1111 0.3225 0.140 0110 1110 0.3300 0.150 0110 1101 0.3375 0.160 0110 1011 0.3450 0.180 0110 1001 0.3525 0.200 0110 0111 0.3600 0.230 0110 0101 0.3675 0.250 0110 0000 0.3750 0.270 0101 1110 0.3825 0.300 0101 1010 0.3900 0.320 0101 1000 0.3975 0.330 0101 0110 0.4050 0.340 0101 0100 0.4125 0.350 0101 0011 0.4200 0.360 0101 0001 0.4275 0.350 0101 0011 0.4350 0.340 0101 0100 0.4425 0.330 0101 0110 0.4500 0.320 0101 1000 0.4575 0.300 0101 1010 0.4650 0.280 0101 1100 0.4725 0.260 0101 1111 0.4800 0.240 0110 0001 0.4875 0.220 0110 0101 0.4950 0.200 0110 0111 0.5025 0.190 0110 1000 0.5100 0.170 0110 1010 0.5175 0.160 0110 1011 0.5250 0.150 0110 1101 0.5325 0.130 0110 1110 0.5400 0.120 0111 0001 0.5475 0.110 0110 0010 0.5550 0.100 0111 0011 0.5625 0.100 0111 0011 0.5700 0.100 0111 0011 0.5775 0.100 0111 0011

Page 87: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

86

0.5850 0.100 0111 0011 0.5925 0.100 0111 0011 0.6000 0.100 0111 0011 0.6075 0.100 0111 0011 0.6150 0.100 0111 0011 0.6225 0.100 0111 0011 0.6300 0.100 0111 0011 0.6375 0.100 0111 0011 0.6450 0.100 0111 0011 0.6525 0.100 0111 0011 0.6600 0.100 0111 0011 0.6675 0.100 0111 0011 0.6750 0.100 0111 0011 0.6825 0.100 0111 0011 0.6900 0.100 0111 0011 0.6975 0.100 0111 0011 0.7050 0.100 0111 0011 0.7125 0.100 0111 0011 0.7200 0.100 0111 0011 0.7275 0.100 0111 0011 0.7350 0.100 0111 0011 0.7425 0.100 0111 0011 0.7500 0.100 0111 0011 0.7575 0.110 0110 0010 0.7650 0.130 0110 1111 0.7725 0.140 0110 1110 0.7800 0.160 0110 1111 0.7875 0.190 0110 1000 0.7950 0.230 0110 0101 0.8025 0.240 0110 0001 0.8100 0.250 1010 0000 0.8175 0.250 0110 0000 0.8250 0.240 0110 0001 0.8325 0.220 0110 0101 0.8400 0.200 0110 0111 0.8475 0.170 0110 1010 0.8550 0.150 0110 1101 0.8625 0.130 0110 1111 0.8700 0.100 0111 0011 0.8775 0.090 0111 0100 0.8850 0.090 0111 0100 0.8925 0.080 0111 0110 0.9000 0.070 0111 0111 0.9075 0.060 0111 1000 0.9150 0.050 0111 1001

0.9225 0.000 1000 0000 0.9300 -0.100 1000 1101 0.9375 0.200 0110 0111 0.9450 0.500 0100 0000 0.9525 0.700 0010 0111 0.9600 0.900 0000 1101 1.0000 1.000 0000 0000

Page 88: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

87

Con los datos anteriores se gráfica la Derivación D1 y con los datos binarios se realizaran los programas para que se graben en el PIC. En el apéndice B se observan todos los valores de muestreo en tiempo, voltaje y numeración binaria, con su correspondiente gráfica.

Gráfica 7.1.1. Muestreo para obtener los valores binarios para la programación del PIC.

Derivación I

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

0.0000 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

Tiempo (s)

Volta

je (V

)

Page 89: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

88

7.2 Programación con NIPLE Ejemplo de programación en el Programa NIPLE gráficamente. Se configuran los puertos A y C como entrada, el puerto B como salida.

Registros donde se guarda la información de los puertos de entrada.

En esta parte se comparan los registros de entrada, si el registro de entrada es igual al número binario que corresponde, llama a una subrutina.

Si los registros de entrada corresponden a un número binario llama a una subrutina donde se cicla hasta que se le da un reset y se reinicia el programa, la subrutina es la programación de las gráficas.

Page 90: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

89

Cuando entra a la subrutina es la secuencia de la gráfica, la secuencia tiene un número binario (que corresponde a un punto en la gráfica) y un tiempo de muestreo, esto se muestra en las siguientes figuras.

Rutina 1,2 .

Page 91: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

90

Este es un diagrama de flujo, primero se configuran los puertos en este proyecto se configuran los puertos A y C como entrada, el puerto B se configura como salida que se conecta al DAC.

La información de los puertos de entrada se guardan en un registra para después leer los registros y compararlos con un código, si corresponde el código al registro de entrada se manda a llamar una función o subrutina.

Este diagrama nos sirvió para generar el archivo con extensión .ASM y así programar en MPLAB para agregar las subrutinas de todas las derivaciones.

Page 92: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

91

7.3 Programa en lenguaje ensamblador Se presentan dos programas uno para el PIC16F84 y el otro para el PIC16F877, mostrados en el Apéndice D. Para el PIC16F84 se programaron las derivaciones V4 y V6, en el PIC16F877 se grabaron las derivaciones 1, 2, 3 ,AVR ,AVF ,AVL ,V1, V2, V3, V5, los programas se muestran a continuación.

7.4 Grabación del PIC 16F877 y 16F84 Una vez que se compila el código con extensión .ASM se genera un archivo .HEX con la ayuda del programa MPLAB. Este es el archivo que se requiere para la grabación de los PIC´S utilizando el programa ICPROG.

El Proceso consta de los siguientes pasos: 1.- Abrir el programa ICPROG 2.- Cargar el archivo con extensión .HEX

3.- Cambiar los parámetros del oscilador externo a XT, desactivar los bits de configuración WDT (Watch Dog Timer).

4.- Se coloca el PIC sobre el socket en la posición correcta 5.- Se conecta el cable del puerto serial de la PC al programador del PIC 6.- Se mando el comando a grabar 7.- Se desconecta le puerto serial del grabador y listo el PIC esta grabado

7.5 Conexión de teclado, osciladores y DAC 0808

Figura 7.5.1 Diagrama de conexión del Simulador de ECG.

PIC 16F877

PIC 16F84

TECLADO 0 1 2 3 4 5 6 7 8 9 A B C D E F

DAC 0808 SALIDA DE LAS DERIVACIONES

BANCO DE OSCILADORES

FUENTE DE 5 VOLTS Y -5 VOLTS

12 8

8

2

10

2

2 1

RESET

Page 93: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

92

7.6 Ensamblado del dispositivo Todos los circuitos integrados que se emplearon fueron ensamblados en una tablilla perforada y las conexiones entre pines se soldaron con el fin de darles mayor seguridad de conexión. La siguiente fotografía muestra la tablilla en la que se ensambló a los dos PIC´s y DAC, la cual puede considerarse como el cerebro del dispositivo.

Page 94: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

93

En seguida se muestra una fotografía del dispositivo portátil de simulación de ECG. Se aprecia también las pilas de 9 V que utiliza el dispositivo como fuente de alimentación.

Page 95: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

94

Conclusiones La implementación de proyectos con PIC´s nos ha permitido realizar un simulador de ECG de manera no complicada, sin embargo es necesario tener los conocimientos mínimos sobre programación y puesta a punto de circuitería que incluya PIC´s y periféricos.

Lo que hace de estos dispositivos que sean tan manipulables es la gran cantidad de componentes como: puertos timers, un CPU, una ALU, etc. permitiendo una amplia gama de aplicaciones. La rapidez con la que trabajan estos dispositivos, si bien no es significativa, complace las necesidades de cualquier programador.

En el diseño del programa con que se generan las gráficas de ECG tomamos las mayores precauciones para impedir fallas catastróficas en el despliegue de las mismas. Siguiendo el orden de ideas, nos aseguramos que el convertidor analógico digital pudiera soportar con creces la demanda de trabajo en relación a velocidad de manipulación de datos. Las gráficas correspondientes se muestran en el Apéndice C.

Es importante destacar el tamaño de memoria de los PIC´s ya que fue necesario utilizar dos dispositivos.

El tamaño del simulador de ECG es significativamente pequeño y se cumple el objetivo de portatibilidad. Con un peso liviano, incrementado principalmente por la batería que alimenta de energía el dispositivo.

Page 96: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

95

Apéndice A Numeración binaria y su correspondiente voltaje

Las cantidades se redondearon como puede apreciarse en V Salida, en unidades de Volts. En azúl cantidades redondeadas y en rojo numeración de cinco en cinco decimal (utilizado como referencia). Numeracion Binaria

V Salida

(V) Numeración Utilizada

0 0 0 0 0 0 0 0 1.000 1.000 0 0 0 0 0 0 0 1 0.992 0.992 0 0 0 0 0 0 1 0 0.984 0.984 0 0 0 0 0 0 1 1 0.977 0.977 0 0 0 0 0 1 0 0 0.969 0.969 0 0 0 0 0 1 0 1 0.961 0.961 0 0 0 0 0 1 1 0 0.953 0.953 0 0 0 0 0 1 1 1 0.945 0.945 0 0 0 0 1 0 0 0 0.937 0.937 0 0 0 0 1 0 0 1 0.930 0.930 0 0 0 0 1 0 1 0 0.922 0.922 0 0 0 0 1 0 1 1 0.914 0.914 0 0 0 0 1 1 0 0 0.906 0.906 0 0 0 0 1 1 0 1 0.900 0.898 0 0 0 0 1 1 1 0 0.891 0.891 0 0 0 0 1 1 1 1 0.883 0.883 0 0 0 1 0 0 0 0 0.875 0.875 0 0 0 1 0 0 0 1 0.867 0.867 0 0 0 1 0 0 1 0 0.859 0.859 0 0 0 1 0 0 1 1 0.852 0.852 0 0 0 1 0 1 0 0 0.844 0.844 0 0 0 1 0 1 0 1 0.836 0.836 0 0 0 1 0 1 1 0 0.828 0.828 0 0 0 1 0 1 1 1 0.820 0.820 0 0 0 1 1 0 0 0 0.812 0.812 0 0 0 1 1 0 0 1 0.805 0.805 0 0 0 1 1 0 1 0 0.800 0.797 0 0 0 1 1 0 1 1 0.789 0.789 0 0 0 1 1 1 0 0 0.781 0.781 0 0 0 1 1 1 0 1 0.773 0.773 0 0 0 1 1 1 1 0 0.766 0.766 0 0 0 1 1 1 1 1 0.758 0.758 0 0 1 0 0 0 0 0 0.750 0.750 0 0 1 0 0 0 0 1 0.742 0.742 0 0 1 0 0 0 1 0 0.734 0.734 0 0 1 0 0 0 1 1 0.727 0.727 0 0 1 0 0 1 0 0 0.719 0.719 0 0 1 0 0 1 0 1 0.711 0.711

0 0 1 0 0 1 1 0 0.703 0.703 0 0 1 0 0 1 1 1 0.700 0.695 0 0 1 0 1 0 0 0 0.687 0.687 0 0 1 0 1 0 0 1 0.680 0.680 0 0 1 0 1 0 1 0 0.672 0.672 0 0 1 0 1 0 1 1 0.664 0.664 0 0 1 0 1 1 0 0 0.656 0.656 0 0 1 0 1 1 0 1 0.648 0.648 0 0 1 0 1 1 1 0 0.641 0.641 0 0 1 0 1 1 1 1 0.633 0.633 0 0 1 1 0 0 0 0 0.625 0.625 0 0 1 1 0 0 0 1 0.617 0.617 0 0 1 1 0 0 1 0 0.609 0.609 0 0 1 1 0 0 1 1 0.600 0.602 0 0 1 1 0 1 0 0 0.594 0.594 0 0 1 1 0 1 0 1 0.586 0.586 0 0 1 1 0 1 1 0 0.578 0.578 0 0 1 1 0 1 1 1 0.570 0.570 0 0 1 1 1 0 0 0 0.562 0.562 0 0 1 1 1 0 0 1 0.550 0.555 0 0 1 1 1 0 1 0 0.547 0.547 0 0 1 1 1 0 1 1 0.539 0.539 0 0 1 1 1 1 0 0 0.531 0.531 0 0 1 1 1 1 0 1 0.523 0.523 0 0 1 1 1 1 1 0 0.516 0.516 0 0 1 1 1 1 1 1 0.508 0.508 0 1 0 0 0 0 0 0 0.500 0.500 0 1 0 0 0 0 0 1 0.492 0.492 0 1 0 0 0 0 1 0 0.484 0.484 0 1 0 0 0 0 1 1 0.477 0.477 0 1 0 0 0 1 0 0 0.469 0.469 0 1 0 0 0 1 0 1 0.461 0.461 0 1 0 0 0 1 1 0 0.450 0.453 0 1 0 0 0 1 1 1 0.445 0.445 0 1 0 0 1 0 0 0 0.437 0.437 0 1 0 0 1 0 0 1 0.430 0.430 0 1 0 0 1 0 1 0 0.422 0.422 0 1 0 0 1 0 1 1 0.414 0.414 0 1 0 0 1 1 0 0 0.406 0.406 0 1 0 0 1 1 0 1 0.400 0.398 0 1 0 0 1 1 1 0 0.391 0.391

Page 97: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

96

0 1 0 0 1 1 1 1 0.383 0.383 0 1 0 1 0 0 0 0 0.375 0.375 0 1 0 1 0 0 0 1 0.367 0.367 0 1 0 1 0 0 1 0 0.359 0.359 0 1 0 1 0 0 1 1 0.350 0.352 0 1 0 1 0 1 0 0 0.344 0.344 0 1 0 1 0 1 0 1 0.336 0.336 0 1 0 1 0 1 1 0 0.328 0.328 0 1 0 1 0 1 1 1 0.320 0.320 0 1 0 1 1 0 0 0 0.312 0.312 0 1 0 1 1 0 0 1 0.305 0.305 0 1 0 1 1 0 1 0 0.300 0.297 0 1 0 1 1 0 1 1 0.289 0.289 0 1 0 1 1 1 0 0 0.281 0.281 0 1 0 1 1 1 0 1 0.273 0.273 0 1 0 1 1 1 1 0 0.266 0.266 0 1 0 1 1 1 1 1 0.258 0.258 0 1 1 0 0 0 0 0 0.250 0.250 0 1 1 0 0 0 0 1 0.242 0.242 0 1 1 0 0 0 1 0 0.234 0.234 0 1 1 0 0 0 1 1 0.227 0.227 0 1 1 0 0 1 0 0 0.219 0.219 0 1 1 0 0 1 0 1 0.211 0.211 0 1 1 0 0 1 1 0 0.203 0.203 0 1 1 0 0 1 1 1 0.200 0.195 0 1 1 0 1 0 0 0 0.187 0.187 0 1 1 0 1 0 0 1 0.180 0.180 0 1 1 0 1 0 1 0 0.172 0.172 0 1 1 0 1 0 1 1 0.164 0.164 0 1 1 0 1 1 0 0 0.156 0.156 0 1 1 0 1 1 0 1 0.150 0.148 0 1 1 0 1 1 1 0 0.141 0.141 0 1 1 0 1 1 1 1 0.133 0.133 0 1 1 1 0 0 0 0 0.125 0.125 0 1 1 1 0 0 0 1 0.117 0.117 0 1 1 1 0 0 1 0 0.109 0.109 0 1 1 1 0 0 1 1 0.100 0.102 0 1 1 1 0 1 0 0 0.094 0.094 0 1 1 1 0 1 0 1 0.086 0.086 0 1 1 1 0 1 1 0 0.078 0.078 0 1 1 1 0 1 1 1 0.070 0.070 0 1 1 1 1 0 0 0 0.062 0.062 0 1 1 1 1 0 0 1 0.050 0.055 0 1 1 1 1 0 1 0 0.047 0.047 0 1 1 1 1 0 1 1 0.039 0.039 0 1 1 1 1 1 0 0 0.031 0.031

0 1 1 1 1 1 0 1 0.023 0.023 0 1 1 1 1 1 1 0 0.016 0.016 0 1 1 1 1 1 1 1 0.008 0.008 1 0 0 0 0 0 0 0 0.000 0.000 1 0 0 0 0 0 0 1 -0.008 -0.008 1 0 0 0 0 0 1 0 -0.016 -0.016 1 0 0 0 0 0 1 1 -0.024 -0.024 1 0 0 0 0 1 0 0 -0.031 -0.031 1 0 0 0 0 1 0 1 -0.039 -0.039 1 0 0 0 0 1 1 0 -0.050 -0.047 1 0 0 0 0 1 1 1 -0.055 -0.055 1 0 0 0 1 0 0 0 -0.063 -0.063 1 0 0 0 1 0 0 1 -0.070 -0.070 1 0 0 0 1 0 1 0 -0.078 -0.078 1 0 0 0 1 0 1 1 -0.086 -0.086 1 0 0 0 1 1 0 0 -0.094 -0.094 1 0 0 0 1 1 0 1 -0.100 -0.102 1 0 0 0 1 1 1 0 -0.109 -0.109 1 0 0 0 1 1 1 1 -0.117 -0.117 1 0 0 1 0 0 0 0 -0.125 -0.125 1 0 0 1 0 0 0 1 -0.133 -0.133 1 0 0 1 0 0 1 0 -0.141 -0.141 1 0 0 1 0 0 1 1 -0.150 -0.149 1 0 0 1 0 1 0 0 -0.156 -0.156 1 0 0 1 0 1 0 1 -0.164 -0.164 1 0 0 1 0 1 1 0 -0.172 -0.172 1 0 0 1 0 1 1 1 -0.180 -0.180 1 0 0 1 1 0 0 0 -0.188 -0.188 1 0 0 1 1 0 0 1 -0.195 -0.195 1 0 0 1 1 0 1 0 -0.200 -0.203 1 0 0 1 1 0 1 1 -0.211 -0.211 1 0 0 1 1 1 0 0 -0.219 -0.219 1 0 0 1 1 1 0 1 -0.227 -0.227 1 0 0 1 1 1 1 0 -0.234 -0.234 1 0 0 1 1 1 1 1 -0.242 -0.242 1 0 1 0 0 0 0 0 -0.250 -0.250 1 0 1 0 0 0 0 1 -0.258 -0.258 1 0 1 0 0 0 1 0 -0.266 -0.266 1 0 1 0 0 0 1 1 -0.274 -0.274 1 0 1 0 0 1 0 0 -0.281 -0.281 1 0 1 0 0 1 0 1 -0.289 -0.289 1 0 1 0 0 1 1 0 -0.297 -0.297 1 0 1 0 0 1 1 1 -0.300 -0.305 1 0 1 0 1 0 0 0 -0.313 -0.313 1 0 1 0 1 0 0 1 -0.320 -0.320 1 0 1 0 1 0 1 0 -0.328 -0.328

Page 98: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

97

1 0 1 0 1 0 1 1 -0.336 -0.336 1 0 1 0 1 1 0 0 -0.344 -0.344 1 0 1 0 1 1 0 1 -0.350 -0.352 1 0 1 0 1 1 1 0 -0.359 -0.359 1 0 1 0 1 1 1 1 -0.367 -0.367 1 0 1 1 0 0 0 0 -0.375 -0.375 1 0 1 1 0 0 0 1 -0.383 -0.383 1 0 1 1 0 0 1 0 -0.391 -0.391 1 0 1 1 0 0 1 1 -0.400 -0.399 1 0 1 1 0 1 0 0 -0.406 -0.406 1 0 1 1 0 1 0 1 -0.414 -0.414 1 0 1 1 0 1 1 0 -0.422 -0.422 1 0 1 1 0 1 1 1 -0.430 -0.430 1 0 1 1 1 0 0 0 -0.438 -0.438 1 0 1 1 1 0 0 1 -0.450 -0.445 1 0 1 1 1 0 1 0 -0.453 -0.453 1 0 1 1 1 0 1 1 -0.461 -0.461 1 0 1 1 1 1 0 0 -0.469 -0.469 1 0 1 1 1 1 0 1 -0.477 -0.477 1 0 1 1 1 1 1 0 -0.484 -0.484 1 0 1 1 1 1 1 1 -0.492 -0.492 1 1 0 0 0 0 0 0 -0.500 -0.500 1 1 0 0 0 0 0 1 -0.508 -0.508 1 1 0 0 0 0 1 0 -0.516 -0.516 1 1 0 0 0 0 1 1 -0.524 -0.524 1 1 0 0 0 1 0 0 -0.531 -0.531 1 1 0 0 0 1 0 1 -0.539 -0.539 1 1 0 0 0 1 1 0 -0.550 -0.547 1 1 0 0 0 1 1 1 -0.555 -0.555 1 1 0 0 1 0 0 0 -0.563 -0.563 1 1 0 0 1 0 0 1 -0.570 -0.570 1 1 0 0 1 0 1 0 -0.578 -0.578 1 1 0 0 1 0 1 1 -0.586 -0.586 1 1 0 0 1 1 0 0 -0.594 -0.594 1 1 0 0 1 1 0 1 -0.600 -0.602 1 1 0 0 1 1 1 0 -0.609 -0.609 1 1 0 0 1 1 1 1 -0.617 -0.617 1 1 0 1 0 0 0 0 -0.625 -0.625 1 1 0 1 0 0 0 1 -0.633 -0.633 1 1 0 1 0 0 1 0 -0.641 -0.641 1 1 0 1 0 0 1 1 -0.650 -0.649 1 1 0 1 0 1 0 0 -0.656 -0.656 1 1 0 1 0 1 0 1 -0.664 -0.664 1 1 0 1 0 1 1 0 -0.672 -0.672 1 1 0 1 0 1 1 1 -0.680 -0.680 1 1 0 1 1 0 0 0 -0.688 -0.688

1 1 0 1 1 0 0 1 -0.695 -0.695 1 1 0 1 1 0 1 0 -0.700 -0.703 1 1 0 1 1 0 1 1 -0.711 -0.711 1 1 0 1 1 1 0 0 -0.719 -0.719 1 1 0 1 1 1 0 1 -0.727 -0.727 1 1 0 1 1 1 1 0 -0.734 -0.734 1 1 0 1 1 1 1 1 -0.742 -0.742 1 1 1 0 0 0 0 0 -0.750 -0.750 1 1 1 0 0 0 0 1 -0.758 -0.758 1 1 1 0 0 0 1 0 -0.766 -0.766 1 1 1 0 0 0 1 1 -0.774 -0.774 1 1 1 0 0 1 0 0 -0.781 -0.781 1 1 1 0 0 1 0 1 -0.789 -0.789 1 1 1 0 0 1 1 0 -0.797 -0.797 1 1 1 0 0 1 1 1 -0.800 -0.805 1 1 1 0 1 0 0 0 -0.813 -0.813 1 1 1 0 1 0 0 1 -0.820 -0.820 1 1 1 0 1 0 1 0 -0.828 -0.828 1 1 1 0 1 0 1 1 -0.836 -0.836 1 1 1 0 1 1 0 0 -0.844 -0.844 1 1 1 0 1 1 0 1 -0.852 -0.852 1 1 1 0 1 1 1 0 -0.859 -0.859 1 1 1 0 1 1 1 1 -0.867 -0.867 1 1 1 1 0 0 0 0 -0.875 -0.875 1 1 1 1 0 0 0 1 -0.883 -0.883 1 1 1 1 0 0 1 0 -0.891 -0.891 1 1 1 1 0 0 1 1 -0.900 -0.899 1 1 1 1 0 1 0 0 -0.906 -0.906 1 1 1 1 0 1 0 1 -0.914 -0.914 1 1 1 1 0 1 1 0 -0.922 -0.922 1 1 1 1 0 1 1 1 -0.930 -0.930 1 1 1 1 1 0 0 0 -0.938 -0.938 1 1 1 1 1 0 0 1 -0.945 -0.945 1 1 1 1 1 0 1 0 -0.953 -0.953 1 1 1 1 1 0 1 1 -0.961 -0.961 1 1 1 1 1 1 0 0 -0.969 -0.969 1 1 1 1 1 1 0 1 -0.977 -0.977 1 1 1 1 1 1 1 0 -0.985 -0.985 1 1 1 1 1 1 1 1 -1.000 -0.992

Page 99: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

98

Apéndice B Graficas obtenidas teóricamente Con este tipo de datos nos sirven para programar los PIC programando la numeración binaria en las subrutinas.

Derivación I

Tiempo (s) Voltajes

(V) Numeración

binaria 0.0000 1.000 0000 0000 0.0075 0.900 0000 1101 0.0150 0.700 0010 0111 0.0225 0.600 0011 0011 0.0300 0.450 0100 0110 0.0375 0.300 0101 1010 0.0450 0.200 0110 0111 0.0525 -0.008 1000 0001 0.0600 -0.100 1000 1101 0.0675 -0.095 1000 1001 0.0750 -0.050 1000 0110 0.0825 -0.003 1000 0011 0.0900 0.000 1000 0000 0.0975 0.020 0111 1101 0.1050 0.040 0111 1011 0.1125 0.060 0111 1000 0.1200 0.080 0111 0110 0.1275 0.090 0111 0100 0.1350 0.100 0111 0011 0.1425 0.100 0111 0011 0.1500 0.100 0111 0011 0.1575 0.100 0111 0011 0.1650 0.100 0111 0011 0.1725 0.100 0111 0011 0.1800 0.100 0111 0011 0.1875 0.100 0111 0011 0.1950 0.100 0111 0011 0.2025 0.100 0111 0011 0.2100 0.100 0111 0011 0.2175 0.100 0111 0011 0.2250 0.100 0111 0011 0.2325 0.100 0111 0011 0.2400 0.100 0111 0011 0.2475 0.100 0111 0011 0.2550 0.100 0111 0011 0.2625 0.100 0111 0011 0.2700 0.100 0111 0011

0.2775 0.100 0111 0011 0.2850 0.100 0111 0011 0.2925 0.100 0111 0011 0.3000 0.100 0111 0011 0.3075 0.110 0111 0001 0.3150 0.130 0110 1111 0.3225 0.140 0110 1110 0.3300 0.150 0110 1101 0.3375 0.160 0110 1011 0.3450 0.180 0110 1001 0.3525 0.200 0110 0111 0.3600 0.230 0110 0101 0.3675 0.250 0110 0000 0.3750 0.270 0101 1110 0.3825 0.300 0101 1010 0.3900 0.320 0101 1000 0.3975 0.330 0101 0110 0.4050 0.340 0101 0100 0.4125 0.350 0101 0011 0.4200 0.360 0101 0001 0.4275 0.350 0101 0011 0.4350 0.340 0101 0100 0.4425 0.330 0101 0110 0.4500 0.320 0101 1000 0.4575 0.300 0101 1010 0.4650 0.280 0101 1100 0.4725 0.260 0101 1111 0.4800 0.240 0110 0001 0.4875 0.220 0110 0101 0.4950 0.200 0110 0111 0.5025 0.190 0110 1000 0.5100 0.170 0110 1010 0.5175 0.160 0110 1011 0.5250 0.150 0110 1101 0.5325 0.130 0110 1110 0.5400 0.120 0111 0001 0.5475 0.110 0110 0010 0.5550 0.100 0111 0011 0.5625 0.100 0111 0011 0.5700 0.100 0111 0011

Page 100: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

99

0.5775 0.100 0111 0011 0.5850 0.100 0111 0011 0.5925 0.100 0111 0011 0.6000 0.100 0111 0011 0.6075 0.100 0111 0011 0.6150 0.100 0111 0011 0.6225 0.100 0111 0011 0.6300 0.100 0111 0011 0.6375 0.100 0111 0011 0.6450 0.100 0111 0011 0.6525 0.100 0111 0011 0.6600 0.100 0111 0011 0.6675 0.100 0111 0011 0.6750 0.100 0111 0011 0.6825 0.100 0111 0011 0.6900 0.100 0111 0011 0.6975 0.100 0111 0011 0.7050 0.100 0111 0011 0.7125 0.100 0111 0011 0.7200 0.100 0111 0011 0.7275 0.100 0111 0011 0.7350 0.100 0111 0011 0.7425 0.100 0111 0011 0.7500 0.100 0111 0011 0.7575 0.110 0110 0010 0.7650 0.130 0110 1111 0.7725 0.140 0110 1110

0.7800 0.160 0110 1111 0.7875 0.190 0110 1000 0.7950 0.230 0110 0101 0.8025 0.240 0110 0001 0.8100 0.250 1010 0000 0.8175 0.250 0110 0000 0.8250 0.240 0110 0001 0.8325 0.220 0110 0101 0.8400 0.200 0110 0111 0.8475 0.170 0110 1010 0.8550 0.150 0110 1101 0.8625 0.130 0110 1111 0.8700 0.100 0111 0011 0.8775 0.090 0111 0100 0.8850 0.090 0111 0100 0.8925 0.080 0111 0110 0.9000 0.070 0111 0111 0.9075 0.060 0111 1000 0.9150 0.050 0111 1001 0.9225 0.000 1000 0000 0.9300 -0.100 1000 1101 0.9375 0.200 0110 0111 0.9450 0.500 0100 0000 0.9525 0.700 0010 0111 0.9600 0.900 0000 1101 1.0000 1.000 0000 0000

Derivación I

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

0.0000 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

Tiempo (s)

Volta

je (V

)

Page 101: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

100

Derivación II Tiempo

(s) Voltajes

(V) Numeración

binaria 0.000 0.000 1000 0000 0.006 0.120 0111 0001 0.012 0.200 0110 0111 0.018 0.280 0101 1100 0.024 0.340 0101 0101 0.030 0.440 0100 1000 0.036 0.500 0100 0000 0.042 0.580 0011 0110 0.048 0.660 0010 1011 0.054 0.740 0010 0001 0.060 0.800 0001 1010 0.066 -0.300 1010 0111 0.072 -0.220 1001 1100 0.078 -0.180 1001 0111 0.084 -0.140 1001 0010 0.090 -0.120 1000 1111 0.096 -0.070 1000 1001 0.102 -0.040 1000 0101 0.108 0.000 1000 0000 0.114 0.030 0111 1100 0.120 0.060 0111 1000 0.126 0.060 0111 1000 0.132 0.060 0111 1000 0.138 0.060 0111 1000 0.144 0.060 0111 1000 0.150 0.060 0111 1000 0.156 0.060 0111 1000 0.162 0.060 0111 1000 0.168 0.060 0111 1000 0.174 0.060 0111 1000 0.180 0.060 0111 1000 0.186 0.060 0111 1000 0.192 0.060 0111 1000 0.198 0.060 0111 1000 0.204 0.060 0111 1000 0.210 0.060 0111 1000 0.216 0.060 0111 1000 0.222 0.060 0111 1000 0.228 0.060 0111 1000 0.234 0.060 0111 1000 0.240 0.060 0111 1000 0.246 0.060 0111 1000

0.252 0.060 0111 1000 0.258 0.060 0111 1000 0.264 0.060 0111 1000 0.270 0.060 0111 1000 0.276 0.060 0111 1000 0.282 0.060 0111 1000 0.288 0.060 0111 1000 0.294 0.060 0111 1000 0.300 0.060 0111 1000 0.306 0.080 0111 0110 0.312 0.090 0111 0100 0.318 0.110 0111 0010 0.324 0.130 0110 1111 0.330 0.140 0110 1110 0.336 0.150 0110 1101 0.342 0.160 0110 1011 0.348 0.180 0110 1001 0.354 0.190 0110 1000 0.360 0.200 0110 0111 0.366 0.210 0110 0101 0.372 0.230 0110 0011 0.378 0.240 0110 0001 0.384 0.250 0110 0000 0.390 0.250 0110 0000 0.396 0.260 0101 1111 0.402 0.260 0101 1111 0.408 0.270 0101 1101 0.414 0.280 0101 1100 0.420 0.280 0101 1100 0.426 0.290 0101 1011 0.432 0.290 0101 1011 0.438 0.300 0101 1010 0.444 0.300 0101 1010 0.450 0.300 0101 1010 0.456 0.300 0101 1010 0.462 0.300 0101 1010 0.468 0.290 0101 1011 0.474 0.290 0101 1011 0.480 0.290 0101 1011 0.486 0.280 0101 1100 0.492 0.280 0101 1100 0.498 0.270 0101 1101 0.504 0.260 0101 1111 0.510 0.260 0101 1111 0.516 0.250 0110 0000

Page 102: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

101

0.522 0.240 0110 0001 0.528 0.240 0110 0001 0.534 0.220 0110 0100 0.540 0.210 0110 0101 0.546 0.200 0110 0111 0.552 0.190 0110 1000 0.558 0.190 0110 1000 0.564 0.180 0110 1001 0.570 0.180 0110 1001 0.576 0.170 0110 1010 0.582 0.160 0110 1100 0.588 0.150 0110 1101 0.594 0.140 0110 1110 0.600 0.130 0110 1111 0.606 0.110 0111 0010 0.612 0.080 0111 0110 0.618 0.060 0111 1000 0.624 0.030 0111 1100 0.630 0.000 1000 0000 0.636 0.010 0111 1111 0.642 0.010 0111 1111 0.648 0.020 0111 1101 0.654 0.020 0111 1101 0.660 0.020 0111 1101 0.666 0.020 0111 1101 0.672 0.020 0111 1101 0.678 0.020 0111 1101 0.684 0.020 0111 1101 0.690 0.020 0111 1101 0.696 0.020 0111 1101 0.702 0.030 0111 1100 0.708 0.030 0111 1100 0.714 0.030 0111 1100 0.720 0.030 0111 1100 0.726 0.030 0111 1100 0.732 0.030 0111 1100 0.738 0.040 0111 1011 0.744 0.040 0111 1011

0.750 0.040 0111 1011 0.756 0.040 0111 1011 0.762 0.050 0111 1001 0.768 0.050 0111 1001 0.774 0.050 0111 1001 0.780 0.050 0111 1001 0.786 0.050 0111 1001 0.792 0.050 0111 1001 0.798 0.050 0111 1001 0.804 0.050 0111 1001 0.810 0.060 0111 1000 0.816 0.060 0111 1000 0.822 0.060 0111 1000 0.828 0.060 0111 1000 0.834 0.060 0111 1000 0.840 0.060 0111 1000 0.846 0.070 0111 0111 0.852 0.080 0111 0110 0.858 0.090 0111 0101 0.864 0.110 0111 0010 0.870 0.120 0111 0001 0.876 0.130 0110 1111 0.882 0.140 0110 1110 0.888 0.150 0110 1101 0.894 0.150 0110 1101 0.900 0.160 0110 1100 0.906 0.150 0110 1101 0.912 0.150 0110 1101 0.918 0.140 0110 1110 0.924 0.140 0110 1110 0.930 0.120 0111 0001 0.936 0.110 0111 0010 0.942 0.090 0111 0101 0.948 0.080 0111 0110 0.954 0.050 0111 1001 0.960 0.000 1000 0000

Page 103: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

102

Derivación III

Tiempo (s)

Voltajes (V)

Numeración binaria

0.000 -0.100 1000 1101 0.006 -0.086 1000 1011 0.012 -0.074 1000 1010 0.018 -0.064 1000 1000 0.024 -0.056 1000 0110 0.030 -0.045 1000 0101 0.036 -0.036 1000 0100 0.042 -0.026 1000 0011 0.048 -0.017 1000 0010 0.054 -0.005 1000 0001 0.060 0.000 1000 0000 0.066 0.014 0111 1110 0.072 0.025 0111 1101 0.078 0.035 0111 1100 0.084 0.046 0111 1010 0.090 0.056 0111 1001 0.096 0.065 0111 1000 0.102 0.075 0111 0110 0.108 0.085 0111 0101 0.114 0.096 0111 0100 0.120 0.100 0111 0011 0.126 0.045 0111 1010 0.132 0.010 0111 1111 0.138 -0.020 1000 0011 0.144 -0.070 1000 1001

0.150 -0.100 1000 1101 0.156 -0.080 1000 1011 0.162 -0.066 1000 1000 0.168 -0.050 1000 0110 0.174 -0.034 1000 0101 0.180 -0.022 1000 0011 0.186 -0.004 1000 0001 0.192 0.010 0111 1111 0.198 0.026 0111 1101 0.204 0.050 0111 1001 0.210 0.040 0111 1010 0.216 0.020 0111 1101 0.222 0.006 0111 1111 0.228 -0.014 1000 0010 0.234 -0.036 1000 0101 0.240 -0.050 1000 0110 0.246 -0.050 1000 0110 0.252 -0.050 1000 0110 0.258 -0.050 1000 0110 0.264 -0.050 1000 0110 0.270 -0.050 1000 0110 0.276 -0.050 1000 0110 0.282 -0.050 1000 0110 0.288 -0.050 1000 0110 0.294 -0.050 1000 0110 0.300 -0.050 1000 0110 0.306 -0.050 1000 0110

Derivación II

-0.400

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000

Tiempo (s)

Volta

je (V

)

Page 104: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

103

0.312 -0.050 1000 0110 0.318 -0.050 1000 0110 0.324 -0.050 1000 0110 0.330 -0.050 1000 0110 0.336 -0.050 1000 0110 0.342 -0.050 1000 0110 0.348 -0.050 1000 0110 0.354 -0.050 1000 0110 0.360 -0.050 1000 0110 0.366 -0.050 1000 0110 0.372 -0.050 1000 0110 0.378 -0.050 1000 0110 0.384 -0.050 1000 0110 0.390 -0.050 1000 0110 0.396 -0.050 1000 0110 0.402 -0.050 1000 0110 0.408 -0.050 1000 0110 0.414 -0.050 1000 0110 0.420 -0.050 1000 0110 0.426 -0.050 1000 0110 0.432 -0.050 1000 0110 0.438 -0.050 1000 0110 0.444 -0.050 1000 0110 0.450 -0.010 1000 0001 0.456 -0.004 1000 0001 0.462 0.000 1000 0000 0.468 0.006 0111 1111 0.474 0.014 0111 1110 0.480 0.018 0111 1101 0.486 0.023 0111 1101 0.492 0.028 0111 1100 0.498 0.032 0111 1100 0.504 0.037 0111 1011 0.510 0.040 0111 1011 0.516 0.045 0111 1010 0.522 0.047 0111 1010 0.528 0.047 0111 1010 0.534 0.043 0111 1011 0.540 0.040 0111 1011 0.546 0.034 0111 1100 0.552 0.026 0111 1101 0.558 0.022 0111 1101 0.564 0.016 0111 1110 0.570 0.010 0111 1111 0.576 0.000 1000 0000

0.582 -0.010 1000 0001 0.588 -0.026 1000 0011 0.594 -0.038 1000 0101 0.600 -0.100 1000 1101 0.606 -0.100 1000 1101 0.612 -0.100 1000 1101 0.618 -0.100 1000 1101 0.624 -0.100 1000 1101 0.630 -0.100 1000 1101 0.636 -0.100 1000 1101 0.642 -0.100 1000 1101 0.648 -0.100 1000 1101 0.654 -0.100 1000 1101 0.660 -0.100 1000 1101 0.666 -0.100 1000 1101 0.672 -0.100 1000 1101 0.678 -0.100 1000 1101 0.684 -0.100 1000 1101 0.690 -0.100 1000 1101 0.696 -0.100 1000 1101 0.702 -0.100 1000 1101 0.708 -0.100 1000 1101 0.714 -0.100 1000 1101 0.720 -0.100 1000 1101 0.726 -0.100 1000 1101 0.732 -0.100 1000 1101 0.738 -0.100 1000 1101 0.744 -0.100 1000 1101 0.750 -0.100 1000 1101 0.756 -0.100 1000 1101 0.762 -0.100 1000 1101 0.768 -0.100 1000 1101 0.774 -0.100 1000 1101 0.780 -0.100 1000 1101 0.786 -0.100 1000 1101 0.792 -0.100 1000 1101 0.798 -0.100 1000 1101 0.804 -0.100 1000 1101 0.810 -0.100 1000 1101 0.816 -0.100 1000 1101 0.822 -0.100 1000 1101 0.828 -0.100 1000 1101 0.834 -0.100 1000 1101 0.840 -0.100 1000 1101 0.846 -0.100 1000 1101

Page 105: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

104

0.852 -0.100 1000 1101 0.858 -0.100 1000 1101 0.864 -0.100 1000 1101 0.870 -0.100 1000 1101 0.876 -0.100 1000 1101 0.882 -0.100 1000 1101 0.888 -0.100 1000 1101 0.894 -0.100 1000 1101 0.900 -0.100 1000 1101 0.906 -0.100 1000 1101 0.912 -0.100 1000 1101 0.918 -0.100 1000 1101 0.924 -0.100 1000 1101 0.930 -0.100 1000 1101 0.936 -0.100 1000 1101 0.942 -0.100 1000 1101

0.948 -0.100 1000 1101 0.954 -0.100 1000 1101 0.960 -0.100 1000 1101 0.966 -0.100 1000 1101 0.972 -0.100 1000 1101 0.978 -0.100 1000 1101 0.984 -0.100 1000 1101 0.990 -0.100 1000 1101 0.996 -0.100 1000 1101 1.002 -0.100 1000 1101 1.008 -0.100 1000 1101 1.014 -0.100 1000 1101 1.020 -0.100 1000 1101

Derivación AVF

Tiempo (s)

Voltajes (V)

Numeración binaria

0.000 -0.010 1000 0001 0.006 -0.008 1000 0001 0.012 -0.007 1000 0001 0.018 -0.006 1000 0001 0.024 -0.005 1000 0001 0.030 -0.004 1000 0001 0.036 -0.003 1000 0001

0.042 -0.002 1000 0001 0.048 -0.001 1000 0001 0.054 0.000 1000 0000 0.060 0.000 1000 0000 0.066 0.007 0111 1111 0.072 0.015 0111 1110 0.078 0.022 0111 1101 0.084 0.030 0111 1100 0.090 0.037 0111 1011

Derivación III

-0.150

-0.100

-0.050

0.000

0.050

0.100

0.150

0.000 0.200 0.400 0.600 0.800 1.000

Tiempo (s)

Volta

je (V

)

Page 106: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

105

0.096 0.044 0111 1010 0.102 0.050 0111 1001 0.108 0.057 0111 1001 0.114 0.065 0111 1000 0.120 0.070 0111 0111 0.126 -0.020 1000 0011 0.132 -0.014 1000 0010 0.138 -0.012 1000 0001

0.144 -0.011 1000 0001 0.150 -0.009 1000 0001 0.156 -0.007 1000 0001 0.162 -0.005 1000 0001 0.168 -0.003 1000 0001 0.174 -0.002 1000 0001 0.180 0.000 1000 0000 0.186 0.000 1000 0000 0.192 0.000 1000 0000 0.198 0.000 1000 0000 0.204 0.000 1000 0000 0.210 0.000 1000 0000 0.216 0.000 1000 0000 0.222 0.000 1000 0000 0.228 0.000 1000 0000 0.234 0.000 1000 0000 0.240 0.000 1000 0000 0.246 0.002 0111 1111 0.252 0.004 0111 1111 0.258 0.005 0111 1111 0.264 0.006 0111 1111 0.270 0.007 0111 1111 0.276 0.008 0111 1111 0.282 0.009 0111 1111 0.288 0.010 0111 1111 0.294 0.011 0111 1111 0.300 0.012 0111 1111 0.306 0.013 0111 1111 0.312 0.014 0111 1110 0.318 0.014 0111 1110 0.324 0.015 0111 1110 0.330 0.016 0111 1110 0.336 0.017 0111 1110 0.342 0.018 0111 1110 0.348 0.019 0111 1101 0.354 0.019 0111 1101 0.360 0.020 0111 1101

0.366 0.020 0111 1101 0.372 0.021 0111 1101 0.378 0.020 0111 1101 0.384 0.020 0111 1101 0.390 0.020 0111 1101 0.396 0.020 0111 1101 0.402 0.019 0111 1101 0.408 0.019 0111 1101 0.414 0.019 0111 1101 0.420 0.018 0111 1110 0.426 0.018 0111 1110 0.432 0.017 0111 1110 0.438 0.017 0111 1110 0.444 0.016 0111 1110 0.450 0.016 0111 1110 0.456 0.015 0111 1110 0.462 0.014 0111 1110 0.468 0.012 0111 1111 0.474 0.010 0111 1111 0.480 0.010 0111 1111 0.486 0.010 0111 1111 0.492 0.010 0111 1111 0.498 0.010 0111 1111 0.504 0.010 0111 1111 0.510 0.010 0111 1111 0.516 0.010 0111 1111 0.522 0.010 0111 1111 0.528 0.010 0111 1111 0.534 0.010 0111 1111 0.540 0.010 0111 1111 0.546 0.010 0111 1111 0.552 0.010 0111 1111 0.558 0.010 0111 1111 0.564 0.010 0111 1111 0.570 0.010 0111 1111 0.576 0.010 0111 1111 0.582 0.010 0111 1111 0.588 0.010 0111 1111 0.594 0.010 0111 1111 0.600 0.010 0111 1111 0.606 0.009 0111 1111 0.612 0.009 0111 1111 0.618 0.009 0111 1111 0.624 0.008 0111 1111 0.630 0.008 0111 1111

Page 107: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

106

0.636 0.008 0111 1111 0.642 0.007 0111 1111 0.648 0.006 0111 1111 0.654 0.006 0111 1111 0.660 0.006 0111 1111 0.666 0.006 0111 1111 0.672 0.005 0111 1111 0.678 0.005 0111 1111 0.684 0.004 0111 1111 0.690 0.004 0111 1111 0.696 0.004 0111 1111 0.702 0.004 0111 1111 0.708 0.003 0111 1111 0.714 0.002 1000 0000 0.720 0.002 1000 0000 0.726 0.002 1000 0000 0.732 0.001 1000 0000 0.738 0.000 1000 0000 0.744 0.000 1000 0000 0.750 0.000 1000 0000 0.756 0.001 1000 0000 0.762 0.001 1000 0000 0.768 0.003 1000 0000 0.774 0.004 0111 1111 0.780 0.005 0111 1111 0.786 0.007 0111 1111 0.792 0.007 0111 1111 0.798 0.008 0111 1111 0.804 0.008 0111 1111 0.810 0.009 0111 1111 0.816 0.010 0111 1111 0.822 0.010 0111 1111 0.828 0.010 0111 1111

0.834 0.010 0111 1111 0.840 0.010 0111 1111 0.846 0.009 0111 1111 0.852 0.009 0111 1111 0.858 0.008 0111 1111 0.864 0.007 0111 1111 0.870 0.006 0111 1111 0.876 0.005 0111 1111 0.882 0.004 0111 1111 0.888 0.003 0111 1111 0.894 0.002 1000 0000 0.900 0.000 1000 0000 0.906 0.002 1000 0000 0.912 0.003 1000 0000 0.918 0.004 1000 0000 0.924 0.005 0111 1111 0.930 0.005 0111 1111 0.936 0.005 0111 1111 0.942 0.005 0111 1111 0.948 0.005 0111 1111 0.954 0.004 1000 0000 0.960 0.003 1000 0000 0.966 0.002 1000 0000 0.972 0.000 1000 0000 0.978 -0.002 1000 0001 0.984 -0.002 1000 0001 0.990 -0.004 1000 0001 0.996 -0.006 1000 0001 1.002 -0.007 1000 0001 1.008 -0.008 1000 0001 1.014 -0.010 1000 0010 1.020 -0.010 1000 0010

AVF

-0.040

-0.020

0.000

0.020

0.040

0.060

0.080

0.000 0.200 0.400 0.600 0.800 1.000

Tiempo (s)

Volta

je (V

)

Page 108: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

107

Derivación AVL

Tiempo (s)

Voltajes (V)

Numeración binaria

0.000 -0.050 1000 0110 0.006 0.025 0111 1101 0.012 0.080 0111 0110 0.018 0.135 0110 1111 0.024 0.200 0110 0111 0.030 0.250 0110 0000 0.036 0.300 0101 1010 0.042 0.350 0101 0011 0.048 0.400 0100 1101 0.054 0.465 0100 0101 0.060 0.500 0100 0000 0.066 -0.300 1010 0111 0.072 -0.150 1001 0011 0.078 -0.080 1000 1011 0.084 -0.020 1000 0011 0.090 0.000 1000 0000 0.096 0.000 1000 0000 0.102 0.000 1000 0000 0.108 0.000 1000 0000 0.114 0.000 1000 0000 0.120 0.000 1000 0000 0.126 0.000 1000 0000 0.132 0.000 1000 0000 0.138 0.000 1000 0000 0.144 0.000 1000 0000 0.150 0.000 1000 0000 0.156 0.000 1000 0000 0.162 0.000 1000 0000 0.168 0.000 1000 0000 0.174 0.000 1000 0000 0.180 0.000 1000 0000 0.186 0.000 1000 0000 0.192 0.000 1000 0000 0.198 0.000 1000 0000 0.204 0.000 1000 0000 0.210 0.000 1000 0000 0.216 0.000 1000 0000 0.222 0.000 1000 0000 0.228 0.000 1000 0000 0.234 0.000 1000 0000 0.240 0.000 1000 0000

0.246 0.015 0111 1110 0.252 0.025 0111 1100 0.258 0.030 0111 1100 0.264 0.040 0111 1011 0.270 0.045 0111 1010 0.276 0.055 0111 1001 0.282 0.060 0111 1000 0.288 0.065 0111 1000 0.294 0.070 0111 0111 0.300 0.070 0111 0111 0.306 0.080 0111 0110 0.312 0.085 0111 0101 0.318 0.085 0111 0101 0.324 0.090 0111 0101 0.330 0.095 0111 0100 0.336 0.095 0111 0100 0.342 0.100 0111 0011 0.348 0.100 0111 0011 0.354 0.100 0111 0011 0.360 0.100 0111 0011 0.366 0.100 0111 0011 0.372 0.100 0111 0011 0.378 0.100 0111 0011 0.384 0.100 0111 0011 0.390 0.100 0111 0011 0.396 0.105 0111 0010 0.402 0.115 0111 0001 0.408 0.120 0111 0001 0.414 0.130 0110 1111 0.420 0.135 0110 1111 0.426 0.145 0110 1110 0.432 0.150 0110 1101 0.438 0.160 0110 1100 0.444 0.165 0110 1011 0.450 0.175 0110 1010 0.456 0.180 0110 1001 0.462 0.185 0110 1000 0.468 0.190 0110 1000 0.474 0.195 0110 0111 0.480 0.200 0110 0111 0.486 0.200 0110 0111 0.492 0.195 0110 0111 0.498 0.190 0110 1000

Page 109: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

108

0.504 0.185 0110 1000 0.510 0.180 0110 1001 0.516 0.175 0110 1010 0.522 0.165 0110 1011 0.528 0.155 0110 1100 0.534 0.145 0110 1110 0.540 0.135 0110 1111 0.546 0.125 0111 0000 0.552 0.120 0111 0001 0.558 0.115 0111 0001 0.564 0.105 0111 0010 0.570 0.100 0111 0011 0.576 0.100 0111 0011 0.582 0.100 0111 0011 0.588 0.100 0111 0011 0.594 0.100 0111 0011 0.600 0.100 0111 0011 0.606 0.100 0111 0011 0.612 0.095 0111 0100 0.618 0.090 0111 0100 0.624 0.090 0111 0100 0.630 0.090 0111 0100 0.636 0.085 0111 0101 0.642 0.080 0111 0101 0.648 0.080 0111 0101 0.654 0.075 0111 0110 0.660 0.070 0111 0111 0.666 0.070 0111 0111 0.672 0.065 0111 1000 0.678 0.060 0111 1000 0.684 0.055 0111 1001 0.690 0.050 0111 1001 0.696 0.040 0111 1011 0.702 0.035 0111 1011 0.708 0.025 0111 1101 0.714 0.015 0111 1110 0.720 0.000 1000 0000 0.726 0.000 1000 0000 0.732 0.000 1000 0000 0.738 0.000 1000 0000 0.744 0.000 1000 0000 0.750 0.000 1000 0000 0.756 0.000 1000 0000 0.762 0.000 1000 0000

0.768 0.000 1000 0000 0.774 0.000 1000 0000 0.780 0.000 1000 0000 0.786 0.000 1000 0000 0.792 0.000 1000 0000 0.798 0.000 1000 0000 0.804 0.000 1000 0000 0.810 0.000 1000 0000 0.816 0.000 1000 0000 0.822 0.000 1000 0000 0.828 0.000 1000 0000 0.834 0.000 1000 0000 0.840 0.000 1000 0000 0.846 0.000 1000 0000 0.852 0.000 1000 0000 0.858 0.000 1000 0000 0.864 0.000 1000 0000 0.870 0.000 1000 0000 0.876 0.025 0111 1101 0.882 0.035 0111 1100 0.888 0.045 0111 1010 0.894 0.060 0111 1000 0.900 0.065 0111 1000 0.906 0.075 0111 0110 0.912 0.085 0111 0101 0.918 0.090 0111 0100 0.924 0.095 0111 0100 0.930 0.100 0111 0011 0.936 0.095 0111 0100 0.942 0.090 0111 0100 0.948 0.080 0111 0110 0.954 0.070 0111 0111 0.960 0.060 0111 1000 0.966 0.050 0111 1001 0.972 0.035 0111 1011 0.978 0.020 0111 1101 0.984 0.010 0111 1111 0.990 0.000 1000 0000 0.996 -0.030 1000 0100 1.002 -0.050 1000 0110 1.008 -0.070 1000 1001 1.014 -0.090 1000 1100 1.020 -0.100 1000 1100

Page 110: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

109

Derivación AVR Tiempo

(s) Voltajes

(V) Numeración

binaria 0.000 0.000 1000 0000 0.006 0.000 1000 0000 0.012 0.000 1000 0000 0.018 0.000 1000 0000 0.024 0.000 1000 0000 0.030 0.000 1000 0000 0.036 0.000 1000 0000 0.042 0.000 1000 0000 0.048 0.000 1000 0000 0.054 0.000 1000 0000 0.060 0.000 1000 0000 0.066 -0.100 1000 1101 0.072 -0.160 1001 0101 0.078 -0.260 1010 0001 0.084 -0.360 1010 1110 0.090 -0.420 1011 0110 0.096 -0.500 1100 0000 0.102 -0.570 1100 1001 0.108 -0.660 1101 0101 0.114 -0.740 1101 1111 0.120 -0.800 1110 0111

0.126 0.100 0111 0011 0.132 0.080 0111 0110 0.138 0.070 0111 0111 0.144 0.060 0111 1000 0.150 0.050 0111 1001 0.156 0.040 0111 1011 0.162 0.030 0111 1100 0.168 0.030 0111 1100 0.174 0.020 0111 1101 0.180 0.000 1000 0000 0.186 0.000 1000 0000 0.192 0.000 1000 0000 0.198 0.000 1000 0000 0.204 0.000 1000 0000 0.210 0.000 1000 0000 0.216 0.000 1000 0000 0.222 0.000 1000 0000 0.228 0.000 1000 0000 0.234 0.000 1000 0000 0.240 0.000 1000 0000 0.246 0.000 1000 0000 0.252 0.000 1000 0000 0.258 0.000 1000 0000

AVL

-0.400

-0.300

-0.200

-0.100

0.000

0.100

0.200

0.300

0.400

0.500

0.600

-0.100 0.100 0.300 0.500 0.700 0.900 1.100

Tiempo (s)

Volta

je (V

)

Page 111: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

110

0.264 0.000 1000 0000 0.270 0.000 1000 0000 0.276 0.000 1000 0000 0.282 0.000 1000 0000 0.288 0.000 1000 0000 0.294 0.000 1000 0000 0.300 0.000 1000 0000 0.306 -0.020 1000 0011 0.312 -0.030 1000 0100 0.318 -0.040 1000 0101 0.324 -0.060 1000 1000 0.330 -0.070 1000 1001 0.336 -0.080 1000 1010 0.342 -0.090 1000 1100 0.348 -0.090 1000 1100 0.354 -0.100 1000 1101 0.360 -0.110 1000 1110 0.366 -0.120 1000 1111 0.372 -0.130 1001 0001 0.378 -0.140 1001 0010 0.384 -0.150 1001 0011 0.390 -0.160 1001 0101 0.396 -0.170 1001 0110 0.402 -0.180 1001 0111 0.408 -0.190 1001 1000 0.414 -0.200 1001 1010 0.420 -0.200 1001 1010 0.426 -0.210 1001 1011 0.432 -0.220 1001 1100 0.438 -0.230 1001 1110 0.444 -0.230 1001 1110 0.450 -0.240 1001 1111 0.456 -0.240 1001 1111 0.462 -0.250 1010 0000 0.468 -0.250 1010 0000 0.474 -0.260 1010 0010 0.480 -0.260 1010 0010 0.486 -0.270 1010 0011 0.492 -0.280 1010 0100 0.498 -0.280 1010 0100 0.504 -0.290 1010 0101 0.510 -0.290 1010 0101 0.516 -0.290 1010 0101 0.522 -0.290 1010 0101 0.528 -0.290 1010 0101

0.534 -0.290 1010 0101 0.540 -0.290 1010 0101 0.546 -0.280 1010 0100 0.552 -0.280 1010 0100 0.558 -0.270 1010 0011 0.564 -0.260 1010 0010 0.570 -0.250 1010 0000 0.576 -0.240 1001 1111 0.582 -0.220 1001 1100 0.588 -0.200 1001 1010 0.594 -0.200 1001 1010 0.600 -0.170 1001 0110 0.606 -0.160 1001 0101 0.612 -0.140 1001 0010 0.618 -0.120 1000 1111 0.624 -0.100 1000 1101 0.630 -0.100 1000 1101 0.636 -0.100 1000 1101 0.642 -0.100 1000 1101 0.648 -0.100 1000 1101 0.654 -0.100 1000 1101 0.660 -0.100 1000 1101 0.666 -0.100 1000 1101 0.672 -0.100 1000 1101 0.678 -0.100 1000 1101 0.684 -0.100 1000 1101 0.690 -0.100 1000 1101 0.696 -0.100 1000 1101 0.702 -0.100 1000 1101 0.708 -0.100 1000 1101 0.714 -0.100 1000 1101 0.720 -0.100 1000 1101 0.726 -0.100 1000 1101 0.732 -0.100 1000 1101 0.738 -0.100 1000 1101 0.744 -0.100 1000 1101 0.750 -0.100 1000 1101 0.756 -0.100 1000 1101 0.762 -0.100 1000 1101 0.768 -0.100 1000 1101 0.774 -0.100 1000 1101 0.780 -0.100 1000 1101 0.786 -0.060 1000 1000 0.792 -0.040 1000 0101 0.798 -0.020 1000 0010

Page 112: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

111

0.804 -0.010 1000 0001 0.810 0.000 1000 0000 0.816 0.000 1000 0000 0.822 0.000 1000 0000 0.828 0.000 1000 0000 0.834 0.000 1000 0000 0.840 0.000 1000 0000 0.846 0.000 1000 0000 0.852 0.000 1000 0000 0.858 0.000 1000 0000 0.864 0.000 1000 0000 0.870 0.000 1000 0000 0.876 -0.020 1000 0011 0.882 -0.020 1000 0011 0.888 -0.040 1000 0101 0.894 -0.060 1000 1000 0.900 -0.060 1000 1000 0.906 -0.080 1000 1010

0.912 -0.100 1000 1101 0.918 -0.110 1000 1110 0.924 -0.120 1001 0000 0.930 -0.140 1001 0010 0.936 -0.120 1000 1111 0.942 -0.100 1000 1101 0.948 -0.090 1000 1011 0.954 -0.070 1000 1001 0.960 -0.050 1000 0110 0.966 -0.040 1000 0101 0.972 -0.030 1000 0100 0.978 -0.010 1000 0001 0.984 -0.010 1000 0001 0.990 0.000 1000 0000

Derivación V1Tiempo

(s) Voltajes

(V) Numeración

binaria 0.000 0.200 0110 0111 0.006 0.260 0101 1111 0.012 0.300 0101 1010 0.018 0.340 0101 0100

0.024 0.380 0100 1111 0.030 0.420 0100 1010 0.036 0.460 0100 0101 0.042 0.500 0100 0000 0.048 0.540 0011 1011 0.054 0.580 0011 0110

AVR

-1.000

-0.800

-0.600

-0.400

-0.200

0.000

0.200

0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000

Tiempo (s)

Volta

je (V

)

Page 113: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

112

0.060 0.600 0011 0011 0.066 0.400 0100 1101 0.072 0.200 0110 0111 0.078 0.000 1000 0000 0.084 -0.120 1001 0000 0.090 -0.260 1010 0001 0.096 -0.400 1011 0011 0.102 -0.600 1100 1101 0.108 -0.740 1101 1111 0.114 -0.940 1111 1000 0.120 -1.000 1111 1111 0.126 -0.800 1110 0111 0.132 -0.680 1101 0111 0.138 -0.580 1100 1010 0.144 -0.440 1011 1000 0.150 -0.340 1010 1011 0.156 -0.220 1001 1100 0.162 -0.120 1000 1111 0.168 0.000 1000 0000 0.174 0.140 0110 1110 0.180 0.200 0110 0100 0.186 0.200 0110 0100 0.192 0.200 0110 0100 0.198 0.200 0110 0100 0.204 0.200 0110 0100 0.210 0.200 0110 0100 0.216 0.200 0110 0100 0.222 0.200 0110 0100 0.228 0.200 0110 0100 0.234 0.200 0110 0100 0.240 0.200 0110 0100 0.246 0.200 0110 0100 0.252 0.200 0110 0100 0.258 0.200 0110 0100 0.264 0.200 0110 0100 0.270 0.200 0110 0100 0.276 0.200 0110 0100 0.282 0.200 0110 0100 0.288 0.200 0110 0100 0.294 0.200 0110 0100 0.300 0.200 0110 0100 0.306 0.200 0110 0100 0.312 0.200 0110 0100 0.318 0.200 0110 0100 0.324 0.200 0110 0100

0.330 0.200 0110 0100 0.336 0.200 0110 0100 0.342 0.250 0110 0000 0.348 0.270 0101 1101 0.354 0.290 0101 1011 0.360 0.300 0101 1010 0.366 0.310 0101 1000 0.372 0.330 0101 0110 0.378 0.340 0101 0101 0.384 0.360 0101 0010 0.390 0.370 0101 0000 0.396 0.380 0100 1111 0.402 0.380 0100 1111 0.408 0.390 0100 1110 0.414 0.400 0100 1101 0.420 0.400 0100 1101 0.426 0.400 0100 1101 0.432 0.390 0100 1110 0.438 0.370 0101 0001 0.444 0.360 0101 0010 0.450 0.350 0101 0011 0.456 0.350 0101 0011 0.462 0.340 0101 0100 0.468 0.320 0101 0111 0.474 0.310 0101 1000 0.480 0.300 0101 1010 0.486 0.280 0101 1100 0.492 0.260 0101 1110 0.498 0.240 0110 0001 0.504 0.220 0110 0100 0.510 0.200 0110 0111 0.516 0.180 0110 1001 0.522 0.160 0110 1011 0.528 0.150 0110 1101 0.534 0.140 0110 1110 0.540 0.140 0110 1110 0.546 0.140 0110 1110 0.552 0.140 0110 1110 0.558 0.140 0110 1110 0.564 0.140 0110 1110 0.570 0.150 0110 1101 0.576 0.160 0110 1011 0.582 0.160 0110 1011 0.588 0.180 0110 1001 0.594 0.190 0110 1000

Page 114: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

113

0.600 0.200 0110 0111 0.606 0.210 0110 0101 0.612 0.230 0110 0011 0.618 0.230 0110 0011 0.624 0.260 0101 1111 0.630 0.270 0101 1101 0.636 0.280 0101 1100 0.642 0.300 0101 1010 0.648 0.310 0101 1000 0.654 0.330 0101 0110 0.660 0.340 0101 0100 0.666 0.350 0101 0011 0.672 0.360 0101 0010 0.678 0.370 0101 0001 0.684 0.370 0101 0001 0.690 0.360 0101 0010 0.696 0.360 0101 0010 0.702 0.340 0101 0010 0.708 0.320 0101 0111 0.714 0.300 0101 1010 0.720 0.300 0101 1010 0.726 0.280 0101 1100 0.732 0.280 0101 1100 0.738 0.270 0101 1101 0.744 0.260 0101 1111 0.750 0.250 0110 0000 0.756 0.240 0110 0001 0.762 0.230 0110 0011 0.768 0.220 0110 0100 0.774 0.200 0110 0111 0.780 0.190 0110 1000 0.786 0.180 0110 1001 0.792 0.160 0110 1011 0.798 0.150 0110 1101 0.804 0.140 0110 1110 0.810 0.140 0110 1110

0.816 0.130 0110 1111 0.822 0.120 0111 0000 0.828 0.120 0111 0000 0.834 0.120 0111 0000 0.840 0.120 0111 0000 0.846 0.130 0110 1111 0.852 0.140 0110 1110 0.858 0.160 0110 1100 0.864 0.180 0110 1001 0.870 0.200 0110 0111 0.876 0.220 0110 0100 0.882 0.250 0110 0000 0.888 0.260 0101 1111 0.894 0.280 0101 1100 0.900 0.290 0101 1011 0.906 0.300 0101 1010 0.912 0.300 0101 1010 0.918 0.310 0101 1000 0.924 0.310 0101 1000 0.930 0.320 0101 0111 0.936 0.320 0101 0111 0.942 0.320 0101 0111 0.948 0.320 0101 0111 0.954 0.310 0101 1000 0.960 0.300 0101 1010 0.966 0.290 0101 1011 0.972 0.280 0101 1100 0.978 0.280 0101 1100 0.984 0.270 0101 1101 0.990 0.260 0101 1111 0.996 0.250 0110 0000 1.002 0.240 0110 0001 1.008 0.220 0110 0100 1.014 0.210 0110 0101 1.020 0.200 0110 0111

V 1

-1 .2 00

-1 .0 00

-0 .8 00

-0 .6 00

-0 .4 00

-0 .2 00

0 .0 00

0 .2 00

0 .4 00

0 .6 00

0 .8 00

0 .00 0 0 .20 0 0 .40 0 0 .60 0 0 .8 00 1 .0 00

T iem po (s )

Volta

je (V

)

Page 115: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

114

Derivación V2

Tiempo (s)

Voltajes (V)

Numeración binaria

0.000 -0.600 1100 1101 0.006 -0.500 1100 0000 0.012 -0.440 1011 1000 0.018 -0.340 1010 1100 0.024 -0.310 1010 1000 0.030 -0.260 1010 0001 0.036 -0.200 1001 1010 0.042 -0.140 1001 0010 0.048 -0.080 1000 1010 0.054 -0.020 1000 0011 0.060 0.000 1000 0000 0.066 0.040 0111 1011 0.072 0.060 0111 1000 0.078 0.080 0111 0110 0.084 0.100 0111 0011 0.090 0.110 0111 0010 0.096 0.130 0110 1111 0.102 0.140 0110 1110 0.108 0.140 0110 1110 0.114 0.160 0110 1011 0.120 0.160 0110 1011 0.126 0.170 0110 1010 0.132 0.180 0110 1001 0.138 0.180 0110 1001 0.144 0.190 0110 1000 0.150 0.190 0110 1000 0.156 0.200 0110 0111 0.162 0.200 0110 0111 0.168 0.200 0110 0111 0.174 0.200 0110 0111 0.180 0.200 0110 0111 0.186 0.200 0110 0111 0.192 0.200 0110 0111 0.198 0.200 0110 0111 0.204 0.200 0110 0111 0.210 0.200 0110 0111 0.216 0.200 0110 0111 0.222 0.200 0110 0111 0.228 0.200 0110 0111 0.234 0.200 0110 0111 0.240 0.200 0110 0111

0.246 0.200 0110 0111 0.252 0.200 0110 0111 0.258 0.200 0110 0111 0.264 0.200 0110 0111 0.270 0.200 0110 0111 0.276 0.200 0110 0111 0.282 0.200 0110 0111 0.288 0.200 0110 0111 0.294 0.200 0110 0111 0.300 0.200 0110 0111 0.306 0.220 0110 0111 0.312 0.240 0110 0001 0.318 0.250 0110 0000 0.324 0.270 0101 1110 0.330 0.280 0101 1100 0.336 0.290 0101 1011 0.342 0.300 0101 1010 0.348 0.300 0101 1010 0.354 0.300 0101 1010 0.360 0.300 0101 1010 0.366 0.300 0101 1010 0.372 0.300 0101 1010 0.378 0.300 0101 1010 0.384 0.300 0101 1010 0.390 0.300 0101 1010 0.396 0.300 0101 1010 0.402 0.290 0101 1011 0.408 0.280 0101 1100 0.414 0.280 0101 1100 0.420 0.270 0101 1110 0.426 0.260 0101 1111 0.432 0.240 0110 0001 0.438 0.230 0110 0010 0.444 0.220 0110 0100 0.450 0.200 0110 0111 0.456 0.180 0110 1001 0.462 0.160 0110 1011 0.468 0.140 0110 1110 0.474 0.120 0111 0001 0.480 0.100 0111 0011 0.486 0.100 0111 0011 0.492 0.100 0111 0011 0.498 0.100 0111 0011

Page 116: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

115

0.504 0.100 0111 0011 0.510 0.100 0111 0011 0.516 0.100 0111 0011 0.522 0.100 0111 0011 0.528 0.100 0111 0011 0.534 0.100 0111 0011 0.540 0.100 0111 0011 0.546 0.100 0111 0011 0.552 0.100 0111 0011 0.558 0.100 0111 0011 0.564 0.100 0111 0011 0.570 0.100 0111 0011 0.576 0.100 0111 0011 0.582 0.100 0111 0011 0.588 0.100 0111 0011 0.594 0.100 0111 0011 0.600 0.100 0111 0011 0.606 0.100 0111 0011 0.612 0.100 0111 0011 0.618 0.100 0111 0011 0.624 0.100 0111 0011 0.630 0.100 0111 0011 0.636 0.100 0111 0011 0.642 0.100 0111 0011 0.648 0.100 0111 0011 0.654 0.100 0111 0011 0.660 0.100 0111 0011 0.666 0.100 0111 0011 0.672 0.100 0111 0011 0.678 0.100 0111 0011 0.684 0.100 0111 0011 0.690 0.100 0111 0011 0.696 0.100 0111 0011 0.702 0.100 0111 0011 0.708 0.100 0111 0011 0.714 0.100 0111 0011 0.720 0.100 0111 0011 0.726 0.100 0111 0011 0.732 0.100 0111 0011 0.738 0.100 0111 0011 0.744 0.100 0111 0011 0.750 0.100 0111 0011 0.756 0.100 0111 0011 0.762 0.100 0111 0011 0.768 0.100 0111 0011

0.774 0.100 0111 0011 0.780 0.110 0111 0010 0.786 0.110 0111 0010 0.792 0.120 0111 0001 0.798 0.130 0110 1111 0.804 0.140 0110 1110 0.810 0.140 0110 1110 0.816 0.150 0110 1101 0.822 0.160 0110 1011 0.828 0.160 0110 1011 0.834 0.170 0110 1010 0.840 0.180 0110 1001 0.846 0.180 0110 1001 0.852 0.190 0110 1000 0.858 0.190 0110 1000 0.864 0.190 0110 1000 0.870 0.190 0110 1000 0.876 0.190 0110 1000 0.882 0.190 0110 1000 0.888 0.190 0110 1000 0.894 0.190 0110 1000 0.900 0.190 0110 1000 0.906 0.190 0110 1000 0.912 0.190 0110 1000 0.918 0.190 0110 1000 0.924 0.180 0110 1001 0.930 0.180 0110 1001 0.936 0.180 0110 1001 0.942 0.180 0110 1001 0.948 0.180 0110 1001 0.954 0.170 0110 1010 0.960 0.170 0110 1010 0.966 0.160 0110 1011 0.972 0.160 0110 1011 0.978 0.160 0110 1011 0.984 0.150 0110 1101 0.990 0.140 0110 1110 0.996 0.130 0110 1111 1.002 0.120 0111 0001 1.008 0.110 0111 0010 1.014 0.100 0111 0011 1.020 0.100 0111 0011 1.026 0.180 0110 1001 1.032 0.250 0110 0000 1.038 0.320 0101 0111

Page 117: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

116

1.044 0.370 0101 0001 1.050 0.440 0100 0111 1.056 0.490 0100 0001 1.062 0.550 0011 1001

1.068 0.600 0011 0011 1.074 0.660 0010 1011 1.080 0.700 0010 0111 1.086 -0.600 1100 1101

Derivación V3 Tiempo

(s) Voltajes

(V) Numeración

binaria 0.000 0.000 1000 0000 0.006 0.080 0111 0110 0.012 0.130 0110 1111 0.018 0.180 0110 1001 0.024 0.220 0110 0100 0.030 0.260 0101 1111 0.036 0.320 0101 0111 0.042 0.370 0101 0001 0.048 0.420 0100 1010 0.054 0.470 0100 0100 0.060 0.510 0011 1111 0.066 0.560 0011 1000 0.072 0.620 0011 0001

0.078 0.660 0010 1011 0.084 0.720 0010 0100 0.090 0.760 0001 1111 0.096 0.820 0001 0111 0.102 0.860 0001 0010 0.108 0.900 0000 1101 0.114 0.960 0000 0101 0.120 1.000 0000 0000 0.126 -1.000 1111 1111 0.132 -0.860 1110 1110 0.138 -0.810 1110 1000 0.144 -0.750 1110 0000 0.150 -0.700 1101 1010 0.156 -0.640 1101 0010 0.162 -0.580 1100 1010

V2

-0.800

-0.600

-0.400

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

0.000 0.200 0.400 0.600 0.800 1.000

Tiempo (s)

Volta

je (V

)

Page 118: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

117

0.168 -0.540 1100 0101 0.174 -0.480 1011 1110 0.180 -0.430 1011 0111 0.186 -0.400 1011 0011 0.192 -0.330 1010 1010 0.198 -0.270 1010 0011 0.204 -0.210 1001 1011 0.210 -0.160 1001 0101 0.216 -0.110 1000 1110 0.222 -0.060 1000 1000 0.228 0.000 1000 0000 0.234 0.050 0111 1001 0.240 0.090 0111 0101 0.246 0.110 0111 0010 0.252 0.130 0110 1111 0.258 0.140 0110 1110 0.264 0.150 0110 1101 0.270 0.160 0110 1100 0.276 0.170 0110 1010 0.282 0.180 0110 1001 0.288 0.180 0110 1001 0.294 0.190 0110 1000 0.300 0.200 0110 0111 0.306 0.200 0110 0111 0.312 0.200 0110 0111 0.318 0.200 0110 0111 0.324 0.200 0110 0111 0.330 0.200 0110 0111 0.336 0.200 0110 0111 0.342 0.200 0110 0111 0.348 0.200 0110 0111 0.354 0.200 0110 0111 0.360 0.200 0110 0111 0.366 0.210 0110 0101 0.372 0.220 0110 0100 0.378 0.230 0110 0010 0.384 0.240 0110 0001 0.390 0.250 0110 0000 0.396 0.270 0101 1101 0.402 0.280 0101 1100 0.408 0.300 0101 1010 0.414 0.320 0101 0111 0.420 0.340 0101 0100 0.426 0.370 0101 0001 0.432 0.400 0100 1101

0.438 0.430 0100 1001 0.444 0.450 0100 0110 0.450 0.470 0100 0100 0.456 0.480 0100 0010 0.462 0.490 0100 0001 0.468 0.490 0100 0001 0.474 0.490 0100 0001 0.480 0.490 0100 0001 0.486 0.480 0100 0011 0.492 0.460 0100 0101 0.498 0.440 0100 1000 0.504 0.430 0100 1001 0.510 0.400 0100 1101 0.516 0.370 0100 0100 0.522 0.330 0101 0101 0.528 0.300 0101 1010 0.534 0.260 0101 1111 0.540 0.240 0110 0001 0.546 0.230 0110 0011 0.552 0.220 0110 0100 0.558 0.200 0110 0111 0.564 0.190 0110 1000 0.570 0.180 0110 1001 0.576 0.180 0110 1001 0.582 0.170 0110 1010 0.588 0.160 0110 1100 0.594 0.150 0110 1101 0.600 0.140 0110 1110 0.606 0.140 0110 1110 0.612 0.130 0110 1111 0.618 0.120 0111 0001 0.624 0.120 0111 0001 0.630 0.110 0111 0010 0.636 0.100 0111 0011 0.642 0.100 0111 0011 0.648 0.090 0111 0101 0.654 0.090 0111 0101 0.660 0.090 0111 0101 0.666 0.080 0111 0110 0.672 0.080 0111 0110 0.678 0.070 0111 0111 0.684 0.060 0111 1000 0.690 0.050 0111 1001 0.696 0.040 0111 1011 0.702 0.020 0111 1101

Page 119: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

118

0.708 0.030 0111 1100 0.714 0.020 0111 1101 0.720 0.040 0111 1011 0.726 0.040 0111 1011 0.732 0.040 0111 1011 0.738 0.050 0111 1001 0.744 0.060 0111 1000 0.750 0.070 0111 0111 0.756 0.080 0111 0110 0.762 0.080 0111 0110 0.768 0.090 0111 0101 0.774 0.100 0111 0011 0.780 0.100 0111 0011 0.786 0.100 0111 0011 0.792 0.090 0111 0100 0.798 0.090 0111 0100

0.804 0.080 0111 0110 0.810 0.080 0111 0110 0.816 0.080 0111 0110 0.822 0.080 0111 0110 0.828 0.060 0111 1000 0.834 0.060 0111 1000 0.840 0.050 0111 1001 0.846 0.040 0111 1011 0.852 0.040 0111 1011 0.858 0.040 0111 1011 0.864 0.030 0111 1100 0.870 0.020 0111 1101 0.876 0.020 0111 1101 0.882 0.010 0111 1111 0.888 0.000 1000 0000

Derivación V4

Tiempo (s)

Voltajes (V)

Numeración binaria

0.000 -0.140 1001 0010 0.006 -0.120 1000 1111 0.012 -0.110 1000 1110 0.018 -0.100 1000 1101 0.024 -0.100 1000 1101 0.030 -0.100 1000 1101 0.036 -0.100 1000 1101 0.042 -0.100 1000 1101

0.048 -0.100 1000 1101 0.054 -0.100 1000 1101 0.060 -0.100 1000 1101 0.066 -0.100 1000 1101 0.072 -0.100 1000 1101 0.078 -0.100 1000 1101 0.084 -0.100 1000 1101 0.090 -0.100 1000 1101 0.096 -0.100 1000 1101 0.102 -0.100 1000 1101

V3

-1.500

-1.000

-0.500

0.000

0.500

1.000

1.500

0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000

Tiempo (s)

Volta

je (V

)

Page 120: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

119

0.108 -0.100 1000 1101 0.114 -0.100 1000 1101 0.120 -0.100 1000 1101 0.126 -0.100 1000 1101 0.132 -0.100 1000 1101 0.138 -0.100 1000 1101 0.144 -0.100 1000 1101 0.150 -0.100 1000 1101 0.156 -0.100 1000 1101 0.162 -0.100 1000 1101 0.168 -0.100 1000 1101 0.174 -0.100 1000 1101 0.180 -0.100 1000 1101 0.186 -0.090 1000 1011 0.192 -0.080 1000 1010 0.198 -0.070 1000 1001 0.204 -0.070 1000 1001 0.210 -0.050 1000 0110 0.216 -0.040 1000 0101 0.222 -0.020 1000 0011 0.228 0.000 1000 0000 0.234 0.040 0111 1011 0.240 0.060 0111 1000 0.246 0.090 0111 0100 0.252 0.120 0111 0001 0.258 0.140 0110 1110 0.264 0.150 0110 1101 0.270 0.160 0110 1011 0.276 0.180 0110 1001 0.282 0.190 0110 1000 0.288 0.190 0110 1000 0.294 0.200 0110 0111 0.300 0.200 0110 0111 0.306 0.200 0110 0111 0.312 0.200 0110 0111 0.318 0.200 0110 0111 0.324 0.200 0110 0111 0.330 0.190 0110 1000 0.336 0.180 0110 1001 0.342 0.170 0110 1010 0.348 0.160 0110 1011 0.354 0.150 0110 1101 0.360 0.140 0110 1110 0.366 0.120 0111 0000 0.372 0.100 0111 0011

0.378 0.070 0111 0111 0.384 0.050 0111 1001 0.390 0.030 0111 1100 0.396 0.000 1000 0000 0.402 -0.010 1000 0001 0.408 -0.040 1000 0101 0.414 -0.070 1000 1001 0.420 -0.100 1000 1101 0.426 -0.110 1000 1110 0.432 -0.120 1001 0000 0.438 -0.130 1001 0001 0.444 -0.130 1001 0001 0.450 -0.140 1001 0010 0.456 -0.140 1001 0010 0.462 -0.140 1001 0010 0.468 -0.140 1001 0010 0.474 -0.140 1001 0010 0.480 -0.140 1001 0010 0.486 -0.140 1001 0010 0.492 -0.140 1001 0010 0.498 -0.140 1001 0010 0.504 -0.140 1001 0010 0.510 -0.140 1001 0010 0.516 -0.140 1001 0010 0.522 -0.140 1001 0010 0.528 -0.140 1001 0010 0.534 -0.140 1001 0010 0.540 -0.140 1001 0010 0.546 -0.140 1001 0010 0.552 -0.140 1001 0010 0.558 -0.140 1001 0010 0.564 -0.140 1001 0010 0.570 -0.140 1001 0010 0.576 -0.140 1001 0010 0.582 -0.140 1001 0010 0.588 -0.140 1001 0010 0.594 -0.140 1001 0010 0.600 -0.140 1001 0010 0.606 -0.140 1001 0010 0.612 -0.140 1001 0010 0.618 -0.140 1001 0010 0.624 -0.140 1001 0010 0.630 -0.140 1001 0010 0.636 -0.140 1001 0010 0.642 -0.140 1001 0010

Page 121: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

120

0.648 -0.140 1001 0010 0.654 -0.140 1001 0010 0.660 -0.140 1001 0010 0.666 -0.140 1001 0010 0.672 -0.140 1001 0010 0.678 -0.140 1001 0010 0.684 -0.140 1001 0010 0.690 -0.140 1001 0010 0.696 -0.120 1000 1111 0.702 -0.110 1000 1110 0.708 -0.090 1000 1011 0.714 -0.080 1000 1010 0.720 -0.070 1000 1001 0.726 -0.060 1000 1000 0.732 -0.050 1000 0110 0.738 -0.050 1000 0110 0.744 -0.050 1000 0110 0.750 -0.050 1000 0110 0.756 -0.050 1000 0110 0.762 -0.050 1000 0110 0.768 -0.060 1000 1000 0.774 -0.060 1000 1000 0.780 -0.060 1000 1000 0.786 -0.060 1000 1000 0.792 -0.070 1000 1001 0.798 -0.080 1000 1010 0.804 -0.080 1000 1010 0.810 -0.100 1000 1101 0.816 -0.110 1000 1110 0.822 -0.120 1001 0000

0.828 -0.130 1001 0001 0.834 -0.140 1001 0010 0.840 -0.100 1000 1101 0.846 -0.010 1000 0010 0.852 0.050 0111 1001 0.858 0.130 0110 1111 0.864 0.200 0110 0111 0.870 0.280 0101 1100 0.876 0.350 0101 0011 0.882 0.430 0100 1001 0.888 0.490 0100 0001 0.894 0.570 0011 0111 0.900 0.650 0010 1101 0.906 0.740 0010 0001 0.912 0.800 0001 1010 0.918 0.880 0000 1111 0.924 0.970 0000 0100 0.930 1.000 0000 0000 0.936 -0.500 1100 0000 0.942 -0.420 1011 0110 0.948 -0.380 1011 0000 0.954 -0.350 1010 1101 0.960 -0.310 1010 1000 0.966 -0.280 1010 0100 0.972 -0.240 1001 1111 0.978 -0.200 1001 1010 0.984 -0.160 1001 0101 0.990 -0.140 1001 0010

Page 122: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

121

Derivación V5

Tiempo (s)

Voltajes (V)

Numeración binaria

0.000 -0.200 1001 1010 0.006 -0.140 1001 0010 0.012 0.380 0100 1111 0.018 0.600 0011 0011 0.024 1.000 0000 0000 0.030 0.800 0001 1010 0.036 0.540 0011 1011 0.042 0.320 0101 0111 0.048 0.000 1000 0000 0.054 -0.180 1001 0111 0.060 -0.300 1010 0111 0.066 -0.260 1010 0001 0.072 -0.240 1001 1111 0.078 -0.220 1001 1100 0.084 -0.220 1001 1100 0.090 -0.190 1001 1000 0.096 -0.170 1001 0110 0.102 -0.160 1001 0100 0.108 -0.160 1001 0100 0.114 -0.150 1001 0011 0.120 -0.140 1001 0010 0.126 -0.130 1001 0001 0.132 -0.130 1001 0001 0.138 -0.120 1000 1111 0.144 -0.120 1000 1111

0.150 -0.120 1000 1111 0.156 -0.120 1000 1111 0.162 -0.120 1000 1111 0.168 -0.120 1000 1111 0.174 -0.120 1000 1111 0.180 -0.120 1000 1111 0.186 -0.120 1000 1111 0.192 -0.110 1000 1110 0.198 -0.110 1000 1110 0.204 -0.110 1000 1110 0.210 -0.100 1000 1101 0.216 -0.100 1000 1101 0.222 -0.100 1000 1101 0.228 -0.100 1000 1101 0.234 -0.100 1000 1101 0.240 -0.100 1000 1101 0.246 -0.100 1000 1101 0.252 -0.100 1000 1101 0.258 -0.100 1000 1101 0.264 -0.100 1000 1101 0.270 -0.100 1000 1101 0.276 -0.100 1000 1101 0.282 -0.100 1000 1101 0.288 -0.100 1000 1101 0.294 -0.100 1000 1101 0.300 -0.100 1000 1101 0.306 -0.100 1000 1101

V4

-0.800

-0.600

-0.400

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

1.200

0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000

Tiempo (ms)

Volta

je (V

)

Page 123: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

122

0.312 -0.100 1000 1101 0.318 -0.100 1000 1101 0.324 -0.090 1000 1100 0.330 -0.090 1000 1100 0.336 -0.090 1000 1100 0.342 -0.080 1000 1010 0.348 -0.070 1000 1001 0.354 -0.060 1000 1000 0.360 -0.050 1000 0110 0.366 -0.030 1000 0100 0.372 -0.020 1000 0010 0.378 0.000 1000 0000 0.384 0.020 0111 1110 0.390 0.040 0111 1011 0.396 0.050 0111 1001 0.402 0.060 0111 1000 0.408 0.070 0111 0111 0.414 0.090 0111 0101 0.420 0.100 0111 0011 0.426 0.100 0111 0011 0.432 0.100 0111 0011 0.438 0.100 0111 0011 0.444 0.100 0111 0011 0.450 0.100 0111 0011 0.456 0.100 0111 0011 0.462 0.100 0111 0011 0.468 0.100 0111 0011 0.474 0.100 0111 0011 0.480 0.090 0111 0101 0.486 0.080 0111 0110 0.492 0.050 0111 1001 0.498 0.040 0111 1011 0.504 0.030 0111 1100 0.510 0.020 0111 1101 0.516 0.000 1000 0000 0.522 -0.020 1000 0010 0.528 -0.030 1000 0100 0.534 -0.040 1000 0101 0.540 -0.050 1000 0110 0.546 -0.060 1000 1000 0.552 -0.070 1000 1001 0.558 -0.080 1000 1010 0.564 -0.080 1000 1010 0.570 -0.080 1000 1010 0.576 -0.090 1000 1011

0.582 -0.100 1000 1101 0.588 -0.100 1000 1101 0.594 -0.100 1000 1101 0.600 -0.100 1000 1101 0.606 -0.100 1000 1101 0.612 -0.100 1000 1101 0.618 -0.100 1000 1101 0.624 -0.100 1000 1101 0.630 -0.100 1000 1101 0.636 -0.100 1000 1101 0.642 -0.100 1000 1101 0.648 -0.100 1000 1101 0.654 -0.100 1000 1101 0.660 -0.100 1000 1101 0.666 -0.100 1000 1101 0.672 -0.100 1000 1101 0.678 -0.100 1000 1101 0.684 -0.100 1000 1101 0.690 -0.100 1000 1101 0.696 -0.110 1000 1110 0.702 -0.120 1000 1111 0.708 -0.130 1001 0001 0.714 -0.140 1001 0010 0.720 -0.150 1001 0011 0.726 -0.160 1001 0100 0.732 -0.160 1001 0100 0.738 -0.160 1001 0100 0.744 -0.170 1001 0110 0.750 -0.170 1001 0110 0.756 -0.180 1001 0111 0.762 -0.180 1001 0111 0.768 -0.180 1001 0111 0.774 -0.180 1001 0111 0.780 -0.180 1001 0111 0.786 -0.190 1001 1000 0.792 -0.200 1001 1010 0.798 -0.200 1001 1010 0.804 -0.200 1001 1010 0.810 -0.200 1001 1010 0.816 -0.200 1001 1010 0.822 -0.190 1001 1000 0.828 -0.190 1001 1000 0.834 -0.180 1001 0111 0.840 -0.180 1001 0111 0.846 -0.170 1001 0110

Page 124: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

123

0.852 -0.160 1001 0100 0.858 -0.160 1001 0100 0.864 -0.160 1001 0100 0.870 -0.150 1001 0011 0.876 -0.140 1001 0010 0.882 -0.140 1001 0010 0.888 -0.130 1001 0001 0.894 -0.130 1001 0001 0.900 -0.130 1001 0001 0.906 -0.130 1001 0001 0.912 -0.120 1000 1111 0.918 -0.120 1000 1111 0.924 -0.110 1000 1110 0.930 -0.100 1000 1101 0.936 -0.100 1000 1101

0.942 -0.110 1000 1110 0.948 -0.120 1000 1111 0.954 -0.130 1001 0001 0.960 -0.130 1001 0001 0.966 -0.120 1000 1111 0.972 -0.110 1000 1110 0.978 -0.100 1000 1101 0.984 -0.100 1000 1101 0.990 -0.100 1000 1101 0.996 -0.090 1000 1100 1.002 -0.090 1000 1100 1.008 -0.090 1000 1100 1.014 -0.090 1000 1100

Derivación V6

Tiempo (s)

Voltajes (V)

Numeración binaria

0.000 0.000 1000 0000 0.006 0.140 0110 1110 0.012 0.220 0110 0100 0.018 0.320 0101 0111 0.024 0.440 0100 1000 0.030 0.500 0100 0000 0.036 0.580 0011 0110 0.042 0.660 0010 1011 0.048 0.760 0001 1111

0.054 0.840 0001 0100 0.060 0.900 0000 1101 0.066 0.760 0001 1110 0.072 0.700 0010 0111 0.078 0.600 0011 0011 0.084 0.520 0011 1101 0.090 0.440 0100 1000 0.096 0.340 0101 0100 0.102 0.280 0101 1100 0.108 0.200 0110 0111 0.114 0.100 0111 0011

V5

-0.400

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

1.200

0.000 0.200 0.400 0.600 0.800 1.000

Tiempo (ms)

Volta

je (V

)

Page 125: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

124

0.120 0.000 1000 0000 0.126 0.020 0111 1101 0.132 0.030 0111 1100 0.138 0.040 0111 1011 0.144 0.050 0111 1001 0.150 0.060 0111 1000 0.156 0.070 0111 0111 0.162 0.080 0111 0110 0.168 0.080 0111 0110 0.174 0.090 0111 0101 0.180 0.100 0111 0011 0.186 0.100 0111 0011 0.192 0.102 0111 0011 0.198 0.106 0111 0010 0.204 0.108 0111 0010 0.210 0.110 0111 0010 0.216 0.108 0111 0010 0.222 0.106 0111 0010 0.228 0.102 0111 0011 0.234 0.100 0111 0011 0.240 0.080 0111 0110 0.246 0.080 0111 0110 0.252 0.070 0111 0111 0.258 0.070 0111 0111 0.264 0.060 0111 1000 0.270 0.050 0111 1001 0.276 0.040 0111 1011 0.282 0.030 0111 1100 0.288 0.020 0111 1101 0.294 0.010 0111 1111 0.300 0.000 1000 0000 0.306 0.020 0111 1101 0.312 0.040 0111 1011 0.318 0.060 0111 1000 0.324 0.070 0111 0111 0.330 0.080 0111 0110 0.336 0.100 0111 0011 0.342 0.110 0111 0010 0.348 0.120 0111 0000 0.354 0.140 0110 1110 0.360 0.150 0110 1101 0.366 0.160 0110 1011 0.372 0.170 0110 1010 0.378 0.180 0110 1001 0.384 0.190 0110 1000

0.390 0.200 0110 0111 0.396 0.210 0110 0101 0.402 0.220 0110 0100 0.408 0.230 0110 0011 0.414 0.240 0110 0001 0.420 0.240 0110 0001 0.426 0.250 0110 0000 0.432 0.260 0101 1111 0.438 0.270 0101 1101 0.444 0.280 0101 1100 0.450 0.280 0101 1100 0.456 0.290 0101 1011 0.462 0.300 0101 1010 0.468 0.300 0101 1010 0.474 0.300 0101 1010 0.480 0.300 0101 1010 0.486 0.300 0101 1010 0.492 0.300 0101 1010 0.498 0.300 0101 1010 0.504 0.300 0101 1010 0.510 0.310 0101 1000 0.516 0.310 0101 1000 0.522 0.310 0101 1000 0.528 0.310 0101 1000 0.534 0.300 0101 1010 0.540 0.300 0101 1010 0.546 0.290 0101 1011 0.552 0.290 0101 1011 0.558 0.280 0101 1100 0.564 0.270 0101 1101 0.570 0.260 0101 1111 0.576 0.250 0110 0000 0.582 0.240 0110 0001 0.588 0.230 0110 0010 0.594 0.220 0110 0100 0.600 0.200 0110 0111 0.606 0.190 0110 1000 0.612 0.180 0110 1001 0.618 0.170 0110 1010 0.624 0.150 0110 1101 0.630 0.140 0110 1110 0.636 0.120 0111 0001 0.642 0.100 0111 0011 0.648 0.090 0111 0100 0.654 0.080 0111 0110

Page 126: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

125

0.660 0.060 0111 1000 0.666 0.060 0111 1000 0.672 0.050 0111 1001 0.678 0.040 0111 1011 0.684 0.040 0111 1011 0.690 0.040 0111 1011 0.696 0.050 0111 1001 0.702 0.050 0111 1001 0.708 0.060 0111 1000 0.714 0.070 0111 0111 0.720 0.080 0111 0110 0.726 0.090 0111 0100 0.732 0.090 0111 0100 0.738 0.100 0111 0011 0.744 0.100 0111 0011 0.750 0.100 0111 0011 0.756 0.100 0111 0011 0.762 0.110 0111 0010 0.768 0.110 0111 0010 0.774 0.110 0111 0010 0.780 0.110 0111 0010 0.786 0.110 0111 0010 0.792 0.110 0111 0010 0.798 0.110 0111 0010 0.804 0.110 0111 0010 0.810 0.100 0111 0011 0.816 0.100 0111 0011 0.822 0.100 0111 0011 0.828 0.090 0111 0100 0.834 0.080 0111 0110 0.840 0.080 0111 0110

0.846 0.080 0111 0110 0.852 0.070 0111 0111 0.858 0.060 0111 1000 0.864 0.050 0111 1001 0.870 0.050 0111 1001 0.876 0.040 0111 1011 0.882 0.040 0111 1011 0.888 0.040 0111 1011 0.894 0.030 0111 1100 0.900 0.030 0111 1100 0.906 0.030 0111 1100 0.912 0.030 0111 1100 0.918 0.030 0111 1100 0.924 0.040 0111 1011 0.930 0.050 0111 1001 0.936 0.060 0111 1000 0.942 0.070 0111 0111 0.948 0.080 0111 0110 0.954 0.080 0111 0110 0.960 0.080 0111 0110 0.966 0.090 0111 0101 0.972 0.100 0111 0011 0.978 0.100 0111 0011 0.984 0.090 0111 0101 0.990 0.080 0111 0110 0.996 0.070 0111 0111 1.002 0.050 0111 1001 1.008 0.040 0111 1011 1.014 0.030 0111 1100 1.020 0.000 1000 0000

Page 127: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

126

V6

-0.100

0.000

0.100

0.200

0.300

0.400

0.500

0.600

0.700

0.800

0.900

1.000

0.000 0.200 0.400 0.600 0.800 1.000

Tiempo (ms)

Volta

je (V

)

Page 128: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

127

Apéndice C Gráficas generadas por el ECG y desplegadas en un osciloscopio.

D I (60 lat / min)

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

1.200

0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000

Tiempo (s)

Volta

je (V

)

D II (60 lat / min)

-0.400

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

0.000 1.000 2.000 3.000 4.000 5.000 6.000

Tiempo (s)

Volta

je (V

)

Page 129: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

128

D III (60 lat / min)

-0.150

-0.100

-0.050

0.000

0.050

0.100

0.150

0.000 1.000 2.000 3.000 4.000 5.000 6.000

Tiempo (s)

Volta

je (V

)

V 1 (60 lat / min)

-1.200

-1.000

-0.800

-0.600

-0.400

-0.200

0.000

0.200

0.400

0.600

0.800

0.000 1.000 2.000 3.000 4.000 5.000 6.000

Tiempo (s)

Volta

je (V

)

Page 130: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

129

V 2 (60 lat / min)

-0.800

-0.600

-0.400

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

0.000 1.000 2.000 3.000 4.000 5.000 6.000 7.000

Tiempo (s)

Volta

je (V

)

V 3 (60 lat / min)

-1.500

-1.000

-0.500

0.000

0.500

1.000

1.500

0.000 1.000 2.000 3.000 4.000 5.000

Tiempo (s)

Volta

je (V

)

Page 131: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

130

V 4 (60 lat / min)

-0.800

-0.600

-0.400

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

1.200

0.000 1.000 2.000 3.000 4.000 5.000 6.000

Tiempo (s)

Volta

je (V

)

V 5 (60 lat / min)

-0.400

-0.200

0.000

0.200

0.400

0.600

0.800

1.000

1.200

0.000 1.000 2.000 3.000 4.000 5.000 6.000

Tiempo (s)

Volta

je (V

)

Page 132: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

131

V 6 (60 lat / min)

-0.100

0.000

0.100

0.200

0.300

0.400

0.500

0.600

0.700

0.800

0.900

1.000

0.000 1.000 2.000 3.000 4.000 5.000 6.000

Tiempo (s)

Volta

je (V

)

AVF (60 lat / min)

-0.040

-0.020

0.000

0.020

0.040

0.060

0.080

0.000 1.000 2.000 3.000 4.000 5.000 6.000

Tiempo (s)

Volta

je (V

)

Page 133: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

132

AVL (60 lat / min)

-0.400

-0.300

-0.200

-0.100

0.000

0.100

0.200

0.300

0.400

0.500

0.600

0.000 1.000 2.000 3.000 4.000 5.000 6.000

Tiempo (s)

Volta

je (V

)

AVR (60 lat / min)

-1.000

-0.800

-0.600

-0.400

-0.200

0.000

0.200

0.000 1.000 2.000 3.000 4.000 5.000 6.000

Tiempo (s)

Volta

je (V

)

Page 134: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

133

Apéndice D Código ;------------------------------------------------------------ ; Proyecto terminal para el PIC16F84 derivación V4, V6. ;------------------------------------------------------------ LIST P=PIC16F84A ;------------------------------------------------------------ ; Declaración de Registros ;------------------------------------------------------------ w equ 00h status equ 0x03 porta equ 0x05 portb equ 0x06 entrada equ 0x0c _np_tiempo equ 0x0d _np_tiempo1 equ 0x0e _np_tiempo2 equ 0x0f trisa equ 0x85 trisb equ 0x86

;------------------------------------------------------------ ; Declaración de Bits ;------------------------------------------------------------ c equ 0 ;carry / borrow bit rp0 equ 5 ;registrer banck select bit z equ 2 ;bit cero ;------------------------------------------------------------ ; Inicio ;------------------------------------------------------------ reset org 0 goto paso2 ;------------------------------------------------------------ ; programa principal ;------------------------------------------------------------ paso2 movlw b'00011111' ;configurar el puerto a como xxxeeeee bsf status,rp0 ;cambiar a pagina 1 movwf trisa movlw b'00000000' ;configurar el puerto b como ssssssss movwf trisb

;leer un dato del puerto a bcf status,rp0 ;cambiar a pagina 0 movf porta,w movwf entrada movf entrada,w ;si el reg entrada = b'00000000' xorlw b'00000000' btfsc status,z goto paso6 goto paso7 paso6 call usr_entrada0 goto paso2 ;cierra el ciclo paso7 bcf status,rp0 ;cambiar a pagina 0 movf entrada,w ;si el reg entrada = b'00000001' xorlw b'00000001' btfsc status,z goto paso8 goto paso10 paso8 movlw b'10000000' ;escribir en el puerto b bcf status,rp0 ;cambiar a pagina 0 movwf portb call usr_derivacionV4 goto paso8 ;cierra el ciclo paso10 bcf status,rp0 ;cambiar a pagina 0 movf entrada,w ;si el reg entrada = b'00000010' xorlw b'00000010' btfsc status,z goto paso11

Page 135: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

134

goto paso2 ;cierra el ciclo paso11 movlw b'10000000' ;escribir en el puerto b bcf status,rp0 ;cambiar a pagina 0 movwf portb call usr_derivacionV6 goto paso11 ;cierra el ciclo ;------------------------------------------------------------ ; Declaración de Subrutinas ;------------------------------------------------------------ tiempo_75ms bcf status,rp0 movwf portb movlw .7 call tiempo_1_100_ms movlw .50 call tiempo_10_1000_us return tiempo_15ms bcf status,rp0 movwf portb movlw .15 call tiempo_1_100_ms return tiempo_30ms bcf status,rp0 movwf portb movlw .30 call tiempo_1_100_ms return usr_entrada0

movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 1 movwf trisb ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 movwf portb goto usr_entrada0_salir usr_entrada0_salir bcf status,rp0 return usr_derivacionV4 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 1 movwf trisb ;cargamos voltaje y tiempo que transcurre V(o) ;escribir en el puerto b movlw b'10010011' call tiempo_75ms movlw b'10010010' call tiempo_75ms movlw b'10010001' call tiempo_75ms movlw b'10010000' call tiempo_75ms movlw b'10001111' call tiempo_75ms movlw b'10001110' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10001101'

movwf portb movlw .90 call tiempo_1_100_ms movlw b'10001100' call tiempo_75ms movlw b'10001011' call tiempo_75ms movlw b'10001001' call tiempo_75ms movlw b'10000111' call tiempo_75ms movlw b'10000011' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'01111010' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110000' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101100' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100011' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101100' call tiempo_75ms movlw b'01101101'

Page 136: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

135

call tiempo_75ms movlw b'01110000' call tiempo_75ms movlw b'01110001' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01111100' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'10000011' call tiempo_75ms movlw b'10000111' call tiempo_75ms movlw b'10001001' call tiempo_75ms movlw b'10001100' call tiempo_75ms movlw b'10001110' call tiempo_75ms movlw b'10010000' call tiempo_75ms movlw b'10010010' call tiempo_75ms movlw b'10010010' call tiempo_75ms movlw b'10010010' call tiempo_75ms movlw b'10010011' call tiempo_75ms movlw b'10010011' movwf portb movlw .210 call tiempo_100_1000_ms movlw b'10010010' call tiempo_75ms movlw b'10001110' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10001001' call tiempo_75ms movlw b'10001001' call tiempo_75ms

movlw b'10000111' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000111' call tiempo_75ms movlw .50 call tiempo_10_1000_us movlw b'10001001' call tiempo_75ms movlw b'10001001' movwf portb call tiempo_75ms movlw b'10001100' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10010000' call tiempo_75ms movlw b'10010011' call tiempo_30ms call tiempo_30ms movlw b'10010010' call tiempo_75ms movlw b'10010000' call tiempo_75ms movlw b'10001110' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01010011' call tiempo_75ms movlw b'01000110' call tiempo_75ms movlw b'00101011' call tiempo_75ms movlw b'00011010' call tiempo_75ms movlw b'00010011'

call tiempo_75ms movlw b'00000000' movwf portb movlw .4 call tiempo_1_100_ms movlw b'10111001' movwf portb movlw .4 call tiempo_1_100_ms movlw b'10110011' call tiempo_75ms movlw b'10101101' call tiempo_75ms movlw b'10100111' call tiempo_75ms movlw b'10100001' call tiempo_75ms movlw b'10011010' call tiempo_75ms movlw b'10010101' call tiempo_75ms movlw b'10010011' call tiempo_75ms goto usr_derivacionV4_salir usr_derivacionV4_salir bcf status,rp0 return usr_derivacionV6 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 1 movwf trisb ;cargamos voltaje y tiempo que transcurre V(o) ;escribir en el puerto b movlw b'10000000' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01010010'

Page 137: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

136

call tiempo_75ms movlw b'01000000' call tiempo_75ms movlw b'00110001' call tiempo_75ms movlw b'00011110' call tiempo_75ms movlw b'00001101' call tiempo_75ms movlw b'00011110' call tiempo_75ms movlw b'00110001' call tiempo_75ms movlw b'01000000' call tiempo_75ms movlw b'01010010' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'10000000' call tiempo_15ms movlw b'01111110' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01111000' movwf portb movlw .9 call tiempo_1_100_ms movlw .50 call tiempo_10_1000_us movlw b'01110110' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01111000' call tiempo_75ms movlw b'01111001' call tiempo_75ms

movlw b'01111110' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01110001' call tiempo_75ms movlw b'01101100' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01011100' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01011010' movwf portb movlw .45 call tiempo_1_100_ms movlw b'01011100' call tiempo_75ms movlw b'01011110' call tiempo_75ms movlw b'01100001' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'10000000' call tiempo_30ms

movlw b'01111100' call tiempo_15ms movlw b'01111000' call tiempo_15ms movlw b'01110101' call tiempo_15ms movlw b'01110011' call tiempo_30ms call tiempo_30ms movlw b'01110101' call tiempo_15ms movlw b'01111001' call tiempo_15ms movlw b'01111101' call tiempo_15ms movlw b'10000000' call tiempo_15ms movlw b'01111101' call tiempo_15ms movlw b'01111001' call tiempo_15ms movlw b'01111000' call tiempo_15ms movlw b'01110101' call tiempo_15ms movlw b'01110011' call tiempo_30ms call tiempo_30ms call tiempo_30ms movlw b'01110101' call tiempo_15ms movlw b'01111000' call tiempo_15ms movlw b'01111001' call tiempo_15ms movlw b'01111110' call tiempo_15ms movlw b'10000000' call tiempo_30ms call tiempo_30ms goto usr_derivacionV6_salir usr_derivacionV6_salir bcf status,rp0 return

Page 138: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

137

;TIEMPÒ EN MILISEGUNDOS 1-100. tiempo_1_100_ms movwf _np_tiempo goto tiempo_1_100_ms_1 tiempo_1_100_ms_bucle1 nop nop nop nop nop nop nop tiempo_1_100_ms_1 movlw .246 movwf _np_tiempo1 tiempo_1_100_ms_bucle2 nop decfsz _np_tiempo1,1 goto tiempo_1_100_ms_bucle2 nop nop nop nop nop decfsz _np_tiempo,1 goto tiempo_1_100_ms_bucle1

return ;TIEMPO EN MILISEGUNDOS 100-1000. tiempo_100_1000_ms movwf _np_tiempo goto tiempo_100_1000_ms_1 tiempo_100_1000_ms_bucle2 nop nop nop nop nop nop nop tiempo_100_1000_ms_1 movlw .22 movwf _np_tiempo1 tiempo_100_1000_ms_bucle1 movlw .150 movwf _np_tiempo2 tiempo_100_1000_ms_bucle decfsz _np_tiempo2,1 goto tiempo_100_1000_ms_bucle decfsz _np_tiempo1,1 goto tiempo_100_1000_ms_bucle1

nop decfsz _np_tiempo,1 goto tiempo_100_1000_ms_bucle2 return ;tiempo en microsegundos. tiempo_10_1000_us movwf _np_tiempo goto tiempo_10_1000_us_10 tiempo_10_1000_us_bucle nop nop nop nop nop nop nop tiempo_10_1000_us_10 decfsz _np_tiempo,1 goto tiempo_10_1000_us_bucle return End

Page 139: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

138

Programa del PIC 16F877 ---------------------------------------------------- ;Proyecto terminal para el PIC16F877 derivaciones 1, 2, 3 ,AVR ,AVF ,AVL ,V1, V2, V3, V5. ;---------------------------------------------------- LIST P=PIC16F877 ;---------------------------------------------------- ; Declaración de Registros ;---------------------------------------------------- w equ 00h status equ 0x03 portb equ 0x06 portc equ 0x07 portd equ 0x08 trisb equ 0x186 entradac equ 0x20 _np_tiempo equ 0x21 _np_tiempo1 equ 0x22 _np_tiempo2 equ 0x23 _np_tiempo3 equ 0x24 entradad equ 0x25 trisc equ 0x87

trisd equ 0x88 ;---------------------------------------------------- ; Declaración de Bits ;---------------------------------------------------- c equ 0 ;carry / borrow bit rp0 equ 5 ;registrer banck select bit rp1 equ 6 ;registrer banck select bit z equ 2 ;bit cero ;---------------------------------------------------- ; Inicio ;---------------------------------------------------- eset org 0 goto paso2 org 4 retfie ;---------------------------------------------------- ; programa principal ;---------------------------------------------------- paso2

movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb movlw b'11111111' ;configurar el puerto c como eeeeeeee bcf status,rp1 ;cambiar a pagina 1 movwf trisc movlw b'11111111' ;configurar el puerto d como eeeeeeee bcf status,rp1 ;cambiar a pagina 1 movwf trisd ;leer un dato del puerto c bcf status,rp0 ;cambiar a pagina 0 movf portc,w movwf entradac ;leer un dato del puerto d movf portd,w movwf entradad ;si entrada c es cero movf entradac,w ;si el reg entradac = b'00000000' xorlw b'00000000' btfsc status,z goto paso3 ;si es cero salta a paso 3 goto paso7 ;si es diferente salta a derivacion 1 ;si entradad es cero paso3 bcf status,rp0 ;cambiar a pagina 0

Page 140: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

139

bcf status,rp1 movf entradad,w ;si el reg entradad = B'00000000' xorlw b'00000000' btfsc status,z goto paso6 ;si es cero salta a paso 6 goto paso24 ;si es diferente salta a paso derivacionV3 paso6 ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb goto paso2 ;cierra el ciclo ;DERIVACION 1 paso7 bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradac,w ;si el reg entradac = b'00000001' xorlw b'00000001' btfsc status,z goto paso8 goto paso10 paso8 ;escribir en el puerto b movlw b'00001101' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacion1 goto paso8 ;cierra el ciclo ;DERIVACION 2 paso10

bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradac,w ;si el reg entradac = b'00000010' xorlw b'00000010' btfsc status,z goto paso11 goto paso12 ;cierra el ciclo paso11 ;escribir en el puerto b movlw b'01111001' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacion2 goto paso11 ;cierra el ciclo ;DERIVACION 3 paso12 bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradac,w ;si el reg entradac = b'00000100' xorlw b'00000100' btfsc status,z goto paso13 goto paso14 ;cierra el ciclo paso13 ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacion3 goto paso13 ;cierra el ciclo ;DERIVACION AVF paso14

bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradac,w ;si el reg entradac = b'00001000' xorlw b'00001000' btfsc status,z goto paso15 goto paso16 ;cierra el ciclo paso15 ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacionAVF goto paso15 ;cierra el ciclo ;DERIVACION AVL paso16 bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradac,w ;si el reg entradac = b'00010000' xorlw b'00010000' btfsc status,z goto paso17 goto paso18 ;cierra el ciclo paso17 ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacionAVL goto paso17 ;cierra el ciclo ;DERIVACION AVR paso18

Page 141: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

140

bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradac,w ;si el reg entradac = b'00100000' xorlw b'00100000' btfsc status,z goto paso19 goto paso20 ;cierra el ciclo paso19 ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacionAVR goto paso19 ;cierra el cic ;DERIVACION V1 paso20 bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradac,w ;si el reg entradac = b'01000000' xorlw b'01000000' btfsc status,z goto paso21 goto paso22 ;cierra el ciclo paso21 ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacionV1 goto paso21 ;cierra el cic ;DERIVACION V2 paso22

bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradac,w ;si el reg entradac = b'01000000' xorlw b'10000000' btfsc status,z goto paso23 goto paso24 ;cierra el ciclo paso23 ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacionV2 goto paso23 ;cierra el cic ;DERIVACION V3 paso24 bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradad,w ;si el reg entradad = b'00000001' xorlw b'00000001' btfsc status,z goto paso25 goto paso26 ;cierra el ciclo paso25 ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacionV3 goto paso25 ;cierra el cic paso26

bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradad,w ;si el reg entradad = b'00000010' xorlw b'00000010' btfsc status,z goto paso27 goto paso28 ;cierra el ciclo paso27 ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacionV4 goto paso27 ;cierra el cic ;DERIVACION V5 paso28 bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradad,w ;si el reg entradad = b'00000100' xorlw b'00000100' btfsc status,z goto paso29 goto paso30 ;cierra el ciclo paso29 ;escribir en el puerto b movlw b'11111111' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacionV5 goto paso29 ;cierra el cic paso30

Page 142: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

141

bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movf entradad,w ;si el reg entradad = b'00001000' xorlw b'00001000' btfsc status,z goto paso31 goto paso2 ;cierra el ciclo paso31 ;escribir en el puerto b movlw b'00000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb call usr_derivacionV6 goto paso31 ;cierra el cic ;---------------------------------------------------- ; Declaración de Subrutinas ;---------------------------------------------------- tiempo_75ms movwf portb movlw .7 call tiempo_1_100_ms movlw .50 call tiempo_10_1000_us return tiempo_15ms movwf portb movlw .15 call tiempo_1_100_ms return tiempo_30ms movwf portb movlw .30

call tiempo_1_100_ms return usr_derivacion1 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'00001101' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 call tiempo_75ms movlw b'00100111' call tiempo_75ms movlw b'00110011' call tiempo_75ms movlw b'01000110' call tiempo_75ms movlw b'01011010' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'10000001' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10001001' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000011' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'01111101' call tiempo_75ms movlw b'01111011' call tiempo_75ms movlw b'01111000' call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01110100'

call tiempo_75ms movlw b'01110011' movwf portb movlw .15 call tiempo_100_1000_ms movlw b'01110001' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01101110' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01011110' call tiempo_75ms movlw b'01011010' call tiempo_75ms movlw b'01011000' call tiempo_75ms movlw b'01010110' call tiempo_75ms movlw b'01010100' call tiempo_75ms movlw b'01010011' call tiempo_75ms movlw b'01010011' call tiempo_75ms movlw b'01010001' call tiempo_75ms movlw b'01010011' call tiempo_75ms movlw b'01010100' call tiempo_75ms movlw b'01010110' call tiempo_75ms movlw b'01011000' call tiempo_75ms

Page 143: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

142

movlw b'01011100' call tiempo_75ms movlw b'01011101' call tiempo_75ms movlw b'01011111' call tiempo_75ms movlw b'01100001' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101110' call tiempo_75ms movlw b'01110001' call tiempo_75ms movlw b'01100010' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110100' movwf portb movlw .90 call tiempo_1_100_ms movlw b'01110011' movwf portb movlw .13 call tiempo_100_1000_ms movlw b'01100010' call tiempo_75ms movlw b'01101110' call tiempo_75ms movlw b'01101110' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01101000'

call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100001' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01100001' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110100' call tiempo_75ms movlw b'01110100' call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01111000' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01000000' call tiempo_75ms movlw b'00100111' call tiempo_75ms movlw b'00000000' call tiempo_75ms

goto usr_derivacion1_salir usr_derivacion1_salir bcf status,rp0 return ;DERIVACION 2 usr_derivacion2 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'01111001' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb movlw .7 ;temporizador 7 mses call tiempo_1_100_ms ;fin del temporizador 7 mseg movlw .50 ;temporizador 500 use call tiempo_10_1000_us ;fin del temporizador 7 useg movlw b'01101101' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01001101' call tiempo_75ms movlw b'01000010' call tiempo_75ms movlw b'00110011' call tiempo_75ms movlw b'00100100' call tiempo_75ms movlw b'00011010' call tiempo_75ms movlw b'10100000'

Page 144: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

143

call tiempo_75ms movlw b'10011010' call tiempo_75ms movlw b'10010110' call tiempo_75ms movlw b'10001110' call tiempo_75ms movlw b'10001011' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000001' call tiempo_75ms movlw b'01111001' movwf portb movlw .18 ;checar 185mseg call tiempo_100_1000_ms movlw b'01110110' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110000' call tiempo_75ms movlw b'01101101' call tiempo_75ms call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100011' call tiempo_75ms movlw b'01100001' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01011110' call tiempo_75ms movlw b'01011101' call tiempo_75ms movlw b'01011100' call tiempo_75ms

movlw b'01011011' call tiempo_75ms movlw b'01011010' call tiempo_75ms movlw b'01011010' call tiempo_75ms movlw b'01011000' call tiempo_75ms movlw b'01011010' call tiempo_75ms movlw b'01011100' call tiempo_75ms movlw b'01011100' call tiempo_75ms movlw b'01011100' call tiempo_75ms movlw b'01011101' call tiempo_75ms movlw b'01011101' call tiempo_75ms movlw b'01011110' call tiempo_75ms movlw b'01011110' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01100001' call tiempo_75ms movlw b'01100011' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01101100' call tiempo_75ms movlw b'01101110' call tiempo_75ms movlw b'01110001' call tiempo_75ms movlw b'01110010' call tiempo_75ms

movlw b'01110101' call tiempo_75ms movlw b'01111000' call tiempo_75ms call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'01111111' call tiempo_30ms movlw b'01111110' call tiempo_30ms movlw b'01111101' call tiempo_75ms movlw b'01111100' call tiempo_30ms movlw b'01111011' call tiempo_30ms movlw b'01111010' movwf portb movlw .35 call tiempo_1_100_ms movlw b'01111001' call tiempo_75ms movlw b'01111000' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01110100' call tiempo_75ms movlw b'01110010' call tiempo_75ms movlw b'01110001' call tiempo_75ms movlw b'01110000' call tiempo_75ms movlw b'01101110' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101110' call tiempo_75ms movlw b'01111000';se quito un cero call tiempo_75ms movlw b'01110001' call tiempo_75ms movlw b'01110011' call tiempo_75ms

Page 145: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

144

movlw b'01110110' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'1000000' call tiempo_75ms goto usr_derivacion2_salir usr_derivacion2_salir bcf status,rp0 return ;TRABAJO EN ELECTRA ;TERMINADA 3 usr_derivacion3 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'10001101' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb movlw .7 ;temporizador 260 mse call tiempo_100_1000_ms ;fin del temporizador 260 mse movlw b'10001011' call tiempo_75ms movlw b'10001001' call tiempo_75ms movlw b'10000111' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000101' call tiempo_75ms movlw b'10000011'

call tiempo_75ms movlw b'10000001' call tiempo_75ms movlw b'01111111' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'01111101' call tiempo_75ms movlw b'01111011' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01111000' call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01110100' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10001011' call tiempo_75ms movlw b'10000111' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000101' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'01111011' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01111101' call tiempo_75ms movlw b'10000000'

call tiempo_75ms movlw b'10000011' call tiempo_75ms movlw b'10000110' movwf portb movlw .21 call tiempo_100_1000_ms movlw b'10000100' call tiempo_75ms movlw b'10000011' call tiempo_75ms movlw b'10000010' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'01111111' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'01111100' call tiempo_75ms movlw b'01111011' call tiempo_75ms movlw b'01111010' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01111010' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01111100' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'10000010' call tiempo_75ms movlw b'10000011' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10001101' movwf portb

Page 146: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

145

movlw .42 call tiempo_100_1000_ms goto usr_derivacion3_salir usr_derivacion3_salir bcf status,rp0 return ;TERMINADA usr_derivacionAVF movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'10001101' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 call tiempo_75ms movlw b'10001011' call tiempo_75ms movlw b'10001001' call tiempo_75ms movlw b'10001000' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000101' call tiempo_75ms movlw b'10000011' call tiempo_75ms movlw b'10000001' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01010011' call tiempo_75ms

movlw b'01001101' call tiempo_75ms movlw b'00110011' call tiempo_75ms movlw b'00101101' call tiempo_75ms movlw b'00100111' movwf portb movlw .4 call tiempo_1_100_ms movlw b'10011010' movwf portb movlw .4 call tiempo_1_100_ms movlw b'10011000' call tiempo_75ms movlw b'10010011' call tiempo_75ms movlw b'10001111' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10001001' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000010' call tiempo_75ms movlw b'10000000' movwf portb movlw .12 call tiempo_100_1000_ms movlw b'01111110' call tiempo_75ms movlw b'01111100' call tiempo_75ms movlw b'01111010' call tiempo_75ms movlw b'01111000' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01110100' call tiempo_75ms movlw b'01110011'

call tiempo_75ms movlw b'01110001' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100110' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100111' call tiempo_30ms movlw b'01100111' call tiempo_75ms movlw b'01100110' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01110001' call tiempo_75ms movlw b'01110011'

Page 147: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

146

movwf portb movlw .14 call tiempo_100_1000_ms movlw b'01110101' movwf portb movlw .16 call tiempo_1_100_ms movlw .60 call tiempo_10_1000_us movlw b'01110111' movwf portb movlw .16 call tiempo_1_100_ms movlw .60 call tiempo_10_1000_us movlw b'01111001' movwf portb movlw .16 call tiempo_1_100_ms movlw .60 call tiempo_10_1000_us movlw b'01111011' movwf portb movlw .16 call tiempo_1_100_ms movlw .60 call tiempo_10_1000_us movlw b'01111101' movwf portb movlw .16 call tiempo_1_100_ms movlw .60 call tiempo_10_1000_us movlw b'10000000' movwf portb movlw .16 call tiempo_1_100_ms movlw .60 call tiempo_10_1000_us movlw b'01111110' call tiempo_75ms

movlw b'01111100' call tiempo_75ms movlw b'01111011' call tiempo_75ms movlw b'01111000' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01110100' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110100' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01111000' call tiempo_75ms movlw b'01111011' call tiempo_75ms movlw b'01111100' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'01111111' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'01111101' call tiempo_75ms movlw b'01111101' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'01111111' call tiempo_15ms movlw b'10000000' call tiempo_15ms movlw b'10000001' call tiempo_75ms

movlw b'10000010' call tiempo_75ms movlw b'10000100' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10001010' call tiempo_75ms goto usr_derivacionAVF_salir usr_derivacionAVF_salir bcf status,rp0 return ;TERMINADA usr_derivacionAVL movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'10000101' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 movwf portb movlw .7 ;temporizador 7 mse call tiempo_1_100_ms ;fin del temporizador 7 mse movlw .50 ;temporizador 500 use call tiempo_10_1000_us ;fin del temporizador 500 useg movlw b'01111111' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100001'

Page 148: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

147

call tiempo_75ms movlw b'01010010' call tiempo_75ms movlw b'01001011' call tiempo_75ms movlw b'01000000' movwf portb movlw .4 call tiempo_1_100_ms movlw b'10100111' movwf portb movlw .4 call tiempo_1_100_ms movlw b'10011010' call tiempo_75ms movlw b'10010000' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000000' movwf portb movlw .15 call tiempo_100_1000_ms movlw b'01111111' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'01111100' call tiempo_75ms movlw b'01111010' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01111000' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01110100' call tiempo_75ms movlw b'01110011' call tiempo_30ms

call tiempo_30ms movlw b'01110010' call tiempo_75ms movlw b'01110010' call tiempo_75ms movlw b'01110000' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100111' call tiempo_30ms call tiempo_30ms movlw b'01100111' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01110000' call tiempo_75ms movlw b'01110001' call tiempo_75ms movlw b'01110010' call tiempo_75ms

movlw b'01110011' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110100' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01111000' call tiempo_75ms movlw b'01111011' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'01111111' call tiempo_75ms movlw b'10000000' movwf portb movlw .15 call tiempo_100_1000_ms movlw b'01111111' call tiempo_75ms movlw b'01111100' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'00110100' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110100' call tiempo_75ms movlw b'01110101'

Page 149: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

148

call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01110111' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01111100' call tiempo_75ms movlw b'01111111' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'10000011' call tiempo_75ms movlw b'10000101' call tiempo_75ms movlw b'10001001' call tiempo_75ms movlw b'10001101' call tiempo_75ms goto usr_derivacionAVL_salir usr_derivacionAVL_salir bcf status,rp0 return usr_derivacionAVR movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'10000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 call tiempo_30ms call tiempo_30ms movlw b'10000101' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10100000'

call tiempo_75ms movlw b'10110011' call tiempo_75ms movlw b'11000000' call tiempo_75ms movlw b'11001101' call tiempo_75ms movlw b'11011010' call tiempo_75ms movlw b'11100111' movwf portb movlw .4 call tiempo_1_100_ms movlw b'01110011' movwf portb movlw .4 call tiempo_1_100_ms movlw b'01110101' call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01111011' call tiempo_75ms movlw b'01111100' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'10000000' movwf portb movlw .12 call tiempo_100_1000_ms movlw b'10000010' call tiempo_75ms movlw b'10000011' call tiempo_75ms movlw b'10000101' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000111' call tiempo_75ms movlw b'10001001' call tiempo_75ms movlw b'10001100' call tiempo_75ms

movlw b'10001110' call tiempo_75ms movlw b'10010000' call tiempo_75ms movlw b'10010001' call tiempo_75ms movlw b'10010010' call tiempo_75ms movlw b'10010100' call tiempo_75ms movlw b'10010101' call tiempo_75ms movlw b'10010111' call tiempo_75ms movlw b'10011001' call tiempo_75ms movlw b'10011001' call tiempo_75ms movlw b'10011010' call tiempo_75ms movlw b'10011011' call tiempo_75ms movlw b'10011100' call tiempo_75ms movlw b'10011101' call tiempo_75ms movlw b'10011111' call tiempo_75ms movlw b'10100000' call tiempo_75ms movlw b'10100001' call tiempo_75ms movlw b'10100010' call tiempo_75ms movlw b'10100011' call tiempo_75ms movlw b'10100100' call tiempo_75ms movlw b'10100101' call tiempo_75ms movlw b'10100110' call tiempo_75ms movlw b'10100110' call tiempo_75ms movlw b'10100110' call tiempo_75ms movlw b'10100110' call tiempo_75ms

Page 150: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

149

movlw b'10100111' call tiempo_75ms movlw b'10100110' call tiempo_75ms movlw b'10100100' call tiempo_75ms movlw b'10100011' call tiempo_75ms movlw b'10100010' call tiempo_75ms movlw b'10100001' call tiempo_75ms movlw b'10100000' call tiempo_75ms movlw b'10011111' call tiempo_75ms movlw b'10011100' call tiempo_75ms movlw b'10011010' call tiempo_75ms movlw b'10010111' call tiempo_75ms movlw b'10010101' call tiempo_75ms movlw b'10010100' call tiempo_75ms movlw b'10010001' call tiempo_75ms movlw b'10010000' call tiempo_75ms movlw b'10001110' call tiempo_75ms movlw b'10001101' movwf portb movlw .15 call tiempo_100_1000_ms movlw b'10001001' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000010' call tiempo_75ms movlw b'10000000' call tiempo_30ms call tiempo_30ms movlw b'10000001' call tiempo_75ms

movlw b'10000101' call tiempo_75ms movlw b'10000111' call tiempo_75ms movlw b'10001010' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10010000' call tiempo_75ms movlw b'10010010' call tiempo_75ms movlw b'10010011' call tiempo_75ms movlw b'10010010' call tiempo_75ms movlw b'10010000' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10001010' call tiempo_75ms movlw b'10000111' call tiempo_75ms movlw b'10000101' call tiempo_75ms movlw b'10000001' call tiempo_75ms goto usr_derivacionAVR_salir usr_derivacionAVR_salir bcf status,rp0 return ;TERMINADA usr_derivacionV1 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'01100000' bcf status,rp0 bcf status,rp1

call tiempo_75ms movlw b'01011010' call tiempo_75ms movlw b'01010011' call tiempo_75ms movlw b'01001101' call tiempo_75ms movlw b'01000110' call tiempo_75ms movlw b'01000000' call tiempo_75ms movlw b'00111001' call tiempo_75ms movlw b'00110011' call tiempo_75ms movlw b'01001111' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'10100000' call tiempo_75ms movlw b'10111001' call tiempo_75ms movlw b'11010011' call tiempo_75ms movlw b'11101101' call tiempo_75ms movlw b'11111111' call tiempo_75ms movlw b'11110001' call tiempo_75ms movlw b'11011010' call tiempo_75ms movlw b'11000110' call tiempo_75ms movlw b'10110011' call tiempo_75ms movlw b'10011101' call tiempo_75ms movlw b'10011101' call tiempo_75ms movlw b'01110101' call tiempo_75ms movlw b'01100111' movwf portb movlw .15

Page 151: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

150

call tiempo_100_1000_ms movlw b'01100011' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01011101' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01011001' call tiempo_75ms movlw b'01010110' call tiempo_75ms movlw b'01010100' call tiempo_75ms movlw b'01010010' call tiempo_75ms movlw b'01010001' call tiempo_75ms movlw b'01010000' call tiempo_75ms movlw b'01001110' call tiempo_75ms movlw b'01001101' call tiempo_75ms movlw b'01001110' call tiempo_75ms movlw b'01010000' call tiempo_75ms movlw b'01010001' call tiempo_75ms movlw b'01010010' call tiempo_75ms movlw b'01010100' call tiempo_75ms movlw b'01010110' call tiempo_75ms movlw b'01011001' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01011101' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01100011' call tiempo_75ms

movlw b'01100111' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101100' movwf portb movlw .45 call tiempo_1_100_ms movlw b'01101001' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01011111' call tiempo_75ms movlw b'01011100' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01011010' call tiempo_75ms movlw b'01011001' call tiempo_75ms movlw b'01011000' call tiempo_75ms movlw b'01011000' call tiempo_75ms movlw b'01010110' call tiempo_75ms movlw b'01010101' call tiempo_75ms movlw b'01010100' call tiempo_75ms movlw b'01010101' call tiempo_75ms movlw b'01010110' call tiempo_75ms movlw b'01011000' call tiempo_75ms movlw b'01011000' call tiempo_75ms

movlw b'01011001' call tiempo_75ms movlw b'01011010' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01011100' call tiempo_75ms movlw b'01011111' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101110' call tiempo_30ms movlw b'01101010' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100101' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01011111' call tiempo_75ms movlw b'01011101' call tiempo_75ms movlw b'01011100' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01011010' call tiempo_30ms

Page 152: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

151

movlw b'01011011' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01011100' call tiempo_75ms movlw b'01011101' call tiempo_75ms movlw b'01011111' call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01100111' call tiempo_75ms goto usr_derivacionV1_salir usr_derivacionV1_salir bcf status,rp0 return ;TERMINADA usr_derivacionV2 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'01101100' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 call tiempo_75ms movlw b'01100000' call tiempo_75ms movlw b'01010101' call tiempo_75ms movlw b'01001001' call tiempo_75ms movlw b'01000000' call tiempo_75ms movlw b'00110110' call tiempo_75ms movlw b'00101011'

call tiempo_75ms movlw b'00100111' movwf portb movlw .4 call tiempo_1_100_ms movlw b'11011010' movwf portb movlw .4 movlw b'11001101' call tiempo_75ms movlw b'11000000' call tiempo_75ms movlw b'10110110' call tiempo_75ms movlw b'10101101' call tiempo_75ms movlw b'10100001' call tiempo_75ms movlw b'10001111' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'10000000' call tiempo_75ms movlw b'01111101' call tiempo_75ms movlw b'01111001' call tiempo_75ms movlw b'01110110' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110001' call tiempo_75ms movlw b'01110000' call tiempo_75ms movlw b'01101110' call tiempo_75ms movlw b'01101101' call tiempo_15ms movlw b'01101100' call tiempo_15ms movlw b'01101010' call tiempo_15ms movlw b'01101000' call tiempo_15ms movlw b'01100111' movwf portb

movlw .12 call tiempo_100_1000_ms movlw b'01100101' call tiempo_75ms movlw b'01100010' call tiempo_75ms movlw b'01100001' call tiempo_75ms movlw b'01011111' call tiempo_75ms movlw b'01011110' call tiempo_75ms movlw b'01011101' call tiempo_75ms movlw b'01011100' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01011111' call tiempo_75ms movlw b'01011010' call tiempo_75ms movlw b'01011111' call tiempo_75ms movlw b'01011011' call tiempo_75ms movlw b'01011100' call tiempo_75ms movlw b'01011101' call tiempo_75ms movlw b'01011110' call tiempo_75ms movlw b'01011111' call tiempo_15ms movlw b'01100000' call tiempo_75ms movlw b'01100011' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01110000' call tiempo_75ms movlw b'01110011'

Page 153: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

152

movwf portb movlw .30 call tiempo_100_1000_ms movlw b'01110000' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101100' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101000' movwf portb movlw .21 call tiempo_1_100_ms movlw b'01100111' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01101000' call tiempo_75ms movlw b'01101001' call tiempo_75ms movlw b'01101010' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01101100' call tiempo_75ms movlw b'01101101' call tiempo_75ms movlw b'01101110' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01110000' call tiempo_75ms

movlw b'01110011' call tiempo_75ms goto usr_derivacionV2_salir usr_derivacionV2_salir bcf status,rp0 return ;TERMINADA usr_derivacionV3 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'01111010' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01101011' call tiempo_75ms movlw b'01100010' call tiempo_75ms movlw b'01011010' call tiempo_75ms movlw b'01010011' call tiempo_75ms movlw b'01001011' call tiempo_75ms movlw b'01000010' call tiempo_75ms movlw b'00110011' call tiempo_75ms movlw b'00101010' call tiempo_75ms movlw b'00100100' call tiempo_75ms movlw b'00011101' call tiempo_75ms movlw b'00010011' call tiempo_75ms movlw b'00001011'

call tiempo_75ms movlw b'00000000' movwf portb movlw .4 call tiempo_1_100_ms movlw b'11111111' movwf portb movlw .4 call tiempo_1_100_ms movlw b'11111010' call tiempo_75ms movlw b'11110011' call tiempo_75ms movlw b'11101010' call tiempo_75ms movlw b'11100000' call tiempo_75ms movlw b'11010011' call tiempo_75ms movlw b'11001000' call tiempo_75ms movlw b'10111011' call tiempo_75ms movlw b'10110011' call tiempo_75ms movlw b'10101101' call tiempo_75ms movlw b'10100010' call tiempo_75ms movlw b'10011010' call tiempo_75ms movlw b'10010010' call tiempo_75ms movlw b'10000110' call tiempo_75ms movlw b'01111110' call tiempo_75ms movlw b'01110011' call tiempo_75ms movlw b'01110010' call tiempo_75ms movlw b'01110000' call tiempo_75ms movlw b'01101111' call tiempo_75ms movlw b'01101101' call tiempo_15ms movlw b'01101011'

Page 154: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

153

call tiempo_15ms movlw b'01101010' call tiempo_15ms movlw b'01101000' call tiempo_30ms movlw b'01100111' call tiempo_30ms movlw b'01100100' call tiempo_30ms movlw b'01100000' call tiempo_15ms movlw b'01011110' call tiempo_15ms movlw b'01011010' call tiempo_15ms movlw b'01010011' call tiempo_15ms movlw b'01001101' call tiempo_15ms movlw b'01000110' call tiempo_15ms movlw b'01000000' call tiempo_15ms movlw b'01000110' call tiempo_15ms movlw b'01001101' call tiempo_15ms movlw b'01011000' call tiempo_15ms movlw b'01011101' call tiempo_15ms movlw b'01100011' call tiempo_15ms movlw b'01101010' call tiempo_15ms movlw b'01101100' call tiempo_15ms movlw b'01101101' call tiempo_15ms movlw b'01110000' call tiempo_15ms movlw b'01110011' movwf portb movlw .45 call tiempo_1_100_ms movlw b'01110100' call tiempo_15ms movlw b'01110110'

call tiempo_15ms movlw b'01111101' call tiempo_15ms movlw b'10000000' movwf portb movlw .45 call tiempo_1_100_ms movlw b'01111010' call tiempo_15ms movlw b'01111000' call tiempo_15ms movlw b'01110101' call tiempo_15ms movlw b'01110011' movwf portb movlw .45 call tiempo_1_100_ms movlw b'01110101' call tiempo_15ms movlw b'01111001' call tiempo_15ms movlw b'01111101' call tiempo_15ms movlw b'10000000' movwf portb movlw .45 call tiempo_1_100_ms goto usr_derivacionV3_salir usr_derivacionV3_salir bcf status,rp0 return usr_derivacionV4 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'10010011' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 call tiempo_75ms

goto usr_derivacionV4_salir usr_derivacionV4_salir bcf status,rp0 return usr_derivacionV5 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'10011010' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 call tiempo_75ms movlw b'10001101' movwf portb call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'01000011' call tiempo_75ms movlw b'00000000' call tiempo_75ms movlw b'01000011' call tiempo_75ms movlw b'01100111' call tiempo_75ms movlw b'10001101' call tiempo_75ms movlw b'10100111' call tiempo_75ms movlw b'10011010' call tiempo_15ms movlw b'10010100' call tiempo_15ms movlw b'10010010' call tiempo_15ms movlw b'10010011' call tiempo_15ms movlw b'10010010' call tiempo_15ms movlw b'10001111' call tiempo_15ms

Page 155: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

154

movlw b'10001110' call tiempo_15ms movlw b'10001101' call tiempo_30ms movlw b'10001100' call tiempo_30ms call tiempo_30ms movlw b'10001000' call tiempo_30ms movlw b'10000101' call tiempo_30ms movlw b'01111110' call tiempo_30ms movlw b'01111010' call tiempo_30ms movlw b'01111000' call tiempo_30ms movlw b'01111010' call tiempo_30ms movlw b'01111110' call tiempo_30ms movlw b'10000101' call tiempo_30ms movlw b'10001000' call tiempo_30ms movlw b'10001101' movwf portb movlw .90; cambio call tiempo_1_100_ms movlw b'10010011' call tiempo_30ms movlw b'10010110' call tiempo_30ms movlw b'10011010' call tiempo_30ms movlw b'10010110' call tiempo_30ms movlw b'10010011' call tiempo_30ms movlw b'10001101' call tiempo_30ms movlw b'10001111' call tiempo_30ms movlw b'10010001' call tiempo_30ms movlw b'10010011' call tiempo_30ms

goto usr_derivacionV5_salir usr_derivacionV5_salir bcf status,rp0 return usr_derivacionV6 movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a pagina 3 bsf status,rp1 movwf trisb ;escribir en el puerto b movlw b'10000000' bcf status,rp0 ;cambiar a pagina 0 bcf status,rp1 call tiempo_75ms goto usr_derivacionV6_salir usr_derivacionV6_salir bcf status,rp0 return ;tiempo de 1 a 100 mseg. tiempo_1_100_ms movwf _np_tiempo goto tiempo_1_100_ms_1 tiempo_1_100_ms_bucle1 nop nop nop nop nop nop nop tiempo_1_100_ms_1 movlw .246 movwf _np_tiempo1 tiempo_1_100_ms_bucle2 nop

decfsz _np_tiempo1,1 goto tiempo_1_100_ms_bucle2 nop nop nop nop nop decfsz _np_tiempo,1 goto tiempo_1_100_ms_bucle1 return ;tiempo en microsegundos. tiempo_10_1000_us movwf _np_tiempo goto tiempo_10_1000_us_10 tiempo_10_1000_us_bucle nop nop nop nop nop nop nop tiempo_10_1000_us_10 decfsz _np_tiempo,1 goto tiempo_10_1000_us_bucle return ;tiempo de 100 a 1000 mseg tiempo_100_1000_ms movwf _np_tiempo goto tiempo_100_1000_ms_1 tiempo_100_1000_ms_bucle2 nop

Page 156: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

155

nop nop nop nop nop nop tiempo_100_1000_ms_1 movlw .22 movwf _np_tiempo1 tiempo_100_1000_ms_bucle1 movlw .150 movwf _np_tiempo2 tiempo_100_1000_ms_bucle decfsz _np_tiempo2,1 goto tiempo_100_1000_ms_bucle decfsz _np_tiempo1,1 goto tiempo_100_1000_ms_bucle1 nop decfsz _np_tiempo,1 goto tiempo_100_1000_ms_bucle2 return End

Page 157: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

156

Bibliografía Cardiac electrophysiology: from cell to bedside W. B. Saunders Philadelphia, 1995 Fisiologia humana Arthur Guyton Interamericana, 1987. Fisiologia humana Hugh Davson Aguilar, 1968 Fisiología medica William Ganong Manual Moderno, 1990 Fisiología medica Philip Bard Interamericana, 1987 Instrumentacion y medidas biomedicas Leslie Cromwell Marcombo,1980 Referencias DAC0808 http://www.unicrom.com/Tut_DAC.asp http://es.wikipedia.org/wiki/Conversi%C3%B3n_D/A http://www.geocities.com/fisiclady1/AcoplamientodeADCyDAC.pdf http://www.national.com/pf/DA/DAC0808.html http://www.datasheetarchive.com/datasheet-cxa.html http://www.fie.utp.ac.pa/mlogreira/dig2cap5.htm Fisiología medica http://www.uam.es/personal_pdi/ciencias/jbenito/anatomiayfisiologiacorazon.html http://www.tmc.edu/thi/diekg_sp.html http://www.healthsystem.virginia.edu/ uvahealth/peds_cardiac_sp/ekgecg.cfm http://www.fciencias.unam.mx/Cursos/ Biologia/AnimalesII/circula.htm

Page 158: UNIVERSIDAD AUTÓNOMA METROPOLITANA148.206.53.84/tesiuami/UAMI13200.pdf · 4.2 Paquete para la tarjeta de programación y desarrollo IC ... de las instrucciones es ... máquina para

157

PIC’s http://www.microchip.com http://www.abcdatos.com/tutoriales/electronicayelectricidad/ electronica/microcontroladorespic.html http://www.microcontroladores.com http://www.frino.com.ar/micros.htm http://www.todorobot.com.ar/proyectos/picprog/picprog.htm http://www.losa.com.uy/html/mgh/1238-5.htm 16F84 http://www.microchip.com/stellent/idcplgidcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010229 18F877 http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010241