Sie sind auf Seite 1von 64

Arquitectura de computadoras II

Unidad 3. Microcontroladores

Ingeniera en Telemtica

Programa de la asignatura:

Arquitectura de computadoras II

Unidad 3. Microcontroladores

Clave:

210930830

Universidad Abierta y a Distancia de Mxico

Ciencias Exactas Ingeniera y Tecnologa | Ingeniera en Telemtica

Arquitectura de computadoras II
Unidad 3. Microcontroladores
ndice
Unidad 3. Microcontroladores ............................................................................................ 2 Presentacin de la unidad ................................................................................................. 2 Propsitos.......................................................................................................................... 5 Competencia especfica..................................................................................................... 5 3.1. Organizacin del microcontrolador .............................................................................. 6 3.1.1. Diferencia entre microprocesador y microcontrolador ....................................... 9 3.1.2. Arquitectura interna ......................................................................................... 11 3.1.3. La familia de los PIC ....................................................................................... 16 Actividad 1. Caracterizando a los microcontroladores ...................................................... 22 3.2. Conjunto de instrucciones y lenguajes ...................................................................... 23 3.2.1. Caractersticas de las instrucciones mquina ................................................. 29 3.2.2. Tipos de operandos y operaciones ................................................................. 32 3.2.3. Lenguaje Ensamblador ................................................................................... 37 Actividad 2. Instrucciones bsicas del lenguaje ensamblador .......................................... 39 3.3. Caractersticas y uso de elementos del microcontrolador (puertos, temporizadores, convertidores) .................................................................................................................. 40 3.3.1. Puertos ........................................................................................................... 41 3.3.2. Temporizadores .............................................................................................. 42 3.3.3. Convertidores ................................................................................................. 43 Actividad 3. Elementos del microcontrolador ................................................................... 44 3.4. Aplicaciones de los microcontroladores .................................................................... 45 3.4.1. Ejemplos usando el PIC16F84 ........................................................................ 46 3.4.2. Proyectos usando el PIC16F84....................................................................... 52 Actividad 4. Resolucin de un problema de lazo cerrado ................................................. 57 Autoevaluacin ................................................................................................................ 57 Evidencia de aprendizaje. Simula un problema de lazo cerrado ...................................... 57 Autorreflexiones ............................................................................................................... 58 Cierre de la unidad .......................................................................................................... 59 Para saber ms ............................................................................................................... 60 Fuentes de consulta ........................................................................................................ 62

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Unidad 3. Microcontroladores Presentacin de la unidad
Los microcontroladores estn conquistando el mundo, los puedes ver presentes, en tu trabajo, en tu casa, y en tu vida en general. Los puedes encontrar controlando el funcionamiento de los ratones y teclados de las computadoras, los telfonos, hornos de microondas, y en los televisores de tu hogar.

Aplicacin real de un microcontrolador. Consultada en: http://farm1.static.flickr.com/129/355592517_e7796d5ec4.jpg

Aprender a manejar y aplicar microcontroladores solo se consigue desarrollando prcticamente diseos reales. Sucede lo mismo que si quisieras usar cualquier instrumento musical, o practicar algn deporte y con muchas otras actividades. El objetivo principal de esta unidad es facilitar el camino para aprender a usar los microcontroladores, por tal motivo se proporcionan algunos ejemplos bsicos que te permitirn confeccionar y simular algunos proyectos reales. Para poder lograr este objetivo se seleccion un modelo concreto que es el PIC16F84 de la familia de los microcontroladores Microchip Technology Inc. La razn por la cual se escogi este microcontrolador es porque es sencillo, moderno, rpido, barato y en l se pueden escribir los programas y borrarlos montones de veces, existe mucha documentacin, y las herramientas de desarrollo son accesibles para todos los bolsillos. En el mundo se pueden encontrar millones de aplicaciones realizadas con el PIC16F84,

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

Arquitectura de computadoras II
Unidad 3. Microcontroladores
como por ejemplo, llevar el control de un taxmetro el cual indica el total a pagar de acuerdo a una distancia o tiempo, tambin el sensor de temperatura de algn aire acondicionado o calefactor, el cual si llega a una temperatura deseada se apaga automticamente y si cambia esa temperatura se vuelve a encender, entre otras aplicaciones. En esta unidad se pretende estudiar terica y prcticamente al PIC16F84 por tal motivo se intenta ofrecer la informacin necesaria dentro de cada tema. En el tema 3.1. se describen las caractersticas de generales del hardware que envuelven a los microcontroladores en general para que posteriormente te adentres en la familia de los PIC y toda la gama de microcontroladores existentes, llegando as a los PIC16F84. En el tema 3.2. se presenta todo el material necesario y preciso para conocer, manejar y programar el PIC16F84, as como una pequea introduccin del lenguaje que se utiliza para la programacin de los PIC, dicha informacin se hace considerando desde un nivel bsico hasta un nivel intermedio de Electrnica, por tal motivo se muestra un camino sencillo y apropiado. En el tema 3.3. se describen los recursos fundamentales como puertos, temporizadores, puertas de E/S (Entrada/Salida o I/O), as como su uso. En el tema 3.4. se te ensea cmo programar algunas aplicaciones bsicas y se muestran algunas herramientas ms comunes para el uso de los microcontroladores y la implementacin de proyectos. Tambin se mostrar como programar las aplicaciones de forma clara y progresiva.

PIC16F84. Tomada de: http://xurl.es/m83y4

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Como complemento a dicha informacin se proporciona el siguiente mapa denominado Microcontroladores en el cual se muestra la informacin organizada brevemente antes mencionada, de la misma manera, se proporcionan algunos videos al final de esta unidad que te pueden ser de mucha utilidad as como algunas referencias electrnicas que puedes consultar para ampliar o disipar dudas o informacin. Parte de la informacin proporcionada es tomada de las documentaciones tcnicas de Microchip (www.microchip.com), de Parallax (www.parallaxinc.com) y de Ingeniera de Microsistemas Programados, S. L. (www.microcontroladores.com).

Microcontroladores

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Propsitos
En esta unidad: Identificaras la arquitectura de los microcontroladores. Distinguirs las diferencias entre los PIC Utilizars lenguaje de bajo nivel Diferenciars cada uno de los elementos bsicos del PIC16F84 Simulars problemas reales usando el PIC16F84

Competencia especfica

Programar el PIC16F84 para controlar sistemas de lazo cerrado con el uso de algn software de simulacin apoyndose en las especificaciones del microcontrolador.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

Arquitectura de computadoras II
Unidad 3. Microcontroladores

3.1. Organizacin del microcontrolador


Como se mencion en la presentacin de esta unidad en este tema se describirn algunas de las caractersticas generales del hardware que componen la organizacin de los microcontroladores de manera general para posteriormente adentrarse a la familia de los PIC y distinguir toda la gama de microcontroladores que estn dentro de esta familia. Para lograr esto surge una pregunta muy importante que se tiene que definir para que se entienda mucho mejor esta unidad, la pregunta es qu es un microcontrolador?, muchos de nosotros conocemos una PC por lo menos en apariencia, usualmente tiene un teclado, monitor, CPU (Unidad de Procesamiento Central), impresora y mouse entre otros dispositivos. Este tipo de computadoras o PC son diseadas principalmente para comunicarse con los humanos y para que el humano haga uso de ellas. Manejo de bases de datos, anlisis financieros o incluso procesadores de textos, se encuentran todos dentro de la gran caja, que contiene un CPU, la memoria, el disco duro, etc. El verdadero cmputo, sin embargo todo esto tiene lugar dentro de la CPU. Si se haba pensado que el nico propsito del monitor, teclado, mouse e incluso la impresora, es conectar a la CPU con el mundo exterior. Pero sabas que hay computadoras alrededor de nosotros, corriendo programas y haciendo clculos silenciosamente sin interactuar con ningn humano? Estas computadoras estn en nuestros autos, en un transbordador espacial, en un juguete, e incluso puede haber alguno en un secador de pelo. A estos dispositivos se les llama microcontroladores. Micro porque son pequeos y controladores porque controlan mquinas o incluso otros controladores

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Microcontrolador PIC13F8720. Consultada en: http://xurl.es/qa121

Un microcontrolador es un circuito integrado programable que contiene todos los componentes de una computadora, se emplean para controlar el funcionamiento de una tarea determinada, gracias a su reducido tamao suele ser incorporado en el propio dispositivo al que gobierna (Reyes, 2008). El microcontrolador es una computadora dedicada. Dentro de la memoria solo se almacena un programa destinado a gobernar una aplicacin determinada; sus lneas de entrada y salida soportan el conexionado de los sensores y actuadores (dispositivos capaces de transformar energa en la activacin de un proceso) del dispositivo a controlar, y todos los recursos complementarios disponibles tienen una nica finalidad atender sus requerimientos. Una vez que este se program y configuro, solo sirve para gobernar la tarea asignada (Reyes, 2008). Un microcontrolador es un computador completo, aunque de limitadas prestaciones, que est contenido en el chip de un circuito integrado y se destina a gobernar una sola tarea (Angulo, 2003). En la actualidad el nmero de productos que funcionan en base a uno o varios microcontroladores aumenta de forma exponencial. Y no sera aventurado pronosticar que a mediados de este siglo habr pocos elementos que carezcan de un microcontrolador. Los electrodomsticos de lnea blanca (lavadoras, hornos, lavavajillas, etc.) y de lnea marrn (televisores, videos, aparatos musicales, etc.) incorporan numerosos microcontroladores, al igual que los sistemas de supervisin, vigilancia y alarma en los

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

Arquitectura de computadoras II
Unidad 3. Microcontroladores
edificios utilizan estos chips. Tambin son empleados para optimizar el rendimiento de ascensores, calefaccin, aire acondicionado, alarmas de incendio, robo, etc.

Microcontrolador en un elevador. Consultada en: http://xurl.es/ja9rx

En un estero. Consultada en: http://xurl.es/sstr6

En una lavadora. Consultada en: http://xurl.es/xv8qi

En un sensor de temperatura. Consultada en: http://xurl.es/7kusl

Usos de un Microcontrolador

Una importante industria consumidora de microcontroladores es la de automocin, que los aplica en el control de aspectos tan populares como la climatizacin, la seguridad y los frenos ABS.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

Arquitectura de computadoras II
Unidad 3. Microcontroladores
3.1.1. Diferencia entre microprocesador y microcontrolador
En las unidades anteriores se habl acerca del microprocesador y multiprocesamiento, pero cul es la idea de hablar de ellos y luego del microcontrolador?. Recuerda que el microprocesador es un circuito integrado que contiene la Unidad de Procesamiento Central (CPU), tambin llamada procesador. Tambin se encuentra la Unidad de Control, que se encarga de interpretar las instrucciones y la Unidad Aritmtico Lgica (ALU). Las patas del microprocesador sirven como salida al exterior de las lneas de los buses de direccin, datos y control, para as permitir conectar con la Memoria y los mdulos de Entrada/Salida. Se dice que un microprocesador es un sistema abierto porque su configuracin es variable de acuerdo con la aplicacin a la que se destine. Ahora bien, cul es la diferencia entre ambos? En las siguientes imgenes se muestra esta diferencia:

Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicacin.

El microcontrolador es un sistema cerrado. Todas las partes del computador estn contenidas en su interior y slo salen al exterior las lneas que gobiernan perifricos.

Microprocesador como sistema abierto y sistema cerrado. Consultado en Angulo, 2003

Un microprocesador es un sistema abierto con el que puede construirse una computadora con las caractersticas que se desee, acoplndole los mdulos necesarios. Un microcontrolador es un sistema cerrado que contiene una computadora completa y de prestaciones limitadas que no se pueden modificar (Angulo, 2003).

Se puede definir un sistema cerrado como aquel que solo utiliza sus propios recursos. Por ejemplo una olla a presin que no permita el escape de gases. Y un sistema abierto es aquel que recibe energa desde el exterior y por ende consta de un flujo continuo que le permite generar trabajo en forma permanente. Por ejemplo el motor de un auto (necesita

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

Arquitectura de computadoras II
Unidad 3. Microcontroladores
gasolina), la tierra (necesita de la luz y el calor del Sol), una vela quemndose (Alegsa, 2013). Las aplicaciones en las cuales puedes encontrar el uso de los microcontroladores es en: *Electrodomsticos *Aparatos porttiles y de bolsillo (tarjetas, monederos, telfonos, etc.) *Mquinas expendedoras y juguetera *Industria de automocin *Control industrial y robtica *Electromedicina *Sistema de navegacin espacial *Domtica en general

Aplicaciones en industria de automocin. Consultada en: http://xurl.es/d1579

