ÍNDICE. PAG. CAPITULO I 1.1 OBJETIVOS 1.2 ALCANCES 1.3 JUSTIFICACIÓN 2.1 INTRODUCCIÓN

Tamaño: px
Comenzar la demostración a partir de la página:

Download "ÍNDICE. PAG. CAPITULO I 1.1 OBJETIVOS 1.2 ALCANCES 1.3 JUSTIFICACIÓN 2.1 INTRODUCCIÓN"

Transcripción

1 1

2 ÍNDICE. PAG. CAPITULO I 1.1 OBJETIVOS 1.2 ALCANCES 1.3 JUSTIFICACIÓN CAPITULO II 2.1 INTRODUCCIÓN CAPITULO III 3 MICROCONTROLADOR PIC 3.1 PIC 3.2 LOS PIC16F8XX 3.3 EL PIC16F877A 3.4 CARACTERÍSTICAS RELEVANTES DEL PIC16F877A 3.5 ARQUITECTURA DEL PIC16F877A 3.6 ARQUITECTURA INTERNA DEL PI16F877A 3.7 ORGANIZACIÓN DE LA MEMORIA 3.8 PRINCIPALES REGISTROS SFR 3.9 CLASIFICACIÓN DE INSTRUCCIONES 3.10 DIVISIÓN DE INSTRUCCIONES INSTRUCCIONES QUE MANEJAN REGISTROS INSTRUCCIONES QUE MANEJAN BITS INSTRUCCIONES DE BRINCA INSTRUCCIONES QUE MANEJAN OPERADORES INMEDIATOS INSTRUCCIONES DE CONTROL Y ESPECIALES CAPITULO IV 4.1 COMUNICACIÓN SERIAL ASÍNCRONA 4.2 MODO ASÍNCRONO 4.3 GENERADOR DE BAUDIOS 4.4 TRANSMISOR ASÍNCRONO 4.5 RECEPTOR ASÍNCRONO CAPITULO V 5.1 HERRAMIENTAS 5.2 INTRODUCCIÓN A MPLAB 5.3 USO DE MPLAB

3 CAPITULO VI 6.1 CONCEPTOS DE ROBÓTICA 6.2 ROBOTS INDUSTRIALES 6.3 CLASIFICACIÓN DE ROBOTS 6.4 BRAZO ROBÓTICO K-680 CAPITULO VII 7.1 DESARROLLO 7.2 COMUNICACIÓN COMPUTADORA-PIC16F877A 7.3 SOFTWARE DEL BRAZO ARCHIVOS FUENTE DE C ARCHIVOS ENSAMBLADOR 7.4 HARDWARE DEL BRAZO CAPITULO VIII 8.1 INTERFACE DE USUARIO 49 CAPITULO IX 9.1 CONCLUSIONES 9.2 BIBLIOGRAFÍA 9.3 REFERENCIAS ELECTRÓNICAS APÉNDICE A 54 APÉNDICE B 74 3

4 CAPITULO I 1.1 OBJETIVOS. Diseñar el sistema de control de un brazo robotizado que posee cinco grados de libertad. El diseño debe ser capaz de cubrir los siguientes requerimientos: El usuario podrá mover en tiempo real cada uno de los motores (uno a la vez). El brazo robotizado podrá ejecutar rutinas de movimiento previamente establecidas. Consolidar los conocimientos adquiridos a lo largo de la carrera y aplicarlos al diseño del sistema antes mencionado. Elaborar el presente reporte con la finalidad de que otra persona logre reproducir el mismo sistema de control, con resultados similares o iguales a los obtenidos en este proyecto. 1.2 ALCANCES. El desarrollo de la automatización, especialmente en los procesos en línea, ha permitido al hombre facilitar sus labores e incrementar su productividad. Los brazos robotizados se utilizan principalmente para trabajos repetitivos que requieran precisión o para labores que ponen en peligro la vida humana o las dos cosas al mismo tiempo. Por lo que el alcance de este proyecto es diseñar un sistema de control de un brazo robotizado que pueda ser manejado por un usuario de una forma fácil, eficiente, practica y a bajo costo, esto con la ayuda del PIC 16F877A. 1.3 JUSTIFICACIÓN. El diseño y desarrollo de mejoras en la automatización en las industrias, en la medicina o en los hogares hace que el uso de robots sea más frecuente, por lo que estos tienden a ser cada día más sofisticados pero a su vez la interacción con las personas debe de ser más cómoda, por lo que se tienen que buscar mejores sistemas de control. Tenemos que los microcontroladores son circuitos integrados que poseen todas las características de un computador completo. Puede ser programado para que cumpla una tarea determinada a muy bajo costo. También pueden tener extensas áreas de aplicación, por lo que se exige un gigantesco trabajo de diseño y fabricación. Aprender a manejar y aplicar microcontroladores sólo se consigue desarrollando tácticamente diseños reales. Un ejemplo de ellos es el famoso PIC16F877A de la familia PIC16F8X. Por los beneficios en costos y versatilidad que representa la utilización del PIC16F877A para la manipulación de sistemas de control, lo elegimos para el desarrollo de este proyecto. 4

5 CAPITULO II 2.1 INTRODUCCIÓN. La automatización es algo prácticamente imprescindible en el mundo de la industria actual, dados los niveles de productividad, fiabilidad y rentabilidad que han de cumplir los productos elaborados a fin de ser competitivos en el mercado. Los sistemas propuestos por el mercado actual están apoyados por el empleo de las más conocidas marcas en lo que respecta a sensores. Estos elementos se conectan a potentes unidades PLC ( Controladores Lógicos Programable ) que son las encargadas de procesar la información del mundo exterior en tiempo real, soportando además las comunicaciones con un Centro de Control y aceptando las más diversas topologías de conectividad. Las aplicaciones típicas para estos sistemas son las de automatización de procesos, aplicaciones para Control, Telemando y Telemetría en instalaciones fabriles, hidráulicas y residenciales. Los controladores lógicos programables (PLC s) presentan una serie de ventajas de control que posibilitan amortizar su valor a muy corto plazo. Ofrecen un completo rango en los últimos avances de la tecnología de automatización. El uso de Controladores Lógicos Programables (PLC), comienza en las plantas envasadoras, automotrices o de procesos químicos, y actualmente se extiende más allá del contexto de las industrias hacia aplicaciones tales como sistemas de alarmas, controles de iluminación de centros comerciales o controles de temperatura y humedad en invernaderos. En este momento se puede comentar que en procesos industriales complejos, en los que interviene información de varios sensores, los sistemas de control combinan una gran cantidad de bloques funcionales para controlar que las diferentes máquinas (cintas transportadoras, grúas, estampadoras, brazos mecánicos, etc.) funcionen siguiendo una determinada secuencia de trabajo. Cuando es necesario realizar cambios en la secuencia del proceso (para introducir modificaciones en los productos) es preciso diseñar y construir nuevos circuitos y nuevos cableados entre los elementos de control: esta tarea lleva tiempo y en la producción todo tiempo tiene su costo. Existen dispositivos electrónicos que permiten modificar conexiones entre elementos simplemente pulsando las teclas en un teclado. Las conexiones se "programan". Estos dispositivos reciben la información de los sensores y envían la información a los elementos de salida, de acuerdo con el programa almacenado. El desarrollo de la automatización, especialmente en los procesos en línea, ha permitido al hombre facilitar sus labores e incrementar su productividad. Los brazos robóticos se utilizan principalmente para trabajos repetitivos que requieran precisión o para labores que ponen en peligro la vida humana o las dos cosas al mismo tiempo. 5

6 Para realizar estas funciones es importante dotar al brazo de las herramientas necesarias para su correcto control. Como todo sistema, se tiene variables de entrada, de salida y el proceso requerido para manejar estar señales así como una retroalimentación, para configurar un sistema de lazo cerrado estable. CAPITULO III 3. MICROCONTROLADOR PIC. 3.1 PIC. Un microcontrolador es un Circuito Integrado Programable o Programable Integrated Circuit (PIC) que contiene todos los componentes de un computador, se emplea para realizar una tarea determinada para la cual ha sido programado. Dispone de procesador, memoria para el programa y los datos, líneas de entrada y salida de datos y suele estar asociado a múltiples recursos auxiliares. Puede controlar cualquier cosa y suele estar incluido en el mismo dispositivo que controla. - Máquinas expendedora de productos. - Controles de acceso tanto de personas como de objetos - Máquinas, herramientas, motores y temporizadores. - Sistemas autónomos de control, incendio, humedad, temperatura. etc. - Telefonía, Automatismos, Medicina, Automoción, etc. etc. Para el usuario que por primera ocasión estudia microcontroladores, resulta más sencillo aprender primero a lo referente a la construcción interna del dispositivo y la arquitectura general de los microcontroladores y una vez dominada pasar entonces a los detalles electrónicos de la circuitería y la programación. 3.2 LOS PIC16F87X. Casi todos los fabricantes de microprocesadores lo son también de microcontroladores, en el mercado existen una serie de marcas bastante conocidas y reconocidas como es el caso de Microchip, Motorola, Hitachi, etc. Hemos seleccionado a Microchip y en particular la serie 16F87X, los motivos para usar este dispositivo sobran, el principal de ellos es la abundante información y herramientas de diseño existente en el mercado (tanto local como internacional). También salta a la vista el hecho que es sencillo en el manejo y contiene un buen promedio elevado en los parámetros (velocidad, consumo, tamaño, alimentación). Los PIC16F87X forman una subfamilia de microcontroladores PIC (Peripheral Interface Controller) de gama media de 8 bits. Cuentan con memoria de programa de tipo EEPROM Flash, lo que permite programarlos fácilmente usando un dispositivo programador de PIC. Esta característica facilita sustancialmente el diseño de proyectos, minimizando el tiempo empleado en programar los microcontroladores. Esta subfamilia consta de los siguientes modelos que varían de acuerdo a prestaciones, cantidad de terminales y encapsulados: 6

7 PIC16F870 PIC16F871 PIC16F872 PIC16F873A PIC16F874A PIC16F876A PIC16F877A 3.3 EL PIC16F877A. La "A" final de los modelos PIC16F873A, PIC16F874A, PIC16F876A y PIC16F877A indica que estos modelos cuentan con módulos de comparación analógicos. El hecho de que se clasifiquen como microcontroladores (MCU) de 8 bits hace referencia a la longitud de los datos que manejan las instrucciones, y que se corresponde con el tamaño del bus de datos y el de los registros de la CPU. Se trata de versiones mejoradas del PIC16F84, muy empleado en proyectos sencillos, de educación y de entrenamiento. El diagrama de las terminales del PIC16F877A se muestra en la figura 2, en la tabla 2 una descripción resumida de cada una de estas entradas. Figura 1. Terminales de PIC16F877A. 7

8 Donde: PIN DESCRIPCIÓN OSC1/CLKIN(9) Entrada para el oscilador o cristal externo. OSC2/CLKOUT (10) Salida del oscilador. Este pin debe conectarse al cristal o resonador. En caso de usar una red RC este pin se puede usar como tren de pulsos o reloj cuya frecuencia es 1/4 de OSC1 MCLR/VPP/ THV(1) Este pin es el reset del microcontrolador, también se usa como entrada o pulso de grabación al momento de programar el dispositivo. RA0/AN0(2) Puede actuar como línea digital de E/S o como entrada analógica del conversor AD (canal 0) RA1/AN1(3) Similar a RA0/AN0 RA2/AN2/VREF-(4) Puede actuar como línea digital de E/S o como entrada analógica del conversor AD (canal 2) o entrada negativa de voltaje de referencia RA3/AN3/VREF+(5) Puede actuar como línea digital de E/S o como entrada analógica del conversor AD (canal 3) o entrada positiva de voltaje de referencia RA4/T0CKI (6) Línea digital de E/S o entrada del reloj del timer 0. Salida con colector abierto RA5/SS#/AN4(7) Línea digital de E/S, entrada analógica o selección como esclavo de la puerta serie síncrona. RB0/INT(21) Puerto B pin 0, bidireccional. Este pin puede ser la entrada para solicitar una interrupción. RB1(22) Puerto B pin 1, bidireccional. RB2(23) Puerto B pin 2, bidireccional. RB3/PGM(24) Puerto B pin 3, bidireccional o entrada del voltaje bajo para programación RB4(25) Puerto B pin 4, bidireccional. Puede programarse como petición de interrupción cuando el pin cambia de estado. RB5(26) Puerto B pin 5, bidireccional. Puede programarse como petición de interrupción cuando el pin cambia de estado. RB6/PGC(27) Puerto B pin 6, bidireccional. Puede programarse como petición de interrupción cuando el pin cambia de estado. En la programación serie recibe las señales de reloj. RB7/PGD(28) Puerto B pin 7, bidireccional. Puede programarse como petición de interrupción cuando el pin cambia de estado. En la programación serie actúa como entrada de datos RC0/T1OSO/ T1CKI(11) Línea digital de E/S o salida del oscilador del timer 1 o como entrada de reloj del timer 1 RC1/T1OSI/ CCP2(12) Línea digital de E/S o entrada al oscilador del timer 1 o entrada al módulo captura 2/salida comparación 2/ salida del PWM 2 8

