You are on page 1of 55

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores Fecha: 25-07-2012.

Prcticas de laboratorio de microcontroladores

Materia: Microcontroladores.

Profesor: Ing. Cabrera Hernndez Luis.

Alumno: Diego Alberto Garca Eligio.

No. de Control: 09250138.

Carrera: Ingeniera Mecatrnica. Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores Nombre: Garca Eligio Diego Alberto Carrera Ing. Mecatrnica Trabajo 02 No. 09250138

Plan de Nombre de la Asignatura Clave de la Asignatura Estudios Siglo XXI Microcontroladores MTF0582 Laboratorio de Nombre del Trabajo Electrnica Practicas de Microcontroladores

I. Marco terico. Qu es un microcontrolador? Un microcontrolador es un dispositivo electrnico capaz de llevar a cabo procesos lgicos. Estos procesos o acciones son programados en lenguaje ensamblador por el usuario, y son introducidos en este a travs de un programador. Esto suena un poco complicado, pero slo es un resumen de 3 lneas. Inicialmente cuando no existan los microprocesadores las personas se ingeniaban en disear sus circuitos electrnicos y los resultados estaban expresados en diseos que implicaban muchos componentes electrnicos y clculos matemticos. Un circuito lgico bsico requera de muchos elementos electrnicos basados en transistores, resistencias, etc, lo cual desembocaba en circuitos con muchos ajustes y fallos; pero en el ao 1971 apareci el primer microprocesador el cual origin un cambio decisivo en las tcnicas de diseo de la mayora de los equipos. Al principio se crea que el manejo de un microprocesador era para aquellas personas con un coeficiente intelectual muy alto; por lo contrario con la aparicin de este circuito integrado todo sera mucho ms fcil de entender y los diseos electrnicos serian mucho ms pequeos y simplificados. Los diseadores de equipos electrnicos ahora tenan equipos que podan realizar mayor cantidad de tareas en menos tiempo y su tamao se redujo considerablemente; sin embargo, despus de cierto tiempo aparece una nueva tecnologa llamada microcontrolador que simplifica aun ms el diseo electrnico. Diferencias entre microprocesador y microcontrolador Si has tenido la oportunidad de realizar un diseo con un microprocesador pudiste observar que dependiendo del circuito se requeran algunos circuitos integrados adicionales adems del microprocesador como por ejemplo: memorias RAM para almacenar los datos temporalmente y memorias ROM para almacenar el programa que se encargara del proceso del equipo, un circuito integrado para los puertos de entrada y salida y finalmente un decodificador de direcciones. Un microcontrolador es un solo circuito integrado que contiene todos los elementos electrnicos que se utilizaban para hacer funcionar un sistema basado con un microprocesador; es decir contiene en un solo integrado la Unidad de Proceso, la memoria RAM, memoria ROM , puertos de entrada, salidas y otros perifricos, con la consiguiente reduccin de espacio. El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamao es posible montar el Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado o embebido (embedded controller). Ventajas de un microcontrolador frente a un microprocesador Estas ventajas son reconocidas inmediatamente para aquellas personas que han trabajado con los microprocesadores y despus pasaron a trabajar con los microcontroladores. Estas son las diferencias ms importantes: Por ejemplo la configuracin mnima bsica de un microprocesador estaba constituida por un Micro de 40 Pines, Una memoria RAM de 28 Pines, una memoria ROM de 28 Pines y un decodificador de direcciones de 18 pines; pero un microcontrolador incluye todo estos elementos en un solo Circuito Integrado por lo que implica una gran ventaja en varios factores: En el circuito impreso por su amplia simplificacin de circuitera, el costo para un sistema basado

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

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

El microcontrolador es un sistema cerrado. Todas las partes del procesador estn contenidas en su interior y slo salen al exterior las lneas que gobiernan los perifricos. En microcontrolador es mucho menor y, lo mejor de todo, el tiempo de desarrollo de su proyecto electrnico se disminuye considerablemente. Los microcontroladores hoy da Los microcontroladores estn conquistando el mundo. Estn presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, en los telfonos, en los hornos microondas y los televisores de nuestro hogar. Pero la invasin acaba de comenzar y el nacimiento del siglo XXI ser testigo de la conquista masiva de estos diminutos computadores, que gobernarn la mayor parte de los aparatos que fabricaremos y usamos los humanos. Cada vez existen ms productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamao y coste, mejorar su fiabilidad y disminuir el consumo. Algunos fabricantes de microcontroladores superan el milln de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilizacin de estos componentes. Los microcontroladores estn siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigorficos, televisores, computadoras, impresoras, mdems, el sistema de arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentacin electrnica, control de sistemas en una nave espacial, etc. Una aplicacin tpica podra emplear varios microcontroladores para controlar pequeas partes del sistema. Estos pequeos controladores podran comunicarse entre ellos y con un procesador central, probablemente ms potente, para compartir la informacin y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC. Tipos de arquitecturas de microcontroladores Arquitectura Von Neumann Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores La arquitectura tradicional de computadoras y microprocesadores est basada en la arquitectura Von Neumann, en la cual la unidad central de proceso (CPU), est conectada a una memoria nica donde se guardan las instrucciones del programa y los datos. El tamao de la unidad de datos o instrucciones est fijado por el ancho del bus que comunica la memoria con la CPU. As un microprocesador de 8 bits con un bus de 8 bits, tendr que manejar datos e instrucciones de una o ms unidades de 8 bits (bytes) de longitud. Si tiene que acceder a una instruccin o dato de ms de un byte de longitud, tendr que realizar ms de un acceso a la memoria. Y el tener un nico bus hace que el microprocesador sea ms lento en su respuesta, ya que no puede buscar en memoria una nueva instruccin mientras no finalicen las transferencias de datos de la instruccin anterior. Resumiendo todo lo anterior, las principales limitaciones que nos encontramos con la arquitectura Von Neumann son: 1. La limitacin de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas. 2. La limitacin de la velocidad de operacin a causa del bus nico para datos e instrucciones que no deja acceder simultneamente a unos y otras, lo cual impide superponer ambos tiempos de acceso.

Arquitectura Harvard La arquitectura Harvard tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes. Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa), y los otros slo almacenos datos (Memoria de Datos). Ambos buses son totalmente independientes y pueden ser de distintos anchos. Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instruccin Set Computer), el set de instrucciones y el bus de memoria de programa pueden disearse de tal manera que todas las instrucciones tengan una sola posicin de memoria de programa de longitud. Adems, al ser los buses independientes, la CPU puede acceder a los datos para completar la ejecucin de una instruccin, y al mismo tiempo leer la siguiente instruccin a ejecutar. Ventajas de esta arquitectura: 1. El tamao de las instrucciones no est relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instruccin ocupe una sola posicin de memoria de programa, logrando as mayor velocidad y menor longitud de programa. Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

2. El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada operacin. Una pequea desventaja de los procesadores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontraran fsicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador).

El microcontrolador PIC 16F84 posee arquitectura Harvard, con una memoria de datos de 8 bits, y una memoria de programa de 14 bits. En la Figura vemos la arquitectura interna organizada en bloques interconectados, en donde se incluye la memoria RAM, la memoria EEPROM, los puertos de entrada y salida (I/O), etc. ESTRUCTURA Y ELEMENTOS DE LOS MICROCONTROLADORES A continuacin pasamos a describir los elementos ms comunes en todo tipo de microcontroladores y sistemas. El procesador Es el elemento ms importante del microcontrolador y determina sus principales caractersticas, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el cdigo OP de la instruccin en curso, su decodificacin y la ejecucin de la operacin que implica la instruccin, as como la bsqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales. CISC Un gran nmero de procesadores usados en los microcontroladores estn basados en la filosofa CISC (Computadores de Juego de Instrucciones Complejo). Disponen de ms de 80 instrucciones mquina en su repertorio,

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