Una de las diferencias que existe y quizs la ms importante entre estos dos dispositivos es la funcionalidad. Y Por qu la funcionalidad? Porque para que un microprocesador sea funcional requiere conectarse a una memoria y a dispositivos de entrada y salida (E/S), como se vio en la Unidad 1 de esta materia. Por ejemplo si piensas en tu computadora personal o de escritorio, requiere de una tarjeta principal que conoces como tarjeta madre (motherboard), adems de un buen microprocesador, as como una memoria RAM. Recordando que en la motherboard se tiene un sper circuito integrado llamado chipset que se encarga principalmente de administrar las funciones de entrada y salida de los diferentes puertos o ranuras de tu equipo como lo son puerto serial, paralelo, puerto USB, Ethernet, ranuras ISA, PCI, AGP, etc. Ahora bien, en un microcontrolador se tienen todas estas capacidades (procesamiento, almacenamiento de datos, instrucciones, dispositivos de E/S, etc.) dentro de un mismo dispositivo. No requiere de ningn otro componente para funcionar, por tal motivo se le

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

10

Arquitectura de computadoras II
Unidad 3. Microcontroladores
conoce tambin como una microcomputador, debido a que todo est dentro del mismo chip. Lo mencionado anteriormente tiene una gran desventaja en un microcontrolador ya que debido a que cuenta con todas estas capacidades internamente o en el mismo dispositivo, se tiene que buscar el dispositivo adecuado para cada tarea, ya que sus especificaciones varan dentro de las familias de los PIC, esto se ver ms adelante. Una diferencia tambin muy significativa y muy marcada es la arquitectura entre dichos dispositivos, en un microprocesador se usar la arquitectura tradicional de Von Neumann, y en un microcontrolador es la de Harvard que se explicar en la siguiente seccin.

3.1.2. Arquitectura interna


Para dar inicio a esta seccin recuerda que en la unidad 1, se defini la palabra arquitectura como la estructura o partes, las cuales forman y/o disean cada uno de estos componentes. Ahora bien, una vez aclarado el uso de dicha palabra pues se hablar principalmente de cmo se compone internamente un microcontrolador, que como ya se mencion, est basado en la arquitectura Harvard. Esta arquitectura de computadora separa fsicamente el almacenamiento de datos e instrucciones, el termino se origina de las computadoras Harvard Mark 1, que almacenaban las instrucciones y los datos en diferentes medios (Alegsa, 2013). En la siguiente tabla se muestra la diferencia entre la Arquitectura Von Neumann que se usa en los microprocesadores y la Arquitectura Harvard que se ocupan en los microcontroladores.

Arquitectura Von Neumann

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

11

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Arquitectura Harvard

Arquitecturas de microprocesadores y microcontroladores. Consultada en: http://xurl.es/6x1w0

Se puede observar rpidamente en las imgenes como se separan las memorias en la Arquitectura Harvard y la conexin mediante los Buses. En esta arquitectura se tiene la Unidad Central de Proceso (CPU) conectada a dos memorias (una de instruccin y otra de datos) por medio de dos buses diferentes, a diferencia de la de Von Neumann solo se tiene un bus que une la CPU con las memorias. En la Arquitectura Harvard una de las memorias contiene solamente las instrucciones del programa y la otra, solo almacena los datos. Cada bus es completamente independiente lo que permite que la CPU pueda acceder de forma independiente y simultnea a la memoria de datos y a la de instrucciones. Esta situacin optimiza el uso de la memoria de manera muy general. Realmente la comunicacin se da de la misma forma que en la de Von Neumann la diferencia es la forma en que se conectan como se muestra en las imgenes, el funcionamiento es el mismo. Ahora bien se mencionan las partes que conforman un microcontrolador. Recuerda que un microcontrolador posee todos los componentes de una computadora, pero con caractersticas fijas que no pueden ser alteradas. Las partes principales de un microcontrolador segn (Angulo, 2003) son: 1.- Procesador 2.- Memoria no voltil para contener el programa 3.- Memoria de lectura y escritura para guardar los datos 4.- Lneas de Entrada y Salida para los controladores de perifricos 5.- Recursos auxiliares 1. El Procesador (Angulo, 2003) La necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones ha desembocado en el empleo generalizado de procesadores de arquitectura Harvard.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

12

Arquitectura de computadoras II
Unidad 3. Microcontroladores
En esta arquitectura son independientes la memoria de instrucciones y la memoria de datos y cada una dispone de su propio sistema de buses para el acceso. El procesador de los modernos microcontroladores responde a la arquitectura RISC (Computadoras de Juego de Instrucciones Reducido), que se identifica por poseer un repertorio de instrucciones mquina pequeo y simple, de forma que la mayor parte de las instrucciones se ejecuta en un ciclo de instruccin.

Relacin del Procesador con la memoria en la Arquitectura Harvard. Consultada en (Angulo, 2003)

2. Memoria de programa (Angulo, 2003) El microcontrolador se dise para que en una de sus memorias se almacenen las instrucciones del programa de control. Esta es la memoria de programa. Como los programas a ejecutar siempre son los mismos esta informacin se guarda o graba de forma permanente. Esto se puede hacer posible gracias a cinco versiones diferentes de memoria: Versin 1. ROM con mscara: En este tipo de memoria el programa se graba en el chip durante el proceso de su fabricacin (UNC, 2013). Versin 2. EPROM: La grabacin de esta memoria se realiza mediante un dispositivo fsico gobernado desde una computadora personal, el cual recibe el nombre de grabador (UNC, 2013). Versin 3. OTP (Programable una vez): Este modelo de memoria slo se puede grabar una vez por parte del usuario, utilizando el mismo procedimiento que con la memoria EPROM. Posteriormente no se puede borrar (UNC, 2013). Versin 4. EEPROM: La grabacin es similar a las memorias OTP y EPROM, pero el borrado es mucho ms sencillo al poderse efectuar de la misma forma que el grabado. Puede ser programada y borrada tantas veces como se quiera (UNC, 2013). Versin 5. FLASH: Es una memoria no voltil, de bajo consumo, que se puede escribir y borrar en un circuito al igual que las EEPROM, pero suelen disponer de mayor capacidad que las EEPROM (UNC, 2013).

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

13

Arquitectura de computadoras II
Unidad 3. Microcontroladores

3. Memoria de datos (Angulo, 2003) Los datos que manejan los programas varan continuamente, esto exige que la memoria que les contiene, deba ser de lectura y escritura, por lo que la memoria RAM esttica (SRAM) es la ms adecuada, aunque sea voltil. Tambin puede darse el caso de que tenga una memoria no voltil de lectura y escritura, esta memoria logra que si se da un corte en el suministro de la alimentacin no ocasiona la prdida de la informacin, que est disponible al reiniciarse el programa. 4. Lneas de E/S (Angulo, 2003) Todos los microcontroladores cuentan con diferentes patitas, puedes encontrar de 8 pines, 18 pines, etc. Pero al final solo dos patitas o pines estn destinados a recibir alimentacin (Corriente elctrica), otras dos patitas son para el cristal de cuarzo que es el que regula la frecuencia de trabajo, una patita mas es para provocar el Reset, el resto de las patitas es para soportar la comunicacin con los perifricos externos que sern controlados. 5. Recursos auxiliares (Angulo, 2003) Cada modelo de microcontrolador incorpora una diversidad de complementos que refuerzan la potencia y la flexibilidad del dispositivo. Los recursos ms comunes son: 1. Circuito de Reloj. Es el encargado de generar los impulsos que sincronizan el funcionamiento de todo el sistema para realizar tareas como transferencia de datos, control de procesos, etc. Dichos circuitos son en esencia osciladores que proveen una seal generalmente denominada CLOCK (reloj) (Noriega, 2003).

Ejemplo de circuito oscilador. Consultado en (Noriega, 2003)

2. Temporizadores. Orientados a controlar tiempos. Es un dispositivo mediante el cual se puede regular la conexin o desconexin a un circuito elctrico durante un tiempo determinado (Construmtica, 2013).

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

14

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Tipo de temporizador. Consultado en: http://xurl.es/1xjy4

3. Perro Guardin (watchdog). Es el destinado a provocar una reinicializacin cuando el programa queda bloqueado. Permite reiniciar el microcontrolador (Silva, 2007). 4. Conversores AD (Analgico a Digital) y DA (Digital a Analgico). Son para poder recibir y enviar seales analgicas (Malpica, 2013).

Conversores. Consultado en (Malpica, 2013)

5. Comparadores analgicos. Se usan para verificar el valor de una seal analgica. De esta forma se da a conocer la arquitectura que se usa en los microcontroladores y los diferentes componentes que encuentras dentro de cada uno. Este tema no se profundiza ya que como se mencion anteriormente lo nico que cambia en esta arquitectura es la forma en que se conecta la CPU (Unidad de Procesamiento Central) y en cuantos buses se usan. Pero los funcionamientos son los mismos. Tambin se mostr y explico muy brevemente las partes que forman los microcontroladores, ms adelante estudiars su funcionamiento con algunos ejemplos que se implementaran.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

15

Arquitectura de computadoras II
Unidad 3. Microcontroladores
3.1.3. La familia de los PIC
Antes de conocer esta gran familia de microcontroladores, es muy importante que sepas que no son los nicos tipos de microcontroladores que existen en el mercado, pero s los ms usados en el rea acadmica debido a su bajo costo y gran rendimiento comparados con otros. Dentro de la gran variedad de microcontroladores existen los que procesan datos de 4, 6, 8 y 32 bits, sin embargo, el ms representativo y popular son los que procesan 8 bits, a estos pertenecen los PIC. En la siguiente tabla se muestran algunas marcas y algunos de los diferentes modelos que fabrican: Modelos de Microcontroladores (C) Fabricante INTEL 8048, 8051,80C196, 80186, 80188, 80386EX MOTOROLA HITACHI PHILIPS SGS-THOMSON (ST) MICROCHIP 6805, 68HC11, 68HC12, 68HC16, 683XX HD64180 Gama completa de clnicos del 8051 ST-62XX PIC

NATIONAL SEMICONDUCTOR COP8 ZILOG TEXAS INSTRUMENTS TOSHIBA INFINEON DALLAS NEC Z8, Z80 TMS370 TLCS-870 C500 DS5000 78K
Tabla de fabricantes. Consultada en: Iborra, 2002

En este caso se hablar de los PIC (Programable Integrated Circuit o Circuito Integrado Programable) ya que son los han tenido mayor aceptacin en la comunidad de tcnicos y aficionados que trabajan con microcontroladores. Pero, Cul es la razn de esta gran aceptacin? Segn Angulo, (2003), esta aceptacin se debe a que cuenta con algunos detalles que a los profesionistas o especialistas los vuelve locos, y son los siguientes: Sencillez de manejo

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

16

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Buena informacin Precio Buen promedio de parmetros: velocidad, consumo, tamao, alimentacin, cdigo compacto, etc. Herramientas de desarrollo fciles y baratas Diseo rpido Disponibilidad inmediata Compatibilidad del software en todos los modelos de la misma gama