9 PIN DESCRIPCIÓN RC2/CCP1(13) E/S digital. También puede actuar como entrada captura 1,/salida comparación 1/ salida de PWM 1 RC3/SCK/SCL (14) E/S digital o entrada de reloj serie síncrona /salida de los módulos SP1 e I2C. RC4/SDI/SDA (15) E/S digital o entrada de datos en modo SPI o I/O datos en modo I2C RC5/SDO(16) E/S digital o salida digital en modo SPI RC6/TX/CK(17) E/S digital o patita de transmisión de USART asíncrono o como reloj del síncrono RC7/RX/DT(18) E/S digital o receptor del USART asíncrono o como datos en el síncrono RD0/PSP0RD7/PSP7 (19-22, 27-30) Las ocho patitas de esta puerta pueden actuar como E/S digitales o como líneas para la transferencia de información en la comunicación de la puerta paralela esclava. Solo están disponibles en los PIC 16F874/7. RE0/RD#/AN5 (8) E/S digital o señal de lectura para la puerta paralela esclava o entrada analógica canal 5. RE1/WR#/AN6 (9) E/S digital o señal de escritura para la puerta paralela esclava o entrada analógica canal 6. RE2/CS#/AN7 E/S digital o señal de activación/desactivación de la puerta paralela esclava o entrada analógica canal 7. VSS(8,19) Tierra. VDD(20,32) Fuente (5V). Tabla 1. Descripción de las terminales del PIC16F877A. 3.4 CARACTERÍSTICAS RELEVANTES DEL PIC16F877A. Memoria de programa ROM de 8192 x 14 bytes (8K x 14). Memoria de datos RAM de 368 bytes (368 x 8). Memoria de datos EEPROM de 256 bytes (256 x 8). Cinco puertos (33 líneas de E/S). PORTB, PORTC y PORTD de 8 bits cada uno. PORTA de 6 bits. PORTE de 3 bits. Tres temporizadores. Uno de 16 bits (Timer1: TMR1). Dos de 8 bits (Timer0: TMR0, y Timer2: TMR2). Un WDT. Convertidor A/D con cinco canales de entrada y 10 bits de resolución. Dispone de un multiplexor que permite aplicar, a la entrada del CAD, diversas señales analógicas desde sus pines. Catorce posibles fuentes de interrupción. 9

10 El registro de interrupciones, INTCON, contiene algunos bits que actúan como banderas y otros como bits de permiso para que se pueda generar la interrupción. Dos módulos CCP (Capture/Compare/PWM). Son capaces de capturar y comparar impulsos. La captura y la comparación se efectúan con una resolución de 16 bits. Comparador analógico: Internamente se dispone de un Amplificador operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de sus terminales. La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra. Estructura basada en cuatro bancos de 128 bytes. Puerto serial síncrono (SSP) e interfaz de comunicación serial (SCI). La típica USART, orientada a la comunicación entre subsistemas o máquinas (RS-232) y la MSSP, destinada a la comunicación entre diversos circuitos integrados y que admite el protocolo I2C y SPI. Puerto paralelo esclavo (PSP). Comunicación que es más rápida que la comunicación en serie, pero que hipoteca muchas líneas de E/S; ocho del puerto D y tres del puerto E. Arquitectura Harvard. Arquitectura tipo RISC (Conjunto Reducido de Instrucciones de Computadora). Procesador segmentado o Pipeline. Soporta Xtal 20MHz. Voltaje de Operación: 2.0 hasta 5.5VDC. 2 Timers de 8 bits 1 Timer 16 bits 3.5 ARQUITECTURA DEL PIC16F877A EL PIC16F877A de Microchip pertenece al tipo de procesador RICS que es un procesador de instrucciones reducidas, se caracteriza por que el número de instrucciones es pequeño y además casi todas se realizan en la misma cantidad de tiempo. Este tipo de procesador emplea una arquitectura Harvard lo que significa que trabaja las zonas de memoria de programa y datos en forma separada. En el siguiente diagrama se muestra la arquitectura Von Neumann frente a la Harvard: 10

11 Diagrama 1. Arquitectura Von Neumann vs. Harvard. En ambas arquitecturas observamos bloques de memoria, cada bloque tiene posiciones y cada posición un valor. Para recoger o dejar un valor en una determinada posición es necesario primero indicar cuál es la dirección a leer o escribir de la memoria, en consecuencia hay un grupo de líneas que nos permiten hacer esa función conocida como el bus de direcciones, también existe un bus de datos que son líneas paralelas por donde discurren los valores de cada dirección. En el caso de la arquitectura Von Neumann podemos apreciar que existe un único bus de direcciones y de datos. Podemos apreciar como cada posición de memoria tiene una dirección, a su vez la memoria se divide en memoria de programa (conocida como ROM) y memoria de datos (conocida como RAM). En el caso de la arquitectura Harvard existen dos bloques de memoria separados. Un bloque para instrucciones y otro para datos. Note como hay dos buses independientes de direcciones y el bus de instrucciones solo tiene una dirección, a diferencia del bus de datos que es de naturaleza bidireccional. Todo esto sugiere que puede existir una dirección por ejemplo la 0. Entonces tenemos una instrucción en la posición 0 y también un dato en la 0. En el caso de la arquitectura Von Neumann esa dirección es de programa o de instrucción pero no de ambas. La arquitectura Harvard mejora el ancho de banda por que el bus de datos es de 14 bits frente a los de 8 de un bus tradicional Von Neumann por tanto en una sola lectura puede llevar mayor cantidad de datos. 3.6 ARQUITECTURA INTERNA DEL PIC16F877A La estructura interna de este PIC es como se muestra en la figura 2, que se presenta a continuación: 11

12 Figura 2. Arquitectura del PIC16F877A. Se han señalado que el microcontrolador posee varios elementos en forma interna: el procesador, memoria de programa, memoria de datos, periféricos, contadores. Se observa el siguiente diagrama de bloques del PIC16F877A para una mejor comprensión de este. 12

13 Diagrama 2. Arquitectura interna del PIC16F877A. En el diagrama 2 podemos identificar la memoria del programa en la parte superior izquierda con 8K posiciones por 14 bits, también esta presenta la memoria de datos (RAM) de 368 posiciones por 8 bits. La memoria EEPROM 256 posiciones x 8 bits. El procesador propiamente dicho está formado por la ALU (unidad aritmética lógica) el registro de trabajo W. Tenemos los periféricos I/O Port A, B, C, D, E el TMR0 (temporizador contador de eventos), TMR1 y TMR2 entre otros módulos. También se cuenta con un registro de instrucción que se carga cada vez que la ALU solicita una nueva instrucción a procesar. En la parte intermedia se encuentran algunos bloques como son el Status Reg. que es el registro de estado encargado de anotar el estado actual del sistema, cada vez que se ejecuta una instrucción se llevan a cabo cambios dentro del microcontrolador como desborde, acarreo, etc. Cada uno de esos eventos está asociado a un BIT de este registro. Existe un registro de vital importancia que se llama el Program Counter o contador de programa este registro indica la dirección de la instrucción a ejecutar. El registro en cuestión no es necesariamente secuencial, esto es no se incrementa necesariamente de uno en uno ya que puede darse el caso en el que salte dependiendo si hay una instrucción de bifurcación de por medio o puede haber alguna instrucción de llamada a función y/o procedimiento. También se observa el bloque de la pila, la función de la pila es ser un buffer temporal en el que se guarda el contador de programa cada vez que se suscita una llamada a un procedimiento y/o función (incluyendo interrupciones). Por tanto el nivel de anidamiento es de hasta 8 llamadas. También está presente el FSR reg., que es el registro que cumple una función similar a la del contador de programa direccionando en este caso la RAM, el FSR es un puntero a una dirección de la RAM. La aparición de multiplexores se debe a que los datos pueden tener diferentes fuentes. Cuando se programa el microcontrolador se debe siempre tener en mente que es lo que él hace. Cuando se prende asume un valor por defecto, el contador de programa asume la posición cero por tanto el microcontrolador toma la instrucción que se encuentra en esa posición en la memoria de programa y la ejecuta. Al momento de ejecutarla procede a informar si se ha llevado a cabo alguna operación en particular registrándola en el registro de estado (STATUS). Si la instrucción es de salto o bifurcación evaluará las condiciones para saber si continua o no con la siguiente instrucción, en caso que no sea así saltará a otra posición de memoria. En caso que el programa haga un llamado a una función guardará en la pila el valor del contador de programa ejecutará la rutina y al momento que termina restituirá el valor correspondiente para seguir con la siguiente instrucción. 3.7 ORGANIZACIÓN DE LA MEMORIA La memoria se divide en memoria de datos y programa. La de datos a su vez se divide en: SFR (Special Function Register) Registros de propósito especial, son registros que ayudan a configurar el hardware interno así como sirven para escribir o leer valores de los diferentes componente que constituyen el microcontrolador. Por ejemplo el registro trisa que nos permite configurar el modo de trabajo de las líneas del puerto A. 13

14 GFR (General Function Register) Registros de propósito general, son posiciones de memoria que podemos usar para almacenar valores que emplean nuestros programa. La memoria RAM está dividida en cuatro bancos. Antes de acceder a un registro al escribir un programa (para leer o cambiar su contenido), es necesario seleccionar el banco que contiene ese registro. Más tarde vamos a tratar los bits del registro STATUS utilizados para selección del banco. Para simplificar el funcionamiento, los SFR utilizados con más frecuencia tienen la misma dirección en todos los bancos, lo que permite accederlos con facilidad. Tabla 3.7. Bancos de la memoria. También tenemos una memoria EEPROM, con 256 posiciones, para acceder a la memoria no podemos leer o escribir directamente es decir colocar la dirección y obtener o dejar el 14

15 valor. Para trabajarla debemos apoyarnos en registros adicionales de tal forma que la usamos indirectamente. El contador de programa tiene 13 bits con los cuales se pueden direccionar 8K posiciones. Cuando levantamos el microcontrolador el contador de programa siempre apunta a una dirección conocida como el VECTOR DE RESET, la dirección es la posición de memoria 0000h. También existe otro vector llamado de VECTOR DE INTERRUPCIONES que ocupa la posición 0004h. Cuando se lleva a cabo una petición de interrupción el contador de programa va automáticamente a esa posición en busca de la instrucción que atienda la petición de interrupción. Como se ha mencionado la pila trabaja con el contador de programa cada vez que hay una instrucción de llamada a procedimiento o función (call) el contador de programa se almacena allí y va en busca de la rutina, cuando acaba la rutina (con la ejecución de una instrucción return, retfie o retlw) se restituye el valor del contador de programa, la capacidad de la pila es de 8 posiciones en caso que tengamos un desborde (ej. 9 llamadas anidadas) la pila se dice que se desborda y vuelve a 0. Por tanto hemos de pensar que la pila también cuenta con un contador que indica cual es la siguiente dirección vacía. 3.8 PRINCIPALES REGISTROS SFR. Las siguientes líneas describen los principales registros SFR del microcontrolador PIC16F877A. Los bits de cada registro controlan los circuitos diferentes dentro del chip, así que no es posible clasificarlos en grupos especiales. Por esta razón, se describen junto con los procesos que controlan. REGISTRO STATUS El registro STATUS contiene: el estado aritmético de datos en el registro W, el estado RESET, los bits para seleccionar el banco para los datos de la memoria. IRP - Registro de selección de Banco (usado para direccionamiento indirecto) RP1, RP0 - Registro de selección de banco (usado para direccionamiento directo). RP1 RP0 BANCO ACTIVO 0 0 Banco Banco Banco Banco 3 Tabla Registro de selección de banco. 15

16 TO - Time-out bit (bit de salida del temporizador perro guardián) PD - Power-down bit (bit de apagado) Z - Zero bit (bit cero) DC - Digit carry/borrow bit (bit de acarreo/préstamo de dígito) cambia al sumar o al restar si ocurre un "desbordamiento" o un "préstamo" en el resultado. C - Carry/Borrow bit (bit de acarreo/préstamo) cambia al sumar o al restar si ocurre un "desbordamiento" o un "préstamo" en el resultado, o sea si el resultado es mayor de 255 o menor de 0. REGISTRO OPTION_REG El registro OPTION_REG contiene varios bits de control para configurar el pre - escalador del Temporizador 0/WDT, el temporizador Timer0, la interrupción externa y las resistencias pull-up en el puerto PORTB. RBPU - Port B Pull up Enable bit (resistencia Pull Up Puerto B) INTEDG - Interrupt Edge Select bit (bit selector de flanco activo de la interrupción externa) T0CS - TMR0 Clock Source Select bit (bit selector de tipo de reloj para el Timer0) T0SE - TMR0 Source Edge Select bit (bit selector de tipo de flanco en TOCKI) selecciona el flanco (ascendente o descendente) contado por el temporizador Timer0 por el pin RA4/T0CKI. PSA - Prescaler Assignment bit asigna el pre-escalador (hay sólo uno) al temporizador o al WDT. PS2, PS1, PS0 PRESCALER RATE SELECT BITS (BIT SELECTOR DEL VALOR DEL DIVISOR DE FRECUENCIA) El valor del divisor de frecuencia se selecciona al combinar estos tres bits. Como se muestra en la siguiente tabla, el valor del divisor de frecuencia se le asigna al temporizador (Timer0) o al temporizador perro guardián (WDT). PS2 PS1 PS0 TMR0 WDT :2 1: :4 1: :8 1: :16 1: :64 1:32 16