Diagrama de bloques del microcontrolador PIC16F84 Algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actan como macros, es decir, que si las tuvisemos que implementar con instrucciones bsicas, acabaramos con dolor de cabeza. RISC Tanto la industria de los computadores comerciales como la de los microcontroladores estn decantndose hacia la filosofa RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones mquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. SISC En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especfico, o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista. Esta filosofa se ha bautizado con el Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores nombre de SISC (Computadores de Juego de Instrucciones Especfico). Memoria En los microcontroladores la memoria de instrucciones y datos est integrada en el propio chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicacin. Otra parte de memoria ser tipo RAM, voltil, y se destina a guardar las variables y los datos. Hay dos peculiaridades que diferencian a los microcontroladores de los computadores personales: No existen sistemas de almacenamiento masivo como disco duro o disquetes. Como el microcontrolador slo se destina a una tarea en la memoria ROM, slo hay que almacenar un nico programa de trabajo. La RAM en estos dispositivos es de poca capacidad pues slo debe contener las variables y los cambios de informacin que se produzcan en el transcurso del programa. Por otra parte, como slo existe un programa activo, no se requiere guarda r una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadores personales estn habituados a manejar Megabytes de memoria, pero, los diseadores con microcontroladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. Segn el tipo de memoria ROM que dispongan los microcontroladores, la aplicacin y utilizacin de los mismos es diferente. Se describen las cinco versiones de memoria no voltil que se pueden encontrar en los microcontroladores del mercado. ROM con mscara Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. Si tenemos idea de cmo se fabrican los circuitos integrados, sabremos de donde viene el nombre. Estos se fabrican en obleas que contienen varias decenas de chips. Estas obleas se fabrican a partir de procesos fotoqumicos, donde se impregnan capas de silicio y oxido de silicio, y segn convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sita entre la luz y la oblea una mscara con agujeros, de manera que donde deba incidir la luz, esta pasar. Con varios procesos similares pero ms complicados se consigue fabricar los transistores y diodos micromtricos que componen un chip. Ahora ya sabes de donde viene la mscara y no te acostars sin saber una cosa ms. El elevado coste del diseo de la mscara slo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. OTP El microcontrolador contiene una memoria no voltil de slo lectura programable una sola vez por el usuario. OTP (One Time Programmable). Es el usuario quien puede Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de prototipos y series muy pequeas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin mediante fusibles para proteger el cdigo contenido. EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cpsulas son de material cermico y son ms caros que los microcontroladores con memoria OTP que estn hechos con material plstico. EEPROM, E2PROM o E2PROM Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan elctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito" que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El nmero de veces que puede grabarse y borrarse una memoria EEPROM es _nito, por lo que no es recomendable una reprogramacin contina. Son muy idneos para la enseanza y la Ingeniera de diseo. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y modificar cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta, como ya veremos ms adelante. FLASH Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta. As, un dispositivo con este tipo de memoria incorporado al control del motor de un automvil permite que pueda modificarse el programa durante la rutina de mantenimiento peridico, compensando los desgastes y otros factores tales como la compresin, la instalacin de nuevas piezas, etc. La reprogramacin del microcontrolador puede Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores convertirse en una labor rutinaria dentro de la puesta a punto. Puertas de Entrada y Salida Las puertas de Entrada y Salida (E/S) permiten comunicar al procesador con el mundo exterior, a travs de interfaces, o con otros dispositivos. Estas puertas, tambin llamadas puertos, son la principal utilidad de las patas o pines de un microprocesador. Segn los controladores de perifricos que posea cada modelo de microcontrolador, las lneas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control. Reloj principal Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronizacin de todas las operaciones del sistema. Esta seal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen. Generalmente, el circuito de reloj est incorporado en el microcontrolador y slo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cermico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energa y de calor generado. RECURSOS ESPECIALES Cada fabricante oferta numerosas versiones de una arquitectura bsica de microcontrolador. En algunas ampla las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mnimo para aplicaciones muy simples, etc. La labor del diseador es encontrar el modelo mnimo que satisfaga todos los requerimientos de su aplicacin. De esta forma, minimizar el coste, el hardware y el software. Los principales recursos especficos que incorporan los microcontroladores son: Temporizadores o Timers. Perro guardin oWatchdog. Proteccin ante fallo de alimentacin o Brownout. Estado de reposo o de bajo consumo (Sleep mode). Conversor A/D (Analgico ->Digital). Conversor D/A (Digital ->Analgico). Comparador analgico. Modulador de anchura de impulsos o PWM (PulseWide Modulation). Puertas de E/S digitales. Puertas de comunicacin. A continuacin pasamos a ver con un poco ms de detalle cada uno de ellos Temporizadores o Timers Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos se carga un registro con el valor adecuado y a continuacin dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algn mltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o bancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos. Vaya, nos hemos metido en trminos de microcontroladores demasiado pronto. Bueno, con el fin de aclarar que es un registro, anticipamos que es un valor numrico en una posicin la de memoria. Un ejemplo: esto es igual que el segundero de nuestro reloj digital, este va aumentando hasta que llega a 60 segundos, pero en la pantalla pone 00, esto quiere decir que se desborda. Pero cuando cambia da un aviso y se incrementan los minutos. En este ejemplo, el registro es el segundero; estos son fijos ya que sabemos que son los de la derecha del todo y no se van a cambiar. Perro guardin Watchdog Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botn del reset y se reinicia el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del da. El Perro Guardin consiste en un contador que, cuando llega al mximo, provoca un reset automticamente en el sistema. Se debe disear el programa de trabajo que controla la tarea de forma que resetee al Perro Guardin de vez en cuando antes de que provoque el reset. Si falla el programa o se bloquea (si cae en bucle infinito), no se refrescar al Perro guardin y, al completar su temporizacin, provocar el reset del sistema. Proteccin ante fallo de alimentacin o Brownout Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentacin (VDD) es inferior a un voltaje mnimo (brownout). Mientras el voltaje de alimentacin sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. Esto es muy til para evitar datos errneos por transiciones y ruidos en la lnea de alimentacin Estado de reposo de bajo consumo Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algn acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energa, (factor clave en los aparatos porttiles), los microcontroladores disponen de una instruccin especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mnimos. En dicho estado se detiene el reloj principal y se congelan sus circuitos asociados, quedando sumido en un profundo sueo. Al activarse una interrupcin ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo. Para hacernos una idea, esta funcin es parecida a la opcin de Suspender en el men para apagar el equipo (en aquellos PCs con administracin Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores avanzada de energa) Conversor A/D (CAD) Los microcontroladores que incorporan un Conversor A/D (Analgico/Digital) pueden procesar seales analgicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas seales analgicas desde las patillas del circuito integrado. Conversor D/A (CDA) Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente seal analgica que saca al exterior por una de las patillas del chip. Existen muchos circuitos que trabajan con seales analgicas. Comparador analgico Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que acta como comparador entre una seal de referencia y otra variable que se aplica por una de las patitas de la cpsula. La salida del comparador proporciona un nivel lgico 1 0 segn una seal sea mayor o menor que la otra. Tambin hay modelos de microcontroladores con un mdulo de tensin de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores. Modulador de anchura de impulsos o PWM Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a travs de las patitas del encapsulado. Puertos digitales de E/S Todos los microcontroladores destinan parte de su patillaje a soportar lneas de E/S digitales. Por lo general, estas lneas se agrupan de ocho en ocho formando Puertos. Las lneas digitales de las Puertos pueden configurarse como Entrada o como Salida cargando un 1 un 0 en el bit correspondiente de un registro destinado a su configuracin. Otra vez ms nos volvemos a meter con unos ceros y registros paciencia que pronto llega lo mejor. Puertas de comunicacin Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: UART, adaptador de comunicacin serie asncrona.(Ej: Puerto Serie) USART, adaptador de comunicacin serie sncrona y asncrona Puerta paralela esclava para poder conectarse con los buses Ing. Cabrera Hernndez Luis

de

otros

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores microprocesadores. USB (Universal Serial Bus), que es un moderno bus serie para los PC. Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. CAN (Controller Area Network), para permitir la adaptacin con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automviles. En EE.UU. se usa el J185O. Tanto el I2C en televisores, como el Bus CAN en automviles, fueron diseados para simplificar la circuitera que supone un bus paralelo de 8 lneas dentro de un televisor, as como para librar de la carga que supone una cantidad ingente de cables en un vehculo. MPLAB Bienvenido a esta seccin, "El Entorno Integrado de Desarrollo" MPLAB, la mejor herramienta para desarrollar proyectos con PIC's, segn yo. Instalacin y Configuracin Algunas de las cosas ms importantes seran: - Archivos MPLAB IDE - Archivos MPASM/MPLINK/MPLIB - Archivos de Proteccin del Simulador - MPLAB-SIM y por supuesto, los Archivos de Ayuda. Luego seleccionas los componentes de lenguaje Microchip que debes instalar (Todos por defecto), bien termines la instalacin, lo ejecutas y veras el IDE de MPLAB.

Ahora lo vamos a preparar para nuestra ardua tarea de programar y simular nuestros proyectos segn el Micro del que disponemos. Te diriges al men Options --> Development Mode... y vers un cuadro de dilogo algo as Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

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

Men Debug: De lo ms importante, desde aqu haremos las simulaciones de nuestro programa, los tres primeros submens son los de mayor inters, veamos de qu se trata cada uno de ellos. RUN: Aqu tenemos varias opciones;

RUN: Como su nombre lo indica, Runnnnnn. inicia la simulacin a una velocidad que la verdad, no se distingue nada de lo que ocurre a lo largo del cdigo, vers la parte inferior de la ventana toda pintada de amarillo (seal de que la simulacin est en proceso). til cuando colocas algunos puntos de ruptura (breakpoints) para detener la ejecucin y as no estar esperando que se ejecute todo aquello que sabes que esta correcto. RESET: Nada, Resetea el micro y te ubica en la primer lnea donde comenzar la simulacin (en ese caso vers toda la lnea pintada de negro y las letras blancas) "listo para comenzar la simulacin" HALT: Detiene la ejecucin. HALT TRACE: Detiene un traceo que se est haciendo (yo aun no lo utilic). ANIMATE: es igual que RUN pero lo hace ms lento, para que vayas siguiendo la ejecucin, mostrndote lnea por lnea todo lo que se est ejecutando. STEP: paso, es decir, un paso por cada vez que lo presionas (en la barra de herramientas vers dos huellas de zapato, pues es eso, paso a paso). Simplemente ejecuta una a una cada lnea de cdigo por cada vez que lo presionas. Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

STEP OVER: Igual que el anterior pero con un pequeo detalle, cada vez que se encuentre con un call lo ejecuta de modo tan rpido que ni t te enteras de que ya pas, es decir, utilzalo si no quieres perder tiempo con el call. UPDATE ALL REGISTER: Actualiza el valor de todos los registros. CHANGE PROGRAM COUNTER: Carga el Programa Counter Strike es que cambia el valor del PC y te ubica en la etiqueta del cdigo a la que quieres ir. EXECUTE: Bueno, tiene dos opciones, veamos. EXECUTE AN OPCODE: te permite ejecutar un cdigo cualquiera desde cualquier sitio en el que te encuentras, por ejemplo ingresas un goto inicio y hacia all ir. independiente a la secuencia del programa. CONDITIONAL BREAK: Para ejecutar un breakpoint en forma condicional, Por ejemplo por que cambi el valor de un registro, o por qu quieres ver que paso hasta ese punto, o bueno, en fin. (por si las moscas, para quien no tenga idea de que es un Breakpoint, es un punto de ruptura en el cdigo del programa, es decir, si se est ejecutando..., cuando se encuentre con el breakpoint se detendr y all se quedar hasta que le des la orden de continuar), habr sido claro. SIMULATOR STIMULUS: Con este nos vamos a lucir, desde aqu podrs simular que le envas seales al micro por uno de sus pines, este submen tiene 4 opciones. ASYNCHRONOUS STIMULUS: te abrir un pequeo dilogo con 12 botones como el que se muestra en la imagen, vendran a ser como interruptores, nota que al primero le asign el pin RA0 (pin 17) y entre parntesis una T (de TOGGLE)