Otras caractersticas que deslumbran a los profesionales de la Microelectrnica y Microinformtica son: Su costo es comparativamente inferior al de los competidores Poseen una elevada velocidad de funcionamiento Tienen un juego reducido de instrucciones; 35 en la gama media. Los programas son compactos Bajo consumo unido a un amplio rango de voltaje de alimentacin Muchas herramientas de software se pueden descargar libremente desde Microchip (http://www.microchip.com) Existe una gran variedad de herramientas de hardware que permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC La gran variedad de modelos de PIC permite que los usuarios puedan elegir libremente el que se adapte mejor a sus necesidades o a los requerimientos de la aplicacin. El fabricante de los PIC dispone de un ms de un centenar de versiones diferentes y cada ao aumenta considerablemente su lista.

Si deseas conocer toda la familia completa de los PIC que tiene microchip puedes consultar la siguiente liga en la cual encontrars todas las especificaciones de cada uno de estos mostrando 2770 resultados: http://www.microchip.com/TechDoc.aspx?type=DataSheet

La empresa Microchip dispone de 4 clasificaciones de PIC de acuerdo al uso de bits estos son: 8-bit PIC MCU 16-bit PIC MCU 16-bit dsPIC DSC 32-bit PIC MCU

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

17

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Clasificacin segn los bits. Consultado en: http://www.microchip.com/pagehandler/enus/products/picmicrocontrollers

Como se puede observar en la imagen Microchip dispone de cuatro gamas de microcontroladores de 8 bits, seis gamas de 16 bits y una de 32 bits, disponibles para cubrir las necesidades de la mayora de los clientes potenciales.

De la seccin Para saber ms se sugiere consultes la siguiente recomendacin: 8-bit PIC Microcontrollers en el cual se proporciona informacin relevante de manera muy general acerca de los PIC de 8 bits. 16-bit Embedded Control Solutions en este artculo se proporciona de la misma forma informacin de los PIC de 16 bits. PIC32 Microcontroller Famillies que de igual forma proporciona informacin de los PIC de 32 bits.

Las gamas son clasificadas de la siguiente manera: 1. Gama baja o bsica Se trata de una serie de PIC de recursos limitados. Sus versiones estn encapsuladas con 18 y 28 patitas y pueden alimentarse a partir de una tensin de 2.5 volts, esto los hace ideales en las aplicaciones que funcionan con pilas.
MODELO MEMORIA PROGRAMA (x12 bits)
EPROM ROM PIC16C52 PIC16C54 PIC16C54A

MEMORIA DATOS (bites)


25 25 25

FRECUENCIA MAXIMA

LINEAS e/s

TEMPORIZADORES

PATITAS

384 512 512

4 MHz 20 MHz 20 MHz

4 12 12

TMRO + WDT TMRO + WDT TMRO + WDT

18 18 18

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

18

Arquitectura de computadoras II
Unidad 3. Microcontroladores
PIC16CR54A PIC16C55 PIC16C56 PIC16C57 PIC16C57B PIC16C5A PIC16CR58A

512 512 1K 2K 2K 2K 2K

25 24 25 72 72 73 73

20 MHz 20 MHz 20 MHz 20 MHz 20 MHz 20 MHz 20 MHz

12 20 12 20 20 12 12

TMRO + WDT TMRO + WDT TMRO + WDT TMRO + WDT TMRO + WDT TMRO + WDT TMRO + WDT

18 28 18 28 28 18 18

Principales caractersticas de algunos modelos de la gama baja. Consultado en (Angulo, 2003).

2. Gama media Es la gama ms variada y completa de los PIC. Abarca modelos con encapsulado desde 18 patitas hasta 68, cubriendo varias opciones que integran abundantes perifricos. Dentro de esta gama se encuentra el PIC16F84, que es el modelo con el que trabajars al final de la unidad. Esta gama a su vez se puede separar en diferentes subfamilias. El repertorio de instrucciones es de 35 a 14 bits cada instruccin.
MODELO MEMORIA PROGRAM A MEMORI A DATOS
RA M EP RO OM

REGISTROS ESPECIFIC OS

TEMP ORIZA DORE S

INTERRUPCIONE S

E/S

RANGO VOLTAJ E

PATITA S

PIC16C84

1Kx14 EEPROM 1Kx14 FLASH 512x14 FLASH 1Kx14 ROM 512x14 ROM

36

64

11

TMRO + WDT TMRO + WDT TMRO + WDT TMRO + WDT TMRO + WDT

13

2-6

18

PIC16F84

68

64

11

13

2-6

18

PIC16F83

36

64

11

13

2-6

18

PIC16CR8 4 PIC16CR8 3

68

64

11

13

2-6

18

36

64

11

13

2-6

18

Caractersticas relevantes de algunos modelos PIC16X8X de la gama media . Consultado en (Angulo, 2003)

3. Gama alta En esta gama los modelos alcanzan las 58 instrucciones de 16 bits en el repertorio y dichos modelos disponen de un sistema de gestin de interrupciones vectorizadas muy potente, incluye tambin diferentes controladores de perifricos, puertas de comunicacin serie y paralelo, cuenta con una arquitectura abierta que consiste en la posibilidad de ampliacin del microcontrolador con elementos externos.
MODE LO MEMOR IA PROGR AMA MEMO RIA DATO S REGIST ROS ESPECIF ICOS TEMPORIZA DORES C AP P W M C A D 10 INTERRUPC IONES E/ S MULTIPLIC ADOR HARDWAR E PATI TAS

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

19

Arquitectura de computadoras II
Unidad 3. Microcontroladores
RAM PIC17 C42A PIC17 C43 PIC17 C44 PIC17 C752 PIC17 C756 bit

2Kx16 4Kx16 8Kx16 8Kx16

232 454 454 454

48 48 48 76

4+WDT 4+WDT 4+WDT 4+WDT

2 2 2 4

2 2 2 3

11

11 11 1 2 1 2 18 18

3 3 3 3 3 3 5 0 5 0

8x8 8x8 8x8 8x8

40/44 40/44 40/44 64/68

16Kx16

902

76

4+WDT

8x8

64/68

Caractersticas relevantes de algunos modelos PIC17CXXX de la gama alta. Consultado en (Angulo, 2003)

4. Gama mejorada Esta gama surge en los inicios del tercer milenio surge con la finalidad de soportar las aplicaciones avanzadas en las reas de automocin, comunicaciones, ofimtica y control industrial. Su principal mejora fue la alta velocidad (40 MHz), contando tambin con un gran rendimiento (10 MIPS a 10 MHz). Cabe mencionar que MIPS es Millones de Instrucciones Por Segundo. Tambin cuenta con un juego de 77 instrucciones de 16 bits cada una, adems de estar orientados a la programacin en lenguaje C.
Memoria (Bytes) DATOS
RAM EPROO M

Modelo

Memoria PROGRAM A (Bytes)

Temporizadores

Interrupciones

E/S

ADC
Canales

Maxi ma (MHz)

PIC18C24 2 PIC18F24 2 PIC18F25 2 PIC18F44 2 PIC18F45 2 PIC18F66 20 PIC18F87 20

16K EEPROM 16K FLASH 32K FLASH 16K FLASH 32K FLASH 64K FLASH 128K FLASH

512 768 153 6 768 153 6 384 0 384 0

256 256 256 256 1024 1024

4 4 4 4 4 4 4

16 16 16 16 16 16 16

23 23 23 34 34 52 68

5 5 5 8 8 12 16

40

28

40 40 40 40 25 25

28 28 40 40 64 80

Caractersticas relevantes de algunos modelos de la familia PIC18C(F)XXX de la gama mejorada. Consultado en (Angulo, 2003)

Si se desea identificar cuntas patitas destina un PIC para lneas de Entrada y Salida (E/S), es necesario que sepas que este tipo de lneas son identificadas en un PIC con los nombres RAx, RBx, RCx, RDx, REx, etc., segn la versin y modelo del PIC. Para eso es importante que revises las especificaciones de cada modelo y ver cuantos puertos usa.

PATITAS

Frec.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

20

Arquitectura de computadoras II
Unidad 3. Microcontroladores

PIC con 12 patitas para E/S

PIC con 20 patitas para E/S

PIC con 50 patitas para E/S

PIC con 66 patitas para E/S Patitas de Entrada y Salida (E/S). Consultado en: http://www.microchip.com/

Recuerda que en esta unidad se va a trabajar con el modelo PIC16F84, por tal motivo se presenta el esquema de la funcin de cada patita o pin del PIC.

Esquema del PIC16F84. Consultado en: http://ww1.microchip.com/downloads/en/DeviceDoc/30430D.pdf

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

21

Arquitectura de computadoras II
Unidad 3. Microcontroladores

En la seccin Para saber ms, se anexa una liga con toda la informacin y especificaciones del PIC16F84.

El PIC16F84 pertenece a la gama media, y su novedad ms importante es la inclusin de memoria EEPROM para contener el programa. Recuerda que la memoria EEPROM puede grabarse y borrarse elctricamente, sin someterla a rayos ultravioleta como sucede con el borrado de las EPROM, esto posibilita la grabacin, depuracin y borrado tantas veces como se desee, la memoria EEPROM admite hasta 1,000,000 de ciclos de escritura/borrado y almacena la informacin durante ms de 40 aos. El hecho de poder emplear el mismo dispositivo cuando se realizan numerosos diseos o cuando se estn probando muchos programas en la fase o etapa de aprendizaje resulta muy prctico y bastante econmico. Muchas de las aplicaciones tpicas en los que se hace uso de estos microcontroladores son el control de puertas de garaje, instrumentacin, inmovilizadores de vehculos, tarjetas codificadas, pequeos sensores, etc. De esta forma se da una breve explicacin y clasificacin de la gran gama de microcontroladores que pertenecen a la familia de los PIC.

Actividad 1. Caracterizando a los microcontroladores


Bienvenido(a) a la primera actividad de la Unidad 3 de la asignatura Arquitectura de Computadoras II! De manera previa realiza una investigacin sobre los PIC. Con la realizacin de esta actividad, ha llegado el momento de caracterizar el uso de un PIC mediante un organizador grfico, con base a algunas particularidades que debers realizar tomando en cuenta el caso o situacin que te indicar tu Facilitador(a). Sigue estas recomendaciones: 1. Genera un documento con algn software de presentaciones de tu eleccin. 2. Elige y crea un organizador grfico que detalle el PIC que convendra usar de acuerdo a las caractersticas propias del mismo de acuerdo al caso dado por tu Facilitador(a).

3. Es imprescindible que dentro de esas particularidades incluyas: funciones, caractersticas, arquitectura, etc. 4. En el mismo documento, en un breve texto, escribe a manera de sntesis la Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica 22

Arquitectura de computadoras II
Unidad 3. Microcontroladores
informacin que justifique tu eleccin, incluye las fuentes que lo sustenten. 5. Guarda tu actividad con la nomenclatura KARQ2_ACT1_U3_XXYZ. 6. Sube tu archivo para su revisin y posterior retroalimentacin. *Consulta los criterios de evaluacin para cada actividad.

3.2. Conjunto de instrucciones y lenguajes


Una vez que ya se dio a conocer parte fundamental de la gran familia de los PIC y su arquitectura general, se procede a identificar las diferentes instrucciones que se usan para crear un programa y despus ser grabado en el PIC. Pero tambin es importante conocer las instrucciones que son la base de funcionamiento del PIC. Para el PIC16F84 como se puede observar en el DataSheet el cual es un documento que resume el funcionamiento y caractersticas de un componente, en este caso del PIC antes mencionado, podrs observar que tiene un total de 35 instrucciones y por supuesto cada una tiene un funcionamiento y uso diferente, estas se clasifican o dividen en tres tipos: Instrucciones orientadas a los registros o bytes (byte-oriented operations) Instrucciones orientadas a los bits (bit-oriented operations) Operaciones con literales y de control (literal and control operations) Esta divisin se encuentra dada por el tipo de datos con los que trabajan, a continuacin se mostrar una tabla en la cual se menciona cada una de estas instrucciones o mnemnicos de manera breve, es as que para entender mejor cada instruccin se brinda el significado de algunos parmetros:

Parmetro
F W B K D

Significado
Registro al que afecta la instruccin Acumulador (working register) Nmero de bit (hay instrucciones que afectan a un solo bit) Constante (un nmero) Seleccin de destino del resultado de la instruccin, puede ser 0 o 1, si es 0 el resultado se guarda en el acumulador (W) y si es 1 se guarda en el registro f al que afecta la instruccin
Parametros usados en las instrucciones. Consultado en: http://ww1.microchip.com/downloads/en/DeviceDoc/30430D.pdf

Instrucciones orientadas a registros No. Mnemnico o Instruccin Descripcin Simblica Descripcin

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

23

Arquitectura de computadoras II
Unidad 3. Microcontroladores
1 ADDWF F, D W + F -> D Suma W y el registro f, el resultado lo guarda segn d (si d=0 se guarda en W y si d=1 se guarda en f) Realiza la operacin AND lgica entre W y f, el resultado lo guarda segn d Borra el registro f (pone todos sus bits a cero) Borra el acumulador Calcula el complementario del registro f (los bits que estn a "0" los pone a "1" y viceversa. Resultado segn d Decrementa f en uno (le resta uno). Resultado segn d Decrementa f y se salta la siguiente instruccin si el resultado es cero. Resultado segn d Incrementa f en uno (le suma uno). Resultado segn d Incrementa f y se salta la siguiente instruccin si el resultado es cero (cuando se desborda un registro vuelve al valor 00h). Resultado segn d Realiza la operacin lgica OR entre W y f. Resultado segn d Mueve el contenido del registro f a W si d=0 (si d=1 lo vuelve a poner en el mismo registro) Mueve el valor de W a f. Por ejemplo, si quieres copiar el valor del registro "REG1" al registro "REG2" escribirs: *MOVF REG1,0 ;mueve el valor de REG1 a W *MOVWF REG2 ;mueve el valor de W a REG2 No hace nada, solo pierde el tiempo durante un ciclo Rota el registro f hacia la izquierda a travs del bit CARRY (todos los bits se mueven un lugar hacia la izquierda, el bit 7 de f pasa al CARRY y el bit CARRY pasa al bit 0 de f). Resultado segn d

2 3 4 5

ANDWF CLRF CLRW COMF

F, D F F, D

W AND F -> D 00 h -> F 00 h -> W Complemento de F-> D

6 7

DECF DECFSZ

F, D F, D

F 1 -> D F 1 -> D (si es 0 salta) F + 1 -> D F + 1 -> D (si es 0 salta)

8 9

INCF INCFSZ

F, D F, D

10 11

IORWF MOVF

F, D F, D

W OR F -> D F -> D

12

MOVWF

W -> F

13 14

NOP RLF

F, D

No operacin Rota F izq. a travs de CARRY -> D

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

24

Arquitectura de computadoras II
Unidad 3. Microcontroladores
15 16 17 18 RRF SUBWF SWAPF XORWF F, D F, D F, D F, D Rota F dcha. a travs de CARRY -> D F W -> D Intercambia nibbles de F -> D X XOR F -> D Lo mismo que RLF pero hacia la derecha Resta f y W (f - W). Resultado segn d Intercambia los 4 primeros bit de f por los otros cuatro. Resultado segn d Realiza la operacin lgica XOR (OR exclusiva) entre W y f. Resultado segn d

Consultada en: http://ww1.microchip.com/downloads/en/DeviceDoc/30430D.pdf. p. 56

Instrucciones orientadas a bit No. 19 20 21 22 Mnemnico o Instruccin BCF F, B BSF F, B BTFSC F, B BTFSS F, B Descripcin Pone a 0 el bit B del registro F Pone a 1 el bit B del registro F Se salta la siguiente instruccin si el bit B del registro F es 0 Se salta la siguiente instruccin si el bit B del registro F es 1

Consultada en: http://ww1.microchip.com/downloads/en/DeviceDoc/30430D.pdf. p. 56.

Instrucciones con literales y de control No. 23 24 25 26 27 28 29 Mnemnico o Instruccin ADDLW K ANDLW K CALL K Descripcin Simblica W + K -> W W AND K -> W Llamada a subrutina k Borra temporizador del WDT Ir a direccin K W OR K -> W K -> W Descripcin Le suma el valor k al acumulador (W) Operacin lgica AND entre W y el valor k (resultado en W) Llamada a subrutina cuyo inicio est en la direccin k Borra el registro Watchdog Salta a la direccin k de programa Operacin lgica OR entre W y el valor k (resultado en W) Carga el acumulador con el valor k. Por ejemplo, si quieres cargar el valor 2Ah en el registro "REG1" escribirs: *MOVLW 2AH ;carga el acumulador con el valor 2Ah *MOVWF REG1 ;mueve el valor de W a "REG1" Instruccin para volver de la interrupcin

CLRWDT GOTO IORLW MOVLW K K K

30

RETFIE

Retorno de una interrupcin

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

25

Arquitectura de computadoras II
Unidad 3. Microcontroladores
31 32 33 34 35 RETLW RETURN SLEEP SUBLW XORLW K K K Retorno con K en W Retorno de una subrutina Modo Standby K W -> W W XOR K -> W carga el valor k en W y vuelve de la interrupcin Vuelve de una subrutina. El pic pasa a modo de Standby Le resta el valor W al acumulador K Operacin lgica XOR entre W y el valor k (resultado en W)

Consultada en: http://ww1.microchip.com/downloads/en/DeviceDoc/30430D.pdf. p. 56

Ahora bien, estas son instrucciones propias del PIC que usa de manera interna, la parte ms interesante se presenta a continuacin, es en la cual debes de programar o crear tus programas para que posteriormente sean grabados dentro del PIC. En la siguiente imagen se expresa grficamente el proceso para generar grabar un PIC.

Proceso de grabacin. Consultado en: http://www.unioviedo.es/ate/alberto/TEMA3-Ensamblador.pdf

El proceso de grabacin de un programa dentro del PIC se realiza de la siguiente manera: Usar un software para crear el archivo fuente Generar el programa con la ayuda de lenguaje ensamblador, C, o cualquier otro lenguaje Una vez que se termina el programa de acuerdo a las necesidades, es importante generar la compilacin, la cual sirve para detectar errores Usar algn software que me permita generar un archivo con extensin hex (archivo con cdigo mquina) Posteriormente se crea el archivo con extensin hex, ya que este archivo ser el que se grabe dentro del PIC Una vez con el archivo generado se utilizar un grabador especial para poder pasar el archivo hex de nuestra PC a nuestro dispositivo (Microcontrolador) Se realiza la grabacin de la PC al PIC

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

26

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Posteriormente en nuestro PIC queda la informacin almacenada y listo para ser usado

En la siguiente imagen puedes ver un grabador para PIC, estos son dispositivos que permiten realizar la insercin de nuestro archivo con extensin hex dentro del PIC.

Grabador de PIC. Consultado en: http://www.minirobot.com.mx/tienda/index.php?id_product=4 34&controller=product&id_lang=3

Pero, por qu generar o usar un archivo con extensin hex?. Porque los microcontroladores el nico lenguaje que entienden es el cdigo mquina que como se sabe est formado por ceros y unos del sistema binario, por tal motivo se genera una archivo que por lo regular suele tener la extensin: *.hex el cual lleva cdigo mquina.

En la seccin Para saber ms se sugiere consultes el siguiente video: Programador de PIC USB anticorto programando PIC16F84 en el cual se muestra brevemente algunas ventajas del grabador.

De la seccin Para saber ms se sugiere consultes los siguientes videos: Pasos para grabar un PIC16F84 y Grabacin del PIC16F84 de manera Fsica que explica los pasos de manera breve, mencionados anteriormente para grabar un PIC e implementar el programa.

Una vez que se muestran las instrucciones con las que cuenta el PIC y el proceso de cmo se graba la informacin de la PC a un microcontrolador, se procede a explicar brevemente el uso de algunos lenguajes de programacin entre ellos el ms usado

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

27

Arquitectura de computadoras II
Unidad 3. Microcontroladores
lenguaje C, pero a partir de la creacin y desarrollo de los lenguajes de programacin la mayora de los ingenieros han aprendido a programar los PIC con lenguaje ensamblador, que es mucho ms complejo que lenguaje C, hay otras aplicaciones que solo permiten el uso de condicionales para poder generar los archivos con extensin hex.

De la seccin Para saber ms se sugiere consultes el video: Grabacin del PIC16F84 de manera Simulada Parte 1 que explica el proceso de manera breve de cmo grabar un PIC usando un simulador.

De la seccin Para saber ms se sugiere consultes el video: Tutorial de ISIS Proteus que explica brevemente como usar el simulador.

Esto se ha dado debido a que es mucho ms fcil utilizar otros lenguajes de programacin que no sean ensamblador debido a que no muchos usuarios son expertos en programacin. Un ejemplo claro del uso de los lenguajes se ve en el siguiente ejemplo que para poder realizar una suma de dos nmeros se llevara a cabo de la siguiente manera: .model small .stack .data valor db ? .code .startup mov ah, 01h ;Leer carcter desde el teclado int 21h ;Lee primer carcter

Lenguaje Ensamblador

sub al, 30h ;Resto 30H (48Dec) para obtener el numero mov valor, al ;Lo guardo en variable valor mov ah, 01h int 21h sub al, 30h add al, valor ;Leer carcter desde el teclado ;Leo el segundo carcter ;Resto 30H (48Dec) para obtener segundo valor ;Realizo la suma de los dos valores

mov dl, al ;Pongo en dl el nmero a imprimir add dl, 30h ;Agrego 30 (48Dec) para obtener el carcter mov ah, 02h ;Funcin para imprimir un carcter en pantalla int 21h

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

28

Arquitectura de computadoras II
Unidad 3. Microcontroladores
.exit End

#include <iostream.h> #include <conio.h> void main (){ int a=0; //Se asigna un 0 a la variable int b=0; //Se asigna un 0 a la variable int c=0; //Se asigna un 0 a la variable

Lenguaje C

cout<<"Dame el valor de a: "; //Se manda un mensaje cin>>a; //Se guarda el valor del teclado en a cout<<"Dame el valor de b: "; //Se manda un mensaje cin>>b; //Se guarda el valor del teclado en b c = a + b; //Se realiza la suma de a con b cout<<"La suma de a y b es: "; //Se imprime un mensaje cout<<c; //Se imprime el resultado getch(); }
Cdigo para hacer una suma

De esta forma se da a conocer el uso de dos lenguajes para poder programar nuestro PIC, con el uso de stos se generara el programa que posteriormente ser grabado en el microcontrolador. Estos lenguajes son: Lenguaje Ensamblador (Assembler). Lenguaje de programacin de bajo nivel Lenguaje C. Lenguaje de programacin de medio nivel. En los siguientes temas se explicar el uso de ambos lenguajes, el lenguaje ensamblador solo se har de manera breve ya que se pretende profundizar en el Lenguaje C dado que su complejidad es menor.

3.2.1. Caractersticas de las instrucciones mquina


El funcionamiento del procesador est determinado por las instrucciones que ste ejecuta. Dichas instrucciones se denominan instrucciones mquina. Al conjunto de estas instrucciones distintas que puede ejecutar el procesador se denomina repertorio de instrucciones del procesador. Cada instruccin debe contener la informacin que necesita el procesador para su ejecucin (Stallings, 2007). La siguiente figura muestra los pasos involucrados en la ejecucin de instrucciones, dichos elementos son:

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

29

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Cdigo de operacin: Especifica la operacin a realizar (suma, E/S, etc.). La operacin se indica mediante un cdigo binario denominado cdigo de operacin o, abreviadamente codop. Referencia a operandos fuente u origen: La operacin puede implicar a uno o ms operandos origen, es decir operandos que son entradas para instruccin. Referencia al operando de destino o resultado: La operacin puede producir un resultado. Referencia a la siguiente instruccin: Dice al procesador de dnde captar la siguiente instruccin tras completarse la ejecucin de la instruccin actual.

Diagrama de estados de un ciclo de instruccin. Consultado en (Stallings, 2007).

Dentro de la computadora, cada instruccin se representa por una secuencia de bits. La instruccin est dividida en campos correspondientes a los elementos constitutivos de la misma. En la siguiente figura se muestra un ejemplo sencillo de formato de instruccin. En la mayora de los repertorios de instrucciones se emplea ms de un formato. Durante su ejecucin, la instruccin se escribe en un registro de instruccin (IR) del procesador. El procesador debe ser capaz de extraer los datos de los distintos campos de la instruccin para realizar la operacin requerida.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

30

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Un formato de instrucciones sencillo. Consultado en (Stallings, 2007).

Es muy complicado y difcil, tanto para los programadores como para las personas que no estn familiarizadas con estos temas, manejar las representaciones binarias de las instrucciones mquina. Por ello, es una prctica comn utilizar representaciones simblicas de las instrucciones mquina (Stallings, 2007). Los codops se representan mediante abreviaturas, denominadas nemotcnicos, que indican la operacin en cuestin. Algunos ejemplos son: ADD Sumar SUB Restar MPY Multiplicar DIV Dividir LOAD Cargar datos de memoria STOR Almacenar datos en memoria (memorizar) Los operandos tambin suelen representarse simblicamente. Por ejemplo la instruccin: ADD, R, Y Puede significar sumar el valor contenido en la posicin de datos Y al contenido del registro R. En este ejemplo, Y hace referencia a la direccin de una posicin de memoria, y R a un registro particular. Las caractersticas que se pretende que tenga un conjunto de instrucciones son cuatro principalmente: 1. Completo. Esto se refiere a que se puede realizar en tiempo finito cualquier tarea ejecutable con una computadora o dispositivo. 2. Eficiente. Se refiere a que debe permitir alta velocidad de clculo sin exigir una elevada complejidad en su Unidad de Control y Unidad Aritmtico Lgica, adems de no consumir excesivos recursos (memoria), es decir, debe cumplir su tarea en un tiempo razonable minimizando el uso de los recursos. 3. Autocontenidas. Esto es, que contengan en s mismas toda la informacin necesaria para ejecutarse. 4. Independientes. Que no dependen de la ejecucin de alguna otra instruccin. Es raro encontrar programadores en lenguaje mquina. La mayora de los programas actuales escriben sus programas en un lenguaje de alto nivel o, en ausencia del mismo, en lenguaje ensamblador. Si se considera una instruccin de alto nivel tal y como se expresara en un lenguaje como C, BASIC o FORTRAN. Por ejemplo: X=X+Y

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

31

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Esta sentencia ordena a la computadora sumar los valores almacenados en X, y en Y, y poner el resultado en X. Cmo se podra realizar lo mismo con instrucciones mquina? Supn que las variables X e Y corresponden a las posiciones 513 y 514. Considerando un repertorio simple de instrucciones mquina, la operacin podra llevarse a cabo con tres instrucciones: 1. Cargar un registro con el contenido de la posicin de memoria 513 2. Sumar al registro el contenido de la posicin de memoria 514 3. Memorizar el contenido del registro en la posicin de memoria 513 Como se puede observar, una sola instruccin de lenguaje C, puede necesitar de tres instrucciones mquina. Como se mostr en una tabla anteriormente con lenguaje ensamblador y lenguaje C. Los tipos de instrucciones se pueden clasificar de la siguiente manera: De procesamiento de datos: instrucciones aritmticas y lgicas De almacenamiento de datos: instrucciones de memoria De transferencia de datos: instrucciones de E/S De control: instrucciones de comprobacin y de bifurcacin Las instrucciones aritmticas proporcionan capacidad computacional para procesar datos numricos. Las instrucciones lgicas (booleanas) operan con los bits de una palabra en lugar de considerarlos como nmeros. Proporcionando por tanto, capacidad para el procesamiento de cualquier otro tipo de datos que el usuario quiera emplear. Este tipo de operaciones se realizan principalmente con datos en registros del procesador. Por tal motivo debe haber instrucciones de memoria para transferir los datos entre la memoria y los registros. Las instrucciones de E/S se necesitan para transferir programas y datos de memoria y devolver resultados de los clculos al usuario. Las instrucciones de comprobacin o test se emplean para comprobar el valor de una palabra de datos o el estado de un clculo. Las de bifurcacin se usan entonces para bifurcar a diferentes conjuntos de instrucciones dependiendo de la decisin tomada (Stallings, 2007). Por cuestin de simplicidad se omitir el profundizar en las instrucciones de mquina, estas se pueden ver reflejadas en el tema Lenguaje Ensamblador, instrucciones muy sencillas y bsicas de dicho lenguaje.

3.2.2. Tipos de operandos y operaciones


En el tema anterior se mencionaron las principales caractersticas que debe de tener una instruccin, en este tema se vern los diferentes tipos de operandos y las operaciones bsicas que se realizan o usan en un programa.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

32

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Recuerda que es un operando y un operador, en el siguiente ejemplo: 3+6=9 El operador es: + y los operandos son: 3 y 6. Por tal motivo se mencionan los tipos de operandos que se pueden usar en programacin. En Stallings (2007), se puede ver que las instrucciones mquina operan con datos. Las categoras generales ms importantes de datos son: Direcciones Nmeros Caracteres Datos lgicos Los tipos de datos ms comunes son los nmeros, los caracteres y los datos lgicos; y cada uno de ellos se analizar brevemente. Nmeros: Una distincin importante entre los nmeros utilizados en las matemticas ordinarias y los almacenados en una computadora es que stos ltimos estn limitados. Esto es cierto en dos sentidos, en primer lugar hay un lmite para la magnitud de los nmeros representables en una mquina y, en segundo lugar, en el caso de nmeros en coma flotante, su precisin est limitada. Por tanto, el programador debe ser consciente de las consecuencias del redondeo, el desbordamiento o el desbordamiento a cero. En las computadoras son usuales tres tipos de datos numricos: Enteros o en coma fija En coma flotante En decimal Caracteres: Una forma bastante comn de datos es el texto o secuencia de caracteres. Aunque la informacin textual sea ms conveniente para las personas, no puede ser almacenada o transmitida fcilmente en forma de caracteres por los sistemas de comunicacin y de procesamiento de datos. Tales sistemas estn diseados para datos binarios. Por lo tanto, se han ideado diversos cdigos que permiten representar caracteres mediante secuencias de bits. Hoy en da, el cdigo de caracteres ms utilizado es el alfabeto de referencia internacional (IRA), conocido en los Estados Unidos como ASCII (American Standard Code for Information Interchange): cdigo estndar americano para intercambio de informacin. Cada carcter es representado en este cdigo por un patrn distinto de 7 bits; pueden representarse por tanto 128 caracteres diferentes.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

33

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Cdigo ASCII. Consultado en: http://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/ASCII_Code_ChartQuick_ref_card.png/361px-ASCII_Code_Chart-Quick_ref_card.png

Datos Lgicos: Normalmente, cada palabra o cualquier otra unidad direccionable (byte, media palabra, etc.) es tratada como una unidad de datos individual. Sin embargo, a veces es til considerar una unidad de n bits como n elementos o datos de un bit, donde cada elemento tiene un valor 1 o 0. Cuando los datos son vistos de esta manera, se consideran datos lgicos. El nmero de cdigos de operacin (codops) diferentes, vara ampliamente de una mquina a otra. Sin embargo, en todas las mquinas puedes encontrar los mismos tipos de operaciones. Una clasificacin tpica y til es la siguiente: Transferencia de datos Aritmticas Lgicas De conversin De E/S De control del sistema De control de flujo La siguiente tabla basada en Hayes (1998), se enlistan tipos de instrucciones comunes de cada clase:

Tipo

Nombre de la operacin

Descripcin
Transfiere una palabra o un bloque

Transferencias Move (transferir)

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

34

Arquitectura de computadoras II
Unidad 3. Microcontroladores
de datos Store (memorizar) Load (cargar o captar) Exchange (intercambiar) Clear (reiniciar o poner a 0) Set (poner a 1) Push (introducir en la pila, apilar) Pop (extraer de la pila, desapilar) Add (sumar) Substract (restar) Multiply ( multiplicar) Aritmticas Divide (dividir) Absolute (valor absoluto) Negate (opuesto) Increment (incrementar) Decrement (decrementar) AND (producto lgico, Y ) OR (Suma lgica, O) NOT (Complemento) Exclusive-OR (OR-Exclusiva) Test (comprobar) desde un origen a un destino Transfiere una palabra desde el procesador a memoria Transfiere una palabra desde memoria al procesador Intercambia los contenidos del origen al destino Transfiere una palabra de ceros al destino Transfiere una palabra de unos al destino Transfiere una palabra desde un origen a la cabecera de la pila Transfiere una palabra desde la cabecera de la pila a un destino Calcula la suma de dos operandos Calcula la diferencia de dos operandos Calcula el producto de dos operandos Calcula el cociente de dos operandos Sustituye el operando por su valor absoluto Cambia el signo del operando Suma 1 al operando Resta 1 del operando Realiza la operacin lgica Y (AND) Realiza la operacin lgica O (OR) Realiza el complemento (NOT) bit a bit del dato Realiza la operacin lgica OExclusiva (XOR) Comprueba la condicin especificada, fija los indicadores (flags) en funcin del resultado Realiza la comparacin lgica o aritmtica de dos o ms operandos; fija los indicadores (flags) en funcin del resultado Instrucciones que fijan controles para proteccin, gestin de interrupciones, control de temporizador, etc.

Lgicas

Compare (comparar)

Set control variables (fijar variables de control)

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

35

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Desplaza el operando a la izquierda (derecha), introduciendo valores constantes por el otro extremo. Desplaza el operando a la izquierda (derecha) de forma cclica Ruptura incondicional de flujo; carga el PC con la direccin especificada. Comprueba la condicin especificada; dependiendo de la condicin, o carga el PC con la direccin indicada, o no hace nada Guarda la informacin de control del programa en una posicin conocida y salta a la direccin indicada Sustituye el contenido del PC y de otros registros por los de la posicin conocida Capta el operando de la direccin indicada y lo ejecuta como una instruccin, no modifica el PC Incrementa el PC de manera que se salte la instruccin siguiente Comprueba la condicin indicada, realiza el salto implcito o no hace nada, dependiendo de la condicin Define la ejecucin del programa Detiene la ejecucin del programa; comprueba de forma repetitiva la condicin especificada; reanuda la ejecucin cuando se satisface la condicin No se ejecuta operacin alguna, pero la ejecucin del programa continua Transfiere datos desde un puerto o dispositivo de E/S al destino (memoria principal o registro del procesador) Transfiere datos desde el origen especificado a un puerto o dispositivo de E/S Transfiere instrucciones al procesador de E/S para iniciar

Shift (desplazamiento) Rotate (rotar) Jump (bifurcacin o salto) Jump condicional (salto condicional) Jump to subrutina (Llamada a subrutina) Return (retorno)

Control de flujo

Execute (ejecutar) Skip (salto implcito) Skip conditional (salto implcito condicional) Halt (parar)

Wait (esperar)

No operation (no operacin)

Input (entrada) Entrada/Salida Output (salida) Start I/O (iniciar E/S)

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

36

Arquitectura de computadoras II
Unidad 3. Microcontroladores
operaciones de E/S Transfiere informacin de estado desde el sistema de E/S al destino especificado Traduccin de los valores de una seccin de memoria, basado en una tabla de correspondencia Convierte el contenido de una palabra de un formato a otro (por ejemplo., de decimal empaquetado a binario)

Test I/O (comprobar E/S)

Translate (traducir) Conversin Convert (convertir)

Operaciones usuales de repertorios de instrucciones. Consultado en (Hayes, 1998)

Estas son las principales instrucciones que se llevan a cabo o se pueden usar dentro del lenguaje mquina, en el siguiente tema se mostrarn brevemente ejemplos en los cuales se har uso de las operaciones y de algunas instrucciones.

3.2.3. Lenguaje Ensamblador


Un procesador puede interpretar y ejecutar instrucciones mquina. Estas instrucciones son simplemente nmeros binarios almacenados en la computadora. Si un programado quisiera programa directamente en lenguaje mquina, necesitara introducir los programas como datos binarios. Por ejemplo la siguiente sentencia en lenguaje C: N = I +J + K Supn que quieres programar esta sentencia en el lenguaje mquina y dar a I, J, y K los valores iniciales 2, 3 y 4 respectivamente. La forma de hacer esto se muestra en la siguiente figura: Direccin 101 102 103 104 201 202 203 204 0010 0001 0001 0011 0000 0000 0000 0000 Contenido 0010 101 0010 102 0010 103 0010 104 0000 0000 0000 0000 201 202 203 204 2201 1202 1203 3204 0002 0003 0004 0000

Programa en binario. Consultado en: Stallings, 2007

El programa empieza en la posicin 101 (hexadecimal). Se reserva memoria para las cuatro variables a partir de la posicin 201. El programa consta de cuatro instrucciones: 1. Cargar el contenido de la posicin 201 en el acumulador (AC)

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

37

Arquitectura de computadoras II
Unidad 3. Microcontroladores
2. Sumar a AC el contenido de la posicin 202 3. Sumas a AC el contenido de la posicin 203 4. Memorizar el contenido de AC en la posicin 204 Esto es evidentemente un proceso tedioso y muy susceptible a errores. Una mejora a esta situacin puede ser redactar el programa en hexadecimal en lugar de binario. Quedando de la siguiente manera: Direccin Contenido 101 2201 102 1202 103 1203 104 3204 201 202 203 204 0002 0003 0004 0000

Programa en hexadecimal. Consultado en: Stallings, 2007.

Para que la mejora se a ms significativa, puedes hacer uso de nombres simblicos o nemotcnicos de las instrucciones. El resultado es el programa simblico mostrado en la siguiente figura: Direccin Instruccin 101 LDA 201 102 ADD 202 103 ADD 203 104 STA 204 201 202 203 204 DAT DAT DAT DAT 2 3 4 0

Programa simblico. Consultado en: Stallings, 2007.

El uso de programas simblicos hace la vida mucho ms fcil pero es an engorroso. Un procedimiento mejor, utilizado con frecuencia, es emplear direcciones simblicas. Esto se ilustra en la siguiente figura: Etiqueta Operacin Operando FORMUL LDA 1 ADD 1 ADD K STA N

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

38

Arquitectura de computadoras II
Unidad 3. Microcontroladores

I J K N

DATA DATA DATA DATA

2 3 4 0

Programa en ensamblador. Consultado en: Stallings, 2007.

Con este ltimo refinamiento, se ha inventado un lenguaje ensamblador. Los programas escritos en lenguaje ensamblador se traducen a lenguaje maquina mediante un ensamblador. Este programa debe no solo realizar la traduccin simblica mencionada antes, sino tambin asignar direcciones de memoria a las direcciones simblicas.

El desarrollo de los lenguajes ensambladores fue un logro importante en la evolucin de la tecnologa de las computadoras. Fue un primer paso hacia los lenguajes de alto nivel utilizados hoy en da, pero estos an requeran muchas instrucciones para llevar a cabo las tareas ms sencillas. Para acelerar el proceso de programacin, se desarrollaron los lenguajes de alto nivel, en los que las instrucciones individuales llevan a cabo tareas importantes. A los programas traductores que convierten programas escritos en lenguajes de alto nivel a lenguaje mquina, se les llama compiladores. Los lenguajes de alto nivel permiten a los programadores escribir instrucciones que se parecen mucho al ingls comn, y contienen la notacin matemtica comn (Deitel, 2004).

Un programa de nmina escrito en un lenguaje de alto nivel podra contener una instruccin como la siguiente: sueldoBruto = sueldo Base + sueldoExtra Esto hace a los lenguajes de alto nivel mucho ms recomendables, desde el punto de vista del programador, que el lenguaje mquina y ensamblador. Debido a que el lenguaje ensamblador es un poco difcil de usar si no cuentas con los conocimientos bsicos de dicho lenguaje se mostrarn ejemplos elaborados en lenguaje C, ya que los ejemplos que se vern en adelante sern con el uso de este lenguaje para poder programar un PIC.

Actividad 2. Instrucciones bsicas del lenguaje ensamblador


El propsito de esta actividad es que menciones la forma en que se realizan operaciones bsicas en lenguaje ensamblador y lenguaje C, distinguiendo las diferencias de cada una de las operaciones que sern indicadas por tu Facilitador(a): 1. Ingresa al foro de la actividad y participa sobre la pregunta o situacin de apertura.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

39

Arquitectura de computadoras II
Unidad 3. Microcontroladores

2. Sustenta tus puntos de vista y retroalimenta a mnimo 2 de tus compaeros(as). 3. Anota lo que consideres importante de cada tipo y considera la conclusin final de tu Facilitador(a). *La actividad ser evaluada de acuerdo a su respectiva rbrica, as que es importante que la consultes.

3.3. Caractersticas y uso de elementos del microcontrolador (puertos, temporizadores, convertidores)


Este tema es muy pequeo pero de mucha importancia para entender el manejo de un PIC, as como los elementos que se mencionan en el DataSheet del PIC16F84 y que quizs no se entiendan. El PIC cuenta con algunos elementos que son de suma importancia que distingas de manera general y logres diferenciar ya que te sern de mucha utilidad para poder elaborar tus proyectos y actividades, estos elementos se vieron de manera general anteriormente, pero en este momento se vern de manera individual. Los PIC disponen de un procesador rpido y potente. En l se incluye la memoria de programa, la de datos, la ALU, la Unidad de Control y algunos registros especiales. Si dentro de un microcontrolador nicamente existiese un procesador, slo se podran ejecutar instrucciones lgico-aritmticas y de transferencia. Pero un Microcontrolador es ms que un procesador, es una computadora integral en la que, adems del procesador, hay puertas de E/S para conectarse con perifricos, canales de comunicacin, temporizadores para controlar tiempos, sistemas de interrupciones capaz de detectar anomalas o sucesos especiales, sistemas de seguridad, modo de funcionamiento con bajo consumo, entre otras cosas, que a fin de cuentas son recursos que configuran la potencia integral de una computadora

Los PIC contienen todos los recursos posibles, aunque su fabricante no les incluye en todos los modelos, sino que los alterna para poderse ajustar ptimamente a las necesidades de cada diseo (Angulo, 2003).

En este apartado se describirn algunos de los recursos ms importantes de los PIC tomando en cuenta que al que se har mayor referencia es al PIC16F84.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

40

Arquitectura de computadoras II
Unidad 3. Microcontroladores

3.3.1. Puertos
Los PIC 16X8X slo disponen de dos puertas de E/S. La puerta A posee 5 lneas, desde RA0 hasta RA4, y una de ellas soporta dos funciones multiplexadas. Se trata de la RA4/TOCKI, que puede actuar como lnea de E/S o como una patita por la que se reciben los impulsos que debe contar TMR0. La puerta B tiene 8 lneas, desde RB0 hasta RB7, y tambin tiene una con funciones multiplexadas, la RB0/INNT, que adems de lnea tpica de E/S, sirve como patita por la que se reciben los impulsos externos que provocan una interrupcin, esta informacin se encuentra dentro del DataSheet del PIC16F84. Cada lnea de E/S se puede configurar tanto como entrada o como salida, todo depende de cmo se declare si a 1 o a 0, respectivamente, el bit asociado del registro de configuracin de cada puerta (TRISA y TRISB). Se llaman PUERTA-A y PUERTA-B los registros que guardan la informacin que entra o sale por la puerta y ocupan las direcciones 5 y 6 del banco 0 de la memoria de datos. Los registros de configuracin TRISA y TRISB ocupan las mismas direcciones, pero en el banco 1, como se puede observar en la siguiente figura:

Registros de configuracin. Consultado en: Angulo, 2003

De la seccin Para saber ms se sugiere consultes el captulo 3 del libro: Compilador C CCS y simulador PROTEUS para Microcontroladores PIC que explica la configuracin de los puertos A y B del PIC como entrada o salida.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

41

Arquitectura de computadoras II
Unidad 3. Microcontroladores
3.3.2. Temporizadores
Para abordar este tema es necesario que recuerdes que se defini a un Temporizador como: El dispositivo mediante el cual puedes regular la conexin o desconexin de un circuito elctrico durante un tiempo determinado (Construmtica, 2013). Una de las labores ms habituales en los programas de control de dispositivos suele ser determinar intervalos concretos de tiempo, y recibe el nombre de temporizador (timer) el elemento encargado de realizar esta funcin. En Angulo (2003), nos indica que los PIC16X8X poseen un temporizador/contador de 8 bits, llamado TMRO, que acta de dos maneras diferentes: 1. Como contador de sucesos, que estn representados por los impulsos que se aplican a la patita RA4/TOCKI. 2. Como temporizador, cuando se carga en el registro que implementa al recurso un valor inicial se incrementa con cada ciclo de instruccin hasta que se desborda, o sea, pasa de FF a 00 H, y avisa poniendo a 1 un bit sealizador y/o provocando una interrupcin.

Esquema de un temporizador/contador. Consultado en: Angulo, 2003

Los PIC16X8X y los de la gama baja disponen de dos temporizadores, el TMRO y el Perro Guardin (watchdog). El primero acta como principal y sobre l recae el control de tiempos y el contaje de impulsos. El otro vigila que el programa no se cuelgue, y para ello cada cierto tiempo comprueba si el programa se est ejecutando normalmente. En caso contrario, si el control est detenido en un bucle infinito a la espera de algn acontecimiento que no se produce, el Perro Guardin ladra, lo que se traduce en un Reset que reinicializa todo el sistema (Angulo, 2003). En la siguiente figura se proporciona un esquema simplificado de la arquitectura del circuito de control de tiempo usado en los PIC16X8X.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

42

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Esquema simplificado de la seccin dedicada al control de tiempos en la arquitectura de los PIC16X8X. Consultado en (Angulo, 2003)

3.3.3. Convertidores
El PIC16F84 como se mencion al inicio de esta unidad cuenta con convertidor Analgico-Digital (ADC o A/D), el cual no es ms que un pequeo circuito electrnico que convierte seales continuas a nmeros digitales discretos (ADC). La operacin contraria es realizada por un conversor digital-analgico (DAC). Generalmente, un conversor analgico-digital es un dispositivo electrnico que convierte una entrada analgica de voltaje a un nmero digital. La salida digital puede usar diferentes esquemas de codificacin, como binario, o complemento de dos binario. De cualquier manera, algunos dispositivos no elctricos o parcialmente elctricos pueden ser considerados como conversores analgico-digital (Alegsa, 2013). Recuerda que una seal analgica es una onda sinusoidal como la de la siguiente imagen:

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

43

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Seal Analgica. Consultada en: http://xurl.es/2ryv5

La seal digital es una onda cuadrada o escalonada como en la siguiente imagen:

Seal Digital. Consultada en: http://kerchak.com/wpcontent/uploads/2013/03/Seal-digital.jpg

Lo que realmente hace un convertidor por ejemplo si le entra una seal analgica elevada este la convierte en un 1 o si es muy baja y pasa cierto rango entonces estara arrojando un 0.

Actividad 3. Elementos del microcontrolador


El propsito de esta actividad es elaborar un diagrama de Venn que te permita separar los elementos que conforman a un microcontrolador (PIC16F84) de los otros PIC, y que al mismo tiempo distingas la relacin que tienen estos componentes, as como incluir sus caractersticas. Con base en lo anterior, realiza lo siguiente: 1. Crea un documento de texto define el ttulo de tu trabajo. 2. En tus propias palabras, elabora una pequea introduccin de lo que vas a tratar en tu diagrama, mnimo media cuartilla. 3. Desarrolla el diagrama de Venn con sus respectivos conjuntos. 4. Indica los elementos usados.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

44

Arquitectura de computadoras II
Unidad 3. Microcontroladores
5. Precisa la relacin entre cada elemento. 6. Escribe la informacin que explique la relacin del diagrama, as como la clasificacin de los conjuntos. 7. Sustenta tu trabajo con por lo menos 3 fuentes bibliogrficas o electrnicas reconocidas. Tambin es importante reconocer y respetar los derechos de autor, dndoles sus correspondientes crditos. 8. Escribe una conclusin de mnimo media cuartilla, aterrizando todas las ideas plasmadas durante el desarrollo de tu actividad. 9. Guarda tu trabajo en un archivo llamado KARQ2_ACT3_U3_XXYZ. 10. Sube tu archivo para su revisin y posterior retroalimentacin *Consulta la rbrica para la evaluacin de la actividad.

3.4. Aplicaciones de los microcontroladores


Una forma excelente de conseguir una comprensin de los temas vistos de manera bsica, es visualizando y realizando algunos ejemplos que te sern proporcionados en los temas faltantes, con la finalidad de que puedas resolver sin ningn problema tu evidencia de aprendizaje. En la actualidad encuentras diferentes aplicaciones o dispositivos de los cuales disponen de un microcontrolador, pero, qu tipo de aplicaciones puedes encontrar en las cuales se hace uso de los microcontroladores. Por ejemplo:

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

45

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Letrero luminoso. Consultado en: http://xurl.es/p1ur3 Calculadora. Consultado en: http://edumic.uv.es/imagenes/edumic_web.jpg

Mediante los siguientes ejemplos se pretende resumir de forma clara y concisa los pasos que se deben llevar a cabo para realizar las ejemplos propuestos.

3.4.1. Ejemplos usando el PIC16F84


En esta seccin se explicarn y mostrarn algunos ejemplos iniciando con la elaboracin del cdigo, a continuacin se generar el archivo hex y por ltimo se simular el circuito. Para elaborar el cdigo fuente y generar el archivo hex utilizars la aplicacin PIC C Compiler (PCW) de Custom Computer Services Incorporated (CCS) y para simular el circuito se usar PROTEUS VSM de Labcenter Electronics. Estas herramientas han sido seleccionadas por su compatibilidad y los ejemplos que aparecen corresponden al uso del editor con las instrucciones del compilador y al software de simulacin mencionados. Adems cabe destacar que dichas herramientas fueron seleccionadas por su fcil manejo, al mismo tiempo que no existen muchos simuladores de electrnica que permitan trabajar con el PIC; tambin existe mucha informacin en la red que se puede consultar para el eficiente uso del mismo. El compilador se seleccion debido a que permite desarrollar programas en C enfocado a PIC con la ventaja de estar orientado a un microcontrolador concreto, puesto que dispone de una amplia librera para el uso de funciones predefinidas, comandos, entre muchas otras cosas y que el mismo software genera el archivo con extensin hex.

Consulta el video titulado Tutorial de ISIS proteus el vnculo lo podrs encontrar en la seccin Para saber ms.

Existen otras herramientas que se pueden utilizar para la generacin del cdigo fuente como PIC Basic de Microsoft, pero desafortunadamente no permite la generacin del archivo con extensin hex, se requiere una aplicacin extra. Y en el caso del simulador sus alternativas son LabVIEW de National Instruments es una aplicacin muy completa pero tiene un costo, y la informacin que se encuentra en la red es mnima. De igual forma tambin se sugiere el uso de Arduino que es una plataforma de hardware y software open source, diseados para facilitar el uso de la electrnica en diferentes proyectos, pero con la desventaja que se tiene que comprar la tarjeta. En la seccin Para saber ms podrs encontrar informacin adicional.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

46

Arquitectura de computadoras II
Unidad 3. Microcontroladores

LabView . Consultado en: http://www.ni.com/trylabview/esa/

PIC Basic

PIC C Compiler (PCW)

PROTEUS . Consultado en: http://www.subirimagenes.net/pictures/5d77d417927 7b9ad443e2e8d622f93be.jpg

Por cuestiones de simplicidad y mayor entendimiento se recomendarn videos para explicar cada uno de los ejemplos. Ejemplo 1: Encender un led usando el puerto RB0 que prenda por dos segundos y que se apague por medio segundo y que lo siga haciendo ilimitadamente. El cdigo es el siguiente: #include <16f84A.h> //Uso de la librera del modelo del PIC #fuses XT,NOWDT //Ordenes programador #use delay (clock=4000000) //Frecuencia de Reloj 4MHz #use standard_io(B) //Declaracin del puerto a usar void main (void){ //Funcin principal while(TRUE){ //Condicin infinita output_high(PIN_B0); //Enciende el led por el puerto RB0 delay_ms (2000); //Retraso de 2 segundos output_low(PIN_B0); //Apaga el led por el puerto RB0 delay_ms(500); //Retraso de medio segundo

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

47

Arquitectura de computadoras II
Unidad 3. Microcontroladores
} } //Fin de la condicin //Fin de la funcin principal