17 :128 1: :256 1:128 Tabla Valor del divisor de frecuencia. Para conseguir el valor del divisor de frecuencia 1:1 cuando el temporizador Timer0 cuenta pulsos, el preescalador debe ser asignado al WDT. En consecuencia, el temporizador Timer0 no utiliza el pre-escalador, sino que cuenta directamente los pulsos generados por el oscilador, lo que era el objetivo. REGISTROS DEL SISTEMA DE INTERRUPCIÓN Al llegar la petición de interrupción, no significa que una interrupción ocurrirá automáticamente, puesto que debe ser habilitada por el usuario (por el programa) también. Por esta razón, hay bits especiales utilizados para habilitar o deshabilitar interrupciones. Es fácil de reconocerlos por las letras IE contenidas en sus nombres (Interrupt Enable Interrupción habilitada). Además, cada interrupción se asocia con otro bit denominado bandera que indica que una petición de interrupción ha llegado sin verificar si está habilitada. Asimismo, se reconocen con facilidad por las dos últimas letras contenidas en sus nombres - IF (Interrupt Flag - Bandera de interrupción). Como hemos visto, toda la idea es muy simple y eficiente. Al llegar la petición de interrupción, primero el bit de bandera se pone a uno. Si el bit IE apropiado está a cero (0), esta condición será ignorada completamente. De lo contrario, ocurre una interrupción. Si varias fuentes de interrupción están habilitadas, es necesario detectar la activa antes de que la rutina de interrupción se ponga a ejecutar. La detección de la fuente se realiza al comprobar los bits de las banderas. Cabe destacar que los bits de cada bandera no se ponen a cero automáticamente, sino por el software, mientras que la ejecución de la rutina de interrupción continúa ejecutándose. Si no hacemos caso a este detalle, ocurrirá otra interrupción inmediatamente después de volver al programa principal, aunque no hay más peticiones de ejecución. Simplemente, la bandera, así como el bit IE, se quedan en uno. Todas las fuentes de interrupción típicas para el microcontrolador PIC16F877A se muestran en la siguiente página. Fíjese en lo siguiente: El bit GIE habilita/deshabilita simultáneamente las interrupciones no enmascaradas. El PEIE bit habilita/deshabilita las interrupciones no enmascaradas de periféricos. Esto no se refiere al temporizador Timer0 y a las fuentes de interrupción del puerto PORTB. Para habilitar una interrupción causada por el cambio del estado lógico en el puerto PORTB, es necesario habilitarla para cada bit por separado. En este caso, los bits del registro IOCB se comportan como los bits IE de control. REGISTRO INTCON 17

18 El registro INTCON contiene varios bits de habilitación y de bandera para el desbordamiento en el registro TMR0, e interrupciones por el cambio del estado en el puerto PORTB y las interrupciones externas en el pin INT. GIE - Global Interrupt Enable bit - (bit de habilitación de interrupciones globales) controla simultáneamente todas las fuentes de interrupciones posibles. PEIE - Peripheral Interrupt Enable bit (bit de habilitación de interrupciones periféricas) es similar al bit GIE, sin embargo controla interrupciones habilitadas por los periféricos. Eso significa que no influye en interrupciones causadas por el temporizador Timer0 o por el cambio del estado en el puerto PORTB o por el cambio en el pin RB0/INT. T0IE - TMR0 Overflow Interrupt Enable bit (bit de habilitación de interrupciones por el desbordamiento del temporizador Timer0) controla interrupciones causadas por el desbordamiento del Timer0. INTE - RB0/INT External Interrupt Enable bit (bit de habilitación de la interrupción externa en RB0) controla interrupciones causadas por el cambio del estado lógico en el pin de entrada RB0/INT (interrupción externa). RBIE - RB Port Change Interrupt Enable bit (bit de habilitación de interrupciones por cambios en el puerto PORTB). Cuando se configuran como entradas, los pines en el puerto PORTB pueden causar una interrupción al cambiar el estado lógico (no importa si se produce bajada o subida de tensión, lo que importa es que se produce un cambio). Este bit determina si una interrupción va a ocurrir. T0IF - TMR0 Overflow Interrupt Flag bit (bit de bandera de interrupción por el desbordamiento del Timer0) detecta el desbordamiento en el registro del temporizador Timer0, o sea el contador se pone a cero. INTF - RB0/INT External Interrupt Flag bit (bit de bandera de interrupción externa en INT) detecta el cambio en el estado lógico en el pin INT. RBIF - RB Port Change Interrupt Flag bit (bit de bandera de interrupción por cambio en el puerto RB) detecta cualquier cambio del estado lógico de alguno de los pines de entrada en el puerto PORTB. REGISTRO PIE1 El registro PIE1 contiene los bits de habilitación de interrupciones periféricas. 18