Si presionas con el botn derecho del mouse en uno de esos botones vers las opciones de configuracin de estos estmulos, desde donde los puedes configurar, es algo as.

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

o o o o o o

ASSIGN PIN: muestra los pines del puerto para que selecciones aquel que llevar un estmulo. PULSE: un pulso, hasta ahora no hice uso de l... LOW: Le asigna un nivel bajo permanente HIGH: Lo contrario, nivel alto permanente TOGGLE: Cada vez que lo pulses cambiar de nivel de alto a bajo o de bajo a alto. HELP: tampoco lo utilic as que no preguntes.

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

Tiene un par de opciones como ser; Guardarlo como un archivo .sti, Abrir alguno si es que ya lo tienes creado, Aplicar los cambios, agregarle ms impulsos a otros pines, y el help (por supuesto, la ayuda).

REGISTER STIMULUS: Es exactamente lo mismo que con los pines, solo que lleva la extensin .reg. y sirve para que en una determinada posicin del programa se cargue un registro con el valor que t le quieras dar. CENTER DEBUG LOCATION: te ubica en la posicin en la cual el programa se est ejecutando, por si perdiste la lnea de ejecucin, se suele utilizar cuando detienes la ejecucin, empiezas a husmear por otro lado y luego no sabes donde andabas, pues bueno, ah te lo acercas. BREAK SETTINGS, Te muestra un dilogo para que le des nombre a los breakpoints y luego desde aqu los habilitas, los quitas, los guardas etc TRIGGER IN/OUT SETTINGS: Son Para los emuladores MPLABICE y PICMASTER. TRIGGER OUTPUT POINTS: Para PICMASTER. Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

CLEAR ALL POINT limpia todos los breakpoints y los tracepoints que pusiste a lo largo del programa. COMPLEX TRIGGER SETTING y ENABLE CODE COVERAGE Para MPLABICE CLEAR PROGRAM MEMORY: Borra la memoria de programa, yo nunca lo utilic, pero segn le por ah... Cuando simulamos un programa, lo que la mquina en realidad hace, es seguir a travs de la memoria de programa. Luego desde all mismo, puedes grabar el PIC, si es que cuentas con el programador PICSTART PLUS, as es que ah lo dej. SYSTEM RESET: Eso mismo, Resetea el sistema. POWER ON RESET: Para el caso en que se podra producir un reset en el micro, y as saber que ocurre o que es lo que hace el micro si esto llegara a ocurrir.

Men Options: DEVELOPMENT MODE: simplemente es donde hacemos las configuraciones del proyecto. WINDOW SETUP: como estamos en la seccin de personalizacin, puedes personalizar totalmente la forma en que vas a trabajar, tus preferencias, luego Guardarlas (Save Setup), Cargarlas (Load Setup) si es que ya las tienes guardadas, o utilizar una por defecto (Default Configuration). CURRENT EDITOR MODES: Es para que personalices el modo de edicin, por ejemplo las tabulaciones de 8 espacios, que se mantenga la identificacin de la lnea anterior, que se muestre el nmero de lneas al margen del cdigo, hacer un backup cada cierto tiempo (por si olvidas que de vez en cuando es bueno guardar...), etc. aqu tienes una imagen de esas opciones...

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

RESET

EDITOR

MODES: Elimina

los

cambios

que

hiciste

anteriormente

ENVIRONMENT SETUP: cuadro de dilogo para una personalizacin completa. PROGRAMMER OPTIONS: Son las opciones para configurar el programador que usars con MPLAB.

Men Windows: El ms importante de todos, ya que desde aqu nos veremos cara a cara con cada uno de los bits de los registros del micro, el estado que tienen y como se modifican, claro que lo vers cuando lo ejecutes en modo "step" (paso a paso) o "Animate" (de forma animada). PROGRAM MEMORY: Vers la memoria de programa, y as sabes cunto espacio te queda disponible. STACK: La pila.

FILE REGISTER: Para que veas cmo se modifican los registros mientras el programa se est ejecutando, solo en modo "Step" o "Animate".

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

SPECIAL FUNCTION REGISTER: Los Registros de funciones especiales, con nombre y todo, trisa/b, porta/b, status, w, creo que lo que ms quieres es ver cmo se modifican los bits de entrada y salida de los puertos, pues aqu los tienes, como antes, slo los vers cuando lo ejecutas en modo "Step" o "Animate".

SHOW SIMBOL LIST: todos los smbolos utilizados y su respectiva ubicacin (direccin de registro), aquello que definimos al iniciar nuestro cdigo, como "status equ 0x03". Del otro lado las etiquetas utilizadas a lo largo del programa, en fin...

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores STOPWATCH: Para que veas el tiempo en milisegundo consumidos por el micro.

PROJECT: Los datos del proyecto que estas realizando WATCH WINDOW: Para crear tu propia ventana de registros. MODIFY: Para modificar los valores de algn registro determinado, en caso de que no quieras esperar demasiado por ejemplo cuando haces un retardo. Preparando el entorno para la simulacin. Aqu comienza la diversin, lo que haremos ser preparar todo lo que necesitemos, primero vamos por la ventana que nos muestra los registros de las funciones especiales, entonces ve al men. Windows --> Special Function Registers

Y esto es lo que vers.

En esta ventana vers cmo se modifican los registros cuando comencemos a simular. Ahora vamos por otra, dirgete al men. Debug --> Simulator Stimulus --> Asynchronous Stimulus... Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

Programa RA0 como Toggle, ok de acuerdo, cuando lo abres todos los botones estn sin configurar con la leyenda Stim 1(P), Stim2(P), etc. con el botn derecho del mouse haz clic en Stim 1(P) y vers un men emergente, selecciona Assign pin.. --> RA0 ahora Stim 1(P) es RA0 (P), nuevamente haz click con el botn derecho sobre el mismo botn pero esta vez selecciona Toggle Debug --> Run --> Reset

o presiona F6 o bien, presiona este botn...

Ahora estamos en esta situacin.

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

Observa que el micro se ubic en la posicin donde se inicia cada vez que el secuenciador se encienda. Debug --> Run --> Animate

Windows

-->

File

Register

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

Ejecuta el cdigo en modo Animate y vers cmo cambian los registros. Bueno ahora s, slo quera mostrarte algunas de las opciones que tienes cuando ejecutas tu programa.

II.

Desarrollo.

Bueno ya comentamos como son los microcontroladores y como es su funcionamiento, su estructura y caractersticas, para el desarrollo de estas prcticas utilizaremos el PIC16F887, del cual mostraremos su caractersticas as como algunas instrucciones que este utiliza: Estos microcontroladores responden a una serie de instrucciones o cdigos que se deben grabar en su memoria de programa, en total son 35. A continuacin se encuentra una tabla con la lista completa y despus una descripcin de cada una de ellas con el fin de facilitar su aprendizaje.

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

Caractersticas del pic 16f887.

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

Diagrama de bloques.

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

Organizacin de la memoria:

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

Perifricos 16F877 Puertos programables de E/S Timers/Counters Puertos de captura/comparacin de datos Moduladores de ancho de pulso (PWM) Conversor Analgico/Digital de 10 bits Puerto serie sncrono USART Parallel Slave Port