Diagrama del Ejemplo 1

Posteriormente se generar el archivo hex y se elaborara el diagrama con ayuda de PROTEUS.

El video para este ejemplo lo puedes consultar en la liga: http://www.youtube.com/watch?v=rdL-nCeW-Ho&feature=youtu.be Este mismo video lo encontrars en la seccin Para saber ms, con el nombre: Grabacin del PIC16F84 - Encender un Led...!

Ejemplo 2: Encender un led usando un botn conectado a RA0 y el led conectado a RB0 solo encender cuando se presione el botn. El led permanecer encendido por 1 segundo y luego se apagar. El cdigo es el siguiente:

#include <16f84A.h> //Uso de la librera #fuses XT,NOWDT //ordenes programador #use delay (clock=4000000) //Frecuencia de Reloj 4MHz

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

48

Arquitectura de computadoras II
Unidad 3. Microcontroladores
#use standard_io(A) #use standard_io(B) void main (void){ while(TRUE){ //Declaracin del puerto a usar //Declaracin del puerto a usar //Funcin principal //Condicin infinita

//Se evalua el valor que tiene el puerto A0 if(input(PIN_A0) == 1){ output_high(PIN_B0); //Enciende el led por el puerto RB0 delay_ms (1000); //Retraso de 1 segundo } else{ output_low(PIN_B0); //Apaga el led por el puerto RB0 } } //Fin de la condicin } //Fin de la funcin principal