19 ADIE - A/D Converter Interrupt Enable bit (bit de habilitación de interrupciones del convertidor A/D). RCIE - EUSART Receive Interrupt Enable bit (bit de habilitación de interrupciones de recepción del EUSART). TXIE - EUSART Transmit Interrupt Enable bit (bit de habilitación de interrupciones de transmisión del EUSART). SSPIE - Master Synchronous Serial Port (MSSP) Interrupt Enable bit - (bit de habilitación de la interrupción del puerto serie síncrono maestro (MSSP) habilita generar una petición de interrupción después de cada transmisión de datos por el módulo de comunicación serie síncrona (modo SPI o I2C). CCP1IE - CCP1 Interrupt Enable bit (bit de habilitación de la interrupción del módulo 1 de Comparación/Captura/PWM - CCP1) permite generar una petición de interrupción en el módulo CCP1 utilizado para procesamiento de la señal PWM. TMR2IE - TMR2 to PR2 Match Interrupt Enable bit (bit de habilitación de la interrupción de igualdad entre TMR2 y PR2). TMR1IE - TMR1 Overflow Interrupt Enable bit (bit de habilitación de la interrupción de desbordamiento del temporizador Timer1) habilita generar una petición de interrupción después de cada desbordamiento en el registro del temporizador Timer1, o sea el contador se pone a cero. REGISTRO PIE2 El registro PIE2 también contiene varios bits de habilitación de interrupciones. OSFIE - Oscillator Fail Interrupt Enable bit (bit de habilitación de la interrupción de fallo en el oscilador) C2IE - Comparator C2 Interrupt Enable bit (bit de habilitación de la interrupción del comparador C2) 19

20 C1IE - Comparator C1 Interrupt Enable bit (bit de habilitación de la interrupción del comparador C1) EEIE - EEPROM Write Operation Interrupt Enable bit (bit de habilitación de la interrupción de escritura en la memoria EEPROM) BCLIE - Bus Collision Interrupt Enable bit (bit de habilitación de la interrupción de colisión de bus) ULPWUIE - Ultra Low-Power Wake-up Interrupt Enable bit (bit de habilitación de la interrupción para salir del modo de ultra bajo consumo - la reactivación) CCP2IE - CCP2 Interrupt Enable bit (bit de habilitación de la interrupción del módulo 2 de Comparación/Captura/PWM (CCP2) REGISTRO PIR1 El registro PIR1 contiene los bits de banderas de interrupción. ADIF - A/D Converter Interrupt Flag bit (bit de bandera de la interrupción del convertidor A/D) RCIF - EUSART Receive Interrupt Flag bit (bit de bandera de la interrupción de recepción del EUSART) TXIF - EUSART Transmit Interrupt Flag bit (bit de la interrupción de transmisión del EUSART) SSPIF - Master Synchronous Serial Port (MSSP) Interrupt Flag bit (bit de bandera de la interrupción de puerto serie síncrono maestro) CCP1IF - CCP1 Interrupt Flag bit (bit de bandera de la interrupción del módulo 1 de Comparación/Captura/PWM (CCP1). TMR2IF - Timer2 to PR2 Interrupt Flag bit (bit de bandera de la interrupción de igual dad entre el temporizador Timer2 y el registro PR2) TMR1IF - Timer1 Overflow Interrupt Flag bit (bit de bandera de la interrupción de desbordamiento del temporizador Timer1) REGISTRO PIR2 El registro PIR2 contiene los bits de banderas da la interrupción. 20

21 OSFIF - Oscillator Fail Interrupt Flag bit (bit de bandera de la interrupción de fallo en el oscilador) C2IF - Comparator C2 Interrupt Flag bit (bit de bandera de la interrupción del comparador C2) C1IF - Comparator C1 Interrupt Flag bit (bit de bandera de la interrupción del comparador C1) EEIF - EE Write Operation Interrupt Flag bit (bit de bandera de la interrupción de la operación de escritura en la memoria EEPROM) BCLIF - Bus Collision Interrupt Flag bit (bit de bandera de la interrupción de colisión de bus en el MSSP) ULPWUIF - Ultra Low-power Wake-up Interrupt Flag bit (bit de bandera de la interrupción para salir del modo de ultra bajo consumo - la reactivación) CCP2IF - CCP2 Interrupt Flag bit (bit de la interrupción del módulo 2 de Comparación/Captura/PWM - CCP2) REGISTRO PCON El registro PCON contiene solamente dos bits de banderas utilizados para diferenciar entre un Power-on reset (POR), un Brown-out reset (BOR), un reinicio por el temporizador perro guardián (WDT) y un reinicio externo por el pin MCLR. ULPWUE - Ultra Low-Power Wake-up Enable bit (bit de habilitación para salir del modo de ultra bajo consumo - la reactivación) SBOREN - Software BOR Enable bit (bit de habilitación del BOR por software) POR - Power-on Reset Status bit (bit de estado Power - on reset) BOR - Brown-out Reset Status bit (bit de estado Brown - out reset) 3.9 CLASIFICACIÓN DE INSTRUCCIONES. Todos los modelos de microcontroladores PIC responden a la arquitectura RISC. No solo implica que el número de instrucciones que es capaz de interpretar y ejecutar sea pequeño 21

22 (en el caso del PIC16F877A que consta de 35instrucciones), sino también que consta de las siguientes características: 1. Las instrucciones son simples y rápidas 2. Las instrucciones son ortogonales. Apenas tiene restricciones en el uso de operadores 3. La longitud de las instrucciones y los datos es constante. Todas las instrucciones tienen la misma longitud, 14 bits en los PIC 16X8X, y todos los datos son de un byte. La arquitectura Harvard aísla la memoria de instrucciones de la de datos. Los diferentes formatos que admiten las instrucciones, se clasifican en cinco grandes grupos, atendiendo al tipo de operación que desarrollan, estos son: 1. Operaciones orientadas a manejar registros de tamaño byte. Se divide en tres campos: Campo de código OP de 6 bits. Campo de la dirección del operando fuente (f) de 7bits. Campo que define el operando destino (d) de 1 BIT. 2. Operaciones orientadas a manejar bits. Este formato consta de tres campos: Campo de código OP de 4 bits Campo de la dirección del registro fuente de 7 bits. Campo de la posición del BIT en el registro y es de 3bits. 3. Operaciones que manejan un valor inmediato o literal. Constas de solo dos campos: Campo del código OP con 6 bits. Campo del valor inmediato (k) con 8 bits. 4. Operaciones incondicionales de control del flujo del programa. Este tipo instrucciones efectúan al contenido del contador de programa y sirven para romper la secuencia ordenada de las instrucciones del programa. Consta de dos campos: campo del código OP de 3 bits Campo de la dirección del salto que se carga en el contador de programa de 11 bits. 5.- Operaciones de salto condicional. 22

23 Se dispone de pocas instrucciones que cuando se cumplen una condición dan un brinco (skip). Un brinco es un salto muy pequeño, es decir que solo se salta una instrucción, la que hay detrás de la condicional DIVISIÓN DE INSTRUCCIONES. Las instrucciones de dividen en instrucciones que manejan registros, que manejan Bits, de brinco, instrucciones que manejan operadores inmediatos e instrucciones de control y especiales INSTRUCCIONES QUE MANEJAN REGISTROS. Responden a la sintaxis mnemónico f, d, siendo f y d los dos operadores fuente y destino. El registro f viene reverenciado por la dirección de 7 bits que ocupa, mientras que el destino solo por 1, cuando vale O es el registro W y si vale 1 es el destino fuente. La siguiente tabla muestra las instrucciones que manejan registros. SINTAXIS ADDWF f, d ANDWF f, d CLRF f CLRW COMF f, d DECF f, d INC f, d IORWF f, d MOVF f, d MOVWF f, d NOP RLF f, d RRF f, d SUBWF f, d SWAPF f, d XORWF f, d OPERACIÓN Suma W y f AND W con f borra f (pone los bits en cero) Borra W Complementa f (invierte) Decrementa f Incrementa f OR entre W y f Mueve f Mueve W y f No opera (no hace nada) Rota f a la izquierda a través del cero Rota f a la derecha a través del cero Resta W y f Intercambia XOR de W y f CICLOS SEÑALIZADORE S C, DC, Z Z Z Z Z Z Z Z Z C C C, DC, Z Z Tabla Instrucciones que manejan registros INSTRUCCIONES QUE MANEJAN BITS 23

24 Solo hay dos instrucciones en este grupo. Una de ellas pone a 1 (bsf) cualquier BIT de un registro, mientras que la otra pone a O (bcf). SINTAXIS OPERACIÓN BCF f, d Borra BIT de f BSF f, d Pone a 1 el BIT de f CICLOS SEÑALIZADORES 1 1 Tabla Instrucciones que manejan Bits INSTRUCCIONES DE BRINCO. En los PIC de gama media, solo existen cuatro instrucciones de salto condicional. Dos de ellas según su valor (1 o 0) brincan o no, sólo se saltan la instrucción siguiente a la condición. Las dos instrucciones restantes incrementan o decrementan un registro y la posibilidad del brinco se efectúan si con esa operación el valor del registro ha llegado a cero. Tardan 2 ciclos de instrucciones cuando brinca y un ciclo cuando no se realiza el brinco. SINTAXIS BTFSC f, d BTFSS f, d DEFSZ f, d INCFSZ f, d OPERACIÓN CICLOS SEÑALIZADORES Explora un BIT de f y brinca si vale 0 1 (2) Explora un BIT de f y brinca si vale 1 1(2) Decrementa f y si es 0 brinca 1(2) Decrementa f y si es 1 brinca 1(2) Tabla Instrucciones de brinco Instrucciones que manejan operadores inmediatos. Consta de seis instrucciones que realizan una operación con un valor inmediato de 8 bits, el cual solo tiene dos campos: el del Código OP (6 bits) y el del operador inmediato (8bits). SINTAXIS ADDLW k ANDLW k IORLW k MOVLW k SUBLW k XORLW k OPERACIÓN Suma inmediata con W AND inmediato con W OR inmediato con W Mueve a W a un valor inmediato Resta W de un valor inmediato OR exclusiva con W CICLOS SEÑALIZADORES 1 C, DC, Z 1 Z 1 Z 1 1 C, DC, Z 1 Tabla Instrucciones que manejan operadores inmediatos INSTRUCCIONES DE CONTROL Y ESPECIALES. 24

25 En este grupo se incluyen las instrucciones que rompen la secuencia normal del programa porque alteran el contenido del PC, y las instrucciones especiales. Entre las instrucciones de control se encuentran cinco: GOTO, CALL, RETURN, RETLW, RETFIE. Mientras que en las instrucciones especiales se encuentran dos: CLRWDT y SLEEP. SINTAXIS CALL k CLRWDT GOTO k RETFIE RETLW k RETURN SLEEP OPERACIÓN Llamada a subrutina Borra o refresca el perro guardián Salto incondicional Retorno de interrupciones Retorno a subrutina y carga W= k Retorno de subrutina Pasa al modo de reposo CICLOS SEÑALIZADORES 2 TO #, PD# TO #, PD# Tabla Instrucciones de control y especiales. CAPITULO IV 4.1 COMUNICACIÓN SERIAL ASÍNCRONA. Entre las herramientas que disponen EL PIC16F877A se encuentra el USART, llamado SCI (Serial Comunications Interface), puede funcionar como un sistema de comunicación bidireccional, adaptándose a multitud de periféricos y dispositivos que transfieren información de forma serial, tales como un ordenador. También puede trabajar en modo unidireccional para soportar periféricos como memorias, conversores, etc. El USART (Transmisor/Receptor Síncrono/Asíncrono Serie) puede trabajar de dos formas: Asíncrono (Bidireccional) Síncrono (Unidireccional) En el modo asíncrono, la comunicación serie del USART el PIC16F877A está soportada por las líneas RC6/TX/CK y RC7/RX/DT por las que se mueven los bits a la frecuencia interna de reloj. En el modo síncrono, los bits de información circulan en ambos sentidos por la línea DT a la frecuencia de los impulsos que genere el maestro por la línea CK. 4.2 MODO ASÍNCRONO. En esta forma de comunicación serial, se usa la norma RS-232-C, donde cada palabra de información o dato se envía independientemente de los demás. Suele constar de 8 o 9 bits y van precedidos por un BIT de START (inicio) y detrás de ellos se coloca un BIT de STOP (parada), de acuerdo con las normas del formato estándar NRZ (Non Return-to-Zero) 25

26 Los bits se transfieren a una frecuencia fija y normalizada. La USART transmite y recibe primero el BIT menos significativo. La USART en modo asíncrono contiene los siguientes elementos: Generador de Baudios Circuito de Muestreo Transmisor Asíncrono Receptor Asíncrono 4.3 GENERADOR DE BAUDIOS. Para el protocolo asíncrono RS-232-C, la frecuencia en baudios (bits por segundo) a la que se realiza la transferencia se debe efectuar a un valor normalizado: 330, 600, 1200, 2400, 4800, 9600, 19200, 38400, etc. Para generar esta frecuencia, el USART dispone de un generador de frecuencia en Baudios, BRG, cuyo valor es controlado por el contenido grabado en el registro SPBRG. Aparte del valor X cargado en el registro SPBRG, la frecuencia en baudios del generador depende del BIT BRGH del registro TXSTA. En el caso de que BRGH = 0 se trabaja en baja velocidad y si BRGH = 1 se trabaja en alta velocidad. Según este BIT se obtendrá el valor de una constante K necesaria en la determinación de la frecuencia de funcionamiento. Donde: X es el valor cargado en el registro SPBRG. Si BRG = 0, baja velocidad y K = 64 Si BRG = 1, baja velocidad y K = TRANSMISOR ASÍNCRONO. La figura muestra el diagrama por bloques de la sección de transmisión del USART en modo asíncrono. 26

27 Figura 4.4. Transmisor asíncrono. El dato que se desea transmitir por el USART se deposita en el registro TXREG y a continuación se traspasa al registro de desplazamiento TSR, que va sacando los bits secuencialmente y a la frecuencia establecida. Además, antes de los bits, el dato de información incluye un BIT de inicio y después de sacar todos los bits añade un BIT de parada. El USART receptor recibe, uno a uno, los bits, elimina los de control y los de información una vez que han llenado el registro de desplazamiento RSR los traslada automáticamente al registro RCREG, donde quedan disponibles para su posterior procesamiento. Si se observa el diagrama de bloques de la sección transmisora del USART. El núcleo está constituido por el registro de desplazamiento TSR, que obtiene el dato desde el registro TXREG y luego lo va desplazando y sacando bit a bit, en serie, por la línea RC6/TX/CK. El primer bit que sale es el de menos peso. El dato a transferir se carga por software en TXREG y se transfiere al TSR en cuanto se haya transmitido el bit de parada del dato anterior. LA transferencia entre los dos registros se realiza en un ciclo y entonces el señalizador TXIF se pone a 1, para advertir que el registro de transmisión se ha vaciado. También en este momento puede producirse una interrupción si se ha posibilitado el uso de interrupciones. Cuando se escribe otro dato sobre TXREG, l señalizador TXIF se pone a 0. El bit TRMT sirve para indicar el estado del registro TSR y vale 1 cuando está vacío. La secuencia de pasos a seguir para una transmisión en el USART es la siguiente: Configurar las líneas RC6/TX/CK como salida y RC7/RX/DT como entrada. Asignar SYNC=0 y SPEN=1 para activar el USART como asíncrono. Si se va a trabajar con interrupción, asignar TXIE=1, además de habilitar las interrupciones. Si el dato consta de 9 bits, en lugar de los 8 típicos, asignar el bit TX9=1. El noveno bit se colocará en TX9D (TXSTA) Se carga el valor adecuado en el registro SPBRG, para producir la frecuencia de trabajo deseada. Hay que controlar el bit BRGH (alta y baja velocidad) Activar la transmisión con TXEN = 1. El bit TXIF tendrá valor 1; ya que TXREG se encuentra vació. Cargar en TXREG el dato a transmitir. Comienza la transmisión. 4.5 RECEPTOR ASÍNCRONO. La figura muestra el diagrama de bloques de la sección receptora del USART 27

28 Figura 4.5. Receptor asíncrono. Los datos se reciben en serie, bit a bit, por la línea RC7/RX/DT y se van introduciendo secuencialmente en el registro de desplazamiento RSR que funciona a una frecuencia 16 veces más rápida que la de trabajo (baud rate). Cuando el dato consta de 9 bits hay que programar el bit RX9 = 1 y el noveno bit de información se colocará en el bit RX9D del registro RCSTA. Figura Receptor asíncrono completo. Una vez que el modo asíncrono ha sido seleccionado, la recepción es habilitada colocando a 1-lógico el bit CREN (RCSTA<4>). El corazón de la recepción serial es el registro de corrimiento de recepción (RSR). Después de detectar el bit de parada el dato presente en RSR es transferida al registro RCREG (si es que está vacío). Si la transferencia ha sido completada con éxito el RCIF (PIR1<5>) es puesto a 1-lógico. Si lo deseamos podemos usar esta característica para trabajar interrupciones. Para ello deberemos habilitar el bit 28

29 RCIE (PIE1<5>). El bit RCIF solo es de lectura y colocado a 0-lógico por hardware, es decir cuando el registro RCREG está vacío. Al parecer el registro RCREG es un solo registro pero no es así, el registro RCREG es una suerte de pila de dos posiciones. Por tanto es capaz de almacenar 2 datos (bytes) y mantener un tercer dato en RSR. Si la pila está llena y se llena el RSR (tercer dato) es decir llega el bit de stop de ese tercer dato el microcontrolador procede a colocar a 1-lógico el bit OERR (over run error bit) y el valor presente en RSR se pierde. De darse esta situación lo que debemos hacer es rescatar los dos datos que están en la pila de RCREG. Luego resetear el OERR, para eso es necesario resetear el bit CREN (ponerlo a 0-lógico y luego a 1-lógico). Cuando se activa el bit OERR las transferencias de RSR a RCREG son deshabilitadas por lo tanto debemos cumplir con hacer el reset del bit CREN para normalizar la recepción. Hay otro bit que también es importante señalar y es el bit FERR (RCSTA<2>) error de frame o trama o marco. El bit FERR se coloca a 1-lógico si detecta un 0-lógico como bit de parada. Por lo tanto antes de leer lo que contiene el registro RCREG es necesario revisar el valor de los bits FERR y OERR. La siguiente es la secuencia de pasos a realizar para configurar la recepción asíncrona: Inicializar el registro SPBRG con el valor apropiado que genere los baudios necesarios. Colocar un valor al bit BRGH en función, si se va o no a transmitir en alta velocidad. Habilitar la puerta serial asíncrona colocando a 0-lógico el bit SYNC y a 1-lógico el bit SPEN. Si se va a trabajar con interrupción, asignar RCIE=1, además de habilitar las interrupciones. Habilitar la recepción colocando a 1-lógico el bit CREN. El bit RCIF se colocará a 1-lógico cuando un dato llegue completo al microcontrolador y una interrupción se generará si es que se ha reseteado el bit RCIE. Leer el registro RCSTA para obtener el valor del noveno bit (si es que está trabajando con 9 bits de datos) y determinar si hubo error en la comunicación (revisar los bits OERR y FERR). Si no hubo error lea los 8 bits de datos del registro RCREG. Si no hubo algún error resetear el bit CREN. CAPITULO V 5.1 HERRAMIENTAS. Para programar es necesario contar con herramientas en hardware y software, en el mercado existen muchas herramientas que van de ensambladores a simuladores, y emuladores. Un ejemplo de una herramienta es el IDE que es un entorno de desarrollo integrado (en inglés integrated development environment). Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solos o pueden ser parte de aplicaciones existentes. El 29

30 lenguaje Visual Basic, por ejemplo, puede ser usado dentro de las aplicaciones de Microsoft Office, lo que hace posible escribir sentencias Visual Basic en forma de macros para Microsoft Word. Los IDE proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación tales como C++, Python, Java, C#, Delphi, Visual Basic, MPLAB etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto. 5.2 INTRODUCCIÓN A MPLAB. El MPLAB es un "Entorno de Desarrollo Integrado" (Integrated Development Environment, IDE) que corre en "Windows", mediante el cual se pueden desarrollar aplicaciones para los microcontroladores de las familias PIC 16/17. Con el MPLAB se pueden escribir, depurar y optimizar los programas de diseños con PIC 16/17. El MPLAB incluye un editor de texto, un simulador y un organizador de proyectos. Para comenzar un programa desde cero para luego grabarlo, en MPLAB los pasos a seguir son: 1. Crear un nuevo archivo con extensión.asm y nombre cualquiera. 2. Crear un Proyecto nuevo eligiendo un nombre y ubicación. 3. Agregar el archivo.asm. 4. Elegir el microcontrolador a utilizar desde SELECT DEVICE del menú CONFIGURE. Una vez realizado esto, se está en condiciones de empezar a escribir el programa respetando las directivas necesarias y la sintaxis para luego compilarlo y grabarlo en el PIC. Por otra parte el MPLAB, también soporta al emulador PICMASTER y a otras herramientas de desarrollo de Microchip como el PICSTAR-Plus. Con el MPLAB se puede: Depurar sus programas fuentes. Detectar errores automáticamente en sus programas fuente para editarlos. Depurar los programas utilizando puntos de corte (breakpoints) mediante valores de los registros internos. Observar el flujo del programa con el simulador MPLAB-SIM Ó seguirlo en tiempo real utilizando el emulador PICMASTER. Realizar medidas de tiempo utilizando un cronometro. Mirar variables en las ventanas de observación. Encontrar respuestas rápidas a sus preguntas, utilizando la ayuda en línea del MPLAB. 5.3 USO DE MPLAB. Cada vez que se use el MPLAB para programar aplicaciones se debe ejecutar la siguiente secuencia de pasos: 30

31 1. Ingresar al MPLAB: Inicio-> Programas-> Microchip MPLAB-> MPLAB o haga doble clic sobre el icono del programa en el escritorio: 2. Crear un proyecto: Primero con ayuda del explorador de WINDOWS cree una carpeta de trabajo: c:\archivos de Programa\MPLAB\PROYECTO La idea es contar con una carpeta en la cual coloquemos nuestros trabajos. El MPLAB cuenta, como toda aplicación en WINDOWS, con una barra de menús, una barra de iconos y una de estado en la parte inferior. Abra el menú PROJECT y elija la opción NEW. Asigne un nombre al proyecto (por ejemplo papb) y asegúrese que el proyecto sea creado en la carpeta CURSO además el campo DEVELOPMENT MODE debe estar con la opción MPLAB-SIM 16F877A. Como lo muestra la siguiente figura: Presione el botón OK. 31

32 3. Editar el programa Ahora que contamos con el recipiente el siguiente paso consiste en adicionar el código; para eso nos apoyaremos en el editor. Abra un nuevo archivo: Ingrese al menú EDIT y elija la opción NEW. Notara como se muestra un documento nuevo. Ingrese el código en ensamblador que necesita como lo muestra la siguiente figura: Ahora guarde el archivo. Asegúrese que se cree en la misma carpeta donde está el proyecto (CURSO) coloque un nombre (PAPB.ASM) con extensión ASM: Ahora incluya el archivo papb.asm como parte del proyecto. Menú PROJECT y elija la opción EDIT PROJECT Haga clic en el botón ADD NODE, use la ventana para seleccionar el archivo papb.asm 32

33 4. Ensamble el programa Una vez que el programa esta listo llamamos al ensamblador (MPASMWIN): Menú PROJECT y elija la opción BUILD ALL. Si el código esta libre de errores aparecerá una ventana similar a la siguiente. Si ha cometido algún error de sintaxis el MPASMWIN le indicara en una ventana la línea y el error a fin que lo solucione. Corríjalo y vuelva a compilar hasta que no haya problemas. 5. Mostrar los datos relevantes Antes de entrar al modo de simulación debe asegurarse que el proyecto tiene habilitado el simulador (MPSIM). Ingrese al menú OPTIONS elija DEVELOPMENT MODE 33

34 Para observar lo que va a suceder en el microcontrolador debemos abrir las ventanas que nos muestran los datos relevantes para ello ingrese al menú WINDOWS observará las siguiente figura: Por el momento solo habilitaremos las siguientes ventanas: Special Function Register: Nos muestra los registros de configuración del microcontrolador File Register. Nos muestra la zona de memoria de datos (GFR+SFR) Stopwatch: Muestra un clock para la evolución del programa paso a paso Stack: Muestra la pila Una vez abiertas las ventanas hay que ordenarlas en la pantalla (works pace) a fin que se vean a la vez: Recuerde que el microcontrolador tiene un registro llamado PC (contador de programa) que le indica que instrucción debe ejecutar (puede ver parte del valor en la ventana Special Function Register - pcl). Cada uno de los item dentro del submenú RUN le indica a la simulación que debe hacer con el contador de programa. 34

35 6. Simulación La simulación propiamente dicha se hace a través del menú DEBUG: Si presiona la opción RESET (F6) el programa se detiene y el contador de programa se va a 0 (vector de reset). Vamos a ejecutar el programa instrucción por instrucción. Para ello ejecute la opción STEP (F7) note como es que aparece un cursor en la ventana de editor y algunos valores de las demás ventanas se han modificado (los valores que se han modificado siempre aparecen en color rojo). Para continuar con la simulación paso a paso vuelva a ejecutar la opción STEP (F7) y observe que pasa en la pantalla. 35

36 Ahora resetear el programa (opción RESET -F6). Otra forma de ver como es la evolución del programa sin necesidad de apretar la secuencia paso a paso es a través de la opción ANIMATE. Ejecútela y observe que es lo que pasa. Para salir del estado de animación es necesario usar la opción HALT (F5) del submenú run o presione el icono del semáforo rojo. También contamos con una opción que hace que el microcontrolador corra el programa libremente esa es la opción RUN (F9) o presione el icono del semáforo verde, cuando ejecute esta acción note como la barra de estado (parte baja de la pantalla) cambia de color a amarillo. Para salir elija nuevamente la opción HALT. 7. Modificando las entradas El MPLAB cuenta con opciones que nos permiten variar las entradas durante la simulación a fin de observar el comportamiento del programa. Ingrese al menú DEBUG y seleccione el submenú SIMULATOR STIMULUS, observará que presenta cuatro opciones. Por el momento trabajaremos con la primera. Elija ASYNCHRONOUS STIMULUS. Observará la siguiente ventana: 36

37 Podemos asignar a cada botón (de los 12 disponibles) uno de los pines del PIC. Haga clic con el botón derecho del mouse sobre alguno de los botones (menú de contexto) podemos asignar el botón a un pin y además definirá el tipo de estímulo. Pulse, equivale a ingresar un pulso en el pin Low, equivale a colocar 0 en el pin High, equivale a colocar 1 en el pin Toggle, es un interruptor que oscila entre 1 y 0. Si lo presiona una vez irá a 0 si lo presiona de nuevo irá a 1 y así sucesivamente. Tome 4 botones y asígnelos a RA0, RA1, RA2 y RA3 asegúrese que sean del tipo Toggle, como lo muestra la figura adjunta. Note como la ventana queda flotando no la cierre ubíquela en alguna zona de la pantalla que no estorbe la visibilidad de la pantalla. Para probar que funciona ingrese al menú DEBUG elija STEP y continué hasta que el programa entre en el bucle de lector escritura. Haga un clic sobre uno de los botones recién creados y vuelva a avanzar en la simulación (presione F7). Notará como es que el valor del puerto A en la ventana de SPECIAL FUNCTION REGISTER ha variado: Modifique el estado de cada uno de los botones y simule el programa para ver que sucede. También es posible combinar el ASYNCHRONOUS STIMULUS con la opción ANIMATE del submenú DEBUG. Para ello resetear el programa, a continuación active la opción ANIMATE (mantenga abierta la ventana de ASYNCHRONOUS STIMULUS). Ahora haga clic sobre los botones asignados a RA

38 CAPITULO VI 6.1 CONCEPTOS DE ROBÓTICA. 38

39 De forma general, la robótica se define corno: El conjunto de conocimientos teóricos y prácticos que permiten concebir, realizar y automatizar sistemas basados en estructuras mecánicas poli articuladas, dotados de un determinado grado de "inteligencia" y destinados a la producción industrial o a la sustitución del hombre en muy diversas tareas. Un sistema robótico puede describirse, como "Aquel que es capaz de recibir información, de comprender su entorno a través del empleo de modelos, de formular y de ejecutar planes, y de controlar o supervisar su operación". La robótica es esencialmente pluridisciplinaria y se apoya en gran medida en los progresos de la microelectrónica y de la informática, así como en los de nuevas disciplinas tales como el reconocimiento de patrones y de inteligencia artificial. 6.2 ROBOTS INDUSTRIALES Un robot industrial tal como se define en la norma ISO 8373 es: Un control automático, un manipulador reprogramable, polivalente programable en tres o más ejes, los cuales pueden ser fijos o móviles en el lugar para su uso, en aplicaciones de automatización industrial esto significa que los puntos a tomar en cuenta son: Reprogramable: cuyos movimientos programados o las funciones auxiliares pueden ser modificados sin alteraciones físicas. Multipropósito: susceptible de ser adaptado a una aplicación diferente con alteraciones físicas. Alteraciones físicas: la alteración de la estructura mecánica o sistema de control, excepto para los cambios de cintas de programación, ROM, etc. Eje: la dirección se utiliza para especificar el movimiento del robot en un modo lineal o rotativo. Por otro lado los robots de servicio no tienen una definición estricta de aceptación internacional, que, entre otras cosas, que delimita a partir de otros tipos de equipos, en particular, el robot manipulador industrial. IFR, sin embargo, han adoptado una definición preliminar: Un robot de servicio es un robot que opera semi o totalmente autónoma para realizar servicios útiles para el bienestar de los seres humanos y equipos, excluyendo las operaciones de fabricación. Con esta definición, la manipulación de los robots industriales también podrían ser considerados como robots de servicio, siempre que se instalen en las operaciones de fabricación. Los robots de servicio pueden o no puede estar equipado con una estructura de brazo como es el robot industrial. A menudo, pero no siempre, los robots de servicio son móviles. En algunos casos, los robots de servicio consisten en una plataforma móvil en el que uno o varios brazos están conectados y controlados en el mismo modo que los brazos del robot industrial. Debido a su multitud de formas y estructuras, así como áreas de aplicación, robots de servicio no son fáciles de definir. 6.3 CLASIFICACIÓN DE ROBOTS 39

40 En la actualidad los robots se usan de manera extensa en la industria, siendo un elemento indispensable en una gran parte de los procesos de manufactura. Impulsados principalmente por el sector del automóvil, los robots han dejado de ser máquinas misteriosas propias de la ciencia-ficción para ser un elemento más de muchos de los talleres y líneas de producción. Por su propia definición el robot industrial es multifuncional, esto es, puede ser aplicado a un número, en principio ilimitado, de funciones. No obstante, la práctica ha demostrado que su adaptación es óptima en determinados procesos (soldadura, paletización, etc.) en los que hoy día el robot es sin duda alguna, la solución más rentable. Junto con estas aplicaciones, ya arraigadas, hay otras novedosas en las que si bien la utilización del robot no se realiza a gran escala, si se justifica su aplicación por las condiciones intrínsecas del medio de trabajo (ambientes contaminados, salas asépticas, construcción, etc.) o la elevada exigencia en cuanto a calidad de los resultados (medicina, etc.). Estos robots se han venido llamando robots de servicio. La Federación Internacional de la Robótica (IFR) estableció en 1998 una clasificación de las aplicaciones de la Robótica en el sector manufacturero: Manipulación en fundición. Manipulación en moldeado de plásticos. Manipulación en tratamientos térmicos. Manipulación en la forja y estampación. Soldadura. Aplicación de materiales. Mecanización. Otros procesos. Montaje. Paletización. Medición, inspección, control de calidad. Manipulación de materiales. 6.4 BRAZO ROBÓTICO K-680 El brazo robótico que se usó en este proyecto es el k-680 de STEREN. Este brazo posee cinco motores de c.d., que son los motes que se controlan para el movimiento en cinco grados de libertad del brazo. Las características técnicas del brazo son: Abertura máxima de la tenaza: 1,77 pulgadas Movimiento vertical de la tenaza:

41 Movimiento vertical de la parte superior del brazo: 120 Movimiento vertical de la parte inferior del brazo: 180 Movimiento horizontal de la base del brazo: 270 Alimentación: 6 Vcc. A continuación se muestra una imagen de dicho brazo. Figura 6.4. Brazo robótico de steren k-680. CAPITULO VII 7.1 DESARROLLO 41

42 El control del brazo robótico se realiza a través de una interfaz programada en lenguaje C que se encarga de mandar señales o datos de control al PIC167877A por medio del puerto serial de la PC. Para que estos datos puedan fluir entre la PC y el brazo se necesitan interfaces que conecten ambos equipos. Para ello, se usó un PIC que lee, y envía esta información a los motores del brazo, todo esto es a través de un protocolo de comunicación establecido entre la PC y el PIC. Dicho de otra forma la información sale de la PC por el puerto COM1, llega al PIC16F877A, en donde es procesada y enviada para su amplificación por medio de un arreglo de puentes Darlington para finalmente llegar a cada uno de los motores y llevar a cabo cada uno de los movimientos elegidos por el usuario, en la siguiente figura se muestra la estructura general del sistema de control. Figura 7.1. Sistema de control del Brazo Robótico. 7.2 COMUNICACIÓN COMPUTADORA-PIC16F877A. La comunicación serial con la computadora se implementó a través del modulo USART (Universal Synchronous Asynchronous Receiver Transmitter) del PIC 16F877A, como ya se explico en capítulo IV y haciendo uso a la teoría tenemos que para esta comunicación serial se estable que esta queda con las siguientes características: Velocidad: 2400 baudios. Sin bit de paridad. 8 bits de datos. 1 bit de paro. En esta forma de comunicación serial, se usa la norma RS-232, donde cada palabra de información o dato se envía independientemente de los demás. Donde para este caso consta de 9 bits de acuerdo con las normas del formato estándar NRZ (Non Return-to-Zero). Es decir una vez abierta la interfaz de comunicaciones de datos digitales como lo es el puerto COM1 la PC empieza a transmitir la información la cual es transmitida bit a bit, 42

43 enviando uno a la vez. En este caso, se envía en primer lugar una señal inicial anterior al primer bit de cada byte, para la palabra codificada. Una vez enviado el código correspondiente, se envía inmediatamente una señal de stop después de cada palabra codificada. Donde la señal de inicio (start) sirve para preparar al mecanismo de recepción o receptor, la llegada y registro de un símbolo, mientras que la señal de stop sirve para predisponer al mecanismo de recepción para que tome un descanso y se prepare para la recepción de la nueva palabra. Se usa la típica transmisión start-stop que se usa en la transmisión de códigos ASCII a través del puerto RS-232, el envió de palabras al PIC se puede ver como en la figura siguiente: Figura 7.2. Transmisión PC-PIC. 7.3 SOFTWARE DEL BRAZO. Para poder llevar a cabo el sistema de control del brazo robótico fue necesario desarrollar una serie de programas que interactuaran entre si, por parte de la PC usamos lenguaje C y en el PIC lenguaje ensamblador. Es requisito indispensable tener bases sobre programación en C, ya que en esta redacción no se encontraran elementos de gran ayuda para aprender a programar en C, pero los programas en este lenguaje están debidamente comentados en el apéndice A, por lo que no es difícil comprender el comportamiento del programa, los conocimientos previos que se recomienda tener es saber como manejar de archivos, o los requerimientos mínimos son el saber como compilar y ejecutar un archivo en lenguaje C. Para los archivos en ensamblador se dió una explicación breve en los capítulos anteriores, esta explicación abarco las instrucciones que se usaron así como el manejo de MPLAB para los archivos en ensamblador. A continuación se habla de estos archivos para una mejor comprensión de cada uno de ellos, reiterando que en los apéndices A y B se encuentran estos debidamente comentados ARCHIVOS FUENTES DE C A continuación se presenta una breve descripción del diagrama a bloques de los archivos fuentes de C necesarios para establecer la comunicación serial entre la computadora y el microcontrolador PIC16F877A. 43

44 Los archivos con los que se deben de contar son: COM.H, COM.C y MENU.C. Estos archivos deben de encontrarse en la misma carpeta, por que se usan como #include en COM.C y en MENU.C, cabe señalar que los códigos de estos archivos se encuentran en el Apéndice A. A continuación se muestra una representación gráfica de cómo se relacionan dichos archivos: Figura Relación de archivos de C requeridos para la comunicación serial. También se presenta una breve explicación de la función de los archivos mencionados anteriormente: COM.H Este archivo contiene definiciones de las estructuras, constantes y prototipos de funciones utilizadas por el código de la interfaz RS-232 incluido en el archivo COM.C. El programa define un buffer de 256 bytes utilizado para los buffers I/O, simplificando la actualización de los apuntadores. Define una estructura para el puerto COM y contiene la definición de las direcciones de la USART. COM.C Contiene un grupo de definiciones que son usadas para acceder a los registros y los bits de la USART. Contiene la subrutina de atención a la interrupción (ISR). Contiene la subrutina para abrir el puerto RS-232 y la que configura los parámetros del puerto (velocidad de transmisión, bit de paridad, número de bits de datos y el número de bits de paro). La ISR identifica el tipo de interrupción (de transmisión o recepción). 44

45 La ISR de transmisión verifica que el buffer de transmisión este vacío, sino envía el siguiente dato del buffer a la UART para ser transmitido. Cuando el buffer está vacío, la interrupción por transmisión se deshabilita. La ISR de recepción se llama cuando se lee un dato. Si el buffer de recepción no está lleno, lo almacena, sino es así, lo descarta. Antes de salir del programa, cierra el puerto COM y desactiva las interrupciones del puerto. MENU.C Este archivo contiene el procedimiento main () para el programa que controla las opciones para el control del brazo robótico. Hace las llamadas de las subrutinas para abrir el puerto de comunicaciones COM1 y definir la velocidad de transmisión, el bit de paridad, el número de bits de datos y de paro. Una vez que se ha abierto el puerto COM1, se despliega el siguiente menú: o F1 - Movimiento Manual o F2 - Reproducir Rutina o ESC- Salir del menú La opción F1 - Movimiento Manual despliega el siguiente submenú: o o o o o o F1 - Mover Motor 1 F2 - Mover Motor 2 F3 - Mover Motor 3 F4 - Mover Motor 4 F5 - Mover Motor 5 ESC- Salir del menú - A su vez cada uno de estos menús despliega las siguientes opciones: 1) Mover a la derecha 2) Mover a la izquierda 3) Detener ESC- Salir de configuración. La opción F2 - Reproducir Rutina. Repite los movimientos realizados en la opción F1 (Movimiento Manual). 45

