




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Apuntes de microcontroladores software MPLAB
Tipo: Apuntes
1 / 144
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





























































































Ejemplo: tablas de búsqueda en memoria de programa usando instrucciones de lectura de tabla
Se presenta a continuación unas notas que tienen por objetivo facilitar al lector en el uso de microcontroladores PIC 18F4550, (su contenido es compatible con el curso “Microcontroladores”) mediante una serie de ejemplos prácticos que le permiten iniciarse en el uso de los mismos, y también aprender a escribir sus propios programas, tomando como base estos ejemplos, complementándolos a sus necesidades específicas añadiéndole su toque personal. La información teórica se tomó de las hojas de datos del fabricante, pero no se pretende ser un reemplazo de ellas, por lo que siempre se sugiere acudir a las mismas, de tal manera que se sugiere al lector consultar dicha literatura para abundar sobre el tema que considere que se trata aquí de una manera muy escueta. La última sección corresponde a una introducción al internet de las cosas (IoT), mediante el uso de la tarjeta de desarrollo NodeMCU. Se agradece la elaboración de algunas de las figuras a Cesar Hugo Pimentel Romero. Primavera 2022
Nuestra cómoda vida moderna lo es gracias a la gran cantidad de artículos y artefactos con los que interactuamos diariamente ¡sin ni siquiera darnos cuenta!, muchos de estos artefactos son electrónicos, y recientemente están basados en las computadoras digitales. En la historia de las computadoras, los primeros prototipos fueron mecánicos, debido al momento tecnológico histórico en el que aparecieron. Cuando aparecen los primeros componentes electrónicos, de manera natural se utilizaron para realizar los primeros prototipos de las computadoras electrónicas Microprocesador. Es un circuito integrado que tiene una alta capacidad de procesamiento de información, usado típicamente como el CPU de una computadora digital. Está compuesto básicamente por un camino de datos (la conexión de un ALU con sus registros) y una unidad de control. Los microprocesadores pueden clasificarse como CISC y RISC En la siguiente tabla se muestra el significado de estos acrónimos
R: Reduced I: instruction S: Set C: Computer Procesadores CISC.- C: Complex I: Instruction S: Set C: Computer Tabla 1.1 Microprocesadores CISC y RISC Si una máquina RISC requiere 4 ó 5 instrucciones para hacer lo que una máquina CISC hace en una instrucción, pero si las instrucciones RISC son diez veces más rápidas, RISC gana. Otro concepto muy importante, es el de Sistema mínimo, el cual consiste en agregarle a un microprocesador, los elementos indispensables necesarios para que pueda ejecutar una tarea específica Computadora: Es un sistema digital de alta capacidad de procesamiento de información, recibe datos de entrada, genera resultados a alta velocidad y con gran exactitud, mediante la ejecución de programas.
par Ilustración 2 Arquitectura Von Neumann
Ilustración 3 Ejemplo de Mapa de memoria, de un sistema mínimo basado en arquitectura Von Neumann Como se muestra en la figura 3, el espacio de memoria se divide en dos partes: la primera esta reservada para instrucciones, esta se conoce como la parte baja del mapa de memoria, ya que inician en el valor más bajo del bus de direcciones, es decir, cuando todos los bits del bus de direcciones son cero. La sección de datos del mapa de ejemplo termina cuando los bits del bus de direcciones son uno, y se conoce como parte alta.
Aquí existen dos espacios de memoria independientes para las instrucciones y los datos, por lo que los mapas de memoria de programa y de memoria de datos son ajenos. Se puede accesar concurrentemente a instrucciones y a datos. Es mucho más rápida, va de la mano con RISC.
Ilustración 5 Ejemplos de mapas de memoria en la arquitectura Harvard Los componentes de una computadora estan conectados mediante buses: Bus de direcciones: Cuando el procesador “lee instrucciones de” ó “escribe datos a” la memoria a la que desea accesar. Cada dispositivo de E/S como un monitor, teclado o disco duro también tienen una dirección de memoria. Los datos son transferidos vía el bus de datos, cuando el CPU busca datos de la memoria primero se leen las direcciones del bus de direcciones, después el microprocesador genera la señal de lectura, y accede a las instrucciones mediante el bus de datos. El bus de control, consisteenun conjunto de señales dedicadas a realizar operaciones tales como lectura (RD), escritura (WR), especificar si una lectura o escritura se refiere a un dispositivo de memoria, o a un dispositivo de salida (M/IO), la señal de reset etc.
Ilustración 6 Computadora de tres buses
Puede usar bus de direcciones, de datos y de control para accesar a la memoria y a un controlador de E/S. El controlador de E/S, en cambio, podría accesar a todos los dispositivos de E/S usando un segundo bus llamado: Bus local ó Bus de E/S. La perspectiva práctica describe al bus PCI, un bus local usado comunmente en computadoras personales
Antes de entrar de lleno a la revisión de los conceptos arquitectónicos fundamentales de los sistemas mínimos, es importante recordar los equivalentes en binario y decimal de los números hexadecimales, ya que la notación hexadecimal es abreviada, debido a que cada uno de sus números representan 4 bits, es más cómodo y menos susceptible de error escribir un número que cuatro: decimal Binario Hexadecimal 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F Tabla 1: Equivalentes binarios y decimales de los números hexadecimales Es altamente recomendable, que el lector memorice estos equivalentes en binario de los números hexadecimales, ya que finalmente cualquier microprocesador y microcontrolador solamente procesa números binarios, pero para las personas que escribirán un programa en lenguaje ensamblador, es más cómodo usar la notación abreviada del hexadecimal. Cualquier número binario puede convertirse rápidamente al hexadecimal agrupando los bits de cuatro en cuatro, iniciando por el bit menos significativo (LSB), por ejemplo: El número de 8 bits 0011 1001, se convierte rápidamente al hexadecimal reemplazando sus dos grupos de 4 bits, por su equivalente en hexadecimal: 39, como veremos posteriormente, por compatibilidad con el lenguaje ensamblador de los PICs, podemos anteponer 0x al número para especificar que se trata de un hexadecimal: 0x39, incluso esta notación nos sirve a nosotros también para no confundirlo con el treinta y nueve decimal. Otro ejemplo: 11001100010, formando grupos de cuatro bits, iniciando por el LSB tenemos: 110 0110 0010 que es equivalente al hexadecimal 0x662,
Nótese que el último grupo solo fue de 3 bits, pero podemos agregarle un cero a la izquierda sin alterar su valor, para completar los cuatro bits, teníamos 110, agregándole el cero: 0110 corresponde al hexadecimal 6. Se pueden agregar los ceros necesarios a la izquierda (correspondiente al número hexadecimal más significativo), para formar grupos de cuatro bits y reemplazarlo por su equivalente hexadecimal fácilmente.
Convierta los números binarios a hexadecimal, sustituyendo directamente los grupos de 4 bits por su equivalente en hexadecimal a. 110011001010101 b. 110001101010011 c. 101010101110110 d. 110101101001111 e. 100101111101011
Convierta los números hexadecimales a binario, sustituyendo directamente cada dígito decimal por su equivalente binario a. 9896 b. A7F c. 73B d. D53A e. B3F
instrucciones, con un tamaño de palabra de instrucción de 16 bits (familias: 17xxx, 18xxx)varios de estos microcontroladores disponen también de interfaz USB., también ofrece sus familias de Controladores digitales de señales: los dsPICs, los cuales son chips poderosos de 16 bits que incluyen instrucciones para procesamiento de señales mediante su máquina DSP, debido al auge que han tenido estos procesadores, el fabricante también ofrece estos chips, pero sin la máquina DSP (para aplicaciones que no usan las instrucciones DSP), obteniendo así la familia PIC24XXX; para realizar aplicaciones inalámbricas: los rfPICs hasta llegar a los poderosos microcontroladores de 32 bits, con la familia PIC32. Cada uno de los fabricantes antes mencionados proveen típicamente de las especificaciones de sus chips (data sheets), notas de aplicación, herramientas de desarrollo etc. Algunos fabricantes venden esta información, otros la proporcionan libremente en sus sitios de internet.
Ilustración 8 Esquema de pines del microcontrolador 8031 XTAL 18 XTAL 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD 39 P0.1/AD 38 P0.2/AD 37 P0.3/AD 36 P0.4/AD 35 P0.5/AD 34 P0.6/AD 33 P0.7/AD 32 P2.7/A 28 P2.0/A 21 P2.1/A 22 P2.2/A 23 P2.3/A 24 P2.4/A 25 P2.5/A 26 P2.6/A 27 P1. 1 P1. 2 P1. 3 P1. 4 P1. 5 P1. 6 P1. 7 P1. 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT 12 P3.3/INT 13 P3.4/T 14 P3.7/RD 17 P3.6/WR 16 P3.5/T 15 U 80C
Ilustración 10: Diagrama de pines Como se puede apreciar en la figura anterior, cada patita o también llamado “pin”, tiene varias funciones asociadas, una de ellas es llamada su función principal y las otras funciones alternas, el reto para el lector es escribir programas en donde seleccione el funcionamiento que se necesita, en una aplicación específica.
Estos dispositivos cuentan con tres bloques de memoria: Memoria de programa (instrucciones) Memoria RAM de datos Memoria EEPROM de datos La memoria de datos y de programa usan buses independientes, lo cual permite acceso concurrente a esos bloques, debido a la arquitectura Harvard.
Un contador de programa de 21 bits es capaz de direccionar un espacio de memoria de programa de 2 Mbyte (MB). Accediendo a una localidad que este entre la memoria implementada físicamente y la dirección 2 MB causará una lectura de ceros (una instrucción NOP).
Los PIC 18F4550 tienen 32 Kbyte (KB) de memoria Flash (32768 bytes), esto implica que pueden almacenar hasta 16384 (16K) palabras de instrucción simple, con lo que deducimos que cada instrucción simple es de dos bytes, es decir de 16 bits. El vector de reset es la dirección 0000h y existen dos vectores de interrupción: el de alta prioridad tiene la dirección 0008h y el de baja prioridad la 0018h. La figura siguiente muestra el mapa de memoria de programa para los dispositivos PIC 18FX Ilustración 11Mapa de memoria de programa