Diagrama del Ejemplo 2

El proceso de elaboracin de este circuito se puede apreciar en el video que lleva por nombre: Grabacin del PIC16F84 - Encender un led al presionar un botn...!

En la siguiente liga: http://www.youtube.com/watch?v=zwa1wYYZ-c&feature=youtu.be, con el video llamado: Grabacin del PIC16F84 Encender un led al presionar un botn...! encontrars una explicacin detallada del ejemplo anterior de cmo encender un led al presionar un botn usando el puerto RA0.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

49

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Ejemplo 3: Mandar voltaje a un dispositivo de tal forma que se vayan encendiendo ordenadamente los puertos de RB del 0 al 7. Esto lo puedes resolver con ayuda de los ejemplos ya antes vistos. Se debe de mandar una seal alta al puerto y los dems apagados, por ejemplo RB0 encendido y los dems apagados, posteriores RB1 encendido y los dems apagados, as sucesivamente. El cdigo fuente es el siguiente: #include <16f84A.h> //Uso de la librera #fuses XT,NOWDT //ordenes programador #use delay (clock=4000000) //Frecuencia de Reloj 4MHz #use standard_io(A) //Declaracin del puerto a usar #use standard_io(B) //Declaracin del puerto a usar void main (void){ //Funcin principal while(TRUE){ //Condicin infinita output_high(PIN_B0); output_low(PIN_B1) && output_low(PIN_B2) && output_low(PIN_B3); output_low(PIN_B4) && output_low(PIN_B5) && output_low(PIN_B6); output_low(PIN_B7); delay_ms (200); output_high(PIN_B1); output_low(PIN_B0) && output_low(PIN_B2) && output_low(PIN_B3); output_low(PIN_B4) && output_low(PIN_B5) && output_low(PIN_B6); output_low(PIN_B7); delay_ms (200); output_high(PIN_B2); output_low(PIN_B1) && output_low(PIN_B0) && output_low(PIN_B3); output_low(PIN_B4) && output_low(PIN_B5) && output_low(PIN_B6); output_low(PIN_B7); delay_ms (200); output_high(PIN_B3); output_low(PIN_B1) && output_low(PIN_B2) && output_low(PIN_B0); output_low(PIN_B4) && output_low(PIN_B5) && output_low(PIN_B6); output_low(PIN_B7); delay_ms (200); output_high(PIN_B4); output_low(PIN_B1) && output_low(PIN_B2) && output_low(PIN_B3); output_low(PIN_B0) && output_low(PIN_B5) && output_low(PIN_B6); output_low(PIN_B7); delay_ms (200);

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