46 Al seleccionar la opción ESC- Salir del menú se llama a la subrutina que cierra el puerto de comunicaciones. Los pasos detallados de cada una de las ventanas se explicaran con mayor claridad en el capítulo ARCHIVOS ENSAMBLADOR. Antes de intentar codificar es conveniente revisar algunos conceptos breves de las partes que componen un programa en ensamblador para el PIC16F877 usando el MPLAB. Además de las instrucciones que necesitamos (explicadas en el capítulo III) es necesario revisar las directivas de compilación que son comandos que permiten mejorar la programación. DIRECTIVA ORG [<etiqueta>] ORG <exp> Sirve para indicar la dirección de memoria en la cual será colocada, el código generado a continuación. Si el ORG no es indicado, se empieza en la dirección 0. Ejemplo ORG 0x04 nop Indica que el siguiente nop se colocará en la dirección 0x04 de la dirección de programa. DIRECTIVA EQU <identificador> EQU <expresión> Permite asignar el valor de expresión al identificador. El general el identificador es un nombre que le es más familiar al programador. Ejemplo: CONF_ADCON1 EQU b' ' Crea el identificador CONF_ADCON1 con valor 0x06 DIRECTIVA END Es de uso obligatorio y siempre se coloca al final del programa sirve para marcar el final del programa. El MPLAB solo reconoce las líneas que estén escritas previas a la aparición de la directiva END. DIRECTIVA LIST Sirve para indicarle al MPLAB cual es el formato del archivo *.list dentro de los parámetros esta el tipo de procesador que se va a emplear. Ejemplo: list p=16f877 46