Circuito de 40 pines en formato. Salvo 7 pines, todos los dems estn asociados al menos con los puertos de E/S. Los 7 pines son: 4 pines para alimentacin, estn duplicados. 1 pin para MCLR y Vpp que es una tensin de 12 a 14 V. usada cuando est en modo programacin. 2 pines relacionados con entradas o salidas de reloj, en funcin del tipo de reloj utilizado. Puertos programables de E/S. Disponemos de hasta 33 pines. A medida que se usan otros perifricos internos se detraen pines de E/S Las principales caractersticas son: Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores Programables como entradas o salidas individualmente. Capaces de trabajar con corrientes de 25 mA. En cada lnea. No obstante la corriente total en los puertos A, B y E no puede superar los 200 mA. Y en los puertos C y D otros 200 mA. Entradas tipo TTL o ST (Schmitt Trigger). Resistencias Pull-up (habilitables por programa) en el puerto B Las lneas de E/S estn agrupadas en 5 puertos: A (6 bits), B (8 bits), C (8 bits), D (8 bits) y E (3 bits). Cada puerto de E/S tiene asociados dos registros TRISX y PORTX. El primer registro dispone de un bit por cada lnea del puerto, y controlar si funciona como entrada (Input, 1) o como salida (Output, 0). El segundo registro nos permite acceder al puerto. Con una escritura se modifican los bits configurados como salida, y con una lectura accedemos tanto a los de entrada como a los de salida. Si se realiza una escritura y de forma inmediata una lectura, puede que la salida no haya alcanzado el nivel adecuado generando incoherencias. El puerto A tiene todas sus salidas Totem pole, excepto la RA4 que es del tipo Open collector (open drain de forma ms exacta) lo que obliga a poner una resistencia de Pull Up para poder obtener '1'. Adems despus de un reset las lneas del puerto A estn configuradas como entradas analgicas (como digitales devuelven '0'). Escribiendo el valor 6 en el registro ADCON1 se pueden convertir en entradas digitales. El puerto B dispone de resistencias Pull-up que pueden activarse por software cuando funcionan como entradas. La activacin se realiza con el bit RBPU (bit 7) del registro OPTION_REG (direcciones 81h y 181h). Adems la lnea RB0 puede funcionar como entrada de peticin de interrupcin. Para ello se debe activar el bit INTE (bit 4) del registro INTCON (direcciones 0Bh, 8Bh, 10Bh y 18Bh). Con el bit INTDEG (bit 6) de OPTION_REG (direcciones 81h y 181h) se selecciona si se activa la interrupcin con flanco de subida (1) o de bajada (0). Los puertos A y B cuando se configuran como entradas, trabaja con niveles TTL (salvo la lnea RA4) y los puertos C, D y E como Schmitt Trigger (tambin RA4). TTL: VIL = 0, 8 V., VIH = 2 V. ST: VIL = 1 V., VIH = 4 V. Permite cambios de tensin lentos en su entrada. Timers Disponemos de 3 timers numerados del 0 al 2 y del Watch Dog Timer. Timer0 Timer de 8 bits Puede ser ledo y escrito a travs del registro TMR0 (direcciones 1 y Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores 101h) La entrada de reloj del temporizador puede seleccionarse que sea interna o externa. Interna: Frecuencia de reloj CPU dividida por 4. Externa: Entrada RA4/T0CKI Bit T0CS (bit 5) del OPTION_REG (direcciones 81h y 181h). 0 = reloj interno, 1 = reloj externo. Si se usa un reloj externo, su frecuencia como mximo ser la mitad de la frecuencia de la entrada de reloj de la CPU. Si se selecciona el reloj externo, se puede utilizar como contador de pulsos en dicha entrada. En este caso se puede seleccionar si se activa la entrada por flanco de subida o de bajada: T0SE (bit 5) del OPTION_REG (direcciones 81h y 181h). 0 = flanco de subida, 1 = flanco de bajada. A este timer se le puede asociar un circuito divisor de la frecuencia de la entrada de reloj. Se le denomina Prescaler. Este circuito puede ser utilizado tambin por el Watch dog. En cualquier caso debe ser asignado a uno u otro. Esto es seleccionado por el bit PSA (bit 3) del OPTION_REG (direcciones 81h y 181h). 0 = Timer 0, 1 = Watch dog. Tambin es posible seleccionar el factor de divisin. Se dispone de tres bits: PS2, PS1 y PS0, (bits 2, 1 y 0) del OPTION_REG (direcciones 81h y 181h) que introducen los factores de divisin que se muestran en la siguiente tabla:

Finalmente existen los dos bits mencionados en las interrupciones que permiten generar una interrupcin cada vez que se desborda el Timer0 cuando pasa de FFH a 0. Son los bits T0IE y T0IF del registro INTCON. Watch dog Timer Este mdulo permite inicializar la CPU cuando se rebasa el contador. Se activa por medio de los bits de configuracin del microcontrolador (en tiempo de programacin del chip) y permite recupera el sistema cuando se pierde el control del programa. El perodo con un valor de prescaler 1:1 oscila entre 7 y 33 mS. Con un valor tpico de 18 mS. Esta tolerancia es debida a la imprecisin del oscilador interno que depende de la temperatura y la tensin de alimentacin bsicamente. Este perodo se puede ampliar con el prescaler hasta un factor de 1:128. Timer1 Timer de 16 bits Puede ser ledo y escrito a travs de los registros TMR1H y TMR1L. La entrada de reloj del temporizador puede seleccionarse que sea interna o externa. Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores Interna: Frecuencia de reloj CPU dividida por 4. Externa: Entradas RC1/T1OSICCP2 y RC0/T1OSO/T1CKI. Bit TMR1CS (T1CON<1>). 0 = reloj interno, 1 = reloj externo. Si se usa un reloj externo, su frecuencia como mximo ser la mitad de la frecuencia de la entrada de reloj de la CPU. Tambin con reloj externo existen dos alternativas, colocar un cristal como fuente de reloj (hasta 200 KHz) o utilizar una seal digital. En el segundo caso solo se utiliza la lnea de entrada RC0/T1OSO/T1CKI. Para seleccionar una alternativa u otra, se dispone del bit T1OSCEN (T1CON<3>). Si vale 1 se usar el cristal activando el oscilador interno, si vale 0 se usan pulsos generados externamente. En este caso puede funcionar como contador de pulsos. Adems se dispone de un bit que permite activar y desactivar el Timer: TMR1ON (T1CON<0>) El timer dispone de un prescaler controlado por los bits T1CKPS1 y T1CKPS0 (T1CON<5:4>) cuyos factores de divisin que se muestran en la siguiente tabla:

Finalmente existen los dos bits mencionados en las interrupciones que permiten generar una interrupcin cada vez que se desborda el Timer1 cuando pasa de FFFFH a 0. Son los bits TMR1IE y TMR1IF necesitando adems que estn activados los bits que habilitan las interrupciones de los perifricos (PEIE) y el general (GIE). Timer2 Timer de 8 bits Puede ser ledo y escrito a travs del registro TMR2. La entrada de reloj del temporizador es interna, concretamente la frecuencia de reloj CPU dividida por 4. Se dispone de un bit que permite activar y desactivar el Timer: TMR2ON (T2CON<2>) El timer dispone de un prescaler controlado por los bits T2CKPS1 y T2CKPS0 (T2CON<1:0>) cuyos factores de divisin que se muestran en la siguiente tabla:

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores La salida del contador puede ser conectada a un postscaler, que dispone de 4 bits de control T2OUTPS3:T2OUTPS0 cuya salida pasa a controlar el flag de interrupcin asociado a este Timer. Los factores de divisin se muestran en la siguiente tabla:

Finalmente existen los dos bits mencionados en las interrupciones que permiten generar una interrupcin cada vez que se desborda el Timer2 cuando pasa de FFH a 0. Son los bits TMR2IE y TMR2IF necesitando adems que estn activados los bits que habilitan las interrupciones de los perifricos (PEIE) y el general (GIE). CAPTURE/COMPARE/PWM Mdulos de captura, comparacin y modulacin por ancho de pulso. Existen dos mdulos de este tipo: CCP1 y CCP2 cuyo funcionamiento es prcticamente idntico diferencindose en que el CCP2 podr comenzar una conversin en el mdulo A/D. Ambos mdulos son de 16 bits, y estn estrechamente relacionados con el Timer1. Modo captura. En este modo, el mdulo CCPx captura el contenido del Timer1 cuando se produce un evento. Los eventos posibles, se refieren a los cambios en las entradas RC1/T1OSI/CCP2 RC2/CCP1 y se distinguen las siguientes situaciones: Un flanco de bajada. Un flanco de subida. Cada 4 flancos de subida. Cada 16 flancos de subida. En este modo se pueden calcular intervalos de tiempo entre dos sucesos de forma muy exacta. Si se han activado las interrupciones, se generar una por cada captura realizada. Modo comparacin. En este modo, el mdulo CCPx comparar el contenido de los registros de 16 bits del mdulo con el Timer1, de tal manera que cuando se produzca una coincidencia, se producir la interrupcin correspondiente cuando las interrupciones estn activadas y podr hacerse que las lneas asociadas RC1/T1OSI/CCP2 RC2/CCP1 se pongan a nivel alto, bajo o no cambien. Finalmente resetearn el Timer1 y en el caso del CCP2 adems se lanzar una conversin A/D si el conversor est activado (permite hacer muestreos peridicos) Modo PWM. En este caso se produce una salida PWM en el puerto CCPx, con una resolucin de 10 bits. Una seal PWM seal con onda rectangular de frecuencia fija, en la que se puede variar el tiempo Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores en el que la misma permanece a 0 o a 1. Sustituye en la mayora de los casos a un conversor D/A. La frecuencia de la seal se establece por medio del Timer2 y el tiempo que permanece a 1 (Duty cycle) se controla por medio de los registros del CCP que se est utilizando. Master Synchronous Serial Port Este mdulo implementa un interfaz de comunicaciones en serie. Existen multitud de dispositivos que permiten este tipo de comunicacin, tales como memorias EEPROM, conversores A/D, sensores de diferentes tipos (temperatura, posicin, distancia), displays, otros microcontroladores. El mdulo puede operar en dos modos: SPI e I2C. SPI: Serial Peripheral Interface. Este interface suele ser utilizado para comunicar dos dispositivos entre s, uno se configura como master y el otro como esclavo. En este interface se definen las lneas: Serial Data Out (SDO) Serial Date In (SDI) Serial Clock (SCK)

Adicionalmente se puede usar un cuarto pin en modo esclavo. Slave Select ( SS). Permite velocidades de hasta 8 Mbps con reloj a 20 MHz. El master inicia las transferencias activando la lnea SCK, el esclavo recibe y transmite informacin cuando detecta que la lnea SCK se activa. Cada vez que recibe un byte, en modo esclavo, se puede activar la interrupcin correspondiente. I2C: Inter-Integrated Circuit. Permite la interconexin de mltiples dispositivos formando un bus. A cada dispositivo se le asigna una direccin y las tramas que se envan por el bus llevan direccionamiento para identificar los actores de la misma. En general se configura un dispositivo como master y el resto como esclavos, no obstante, se permiten buses multi-master, en este caso se dispone de mecanismos de deteccin de colisiones y gestin (arbitration) del Bus. Se pueden alcanzar velocidades de 1 Mbps, y conectar hasta 128 o 1.024 dispositivos en funcin del tipo de direccionamiento utilizado. Addressable Universal Synchronous Asynchronous Receiver Transmitter (USART). Este mdulo implementa el popular interface de comunicaciones serie que tienen incluida gran cantidad de ordenadores. Permite comunicacin serie entre dos dispositivos, y en algunos modos de funcionamiento, permite la conexin de ms de dos dispositivos incluyendo 9 bits de direccionamiento (512 dispositivos).

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores Analog/Digital Converter. Este mdulo permite la conexin de entradas analgicas para convertirlas en valores discretos obteniendo su valor. El valor mnimo de una entrada es 0 y aparece si la tensin de esa entrada es menor o igual a VREF-. El valor mximo es 1.023 (3FFH) si la tensin es mayor o igual que VREF+. Cualquier voltaje intermedio producir un valor proporcional al mism0 en el rango de 1 a 1.022. Aunque se dispone de un nico conversor, el microcontrolador tiene un multiplexor analgico que permite la conexin de hasta ocho entradas.