50

Arquitectura de computadoras II
Unidad 3. Microcontroladores
output_high(PIN_B5); output_low(PIN_B1) && output_low(PIN_B2) && output_low(PIN_B3); output_low(PIN_B4) && output_low(PIN_B0) && output_low(PIN_B6); output_low(PIN_B7); delay_ms (200); output_high(PIN_B6); output_low(PIN_B1) && output_low(PIN_B2) && output_low(PIN_B3); output_low(PIN_B4) && output_low(PIN_B5) && output_low(PIN_B0); output_low(PIN_B7); delay_ms (200); output_high(PIN_B7); output_low(PIN_B1) && output_low(PIN_B2) && output_low(PIN_B3); output_low(PIN_B4) && output_low(PIN_B5) && output_low(PIN_B6); output_low(PIN_B0); delay_ms (200); } } //Fin de la funcin principal

El diagrama en PROTEUS quedara de la siguiente manera con ayuda de una barra de leds.

Diagrama del Ejemplo 3

El proceso de elaboracin de este circuito se encuentra en el video nombrado: Grabacin del PIC16F84 - Luces de Discoteca...!, que podrs encontrar dentro de la siguiente liga: http://www.youtube.com/watch?v=ZmFlugYsPPI&feature=youtu.be Explica cmo se usan todas las lneas de salida del puerto RB. Adems lo podrs encontrar referenciado en la seccin Para saber ms

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