47 DIRECTIVA INCLUDE include <file> Sirve para incluir en el ensamblado el archivo indicado por el parámetro file. Es como si el file fuera parte del archivo, como si se hubiera situado en la posición en la cual la directiva aparece. El parámetro file puede incluir el path o camino en el cual se encuentra el fichero a incluir. En caso se omita asumirá los directorios del MPLAB y del archivo fuente. Ejemplo include <p16f877.inc> Incluye el archivo p16f877.inc que contiene las etiquetas genéricas del PIC16F877. Los archivos ensamblador se encuentran en el Apéndice B, y en él se encuentran detallados cada uno de los pasos a seguir en los diferentes procesos del código. Se incluye una macro en el archivo ASM, en la cual se hace la elección de bancos por medio del registro STATUS, además se encuentran más instrucciones que nos servirán a lo largo del programa ensamblador Proyecto.asm. Después de la complicación de Proyecto.asm, se tiene que grabar el PIC16F877A con ayuda del grabador PICSTAR PLUS de Microchip. 7.4 HARDWARE DEL BRAZO. El armado del brazo se lleva a cabo con ayuda del instructivo contenido en el Kit del brazo k-680 de Steren. Para llevar a cabo el armado del circuito para el control del brazo robótico se necesitan los siguientes materiales y equipo: Lista de materiales (Simbología basada en el diagrama del circuito armado de la figura 7.4) C1 a C5 Capacitores de 1μF C6 y C7 Capacitores de 33ηF D1 a D5 Diodos 1N4001 (configuración en Puente Darlington) J1 Conector DB9 J2 Puerto MOTORES J3 Puerto SENSORES R0 a R5 Resistencias de 1KΩ SW1 DipSwitch U1 Driver Para Rx y Tx Serial MAX232 U2 Micro controlador PIC16F877A U3 a U5 Driver Buffer L293B X Oscilador De Cristal 4MHz El diagrama de conexión para el control del brazo robótico se presenta a continuación: 47

48 Figura 7.4. Esquema de conexiones para el control del brazo robótico En donde el conector DB9 se conecta como se puede observar al MAX232 estableciendo de esa forma la interfaz entre la PC y el PIC16F877A, se puede ver que se usa el registro TXD 48

49 para la transmisión y el registro RXD para la recepción, esto de acuerdo con lo visto en el capítulo IV con respecto a transmisión serial. Teniendo en cuenta las características mencionadas de transmisión como son: Velocidad: 2400 baudios. Sin bit de paridad. 8 bits de datos. 1 bit de paro. De igual forma que en la entrada del PIC, se observa que la salida se amplifica haciendo uso de Drivers Buffers (L293B) y de diodos 1N4001 en configuración de Puente Darlington, y de esta forma llegar a los motores para un mejor funcionamiento: En la figura 7.4 se tiene el puerto de sensores (J3), de los que no se había hablado ya que durante las pruebas en el brazo se observó que se necesitaba un límite de paro para los motores, ya que sin este límite las partes plásticas de los motores podrían sufrir daños cuando el motor girara indefinidamente, ya que por la estructura externa del brazo esto no puede suceder, un ejemplo de esto serían las tenazas, cuando estas han cerrado o abierto por completo el chasis del brazo no permita que se abran más y ocasiona que si los motores siguen girando las partes plásticas se desgasten rápidamente y no funciona de una forma correcta, es por ese motivo que nos dimos a la tarea de cambiar el software dentro del código en ensamblador para que permitiera tener sensores, que registraran a los motores cuando estos están en su límite de trabajo. Cuando los sensores se encienden automáticamente se apagan los motores que se encuentran en un límite de trabajo esto con la finalidad de no sufrir desgaste. CAPITULO VIII 49

50 8.1 INTERFACE DE USUARIO. Una vez obtenido todos los elementos de hardware y software, se procede a explicar la interface de usuario, que como ya se mencionó, fue implementada en C. La pantalla inicial es la que se muestra en la figura siguiente, en esta nos da la bienvenida y espera que se oprima una tecla si se comprueba que el puerto COM1 se abrió con éxito. Figura 8.1. Pantalla inicial. Una vez presionada una tecla, aparece el menú principal en el cual se puede seleccionar el movimiento manual del brazo o reproducir una rutina previamente grabada. Figura 8.2. Plantilla principal. En caso de seleccionar la opción F1 MOVIMIENTO MANUAL se despliega el siguiente menú. 50

Practica de PIC 16F84

Practica de PIC 16F84 Practica de PIC 16F84 Los PIC son circuitos que pueden controlar dispositivos y diferentes sistemas, son como los PLC (controles lógico programable), además debo decir que es un circuito que tiene todas

Más detalles

Taller de Firmware. Introducción al PIC16F877. Facultad de Ingeniería Instituto de Com putación

Taller de Firmware. Introducción al PIC16F877. Facultad de Ingeniería Instituto de Com putación Taller de Firmware Introducción al PIC16F877 Facultad de Ingeniería Instituto de Com putación Contenido Introducción a los microcontroladores PIC. Presentación del PIC 16F877. Introducción a los microcontroladores

Más detalles

Interrupciones Fuentes de Interrupciones para el PIC16F1787

Interrupciones Fuentes de Interrupciones para el PIC16F1787 Fuentes de para el PIC16F1787 Interrupción externa a través del pin RB0/INT Interrupción por cambio de nivel Interrupción por escritura en la EEPROM Interrupción por desbordamiento del TMR0 Interrupción

Más detalles

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI DEFINICIÓN Es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, completamente estático es decir si el reloj se detiene los datos

Más detalles

Registros SFR vistos hasta ahora: Microcontroladores PIC

Registros SFR vistos hasta ahora: Microcontroladores PIC Registros SFR vistos hasta ahora: Microcontroladores PIC Microcontroladores PIC: Timer Características del Timer TMR0: Cumple básicamente la función de contador de eventos (o divisor de frecuencia). El

Más detalles

PIC 18F45XX CARACTERÍSTICAS GENERALES

PIC 18F45XX CARACTERÍSTICAS GENERALES PIC 18F45XX CARACTERÍSTICAS GENERALES 1. Características generales CPU con arquitectura Harvard (77 instrucciones) Todas las instrucciones constan de 1 sola palabra de 16 bits (2 bytes) excepto las de

Más detalles

PIC16F88. Características

PIC16F88. Características Osciladores PIC16F88. Características Osciladores a cristal: LP, XT y HS hasta 20Mhz Oscilador externo hasta 20Mhz Oscilador interno: 31Khz 8Mhz Periféricos Módulo PWM/CCP CCP (captura/comparación) ->

Más detalles

MICROCONTROLADORES PIC

MICROCONTROLADORES PIC MICROCONTROLADORES PIC LOS TIMER DE LOS 16F87x TEMA EL TIMER 1 CCFF D.P.E. MÓDULO DE PROYECTOS 1 Diagrama de Bloques del TIMER1 CCFF D.P.E. MÓDULO DE PROYECTOS 2 INTRODUCCIÓN El módulo TIMER1 es un temporizador/contador

Más detalles

PIC16F882/883/884/886/887

PIC16F882/883/884/886/887 12.0 Transmisor Receptor Síncrono Asíncrono Universal Mejorado. EUSART. El módulo Transmisor Receptor Síncrono Asíncrono Mejorado, en adelante, EUSART, es un periférico de comunicación serie de entrada/salida.

Más detalles

RECURSOS FUNDAMENTALES

RECURSOS FUNDAMENTALES RECURSOS FUNDAMENTALES Los recursos que se considerarán son : Temporizadores Puertos de E/S La Palabra de Configuración EEPROM de datos 1 TEMPORIZADORES Una labor habitual en los programas de control suele

Más detalles

Instrucciones para programar el PIC16F877

Instrucciones para programar el PIC16F877 Instrucciones para programar el PIC16F877 2 Estos microcontroladores responden a una serie de instrucciones o códigos que se deben grabar en su memoria de programa, en total son 35. A continuación se encuentra

Más detalles

TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1

TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1 TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1 Estructura De La Memoria Ram (1) La memoria de datos RAM está dividida en dos partes diferenciadas: 1.- Zona SFR o zona de Registros

Más detalles

PIC16F882/883/884/886/ Funcionamiento de Timer1 6 EL MODULO TMR1 CON PUERTA DE CONTROL Selección de Fuente de reloj

PIC16F882/883/884/886/ Funcionamiento de Timer1 6 EL MODULO TMR1 CON PUERTA DE CONTROL Selección de Fuente de reloj 6.1. Funcionamiento de Timer1 6 EL MODULO TMR1 CON PUERTA DE CONTROL El módulo TMR1 es un temporizador/contador de 16 bits con las siguientes características: Temporizador/Contador de 16 bits (TMR1L:TMR1H)

Más detalles

Tema 6: Microcontroladores

Tema 6: Microcontroladores Tema 6: Microcontroladores Carlos Garre del Olmo 1 Microcontroladores Contenidos Introducción a los microcontroladores. Principales familias y sus características. La familia PIC16. Programación de microcontroladores.

Más detalles

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO INTERRUPCIONES Interrumpen la ejecución de un programa y pasan a la rutina de servicio del evento que provoca la interrupción. El vector de interrupción se encuentra en la dirección 04H de la memoria de

Más detalles

Arquitectura de Computadores II