Para su uso se dispone de 4 registros de 8 bits: ADRESH, ADRESL, ADCON0 y ADCON1. Los dos primeros son: ADRESH y ADRESL (parte alta y parte baja del resultado de la conversin AD) contendrn el resultado de la ltima conversin. Se usan dos registros porque el conversor tiene una resolucin de 10 bits. Si ocho bits fueran suficientes para una aplicacin determinada, se puede indicar al conversor que entregue el resultado justificado a la izquierda y nos quedamos con el contenido de ADRESH. Registros ADCON0 y ADCON1 (Registros de control del conversor). ADCON1 suele usarse en la parte de inicializacin del programa para asignar la funcin que debe corresponder a cada una de las posibles entradas analgicas. ADCON0 debe ser accedido antes de cada conversin. El bit de mayor peso de ADCON1 (ADFM) permite decidir si el resultado queda alineado a la izquierda (0) o a la derecha (1).

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

Los cuatro de menor peso (PCFG3 al PCFG0) se usan segn la siguiente tabla:

Esto permite que todas las entradas sean analgicas o digitales o algunas combinaciones de analgicas y digitales. Tambin permite definir qu valores se usarn como VREF+ y VREF Los dos bits de mayor peso de ADCON0 (ADCS1 y ADCS0) permiten seleccionar la fuente de reloj a utilizar. En general este parmetro no es crtico. Seleccionar los valores 01 10 permite realizar conversiones rpidas y precisas. Los bits 3. 5 se corresponde con CHS0. CHS2. Con esas tres lneas se gobierna el MPX analgico, y por tanto la entrada sobre la que se quiere hacer la conversin. El bit de menos peso (ADON) permite conectar o desconectar el conversor. Tenerlo desconectado permite reducir el consumo del microcontrolador. Finalmente el bit 2 GO/DONE permite lanzar el proceso de conversin poniendo esta lnea a 1, y comprobar si la conversin ha finalizado. Existen bsicamente dos maneras de detectar cuando ha finalizado. Por interrupciones o por sondeo (polling). Si se activan los bits de interrupcin correspondientes (ADIE, PIE y GIE y se pone a 0 ADIF), se producir una interrupcin cuando acabe la conversin en marcha, activando el ADIF.

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores Por sondeo el mtodo es el siguiente: Activar el bit GO/DONE y entrar en un bucle en el que se comprueba este mismo bit. Mientras valga 1 la conversin est en curso. Cuando pasa a 0 la conversin finaliz y el resultado se encuentra en los registros ADRESH y L.

III.

Practicas.

Practica 1. Cargar al Registro W la literal o valor .50 despus cargar el valor o literal .20; borrando la literal pasada, por ultimo cargar la literal o valor de.5 en el registro W, borrando la literal pasada de .20 quedando al final solo el valor de .5
INI MOVLW MOVLW MOVLW GOTO END .50 .20 .5 INI ;INICIO DE PROGRAMA ;CARGAR A W CON LITERAL 50 ;CARGAR A W CON LITERAL 20 ;CARGAR A W CON LITERAL 5 ;SALTAR A DIRECCION ;FIN DE PROGRAMA

PRACTICA 2 Sumar cantidades o valores decimales en los registros he irlos sumando en otro registro con otra direccin y borrar los registros ya utilizados.
INI MOVLW MOVWF MOVLW ADDWF CLRF CLRW GOTO END .50 0X20 .20 0X20,1 0X20 INI ;CARGAR A W CON LITERAL O VALOR DECIAML 50 ;MOVER REGISTRO W A F EN DIRECCION 0X20 HEXADECIMAL CARGAR A W CON LITERAL O VALOR DECIAML 20 ;SUMAR EL REGISTRO W A F EN DIRECCION 0X20,1 HEXADECIMAL ;LIMPIAR EL REGISTRO F ;LIMPIAR ;SALTAR A ;FIN DE PROGRAMA

Practica 3 Sumar cantidades decimales en registros y cambiarlos en las direcciones de los registros.
INI MOVLW MOVWF MOVLW ADDWF ADDWF GOTO END .5 0X20 .50 0X20,0 0X20,1 INI ;INICIO DE PROGRAMA ;MOVER AL REGISTRO W CON LA LITERAL O VALOR 5 EN DECIMAL ;MOVER AL REGISTRO DE W A F EN LA DIRECCION HEXADECIMAL ;MOVER AL REGISTRO W LA LITERAL O VALOR DECIMAL 50 ;SUMAR REGISTRO W A F EN DIRECCION 0X20,1 ;SUMAR REGISTRO W A F EN DIRECCION 0X20,1 ;SALTAR AL INI ;FIN DE PROGRAMA

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores Practica 4 Incrementa el valor del registro F hasta llegar a cero.

INI

;INICIO DE PROGRAMA MOVLW . 251 ;MOVER AL REGISTRO W LA LITERAL O VALOR 251 MOVWF 0X20 ;MOVER EL REGISTRO W A F EN DIRECCION 0X20 MOVLW .5 ;MOVER AL REGISTRO W LA LITERAL O VALOR .5 MOVWF 0X21 ;MOVER EL REGISTRO W A F EN DIRECCION 0X21 YO INCF .2 ;INCREMENTAR EL REGISTRO F EN UNO ADDWF 0X21,0 ;SUMAR EL REGISTRO W EN F EN LA DIRECCION INCFSZ 0X20,1 ;INCREMENTAR EL REGISTRO F EN UNO SI F QUEDA EN 0 SALTA UNA LINEA DE PROGRAMA A LA DIRECCION GOTO END YO ;SALTA A YO ;FIN DE PROGRAMA

PRACTICA 5 RANA

INI CLRF CLRF MOVLW MOVWF METROS

;INICIO DE PROGRAMA 0X20 ;BORRO REGISTRO F DE DIRECCION 0X21 ;BORRO REGISTRO F DE DIRECCION .100 ;MOVER REGISTRO W CON LITERAL 100METROS 0X20 ;MOVER EL REGISTRO W A F A DIRECCION QUE ES CONTADOR ;MOVER REGISTRO W CONLITERAL DE 1 DIA ;MOVER EL REGISTRO W A F A DIRECCION SERA TOTAL DIAS ;DECREMENTAR F EN DIRECCION ;DECREMENTAR F EN 1, SI LLEGA A CERO SALTAR UNA LINEA DOS

MOVLW .1 MOVWF 0X21 DIA DECF 0X20 DECFSZ 0X20 METROS AVANCE DA GOTO GOTO INCF INCF GOTO NOP GOTO NOP END

NOCHE

YA FIN

NOCHE;SALTAR A NOCHE YA ;SALTAR A YA 0X20 ;INCREMENTAR F EN DIRECCION QUE SERA NOCHE 0X21 ;INCREMENTAR F EN DIRECCION QUE SERUN DIA MAS DIA ;SALTAR A DIA AVANZA ;NO HACE NADA FIN ;SALTA A FIN ;NO HACE NADA ;FIN DE PROGRAMA

PRACTICA 6

;DECLARACION DE VARIABLES F W EQU EQU 1 0 ;VARIABLE F EN DIRECCION 1 ;VARIABLE W EN DIRECCION 0

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


I J H EQU EQU EQU 0X20 0X21 0X22 ;VARIABLE I EN REGISTRO GENERAL 21 ;VARIABLE J EN REGISTRO GENERAL 22 ;VARIABLE H EN REGISTRO GENERAL 23

;PROGRAMA PRINCIPAL MOVLW MOVWF VARIABLE H INI VARIABLE I OTRO VARIABLE J NUEVO NOP DECFSZ LINEA GOTO DECFSZ GOTO DECFSZ UNA LINEA FIN GOTO NOP GOTO END INI ;SALTAR A INI ;NO HACE NADA FIN ;SALTA A FIN ;FIN DE PROGRAMA NUEVO; SALTAR A NUEVO I ; decremento f en uno si llega a 0 saltar una lnea. OTRO;SALTAR A OTRO H,F ;DECREMENTRF EN UNO SI LLEGA A 0 SALTAR ; NO HACE NADA J,F ; DECREMENTAR F EN UNO SI LLEGA A O SALTAR UNA MOVLW MOVWF MOVLW MOVWF .23 H .248 I ;MOVER AL REGISTRO W LA LITERAL 23 ;MOVER EL REGISTRO W EN F A LA DIRECCION DE LA ;MOVER AL REFISTRO W LA LITERAL 248 ;MOVER EL REGISTRO W EN F A LA DIRECCION DE LA

.240; MOVER AL REGISTRO W LA LITERAL 240 J ;MOVER EL REGISTRO W A F A LA DIRECCION DE LA

Practica 7 Realizar un testeo y una operacin de igualdad.

;DECLARACION DE VARIABLES I Z STATUS W EQU EQU EQU EQU 0X20 .1 0X03 0 ;VARIABLE I EN DIRECION ; VARIABLE Z EN DIRECCION ; SELECCIONA EL BANCO 3 ;VARIABLE W EN DIRECCION