51

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Estos son algunos de los ejemplos que puedes realizar con ayuda del PIC16F84, con ayuda de stos se propone que realices las siguientes propuestas de manera que puedas practicar con ejercicios muy sencillos. Propuestas: 1. Encender un led conectado a RB4 durante 1.5 segundos y luego apagarlo por 0.5 segundos, el proceso debe repetirse slo 4 veces, luego el led debe permanecer apagado. 2. Encender dos leds conectados en RB0 y RB1 alternadamente, es decir mientras un led est encendido el otro permanecer apagado y viceversa, los tiempos de transicin sern de 0.5 segundos, el proceso debe continuar indefinidamente. 3. Generar 6 parpadeos en un led con intervalos de tiempo de 300 milisegundos, luego generar 2 parpadeos de 1 segundo con un segundo led, luego hacer que los dos leds parpadean al mismo tiempo 3 veces con intervalos de 0.5 segundos, repetir el proceso indefinidamente.

3.4.2. Proyectos usando el PIC16F84


Qu proyectos se pueden implementar con el PIC16F84?, puedes realizar demasiados, hasta donde alcance tu imaginacin, por ejemplo el siguiente proyecto es la elaboracin de un semforo: Proyecto 1: Elaborar un semforo sencillo para una esquina, donde solo se usan colores rojo, amarillo y verde. Primero que nada debes analizar el problema, para esto se requiere mucha lgica y pensar en cmo solucionarlo. Cmo funciona un semforo?, para este ejemplo se usarn los siguientes nombres para simplificar y entender mejor: Semforo 1: Rojo1, Amarillo1 y Verde1 Semforo 2: Rojo2, Amarillo2 y Verde2 Cuando el Verde1 este encendido el Rojo2 estar apagado, posteriormente el Amarillo1 se encender y el Rojo2 seguir encendido, pero el Verde1 se apagar, cuando el Rojo1 encienda, el Rojo2 apagar y encender el Verde2, posteriormente el Amarillo2 encender, el Rojo 1 estar prendido y el Verde2 se apagar. Para este ejemplo toma en cuenta que el cambio de verde a amarillo durar 9 segundos y el cambio de amarillo a rojo solo 3.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

52

Arquitectura de computadoras II
Unidad 3. Microcontroladores

El cdigo es el siguiente:
#include <16f84A.h> //Uso de la librera #fuses XT,NOWDT //ordenes programador #use delay (clock=4000000) //Frecuencia de Reloj 4MHz #use standard_io(B) //Declaracin del puerto a usar void main (void){ //Funcin principal while(TRUE){ //Condicin infinita output_high(PIN_B2) && output_high(PIN_B3); //B2-Verde1 B3-Rojo2 output_low(PIN_B0) && output_low(PIN_B1) && output_low(PIN_B4) && output_low(PIN_B5); delay_ms(9000); output_high(PIN_B1) && output_high(PIN_B3); //B1-Ama1 B3-Rojo2 output_low(PIN_B0) && output_low(PIN_B2) && output_low(PIN_B4) && output_low(PIN_B5); delay_ms(3000); output_high(PIN_B0) && output_high(PIN_B5); //B0-Rojo1 B5-Verde2 output_low(PIN_B1) && output_low(PIN_B2) && output_low(PIN_B3) && output_low(PIN_B4); delay_ms(9000); output_high(PIN_B0) && output_high(PIN_B4); //B0-Rojo1 B4-Ama2 output_low(PIN_B1) && output_low(PIN_B2) && output_low(PIN_B3) && output_low(PIN_B5); delay_ms(3000); } } //Fin de la funcin principal //encendido del Verde 1

El proyecto simulado en una tablilla de experimentacin (protoboard) se vera de la siguiente manera:

Fotografa del semforo armado en un protoboard. Consultado en: Reyes, 2008

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

53

Arquitectura de computadoras II
Unidad 3. Microcontroladores
El proyecto simulado en PROTEUS sera de la siguiente forma:

Semforo en PROTEUS

El proceso de elaboracin y explicacin de este proyecto se puede encontrar y apreciar en la siguiente liga: http://www.youtube.com/watch?v=sK9pwiIcOr8&feature=youtu.be, de igual forma en la seccin Para saber ms, se encuentra su descripcin y vinculo nuevamente con el nombre: Grabacin del PIC16F84 Semforo Sencillo...!.

Proyecto 2: Elaborar un contador decimal de 0 a 99 con un display de 7 segmentos. Un display es un componente que encender los leds que tiene integrados conforme reciba voltaje en alguna de sus patitas, es muy usado para representar numero debido a la forma que tiene, por ejemplo si observas en la siguiente imagen para poder representar el nmero 1 se debe recibir voltaje en sus patitas b y c, si se desea representar el nmero 0, todas las patitas debern de estar encendidas excepto la g.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

54

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Display de 7 Segmentos. Consultado en: http://1.bp.blogspot.com/-cRlBJlDidk8/Td0OVffszBI/AAAAAAAAAL0/v4kr5WMhAgI/s320/display.gif

Pues bien, ahora lo nico que tienes que hacer es implementar un ciclo for ya que con un display solo puedo representar los 10 dgitos del sistema decimal que son: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, por tal motivo lo que se pretende es que conforme avance mi contador se representen cada uno de estos nmeros, pero no solo eso sino que lo haga hasta el nmero 99. Por tal motivo se utilizarn dos displays uno para las unidades y otro para las decenas, recordando que las decenas incrementaran cada que se incrementen 10 veces las unidades. Para poder encender el display se crea un arreglo el cual contiene los valores de las patitas en valor hexadecimal a las que se tiene que mandar voltaje quedando como se muestra en la siguiente tabla, los 1s representan encendido y los 0s apagado.

Nmero Decimal 0 1 2 3 4 5 6 7 8 9 Posicin del Puerto B

G 0 0 1 1 1 1 1 0 1 1 RB6

F 1 0 0 0 1 1 1 0 1 1 RB5

Cdigo Binario E D C 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 RB4 RB3 RB2

B 1 1 1 1 1 0 0 1 1 1 RB1

A 1 0 1 1 0 1 1 1 1 1 RB0

Cdigo Hexadecimal 3F 06 5B 4F 66 6D 7D 07 7F 6F

Tabla comparativa de binario y hexadecimal

Las posiciones hexadecimales sern usadas como se mencion dentro del arreglo para que al momento que se indique al puerto B cual ser la salida se mande valores de 1 o 0 segn corresponda en los puertos de salida de RB. El cdigo fuente de este ejemplo es el siguiente: #include <16F84.h> #USE DELAY( CLOCK=4000000) #FUSES XT,NOWDT #USE fast_IO (B) #USE fast_IO (A)

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

55