Arquitectura de Computadores II Facultad de Ingeniería Universidad de la República Instituto de Computación Temas Repaso de conceptos Microcontroladores CISC vs RISC CISC Complex Instruct Set Computers RISC Reduced Instruct Set Computers

Más detalles

Características PIC16F84

Características PIC16F84 Departamento de Electrónica Fundación San Valero del Toda la información que grabamos (memoria de programa y de datos) se puede modificar con el microcontrolador conectado a la aplicación. (ICSP = In-Circuit

Más detalles

PRODUCTO P05 SOFTWARE EMBEBIDO PARA EL CONTROL DEL CIRCUITO GENERADOR DE CORRIENTE DE LAS FORMAS DE ONDAS PARA ELECTROTERAPIA

PRODUCTO P05 SOFTWARE EMBEBIDO PARA EL CONTROL DEL CIRCUITO GENERADOR DE CORRIENTE DE LAS FORMAS DE ONDAS PARA ELECTROTERAPIA PRODUCTO P05 SOFTWARE EMBEBIDO PARA EL CONTROL DEL CIRCUITO GENERADOR DE CORRIENTE DE LAS FORMAS DE ONDAS PARA ELECTROTERAPIA Actividades: A05-1: Elaboración del diagrama de flujo de las funciones de control

Más detalles

Tema: Microprocesadores

Tema: Microprocesadores Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Introducción a los Microprocesadores y Microcontroladores. Tema: Microprocesadores Arq. de Computadora I Ing. Carlos Ortega H. 1

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU) INDICE Capitulo 1. Qué es un computador? 1.1. Introducción 1 1.2. El computador como dispositivo electrónico 2 1.3. Cómo se procesa la información? 3 1.4.Diagrama de bloques de un computador 1.4.1. Información

Más detalles

Características Técnicas del PIC 16F84

Características Técnicas del PIC 16F84 Características Técnicas del PIC 16F84 Repertorio de 35 Instrucciones. Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que necesitan dos. Versiones de 4 MHz (PIC16F84-04) y 10

Más detalles

PIC16C5X (GAMA BAJA) Solo en dispositivos de 28 pins. Encapsulado y patillaje:

PIC16C5X (GAMA BAJA) Solo en dispositivos de 28 pins. Encapsulado y patillaje: PIC6C5X (GAMA BAJA) Oscilador RESET SLEEP WatchDog Timer (WDT) Protección de código e IDs Periféricos: Timer/Contador de 8bits (T) con prescaler compartido para WDT o TMR Hasta 3 puertos I/O (RA,RB,RC)

Más detalles

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro.

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro. Las Instrucciones A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro. En general la instrucciones de los microcontroladores pueden clasificarse como:

Más detalles

PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628

PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628 Los Bits de Configuración del PIC16F628 44 PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628 OBJETIVOS Identificar cada uno de los bits de configuración que rigen el funcionamiento del PIC16F628. Verificar

Más detalles

LOS PIC16F88X: EEPROM de Usuario

LOS PIC16F88X: EEPROM de Usuario LOS PIC16F88X: EEPROM de Usuario IES Juan de la Cierva Aprendizaje de la Electrónica a través de la Robótica Domínguez Diagrama de bloques PIC16F884-PIC16F887 Interrupciones en de los PIC16F88X PIR2 INTCON

Más detalles

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario.

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario. 1 LENGUAJE ENSAMBLADOR El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario. El lenguaje ensamblador expresa las instrucciones de una

Más detalles

Dentro del PIC16F877 se distinguen tres bloques de memoria.

Dentro del PIC16F877 se distinguen tres bloques de memoria. 1 ORGANIZACIÓN de la MEMORIA Dentro del PIC16F877 se distinguen tres bloques de memoria. Memoria de programa En sus 8192 posiciones (8Kx14bits) contiene el programa con las instrucciones que gobiernan

Más detalles

2.2-1 Visión Interna PIC16F873/876. SBM

2.2-1 Visión Interna PIC16F873/876. SBM 2.2-1 Visión Interna PIC16F873/876. 1 2.2-2 Visión Interna PIC16F874/877. 2 2.2-3 Sistema de memoria. Tienen arquitectura Harvard, separa la memoria de datos y la memoria de programa, y se accede a ellas

Más detalles

Tema 14. Interrupciones. Las. C. F. G.S. D.P.E. Módulo de Proyectos 1

Tema 14. Interrupciones. Las. C. F. G.S. D.P.E. Módulo de Proyectos 1 Tema 14 Las Interrupciones C. F. G.S. D.P.E. Módulo de Proyectos 1 Los PIC de la familia 16F8X poseen 4 fuentes de interrupción: Interrupción externa a través del pin RB0/INT Interrupción por overflow

Más detalles

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna AUTOMATIZACION GUIA DE TRABAJO 3 DOCENTE: VICTOR HUGO BERNAL UNIDAD No. 3 OBJETIVO GENERAL Realizar una introducción a los controladores lógicos programables OBJETIVOS ESPECIFICOS: Reconocer la arquitectura

Más detalles

(1) Unidad 1. Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

(1) Unidad 1. Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM Unidad 1 Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática EPS - UAM Índice 1. Sistemas digitales basados en microprocesador. 1.1. Arquitectura

Más detalles

Arquitectura (Procesador familia 80 x 86 )

Arquitectura (Procesador familia 80 x 86 ) Arquitectura (Procesador familia 80 x 86 ) Diseño de operación Basada en la arquitectura Von Newman Memoria CPU asignadas direcciones I / O BUS: Es un canal de comunicaciones Bus de direcciones: Contiene

Más detalles

Pines de entrada/salida (I/O) de propósito general. Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos.

Pines de entrada/salida (I/O) de propósito general. Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos. 1 Pines de entrada/salida (I/O) de propósito general Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos. Para añadir flexibilidad al micro, muchos de sus pines de entrada/salida

Más detalles

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O Interfaz con Dispositivos I/O Interfaz con Dispositivos de Salida y Salida Unidad 4, Segunda Parte Port Mapped Memory mapped 1 2 Ejecución de la Instrucción OUT Ejecución de la instrucción OUT Dirección

Más detalles

Qué es un Microcontrolador?

Qué es un Microcontrolador? Qué es un Microcontrolador? Es un circuito integrado programable que contiene todos los componentes de un computadora, aunque de limitadas prestaciones y se destina a gobernar una sola tarea. Cómo se compone

Más detalles

Arquitectura de computadoras

Arquitectura de computadoras Arquitectura de computadoras Técnicas Digitales III Ing. Gustavo Nudelman 2013 Que entendemos por arquitectura Un sistema con una CPU, memoria y dispositivos de entrada y salida puede considerarse un sistema

Más detalles

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik Objetivos Objetivos Arquitecturas von Neumann Otras Unidad Central de Procesamiento (CPU) Responsabilidades Requisitos Partes de una CPU ALU Control & Decode Registros Electrónica y buses 2 Índice Capítulo

Más detalles

PIC 16F87X TEMA LA MEMORIA DE DATOS MEMORIA RAM

PIC 16F87X TEMA LA MEMORIA DE DATOS MEMORIA RAM PIC 16F87X TEMA LA MEMORIA DE DATOS MEMORIA RAM Estructura De La Memoria Ram La memoria de datos RAM está dividida en 4 bancos de registros: BANCO 0, BANCO 1, BANCO 2 y BANCO 3, cada uno posee 128 bytes.

Más detalles

RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2. RB1 RB0/INT VDD Vss RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RC7/RX/DT RC6/TX/CK RC5/SD0 RC4/SDI/SDA RD3/PSP3 RD2/PSP2

RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2. RB1 RB0/INT VDD Vss RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RC7/RX/DT RC6/TX/CK RC5/SD0 RC4/SDI/SDA RD3/PSP3 RD2/PSP2 LOS PIC16F87X Características Generales D. de B L O Q U E S 1 D. de B L O Q U E S D. de B L O Q U E S 2 Características (1) Procesador de arquitectura RISC avanzada Juego de solo 35 instrucciones con 14

Más detalles

PIC 18F45XX EL TIMER 0

PIC 18F45XX EL TIMER 0 PIC 18F45XX EL TIMER 0 1. Hardware asociado 2. Características Se puede configurar como temporizador o contador de 8/16 bits. Se puede leer o escribir en él a través del registro TMR0. Dispone de un preescaler

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento

Más detalles

Principios básicos de PLC y familia DirectLogic

Principios básicos de PLC y familia DirectLogic Principios básicos de PLC y familia DirectLogic Introducción El Controlador Lógico Programable (PLC) es una tecnología muy difundida para hacer automatización de procesos secuenciales, surgió como solución

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

DEPARTAMENTO ELECTRÓNICA PIC - TEMA 2 INTRODUCCIÓN A LOS MICROCONTROLADORES PIC

DEPARTAMENTO ELECTRÓNICA PIC - TEMA 2 INTRODUCCIÓN A LOS MICROCONTROLADORES PIC DEPARTAMENTO ELECTRÓNICA PIC - TEMA 2 INTRODUCCIÓN A LOS MICROCONTROLADORES PIC 1 Los 'PIC' son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650,

Más detalles

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Tutoría 2. Banco de memoria de 8 y 16 bits (8086) Tutoría 2. Banco de memoria de 8 y 16 bits (8086) RESUMEN Cuando el procesador opera en modo mínimo, éste genera las señales de control para la memoria y los dispositivos de E/S. [1, pág. 292]. Para utilizar

Más detalles

Cartilla para Microcontrolador PIC16F877. 28/40 Pin 8-Bit CMOS FLASH.

Cartilla para Microcontrolador PIC16F877. 28/40 Pin 8-Bit CMOS FLASH. Cartilla para Microcontrolador PIC16F877 28/40 Pin 8-Bit CMOS FLASH. Características principales CPU RISC de alta performance Set de35 instrucciones Todas las instrucciones son de un ciclo salvo aquellas

Más detalles

Los PIC 16F88X:Módulo de comunicaciones serie síncrona: MSSP SPI

Los PIC 16F88X:Módulo de comunicaciones serie síncrona: MSSP SPI Los PIC 16F88X:Módulo de comunicaciones serie síncrona: MSSP SPI IES Juan de la Cierva Aprendizaje de la Electrónica a través de la Robótica Fernando Remiro Dominguez Módulo de Comunicaciones Serie Síncrona

Más detalles

Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios

Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 3: Bucles Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios -

Más detalles

SISTEMAS ELECTRÓNICOS DIGITALES

SISTEMAS ELECTRÓNICOS DIGITALES SISTEMAS ELECTRÓNICOS DIGITALES PRÁCTICA 6 SISTEMA DE ENCRIPTACIÓN 1. Objetivos - Estudio del funcionamiento de memorias RAM y CAM. - Estudio de métodos de encriptación y compresión de datos. 2. Enunciado

Más detalles

Guia para examen de Sistemas Embebidos I Para primer parcial Febrero 2013 Revisión 2 Ing. Julio Cesar Gonzalez Cervantes

Guia para examen de Sistemas Embebidos I Para primer parcial Febrero 2013 Revisión 2 Ing. Julio Cesar Gonzalez Cervantes Qué significa ALU? Arithmetic Logic Unit Guia para examen de Sistemas Embebidos I Para primer parcial Febrero 2013 Revisión 2 Ing. Julio Cesar Gonzalez Cervantes que operaciones realiza un ALU? suma, resta,

Más detalles

AUTOMATIZACIÓN INDUSTRIAL

AUTOMATIZACIÓN INDUSTRIAL Departamento de Ingenieria de Sistemas y Automática AUTOMATIZACIÓN INDUSTRIAL 1 AUTOMATIZACION INDUSTRIAL 2 AUTOMATIZACION INDUSTRIAL 3 AUTOMATAS PROGRAMABLES Surgen de la necesidad de controlar automáticamente

Más detalles

Introducción a la arquitectura de computadores

Introducción a la arquitectura de computadores Introducción a la arquitectura de computadores Departamento de Arquitectura de Computadores Arquitectura de computadores Se refiere a los atributos visibles por el programador que trabaja en lenguaje máquina

Más detalles

Ejercicios del tema 4. El procesador

Ejercicios del tema 4. El procesador jercicios del tema 4. l procesador jercicio 1. Considere un procesador de 32 bits con una frecuencia de reloj de 500 MHz con la estructura del mostrado en el jercicio 3. La memoria se direcciona por bytes

Más detalles

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior. 6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior. 6.1. El subsistema de E/S Qué es E/S en un sistema computador? Aspectos en el diseño del subsistema de E/S: localización

Más detalles

El objeto de este proyecto es el de construir un robot araña controlado por un PIC16F84A.

El objeto de este proyecto es el de construir un robot araña controlado por un PIC16F84A. .. Memoria Descriptiva... Objeto El objeto de este proyecto es el de construir un robot araña controlado por un PIC6F8A.... Antecedentes El diseño original no se llegó a realizar en circuito impreso, en

Más detalles

Microcontroladores PIC de Microchip: generalidades

Microcontroladores PIC de Microchip: generalidades Microcontroladores PIC de Microchip: generalidades PIC significa Peripheral Interface Controller Los fabrica ARIZONA MICROCHIP TECHNOLOGY. Fábrica principal: Chandler (Arizona). Otras en Tender (Arizona),

Más detalles

Diseño Basado en Microcontroladores. Programa Detallado

Diseño Basado en Microcontroladores. Programa Detallado Diseño Basado en Microcontroladores. Programa Detallado Tema 5. Temporizadores e Interrupciones. (4 horas + 8 horas de laboratorio) 5.1.Temporizadores A y B. Modos de funcionamiento. 5.2. Temporizador