;PROGRAMA PRINCIPAL CLRF NOP INCF MOVLW SUBWF BTFSS GOTO NOP GOTO END ;LIMPIAR F ;NO HACE NADA I ;INCREMENTA F EN UNO EN LA VARIABLE I .10 ;MOVER AL REGISTRO W LA LITERAL 10 I,W ;RETA EL REGISTRO W A F STATUS,Z;PROBAR BIT B DE F,SALTAR SI ES UNO OTRO ;SALTAR A OTRO ;NO HACE NADA FIN ;SALTAR A FIN ;FIN DE PROGRAMA I

OTRO

FIN

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores Programa 8 Pjaros y el gato.

;DECLARACION DE VARIABLES I J STATUS K EQU EQU EQU EQU 0X20 .2 0X03 0 ;VARIABLE I EN DIRECCION ;VARIABLE J EN DIRECCION ;SELECCION DEL BANCO 3 ;VARIABLE K EN DIRECCION

;PROGRAMA PRINCIPAL CLRF I ;LIMPIA EL REGISTRO F NOP ; NO HACE NADA INCF I ;INCREMENTA F EN 1 MOVLW .1 ;MOVER AL REGISTRO W LA LITERAL 1 MOVWF 0X21 ;MOVER EL REGISTRO W A F EN DIRECCION ADDWF 0X23,1 ;SUMAR REGISTRO W EN F MOVLW .100 ;MOVER AL REGISTRO LA LITERAL 100 ADDWF 0X20,1 ;SUMAR EL REGISTRO W A F EN DIRECCION RLF 0X20,1 ;ROTAR A LA IZQUIERA A DIRECCION SUBWF I,K ;RESTAR REGISTRO W A F EN VARIABLES BTFSS STATUS,J ;Probar bit b de f, saltar si es uno GOTO OTRO ;SALTAR A OTRO NOP ; NO HACE NADA GOTO FIN ;SALTAR A FIN END ; FIN DE PROGRAMA

OTRO

FIN

Practica 9 Configuracin de puertos


;DECLARACION DE VARIABLES F W STATUS RP0 RP1 PTOB TRISB ANSEL ANSELH I J K EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 1 0 03h .5 .6 06h 86h 108h 109h 0X20 0X21 0X22 ;VARIABLE F EN DIRECCION ;VARIABLE W EN DIRECCION ;SELECCION DEL BANCO ;SELECCION DE PUERTO BANCO 0 ;SELECCION DE PUERTO BANCO 1 ;SELECCION PUERTO B ;CONFIGURACION DE SALIDA DE PUERTO B

;VARIABLE I EN DIRECCION ;VARIABLE J EN DIRECCION ;VARIABLE K EN DIRECCION

;CONFIGURACION BSF CLRF BSF CLRF STATUS,RP0 TRISB STATUS,RP1 ANSEL ;Activar bit b de f BANCO1 ;CONFIGURACION PUERTO B LIMPIAR ;Activar bit b de f BANC03 ;DES ANL

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


CLRF BCF BCF ; PROGRAMA PRINCIPAL CLRF INCF CALL SUBRRUTINA GOTO ; SUBRRUTINA. RETARDO INI OTRO NEW MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF NOP DECFSZ GOTO DECFSZ GOTO DECFSZ GOTO NOP GOTO END .25 0X22 .255 I .255 J J,F NEW I,F OTRO K,F INI FIN ;MOVER A EL REGISTRO W LA VARIABLE 25 ;MOVER EL REGISTRO W A F A DIRECCION ;MOVER AL REGISTRO W LA VARIABLE 255 ;MOVER EL REGISTRO W A F EN VARIABLE I ;MOVER AL REGISTRO W LA LITERAL 255 ;MOVER EL REGISTRO W A F EN VARIABLE J ;NO HACE NADA ;DECREMENTA F EN UNO ASTA LLEGAR A O ;SALTAR A NEX ;DECREMENTAR F EN UNO ASTA LLEGAR A 0 ;SALTARA A OTRO ;DECREMENTAR F EN UNO HASTA LLEGAR A 0 ;SALTA A INI ;NO HACE NADA ;SALTA A FIN ;FIN DE PROGRAMA AQUEL ;SALTA A AQUEL PTOB PTOB,F RETARDO ;CONFIGURA PUERTO B LIPIAR ;INCREMENTA F EN UNO SI LLEGA A CERO SALTAR UNA ;SALTAR A RETRASO DE 1 SEGUNDO EN ANSELH STATUS,RP1 STATUS,RP0 ;DES ANH ;Limpiar bit b de f BANCO1 ;Limpiar bit b de f BANCO0

AQUEL LINEA

FIN

Practica 10 Suma de nmeros binarios.


F W I J Q STATUS RP0 RP1 PTOB TRISB ANSEL ANSELH EQU 1 EQU 0 EQU 0X20 EQU 0X21 EQU 0X22 EQU 03H EQU .5 EQU .6 EQU 06H EQU 86H EQU 108H EQU 109H ;VARIABLE F A DIRECCION ;VARIABLE W A DIRECCION ;VARIABLE I A DIRECCION ;VARIABLE J A DIRECCION ;VARIABLE K A DIRECCION ;SELECCION DEL BANCO ;SELECCIONA EL PUERTO EN BANCO 0 ;SELECCIONA EL PUERTO EN BANCO 1 ;CONFIGURA EL PUERTO B ;CONFIGURA LA SALIDA DEL PUERTO B ; ;

;PROGRAMA PRINCIPAL BSF STATUS,RP0 CLRF TRISB BSF STATUS,RP1 CLRF ANSEL CLRF ANSELH BCF STATUS,RP1 BCF STATUS,RP0 ;Activar bit b de f BANCO1 ;CONFIGURACION PUERTO B LIMPIAR ;Activar bit b de f BANC03 ;DES ANL ;DES ANH ;Limpiar bit b de f BANCO1 ;Limpiar bit b de f BANCO0

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

AQUEL CLRF PTOB MOVLW .0 ADDWF PTOB,F CALL RETARDO CLRF PTOB MOVLW .1 ADDWF PTOB,F CALL RETARDO CLRF PTOB MOVLW .3 ADDWF PTOB,F CALL RETARDO CLRF PTOB MOVLW .7 ADDWF PTOB,F CALL RETARDO CLRF PTOB MOVLW .15 ADDWF PTOB,F CALL RETARDO CLRF PTOB MOVLW .31 ADDWF PTOB,F CALL RETARDO CLRF PTOB MOVLW .63 ADDWF PTOB,F CALL RETARDO CLRF PTOB MOVLW .127 ADDWF PTOB,F CALL RETARDO CLRF PTOB MOVLW .255 ADDWF PTOB,F CALL RETARDO GOTO AQUEL ;RUTINA DE RETARDO RETARDO MOVLW .245 MOVWF Q MOVLW .60 MOVWF I MOVLW .15 MOVWF J NOP

;CONFIGURA PUERTO B LIMPIAR ;MOVER AL REGISTRO W LA VARIABLE O ;SUMARA W A F EN PUERTO B ;LLAMA A UNA SUBRRITA ;CONFIGURA PUERTO B LIMPIAR ;MOVER AL REGISTRO W LA VARIABLE 1 ;SUMARA W A F EN PUERTO B ;LLAMA A UNA SUBRRITA ;CONFIGURA PUERTO B LIMPIAR ;MOVER AL REGISTRO W LA VARIABLE 3 ;SUMARA W A F EN PUERTO B ;LLAMA A UNA SUBRRITA ;CONFIGURA PUERTO B LIMPIAR ;MOVER AL REGISTRO W LA VARIABLE 5 ;SUMARA W A F EN PUERTO B ;LLAMA A UNA SUBRRITA ;CONFIGURA PUERTO B LIMPIAR ;MOVER AL REGISTRO W LA VARIABLE 15 ;SUMARA W A F EN PUERTO B ;LLAMA A UNA SUBRRITA ;CONFIGURA PUERTO B LIMPIAR ;MOVER AL REGISTRO W LA VARIABLE 31 ;SUMARA W A F EN PUERTO B ;LLAMA A UNA SUBRRITA ;CONFIGURA PUERTO B LIMPIAR ;MOVER AL REGISTRO W LA VARIABLE 63 ;SUMARA W A F EN PUERTO B ;LLAMA A UNA SUBRRITA ;CONFIGURA PUERTO B LIMPIAR ;MOVER AL REGISTRO W LA VARIABLE 127 ;SUMARA W A F EN PUERTO B ;LLAMA A UNA SUBRRITA ;CONFIGURA PUERTO B LIMPIAR ;MOVER AL REGISTRO W LA VARIABLE 255 ;SUMARA W A F EN PUERTO B ;LLAMA A UNA SUBRRITA ;SALTA A AQUEL

INI OTRO

;MOVER AL REGISTRO W LA VARIABLE 245 ;MOVER EL REGSITRO W A F DIRECCION Q ;MOVER AL REGSITRO W LA VARIABLE40 ;MOVER EL REGSITRO W A F EN DIRECCION ;MOVER AL REGISTRO L A W EN DIRECCION ;MOVER EL REGISTRO W A F EN DIRECCION ;NO HACE NADA

NUEVO

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


DECFSZ J, F GOTO NUEVO DECFSZ I, F GOTO OTRO DECFSZ Q, F GOTO INI RETURN END ; DECREMENTO DE F EN UNO HASTA LLEGAR A UNO Y SALTAR UNA LINEA. ;SALTAR A NUEVO ; DECREMENTO DE F EN UNO HASTA LLEGAR A UNO Y SALTAR UNA LINEA. ;SALTAR A OTRO ; DECREMENTO DE F EN UNO HASTA LLEGAR A UNO Y SALTAR UNA LINEA. ;SALTAR A INI ;RETORNAR ;FIN DE PROGRAMA