Arquitectura de computadoras II
Unidad 3. Microcontroladores
byte CONST DISPLAY[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void main(void){ byte ud=0,dec=0; SET_TRIS_B(0x00); SET_TRIS_A(0x00); OUTPUT_B(0); for( ;; ){ for (dec=0;dec<10;dec++){ //Cuenta digito decenas for (ud=0;ud<10;ud++){ OUTPUT_A(0x02); //cat_D=apagado,cat_U=encendido OUTPUT_B(DISPLAY[ud]); //Digito unidades delay_ms(50); //Para evitar parpadeos if (dec==0) output_a(0x03); //Si decenas=0, cat_D=apagado else output_a(0x01); //Si decenas>0, cat_D=encendido OUTPUT_B(DISPLAY[dec]); //Digito decenas delay_ms(50); //Para evitar parpadeos } } } }

El diagrama en PROTEUS queda de la siguiente forma:

Contador en PROTEUS

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

56

Arquitectura de computadoras II
Unidad 3. Microcontroladores

El video que lleva por nombre Grabacin del PIC16F84 - Contador Decimal de 0 a 99...! ubicado en la siguiente liga: http://www.youtube.com/watch?v=7rb2JnrAtHw&feature=youtu.be Se explica dicho proyecto, de igual forma lo puedes encontrar en la seccin Para saber ms.

Con los ejemplos antes mencionados, puedes resolver gran cantidad de ejercicios y proyectos, todo depende de tu creatividad e imaginacin, as como de lo que desees resolver o implementar.

Actividad 4. Resolucin de un problema de lazo cerrado


El propsito de esta actividad es que identifiques que componentes usaras para resolver el problema dado por tu Facilitador(a) as como explicar la forma en la que lo resolveras, obviamente tendras que elaborarlo o simularlo para comprobar que funciona correctamente. 1. Ingresa al foro de la actividad y participa sobre la pregunta o situacin de apertura. 2. Sustenta tus puntos de vista y retroalimenta a mnimo 2 de tus compaeros(as). 3. Anota lo que consideres importante de cada tipo y considera la conclusin final de tu Facilitador(a).

Autoevaluacin
Para reforzar los conocimientos relacionados con los temas que se abordaron en esta unidad del curso, es necesario que resuelvas la autoevaluacin. Ingresa al Aula para realizar tu actividad. Si tienes alguna duda consltala con tu Facilitador(a) para disiparla lo antes posible.

Evidencia de aprendizaje. Simula un problema de lazo cerrado


Esta actividad sirve de simulacin y consiste en representar el comportamiento de los elementos que componen un circuito de lazo cerrado, elabora una propuesta de solucin

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

57

Arquitectura de computadoras II
Unidad 3. Microcontroladores
de acuerdo (a) a los datos presentados por tu Facilitador(a). 1. Identifica el problema 2. Plantea una solucin 3. Simula el problema 4. Demuestra que es viable la implementacin como solucin. 5. Crea un archivo y elabora un reporte, adjunto los elementos necesarios (grficos, diagramas, secuencia fotogrfica, capturas de pantalla segn sea el caso y las indicaciones complementarias de tu Facilitador(a)). 6. Guarda tu simulacin con la extensin DSN y tu cdigo fuente con la extensin C. 7. Enva tu trabajo conjuntando los elementos que lo componen, en una carpeta comprimida .ZIP con la nomenclatura KARQ2_U3_EA_XXYX, esta contendr tu cdigo fuente y tu simulacin. *La evidencia ser evaluada de acuerdo a su respectiva rbrica, as que es importante que la consultes.

Autorreflexiones
Como parte de cada unidad, es importante que ingreses al foro Preguntas de autorreflexin y leas los cuestionamientos que formul tu Facilitador(a), ya que a partir de ellos debes elaborar tu Autorreflexin y enviarla mediante la herramienta Autorreflexiones. No olvides que tambin se toman en cuenta para la calificacin final.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

58

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Cierre de la unidad

Diagrama de un PIC16F84. Consultado en: http://xurl.es/gf9ux

Con este diagrama se concluye y da por terminada la tercera y ltima unidad de esta asignatura. La finalidad de este diagrama es que puedas detectar todo lo visto desde la primera unidad, ya que has podido observar elementos bsicos de un microprocesador como la ALU, la unidad de Control, los diferentes tipos de Buses, as como el funcionamiento de algunos elementos que son de suma importancia que conocieras. Se explic la diferencia entre microcontrolador y microprocesador, aclarando muchas dudas y definiendo as que un microcontrolador puede contener uno o ms microprocesadores internos, o en su caso los mismos elementos que conforman un microprocesador como son la ALU, la Unidad de Control, los Buses, entre otros. Tambin se explic de manera general la arquitectura de los microcontroladores enfocndose a la familia de los PIC que es propia de la empresa Microchip, mostrando que en su mayora estn elaborados de la misma manera y con la misma arquitectura. Adems dndose a conocer que la familia de los PIC es enorme y estn elaborados para diferentes necesidades y problemas, adems de que tienen un costo realmente bajo en el mercado, por tal motivo su gran crecimiento y aceptacin.

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

59

Arquitectura de computadoras II
Unidad 3. Microcontroladores

Posteriormente se dan a conocer las diferentes instrucciones con las que cuenta el PIC as como algunas instrucciones del Lenguaje Ensamblador que sirven para poder programar un PIC, as como mostrando una comparacin entre el lenguaje ensamblador y el lenguaje C, demostrando que es mucho ms fcil de manejar incluso para realizar operaciones aritmticas como sumas, restas, entre otras. De igual forma se explic la importancia de algunos elementos del PIC como los temporizadores y el papel fundamental que desempea as como los puertos con los que cuenta el PIC16F84. Se muestran algunos ejemplos apoyados de videos para su mayor comprensin y entendimiento, con este material proporcionado sers capaz de crear aplicaciones bsicas y sencillas que puedes implementar en algn proyecto que se te presente en tu vida profesional. En la seccin Para saber ms, se agregan algunos videos y artculos publicados que te ayudarn a reforzar algunos temas vistos, as como el uso del simulador PROTEUS, entre otros datos que pueden resultar de tu inters.

Para saber ms
Estos artculos proporcionan informacin respecto a las especificaciones generales de las diferentes gamas de PIC como aspectos de rendimiento, escalabilidad, soporte global, puntos clave, algunas herramientas de desarrollo que son compatibles con cada modelo diferente, el tipo de control de seal, entre otras cosas. http://ww1.microchip.com/downloads/en/DeviceDoc/30009630j.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/01032l.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/39904m.pdf En este artculo encontrars toda la informacin relacionada con el PIC16F84, como lo son sus caractersticas de voltaje, arquitectura, puertos de entrada y/o salida, tipos de instrucciones. http://ww1.microchip.com/downloads/en/DeviceDoc/30430D.pdf En este video que lleva por nombre: Programador de PIC USB anticorto programando PIC16F84 se muestra como se usa un grabador, as como sus ventajas de uso. http://www.youtube.com/watch?v=9YLn2q38JSg&feature=player_embedded En los siguientes videos que llevan por nombre Pasos para grabar un PIC16F84 y Grabacin del PIC16F84 de manera fsica se muestra informacin de manera muy resumida y de manera general de cmo se graba un microcontrolador de manera fsica y las herramientas que se usan para su grabacin. http://www.youtube.com/watch?v=CYVZdq_pVqc&feature=youtu.be http://www.youtube.com/watch?v=ARQiw8xgKek&feature=youtu.be

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

60

Arquitectura de computadoras II
Unidad 3. Microcontroladores
En el video que se titula Grabacin del PIC16F84 de manera Simulada Parte 1, en el cual se menciona el proceso de creacin de un proyecto de manera simulada con el uso de PROTEUS y PCW, esta informacin te ser de gran utilidad para entender rpidamente los pasos de grabacin de un PIC de manera modelada. http://www.youtube.com/watch?v=bY-KDoCe8Jg&feature=youtu.be En el video que se titula Tutorial de ISIS proteus se explica de una manera breve y clara la forma en la cual se hace uso del simulador proteus con un pequeo ejemplo para que se entienda la forma de trabajar en dicho simulador. http://www.youtube.com/watch?v=jsb75ms0zRU En el captulo 3 del libro Compilador C CCS y simulador PROTEUS para Microcontroladores PIC se explica a detalle la forma en que se configuran los puertos A y B del PIC16F84 y como se usan en caso de que se pretendan usar como entrada o salida. Su ISBN y editorial lo encuentras en las fuentes complementarias. En el siguiente video que lleva por nombre: Grabacin del PIC16F84 - Encender un Led...! Se explica el ejemplo 1 de esta unidad, en l se muestra cmo usar el simulador PROTEUS y la elaboracin del Cdigo fuente para nuestro PIC, adems de que es ms visible el proceso de creacin de un ejercicio. http://www.youtube.com/watch?v=rdL-nCeW-Ho&feature=youtu.be En el video que tiene por nombre Grabacin del PIC16F84 - Encender un Led al presionar un botn...! se explica y se muestra como se utiliza el puerto A para poder recibir un valor y este se vea reflejado en el puerto B. http://www.youtube.com/watch?v=zwa1wYYZ--c&feature=youtu.be El video titulado Grabacin del PIC16F84 - Luces de Discoteca...! muestra breve y detalladamente el funcionamiento del cdigo fuente as como la forma de simular el problema en el simulador PROTEUS. http://www.youtube.com/watch?v=ZmFlugYsPPI&feature=youtu.be En el siguiente video que lleva por nombre Grabacin del PIC16F84 - Semforo sencillo...! se explica y se muestra la lgica a utilizar y se explica el cdigo fuente para resolver el problema de la implementacin de un semforo sencillo as como su simulacin dentro PROTEUS. http://www.youtube.com/watch?v=sK9pwiIcOr8&feature=youtu.be En el video que se titula: Grabacin del PIC16F84 - Contador Decimal de 0 a 99...! se explica de una manera concreta pero muy entendible el uso de la lgica para dar solucin a este proyecto, de igual forma se muestra el cdigo fuente y el uso de cada instruccin y finalmente el proyecto simulado en PROTEUS. http://www.youtube.com/watch?v=7rb2JnrAtHw&feature=youtu.be Con la intensin de promover otros puntos de vista y reas de oportunidad se presentan estos vnculos relacionados con un hardware de fuente abierta y las posibilidades de aplicacin, las dos son plticas introductorias: http://medialab-prado.es/article/documental_arduino

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

61

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Pltica de uno de sus desarrolladores, Massimo banzi: http://www.ted.com/talks/lang/es/massimo_banzi_how_arduino_is_open_sourcing_ imagination.html

Fuentes de consulta
Fuentes bsicas Angulo, U, J. Ma. (2003). Microcontroladores PIC, Diseo prctico de aplicaciones. Primera parte. Tercera edicin. Mxico: Mc Graw Hill. ISBN: 8448137884 Reyes, C. A. (2008). Microcontroladores PIC, programacin en BASIC. Volumen 1. Tercera Edicin. Ecuador: RISPERGRAF. ISBN: 9789978450048 Stallings, W. (2007). Organizacin y arquitectura de computadores. Sptima edicin. Mxico: Prentice Hall. ISBN: 9788420529936

Fuentes complementarias Hayes, J. (1998). Architecture and Organization. New York:. McGraw-Hill ISBN-13: 9780072861983 Deitel, H. (2004). Cmo programar en C/C++ y Java. Cuarta Edicin. Mxico: Pearson Prentice Hall. ISBN: 9702605318 Garca, B, E, (2009). Compilador C CCS y Simulador Proteus para Microcontroladores PIC. Segunda edicin. Barcelona: Marcombo. ISBN: 9788426718648

Fuentes electrnicas Alegsa. (2013). Diccionario de Informtica. Santa Fe. 25-07-2013. Consultado: http://www.alegsa.com.ar/Diccionario/C/5172.php Alegsa. (2013). Diccionario de Informtica. Santa Fe. 25-07-2013. Consultado: http://www.alegsa.com.ar/Dic/arquitectura%20harvard.php Alegsa. (2013). Diccionario de Informtica. Santa Fe. 25-07-2013. Consultado: http://www.alegsa.com.ar/Dic/conversor%20analogico-digital.php Construmtica. (2013). Construmtica, Arquitectura, Ingeniera y Construccin. Espaa. 25-07-2013. Consultado: http://www.construmatica.com/construpedia/Temporizador

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

62

Arquitectura de computadoras II
Unidad 3. Microcontroladores
Iborra. A. (2002). Introduccin a los microprocesadores y microcontroladores. Universidad de Sonora. Mxico. Consultado: http://paginas.fisica.uson.mx/horacio.munguia/aula_virtual/Recursos/Introduccion% 20PIC16f84.pdf Malpica. N. (2013). Electrnica Digital. Universidad Rey Juan Carlos. Madrid. Espaa. Consultado: http://www.cartagena99.com/recursos/electronica/apuntes/Electronica_conversion _AD_DA.pdf Medialab-Prado (2011). Presentacin de Arduino: The Documentary (2010). 16-072013. Consultado en: http://medialab-prado.es/article/documental_arduino Noriega, Sergio. (2003). Circuitos Generadores de Reloj. Facultad de Ingeniera. Universidad Nacional de la Plata. Argentina. Consultado: http://www.ing.unlp.edu.ar/islyd/apgeneradoresdeclock2003.pdf Rosero, J. A. (2012). Tutorial de ISIS proteus. 16-07-2013- Consultado en: http://www.youtube.com/watch?v=jsb75ms0zRU Silva. G. R. (2007). Diferencia entre microprocesador y microcontrolador. Universidad Autnoma de Nayarit. Nayarit. Consultado: http://www.fv.uan.edu.mx/file.php/77/tema1/Primera_sesion.pdf Ted Conversations (2012). Massimo Banzi: Arduino da cdigo abierto a la imaginacin. 15/07/2013. Consultada en: http://www.ted.com/talks/lang/es/massimo_banzi_how_arduino_is_open_sourcing_ imagination.html UNC. (2013). Universidad Nacional de Colombia. Colombia. 25-07-2013. Consultado: http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/100301.htm

Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Telemtica

63

Das könnte Ihnen auch gefallen