Más detalles

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS 1. CARACTERISTCAS Suministro de voltaje de funcionamiento 2.5 a 6 V Bajo consumo de corriente de espera (standby) de 10 ma máximo. Expansor I²C a puerto paralelo.

Más detalles

USB232. Hoja de datos

USB232. Hoja de datos - 1 - USB232 Hoja de datos 9600, 19200, 38400, 57600, 115200 bps Interfaz USB serie RS232 Integración de tecnología USB Para sistemas con comunicación serie RS232 - 2 - USB232 Interfaz USB serie RS232

Más detalles

Lenguaje binario. Código ASCII. Medidas de la información

Lenguaje binario. Código ASCII. Medidas de la información Hardware y Software (1/5) Lenguaje binario Los ordenadores sólo entienden 1 y 0. Lógica positiva: 0: no hay señal 1: hay señal Código ASCII Medidas de la información Unidad mínima de información: BIT (0

Más detalles

ESTRUCTURA BÁSICA DE UN ORDENADOR

ESTRUCTURA BÁSICA DE UN ORDENADOR ESTRUCTURA BÁSICA DE UN ORDENADOR QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... Qué son los

Más detalles

CURSO BÁSICO DE PIC16F877

CURSO BÁSICO DE PIC16F877 CURSO BÁSICO DE PIC16F877 Raúl Peralta Meza Carlos Quiñones Quispe Generalidades Historia e importancia de los microcontroladores Metodología de estudio Microcontroladores Microchip 16F87X Arquitectura

Más detalles

El Microcontrolador PIC16F877. Resumen de hoja de datos

El Microcontrolador PIC16F877. Resumen de hoja de datos El Microcontrolador PIC16F877 Resumen de hoja de datos 2 El PIC16F877 es un microcontrolador con memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su

Más detalles

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC.

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC. Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC. 1. Introducción... 1 2. Funcionamiento del Timer0... 1 2.1. Estructura general del Timer0...2 2.2. Entrada de reloj del modulo Timer0...2

Más detalles

MANUAL DE MICROCONTROLADORES PIC

MANUAL DE MICROCONTROLADORES PIC MANUAL DE MICROCONTROLADORES PIC Contenido: CAPITULO 1 Introducción a los microcontroladores ( Microcontroladores PIC de Microchip) CAPITULO 2 Programación en lenguaje ensamblador CAPITULO 3 Técnicas en

Más detalles

TUTORIAL Comunicación Serial

TUTORIAL Comunicación Serial 1 TUTORIAL Comunicación Serial OBJETIVOS Manejar el módulo USART para comunicaciones seriales asíncronas. Realizar transmisiones y recepciones seriales útiles para el control y monitoreo de eventos. INTRODUCCIÓN:

Más detalles

Introducción al PLC Simatic Siemens S7-200.

Introducción al PLC Simatic Siemens S7-200. Francisco J. Jiménez Montero. Málaga, Febrero de 2007. Revisado: Noviembre de 2010. Ciclo Formativo de Grado Medio de Instalaciones Eléctricas y Automáticas. Introducción al PLC Simatic Siemens S7-200.

Más detalles

17 Con el chorro de agua pequeño, la cubeta se llena en 10 minutos

17 Con el chorro de agua pequeño, la cubeta se llena en 10 minutos 17 Con el chorro de agua pequeño, la cubeta se llena en 10 minutos Cuál será el valor de precarga necesario para que este sistema nos indique que ha transcurrido un tiempo de 6 minutos? Seria depositar

Más detalles

CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER

CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER ENTREGA: 26/11/2010 1 INTRODUCCIÓN La tecnología es cada vez más sencilla de

Más detalles

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez Estructura de Microprocesadores PIC 18F4550 Administración de los temporizadores Profesor Ing. Johan Carvajal Godínez Módulos temporizadores El MCU 18F4550 posee cuatro módulos de temporización independientes

Más detalles

CÓMO FUNCIONA UN PLC Control Combinacional Programación del PLC

CÓMO FUNCIONA UN PLC Control Combinacional Programación del PLC CÓMO FUNCIONA UN PLC Control Combinacional Programación del PLC PROGRAMACIÓN DE PLC Procedimiento para programar y cargar: Determinar los requisitos del sistema al cual se aplica el PLC. Identificar los

Más detalles

TEMA 1: Concepto de ordenador

TEMA 1: Concepto de ordenador TEMA 1: Concepto de ordenador 1.1 Introducción Los ordenadores necesitan para su funcionamiento programas. Sin un programa un ordenador es completamente inútil. Para escribir estos programas necesitamos

Más detalles

Programación en PIC Los primeros pasos

Programación en PIC Los primeros pasos Capítulo V Programación en PIC Los primeros pasos Encender y apagar un LED Secuenciador con cuatro LED's Leer los pulsadores y encender el LED correspondiente Programa avanzado utilizando el entrenador

Más detalles

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila VOCABULARIO DEL HARDWARE Docente Yeni Ávila HARDWARE El Hardware Básico: son las piezas fundamentales e imprescindibles para que la computadora funcione como son: Placa base, monitor, teclado y ratón.

Más detalles

Arquitectura del PLC. Dpto. Electrónica, Automática e Informática Industrial)

Arquitectura del PLC. Dpto. Electrónica, Automática e Informática Industrial) Arquitectura del PLC Dpto. Electrónica, Automática e Informática Industrial) www.elai.upm.es Introducción (I) El PLC recibe, en tiempo real, la información de los sensores conectados al proceso y ejecuta

Más detalles

1.2.- EL MICROPROCESADOR.

1.2.- EL MICROPROCESADOR. 1.2.- EL MICROPROCESADOR. El microprocesador es un circuito integrado que contiene algunos o todos los elementos necesarios para conformar una (o más) unidad central de procesamiento UCP, también conocido

Más detalles

Práctica 5. Comunicación serie y entradas analógicas

Práctica 5. Comunicación serie y entradas analógicas Práctica 5 Comunicación serie y entradas analógicas Práctica 5 Comunicación serie y entradas analógicas. Objetivos El objetivo de esta sesión es que el alumno aprenda a programar la EUART interna del PIC,

Más detalles

ENTRADAS DE CONTADOR DE ALTA VELOCIDAD

ENTRADAS DE CONTADOR DE ALTA VELOCIDAD ENTRADAS DE CONTADOR DE ALTA VELOCIDAD Esta función cuenta las entradas de señales de impulsos en los terminales de entrada incorporada Configuración La configuración del contador de alta velocidad se

Más detalles

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ) Hardware y Software (1/6) Lenguaje binario Los ordenadores sólo entienden 1 y 0. Lógica positiva: 0: no hay señal 1: hay señal Código ASCII American Standard Code for Information Interchange Carácter =

Más detalles

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90. PROCESADORES TIPOS DE PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO DE GALLETA: se utilizaban en las board en los años 80 y 90. DE PINES: reemplazaron los procesadores

Más detalles

Indice. Escrito por Administrator Martes, 02 de Septiembre de 2008 17:45 - Actualizado Domingo, 20 de Septiembre de 2009 07:45 1 / 15

Indice. Escrito por Administrator Martes, 02 de Septiembre de 2008 17:45 - Actualizado Domingo, 20 de Septiembre de 2009 07:45 1 / 15 1 / 15 El contenido del libro " MICROCONTROLADOR PIC16F84. Desarrollo de proyectos " de la Editorial Ra CAPÍTULOS: 1. MICROCONTROLADOR PIC16F84 2. PERIFÉRICOS BÁSICOS 3. GRABACIÓN DE MICROCONTROLADORES

Más detalles

TEMA 8. REGISTROS Y CONTADORES.

TEMA 8. REGISTROS Y CONTADORES. TEMA 8. REGISTROS Y CONTADORES. TECNOLOGÍA DE COMPUTADORES. CURSO 2007/08 8.1. Registros. Tipos de registros. Registros de desplazamiento. Los registros son circuitos secuenciales capaces de almacenar

Más detalles

Control de pantallas de cristal líquido mediante PIC

Control de pantallas de cristal líquido mediante PIC INGENIERÍA Control de pantallas de cristal líquido mediante PIC Ejemplo práctico de interconexión y control de una pantalla de cristal líquido (LCD) por un microcontrolador PIC CELESTINO BENÍTEZ VÁZQUEZ

Más detalles

EC02 CONTROLADOR ELECTRONICO PROGRAMABLE

EC02 CONTROLADOR ELECTRONICO PROGRAMABLE EC02 CONTROLADOR ELECTRONICO PROGRAMABLE Los controladores EC02 fueron diseñados para ser programados en aplicaciones de pocas entradas salidas, como una opción extremadamente versátil, robusta, eficiente

Más detalles

EDUPIC Módulo 16F628 Manual del Usuario

EDUPIC Módulo 16F628 Manual del Usuario 1 EDUPIC Módulo 16F628 Manual del Usuario Indice : 1. Introducción 2 2. Descripción general 2 3. Definición de los pines en el 16F628 4 4. Programador de la memoria FLASH 5 5. Oscilador 5 6. Arquitectura

Más detalles

Tema 11. Introducción a los Microprocesadores y Microcontroladores

Tema 11. Introducción a los Microprocesadores y Microcontroladores Unidad 11 Introducción a los microprocesadores y microcontroladores Andres.Iborra@upct.es Juan.Suardiaz@upct.es Septiembre 2002 1 CONTENIDO Unidad 11. Introducción a los microprocesadores y microcontroladores.

Más detalles

Computadora y Sistema Operativo

Computadora y Sistema Operativo Computadora y Sistema Operativo Según la RAE (Real Academia de la lengua española), una computadora es una máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos

Más detalles

INDICE Capitulo 1. Álgebra de variables lógicas Capitulo 2. Funciones lógicas

INDICE Capitulo 1. Álgebra de variables lógicas Capitulo 2. Funciones lógicas INDICE Prefacio XV Capitulo 1. Álgebra de variables lógicas 1 1.1. Variables y funciones 1 1.2. Variables lógicas 2 1.3. Valores de una variable lógica 2 1.4. Funciones de una variable lógica 3 1.5. Funciones

Más detalles

ING. JONATHAN QUIROGA TINOCO. Desarrollado por Ing. Jonathan Quiroga T.

ING. JONATHAN QUIROGA TINOCO. Desarrollado por Ing. Jonathan Quiroga T. ING. JONATHAN QUIROGA TINOCO PARTE III EDITOR DE PROGRAMA Los participantes manejarán el software de programación para editar, verificar, monitorear el diagrama de escalera y comunicarse con el PLC de

Más detalles

Qué es un programa informático?

Qué es un programa informático? Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s

Más detalles

INDICE Control de dispositivos específicos Diseño asistido por computadora Simulación Cálculos científicos

INDICE Control de dispositivos específicos Diseño asistido por computadora Simulación Cálculos científicos INDICE Parte I. La computadora digital: organización, operaciones, periféricos, lenguajes y sistemas operativos 1 Capitulo 1. La computadora digital 1.1. Introducción 3 1.2. Aplicaciones de las computadoras

Más detalles

FUNCIONAMIENTO DEL ORDENADOR

FUNCIONAMIENTO DEL ORDENADOR FUNCIONAMIENTO DEL ORDENADOR COMPUTACIÓN E INFORMÁTICA Datos de entrada Dispositivos de Entrada ORDENADOR PROGRAMA Datos de salida Dispositivos de Salida LOS ORDENADORES FUNCIONAN CON PROGRAMAS Los ordenadores

Más detalles

PIC 16F87X TRABAJO EXPLICACIÓN

PIC 16F87X TRABAJO EXPLICACIÓN PIC 16F87X TRABAJO EXPLICACIÓN Sebastián Martín García INDICE DIFERENCIAS ENTRE PIC16F84 Y 16F87X 4 PIC 16F87X 5 DIFERENCIAS ENTRE 16F84 Y 16F87X 5 SENSORES ANALOGICOS MAS UTILIZADOS 6 SENSOR DE LUMINOSIDAD

Más detalles

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI Guía de preparación para el examen ELECTRONICA CxTx En esta materia básicamente se evalúan temas tales como son: MULTIVIBRADORES, MEMORIAS, CONTADORES Y COMPUERTAS LOGICAS, SUMADOR RESTADOR Y MICROPOCESADORES

Más detalles

TEMA 20 EL CONVERSOR A/D

TEMA 20 EL CONVERSOR A/D TEMA 20 EL CONVERSOR A/D Introducción Al Conversor Analógico/Digital Los microcontroladores PIC de la familia 16F78x, poseen un conversor A/D de 10 bits de resolución, y con 5 entradas para los dispositivos

Más detalles

Organización del Computador I. Introducción e Historia

Organización del Computador I. Introducción e Historia Organización del Computador I Introducción e Historia Introducción Qué es una computadora? Stallings: Máquina digital electrónica programable para el tratamiento automático de la información, capaz de

Más detalles

MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255

MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255 MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255 INTRODUCCIÓN Este integrado de la firma INTEL, conocido como PPI 8255 (Programmable Peripherical Interfase) realizado

Más detalles

1.1 Introducción y definición de un microcontrolador 1.2 Estructura básica de un microcontrolador 1.3 Características de la Arquitectura

1.1 Introducción y definición de un microcontrolador 1.2 Estructura básica de un microcontrolador 1.3 Características de la Arquitectura Índice 1.1 Introducción y definición de un microcontrolador 1.2 Estructura básica de un microcontrolador 1.3 Características de la Arquitectura 1.3.1 Arquitectura RISC 1.3.2 Arquitectura Harvard 1.3.3

Más detalles