PRGOGRAMA 11 Uso de apuntadores, para encendido de leds, desde el puerto rb0 hasta el puerto rb7 con un retardo de un segundo
;DECLARACION DE VARAIABLES INC EQU F EQU W EQU I EQU J EQU Q EQU STATUS EQU RP0 EQU RP1 EQU PTOB EQU TRISB EQU ANSEL EQU ANSELH EQU PCL EQU 0X20 1 0 0X21 0X22 0X23 03H .5 .6 06H 86H 108H 109H 0X24 DEL

Variables, configuracin del banco, y configuracin de puertos

;CONFIGURACION BSF CLRF BSF CLRF CLRF BCF BCF

PUERTO

STATUS,RP0 TRISB STATUS,RP1 ANSEL ANSELH STATUS,RP1 STATUS,RP0

Configuracin del banco y puertos

;PROGRAMA PRINCIPAL OTRO CALL CALL MOVWF GOTO DATO RETARDO PTOB OTRO

DATO NUEVO INCF MOVFW XXX ADDWF INC,F INC PCL,F

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


RETLW NOP RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW CLRF GOTO ;SUBRRUTINA RETARDO MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF NOP DECFSZ GOTO DECFSZ GOTO DECFSZ GOTO RETURN END .245 Q .60 I .15 J Rutina de retardo de un Segundo y final de programa. J,F XXX I,F XXX Q,F INI b'00000000' b'00000001' b'00000011' b'00000111' b'00001111' b'00011111' b'00111111' b'01111111' b'11111111' INC NUEVO

Escondido de leds

INI

Practica 12 Uso de tablas para encendido y apagado de leds los leds encendern del puerto RB0 hasta el puerto RB7 con un retardo de 1 segundo y al momento en que prendan todos se empezaran a apagar desde el ltimo que encendi hasta apagar todos los leds.
;DECLARACION DE VARIABLES INC EQU 0X20 F EQU 1 W EQU 0 STATUS EQU 03H RP0 EQU .5 RP1 EQU .6 PTOB EQU 06H TRISB EQU 86H PCL EQU 02H ANSEL EQU 108H ANSELH EQU 109H I EQU 0X21

declaracin de variables

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


J EQU 0X22 K EQU 0X23 CONFIGB EQU b'00000000' ;CONFIGURACION DE PUERTOS BSF STATUS,RP0 MOVLW CONFIGB MOVWF TRISB BSF STATUS,RP1 CLRF ANSEL CLRF ANSELH BCF STATUS,RP0 BCF STATUS,RP1 ;PROGRAMA CLRF INC CLRF PTOB CALL RETARDO CALL DATO MOVWF PTOB GOTO UNO

Configuracin de puertos

UNO

DATO INCF INC MOVF INC,W ADDWF PCL,F ;CLRF INC NOP RETLW b'00000000' RETLW b'00000001' RETLW b'00000011' RETLW b'00000111' RETLW b'00001111' RETLW b'00011111' RETLW b'00111111' RETLW b'01111111' RETLW b'11111111' RETLW b'01111111' RETLW b'00111111' RETLW b'00011111' RETLW b'00001111' RETLW b'00000111' RETLW b'00000011' RETLW b'00000001' CLRF INC GOTO DATO ;SUBRUTINA RETARDO MOVLW .20 MOVWF K INI MOVLW .100 MOVWF I OTRO MOVLW .100 MOVWF J NUEVO NOP

Encendido de leds.

Rutina de retardo

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


DECFSZ J,F GOTO NUEVO DECFSZ I,F GOTO OTRO DECFSZ K,F GOTO INI RETURN END

Practica 13 Configuracin de display de 7 segmentos Encendido del display con un ciclo de 3 veces y por ltimo se queda solo el guion medio o RB6 encendido

;Practica 13
;Configuracin de puertos del pic ;Numeracin con display "0123456789AbCdEF" ;3 veces el ciclo mencionado y por ltimo se quedara solo un guion que ser el segmento 7 o RB06 ;Declaracin de variables INC PCL F W STATUS RP0 RP1 PTOB EQU TRISB EQU ANSEL EQU ANSELH ;CONFIGB I J K EQU EQU EQU EQU EQU EQU EQU 06H 86H 108H EQU EQU EQU EQU EQU 109H b'00000000' 0x20 0x21 0x22 0x23 02H 1 0 03H .5 .6

;declaracin de variables del retardo

;Configuracin de puertos BSF STATUS,RP0 MOVLW CONFIGB MOVWF TRISB CLRF TRISB BSF STATUS,RP1 CLRF ANSEL CLRF ANSELH BCF STATUS,RP1 BCF STATUS,RP0 CLRF PTOB

; ;

;CONFIGURACION DEL PUERTO B ;CONFIGURACION DEL PUERTO B ;CONFIGURACION DEL PUERTO B

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


;Inicio de Programa CLRF INC RETARDO CALL DATO MOVWF PTOB GOTO OTRO INC,F MOVFW INC ADDWF PCL,F NOP RETLW b'00111111'; 0 RETLW b'00000110';1 RETLW b'01011011';2 RETLW b'11001111';3 RETLW b'01100110';4 RETLW b'01101101';5 RETLW b'01111101';6 RETLW b'00000111';7 RETLW b'01111111';8 RETLW b'01101111';9 RETLW b'01110111';A RETLW b'01111100';b RETLW b'00111001';C RETLW b'01011110';d RETLW b'01111001';E RETLW b'01110001';F ---- 1 ciclo RETLW b'00111111'; 0 RETLW b'00000110';1 RETLW b'01011011';2 RETLW b'11001111';3 RETLW b'01100110';4 RETLW b'01101101';5 RETLW b'01111101';6 RETLW b'00000111';7 RETLW b'01111111';8 RETLW b'01101111';9 RETLW b'01110111';A RETLW b'01111100';b RETLW b'00111001';C RETLW b'01011110';d RETLW b'01111001';E RETLW b'01110001';F ---- 2 ciclo RETLW b'00111111'; 0 RETLW b'00000110';1 RETLW b'01011011';2 RETLW b'11001111';3 RETLW b'01100110';4 RETLW b'01101101';5 RETLW b'01111101';6 RETLW b'00000111';7 RETLW b'01111111';8 RETLW b'01101111';9 RETLW b'01110111';A RETLW b'01111100';b RETLW b'00111001';C RETLW b'01011110';d RETLW b'01111001';E RETLW b'01110001';F ---- 3 ciclo

OTRO

CALL

NUEVO1 DATO INCF

Encendido del display de 7 segmentos y ciclo de 3 veces y guin final

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_ RETLW b'01000000';_

CLRF NOP

INC

GOTO NUEVO1

;SUBRUTINA DE 1s RETARDO INI OTRORET NUEVO NOP DECFSZ GOTO NUEVO DECFSZ I,F GOTO OTRORET DECFSZ K,F GOTO INI RETURN END J,F Rutina de retardo de un segundo MOVLW .25 MOVWF 0x22 MOVLW .100 MOVWF I MOVLW .100 MOVWF J

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores Practica 14 Configuracin del convertidor analgico digital ( con sensor de temperatura ) Se configurara el puerto para que estos den la salida visible cuando el sensor LM35 est en operacin encendiendo con ms intensidad los leds.
;practica 14 Con sensor LM35

;Declaracin de Variables ADCON0 ADCON1 ADRESH PCL INC F W I J K L STATUS RP0 RP1 PTOB PTOA TRISA TRISB ANSEL ANSELH EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU .5 .6 06h 05h 85H 86H 108H 109H 82H 0X20 1 0 0X21 0X22 0X23 0X24 03H 1Fh 9Fh 1Eh

Declaracin de puertos

;Configuracin de Puertos CLRW MOVLW CLRF ADDWF BSF CLRF MOVLW CLRF ADDWF CLRF MOVLW ADDWF BSF CLRF MOVLW ADDWF CLRF BCF BCF ;Programa Principal

b'11000001' ADCON0 ADCON0 STATUS,RP0 TRISB b'00010000' ADCON1 ADCON1 TRISA b'11111111' TRISA,1 STATUS,RP1 ANSEL .1 ANSEL,1 ANSELH STATUS,RP1 STATUS,RP0

Configuracin de puertos de salida

OTRO

NOP

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


NOP NOP NOP NOP BSF BTFSC ADCON0,1 GOTO ESPERA MOVF ADRESH,W MOVWF PTOB GOTO OTRO ADCON0,1

ESPERA

END

Practica 15 Analgica digital con librerias. Configuracin del convertidor analgico digital ( con sensor de temperatura ) Se configurara el puerto para que estos den la salida visible cuando el sensor LM35 est en operacin encendiendo con ms intensidad los leds.
PROCESSOR 16F887 INCLUDE <P16F887.INC>

Librerias nico cambio

;CONFIGURACION CLRW MOVLW B'11000001' CLRF ADCON0 ADDWF ADCON0 BSF STATUS,RP0 CLRF TRISB MOVLW B'00010000' CLRF ADCON1 ADDWF ADCON1 CLRF TRISA MOVLW B'11111111' ADDWF TRISA,1 BSF STATUS,RP1 CLRW MOVLW .1 MOVWF ANSEL CLRF ANSELH BCF STATUS,RP1 BCF STATUS,RP0 ;------------------------------------------------------------; PROGRAMA

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


NOP NOP NOP NOP NOP BSF ADCON0,1 BTFSC ADCON0,1 GOTO $-01H MOVF ADRESH,W MOVWF PORTB GOTO $-0AH RETURN END

