Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Apuntes de microcontroladores software MPLAB, Apuntes de Microcontroladores

Apuntes de microcontroladores software MPLAB

Tipo: Apuntes

2017/2018

Subido el 30/01/2022

bot-t
bot-t 🇲🇽

5

(1)

1 documento

1 / 144

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Apuntes de Microcontroladores O21 Ricardo Álvarez González
1
APUNTES DE LA ASIGNATURA
MICROCONTROLADORES
Introducción ........................................................................................................................................ 4
Conceptos básicos ............................................................................................................................... 5
Arquitectura de von Neumann ....................................................................................................... 6
Arquitectura Harvard ...................................................................................................................... 8
NÚMEROS EN BINARIO, HEXADECIMAL Y DECIMAL ..................................................................... 13
Ejercicio 1 ...................................................................................................................................... 14
Ejercicio 2 ...................................................................................................................................... 14
Microcontroladores....................................................................................................................... 15
PROCESADORES DIGITALES DE SEÑALES: DSP .............................................................................. 18
MICROCONTROLADORES PIC 18f4550 .............................................................................................. 18
ORGANIZACIÓN DE LA MEMORIA ................................................................................................. 19
Organización de la memoria de programa. ................................................................................... 19
Stack .............................................................................................................................................. 21
Reinicializaciones (resets) por stack lleno, o por desbordamiento por defecto del stack. ......... 21
PCL, PCLATH Y PCLATU .................................................................................................................. 21
CICLO DE INSTRUCCIÓN. ............................................................................................................... 22
FLUJO DE INSTRUCCIÓN Y SEGMENTACIÓN. ................................................................................ 22
INSTRUCCIONES EN MEMORIA DE PROGRAMA. .......................................................................... 23
ORGANIZACIÓN DE LA MEMORIA DE DATOS ................................................................................ 23
REGISTROS DE FUNCIÓN ESPECIAL ............................................................................................... 26
BANCO DE ACCESO ........................................................................................................................ 26
REGISTROS DE SELECCIÓN DE BANCOS ......................................................................................... 27
REGISTRO DE ESTADO (STATUS). .................................................................................................. 27
Registro STATUS ............................................................................................................................ 28
Registro RCON ............................................................................................................................... 28
REGISTRO RCON ............................................................................................................................ 28
CONFIGURACIÓN DEL OSCILADOR ................................................................................................ 29
RESUMEN DEL CONJUNTO DE INSTRUCCIONES ............................................................................ 30
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Apuntes de microcontroladores software MPLAB y más Apuntes en PDF de Microcontroladores solo en Docsity!

APUNTES DE LA ASIGNATURA

Ejemplo: tablas de búsqueda en memoria de programa usando instrucciones de lectura de tabla

Introducción

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

Conceptos básicos

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

Procesadores RISC.

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.

Arquitectura Harvard

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

Un sistema puede tener una jerarquía de 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

NÚMEROS EN BINARIO, HEXADECIMAL Y DECIMAL

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.

Ejercicio 1

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

Ejercicio 2

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.

ORGANIZACIÓN DE LA MEMORIA

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.

Organización de la memoria de programa.

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