Practica 16 Configuracin del LCD con letra y nombre. En esta prctica se configura los puertos para que aparezca el nombre en el LCD. ;Practica 16 CONFIGURACION DEL LCD CON LETRA Y NOMBRE
__CONFIG 2007H,21C4H __CONFIG 2008H,3EFFH ; PROGRAMA PARA DISPLAY EN LCD STATUS PORTD EQU PORTB EQU TRISD EQU TRISB EQU ADCON1 R13 R14 ACUMULA R PC RS E J I RP0 RP1 EQU 08H 06H 88H 86H EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 03H

9FH 20H 21H EQU 01H 02H 02H 03H 24H 25H .5 .6

23H

CLRW ;LIMPIA REGISTRO W BSF STATUS,RP0 ;COLOCA A UNO RP0 PARA CAMBIO A BANCO 1 CLRF PORTB ;MUEVE W A REGISTRO B CLRF PORTD ;MUEVE W A REGISTRO D MOVLW 07H MOVWF ADCON1 BSF STATUS,RP1 ;COLOCA 1 EL RP1 PARA CAMBIO A BANCO 3 BCF STATUS,RP0 ;COLOCA A CERO RP0 PARA REGRESAR BANCO 0 BCF STATUS,RP1 ;COLOCA A CERO RP1 PARA REGRESAR A BAN CLRF PORTD CLRF PORTB CLRF ACUMULA

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

;CONFIGURA LCD MOVLW .15 MOVWF I ;COLOCA EL 1er RETRADO EN REGISTRO I CALL RET1mS MOVLW 30H ;MANDO 0X30 PUERTO B MOVWF PORTB BCF PORTD,2 ;LIMPIO PD2 CALL FIG MOVLW .5 ;ESPERO 5 mS. MOVWF I CALL RET1mS MOVLW 30H ;MANDO 0X30 PUERTO B MOVWF PORTB CALL PUERTO MOVLW .1 ;ESPERO 1mS MOVWF I CALL RET1mS MOVLW 30H ;MANDO 0X30 PUERTO B CALL PUERTO MOVLW 0X1F ;FUNCION SET CALL PUERTO MOVLW 0X08 ;DISPLAY OFF CALL PUERTO MOVLW 0X01 ;CLEAR DISPLAY CALL PUERTO MOVLW B'00000110' ;ENTRY MODE CALL PUERTO MOVLW 0X0F ;DISPLAY ON CALL PUERTO GOTO IMPR RET1mS RET NOP MOVLW .1 MOVWF J NOP NOP DECFSZ J,F GOTO NUEVO DECFSZ I,F GOTO RET RETURN PULSO BSF PORTD,.3 MOVLW .1 MOVWF I CALL RET1mS NOP BCF PORTD,.3 MOVLW .100 MOVWF I CALL RET1mS RETURN MOVWF PORTB CALL PULSO RETURN

NUEVO NOP

PUERTO

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

FIG LCD1 LCD2 BSF BSF

BCF PORTD,RS GOTO LCD2 PORTD,RS PORTD,E MOVWF PORTB CALL RETARDO BCF PORTD,E CALL RETARDO RETURN

NOMBRE

ADDWF RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW

PC,R "D" "I" "E" "G" "O" "" "A" "L" "B" "E" "R" "T" "O"

Nombre Diego Alberto Garcia Eligio

IMPR

MOVF

ACUMULA,0 CALL NOMBRE ;MOVLW "A" CALL LCD1 CALL RETARDO CALL RETARDO INCF ACUMULA,1 GOTO IMPR MOVLW 01H MOVWF R13 MOVLW 02H MOVWF R14 DECFSZ GOTO RT2 DECFSZ GOTO RT1 RETURN

RETARDO RT1 RT2

R14,R R13,R

END

Practica 17 Configuracin del LCD con nmero y registro. En esta practica se configurara el puerto para q mande una cantidad de tres dgitos la cual est conformada por Centenas, Decenas y Unidades. Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores

;PRACTICA 17 ;UNIDADES-DECENAS-CENGTENAS TRES NUMEROS SEPARADOS ;DECLARACION DE VARIABLES __CONFIG 2007H,21C4H __CONFIG 2008H,3EFFH STATUS EQU PORTD EQU 08H PORTB EQU 06H TRISD EQU 88H TRISB EQU 86H ADCON1 EQU R13 EQU R14 EQU ACUMULA EQU R EQU PC EQU RS EQU E EQU J EQU I EQU RP0 EQU RP1 EQU NN EQU OO EQU KK EQU L EQU M EQU CENTENAS EQU 25H DECENAS EQU UNIDADES EQU 27H

03H

9FH 28H 29H 30H 01H 02H 02H 03H 31H 32H .5 .6 20H 21H 22H 23H 24H 26H

CLRW ;LIMPIA REGISTRO W BSF STATUS,RP0 ;COLOCA A UNO RP0 PARA CAMBIO A BANCO 1 CLRF PORTB ;MUEVE W A REGISTRO B CLRF PORTD ;MUEVE W A REGISTRO D MOVLW 07H MOVWF ADCON1 BSF STATUS,RP1 ;COLOCA 1 EL RP1 PARA CAMBIO A BANCO 3 BCF STATUS,RP0 ;COLOCA A CERO RP0 PARA REGRESAR BANCO 0 BCF STATUS,RP1 ;COLOCA A CERO RP1 PARA REGRESAR A BAN CLRF PORTD CLRF PORTB CLRF 23H ;CONFIGURA LCD MOVLW .15 MOVWF I ;COLOCA EL 1er RETRADO EN REGISTRO I CALL RET1mS MOVLW 30H ;MANDO 0X30 PUERTO B MOVWF PORTB BCF PORTD,2 ;LIMPIO PD2 CALL FIG MOVLW .5 ;ESPERO 5 mS. MOVWF I

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


CALL RET1mS MOVLW 30H ;MANDO 0X30 PUERTO B MOVWF PORTB CALL PUERTO MOVLW .1 ;ESPERO 1mS MOVWF I CALL RET1mS MOVLW 30H ;MANDO 0X30 PUERTO B CALL PUERTO MOVLW B'00011111' ;FUNCION SET CALL PUERTO MOVLW 0X08 ;DISPLAY OFF CALL PUERTO MOVLW 0X01 ;CLEAR DISPLAY CALL PUERTO MOVLW B'00000110' ;ENTRY MODE CALL PUERTO MOVLW B'00001111' ;DISPLAY ON CALL PUERTO

CENT

DEC

UNI

CLRF NN CLRF OO CLRF KK CLRF CENTENAS CLRF DECENAS CLRF UNIDADES MOVLW .200 MOVWF L MOVWF M MOVLW .100 ADDWF CENTENAS,1 SUBWF M,1 INCF NN,1 BTFSC STATUS,.0 GOTO CENT MOVF L,0 MOVWF M DECF NN,1 MOVLW .100 SUBWF CENTENAS,1 MOVF CENTENAS,0 SUBWF M,1 MOVLW .10 ADDWF DECENAS,1 SUBWF M,1 INCF OO,1 BTFSC STATUS,.0 GOTO DEC MOVF L,0 MOVWF M DECF OO,1 MOVF CENTENAS,0 SUBWF M,1 MOVLW .10 SUBWF DECENAS,1 MOVF DECENAS,0 SUBWF M,1 MOVLW .1 ADDWF UNIDADES,1

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


SUBWF INCF BTFSC GOTO DECF GOTO RET1mS RET M,1 KK,1 STATUS,.0 UNI KK,1 IMPR NOP MOVLW .1 MOVWF J NOP NOP DECFSZ J,F GOTO NUEVO DECFSZ I,F GOTO RET RETURN PULSO BSF PORTD,.3 MOVLW .1 MOVWF I CALL RET1mS NOP BCF PORTD,.3 MOVLW .100 MOVWF I CALL RET1mS RETURN MOVWF PORTB CALL PULSO RETURN BCF PORTD,RS GOTO LCD2 PORTD,RS PORTD,E MOVWF PORTB CALL RETARDO BCF PORTD,E CALL RETARDO RETURN

NUEVO NOP

PUERTO

FIG LCD1 LCD2 BSF BSF

IMPR

MOVF NN,0 ADDLW B'00110000' CALL CALL CALL MOVF ADDLW B'00110000' CALL CALL CALL MOVF ADDLW B'00110000' CALL CALL CALL

LCD1 RETARDO RETARDO OO,0 LCD1 RETARDO RETARDO KK,0 LCD1 RETARDO RETARDO

Ing. Cabrera Hernndez Luis

Tecnolgico de Tlalnepantla Subdireccin Acadmica Microcontroladores


YO RETARDO RT1 RT2 GOTO YO MOVLW 01H MOVWF R13 MOVLW 02H MOVWF R14 DECFSZ GOTO RT2 DECFSZ GOTO RT1 RETURN

R14,R R13,R

END

IV.

Bibliografa. - Data Sheet PIC16F887 - www.wikipedia.com - www.monografias.com

V.

Conclusiones.

Este curso est orientado a las personas que estn interesadas en aprender a programar un PIC y ponen todo su empeo en ello, yo he puesto alguna informacin posible para la mejor compresin de las bases tericas. As pues adems de aprender todo sobre el mundo del PIC, es necesario saber algo de electrnica y electrnica digital. Lo ms importante, es comprender como hacer la simulacin con MPLAB, experimenta con MPLAB, lo ms tpico es errarle hasta que salga todo bien, creo que es la mejor forma de aprender, ya que estos programas son una pequea parte de todo lo que se puede desarrollar con elPIC16F887 VI. Fecha de entrega Da de Entrega de la Prctica: 25 de Julio del 2012.

Ing. Cabrera Hernndez Luis

You might also like