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


Microcontrolador 18F4550, Apuntes de Microcontroladores

Apuntes y detalles del integrado 18F4550

Tipo: Apuntes

2019/2020

Subido el 14/03/2020

christian-bertado
christian-bertado 🇪🇨

1 documento

1 / 85

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Microcontroladores PIC 18F4550 Ejemplos prácticos Ricardo Álvarez González
1
APUNTES DE LA ASIGNATURA
MICROCONTROLADORES
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.
Se agradece la elaboración de algunas de las figuras a Cesar Hugo Pimentel Romero.
Primavera 2020
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

Vista previa parcial del texto

¡Descarga Microcontrolador 18F4550 y más Apuntes en PDF de Microcontroladores solo en Docsity!

APUNTES DE LA ASIGNATURA

MICROCONTROLADORES

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. Se agradece la elaboración de algunas de las figuras a Cesar Hugo Pimentel Romero. Primavera 2020

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 personal. 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

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.

0RGANIZACIÓN DE LA MEMORIA

Estos dispositivos cuentan con tres bloques de memoria:  Memoria de programa  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.

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, esto implica que pueden almacenar hasta 16K palabras de instrucción. 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

CICLO DE INSTRUCCIÓN.

La entrada de reloj (mediante OSC1) es dividida internamente por cuatro, para generar cuatro señales de reloj en cuadratura, no traslapados, llamados Q1, Q2 Q3 y Q4. Internamente el PC es incrementado cada Q1, la instrucción es buscada de la memoria de programa y capturada en el registro de instrucción en Q4. La instrucción es decodificada y ejecutada durante el siguiente Q hasta Q4. Las señales de reloj y la ejecución del flujo de instrucciones se muestran en la siguiente figura: Ilustración 12 División del ciclo de reloj FLUJO DE INSTRUCCIÓN Y SEGMENTACIÓN. Un ciclo de instrucción consiste de cuatro ciclos Q: Q1, Q2, Q3 y Q4, la búsqueda de la instrucción y la decodificación son segmentadas (pipelined) de tal manera que la búsqueda toma un ciclo de instrucción, mientras que la decodificación y la ejecución toman otro ciclo de instrucción. Sin embargo, debido a la segmentación, cada instrucción se ejecuta efectivamente en un solo ciclo. Si una instrucción causa que el contador de programa cambie (goto, por ejemplo), entonces se necesitan dos ciclos para completar la instrucción.

Ilustración 13 Ejemplo de ejecución de instrucciones

INSTRUCCIONES EN MEMORIA DE PROGRAMA.

La memoria de programa es direccionada en bytes. Las instrucciones son almacenadas como dos o cuatro bytes en memoria de programa. El byte menos significativo de una palabra de instrucción, siempre es almacenado en una localidad de memoria de programa en una localidad par (LSB=0).

ORGANIZACIÓN DE LA MEMORIA DE DATOS

La memoria de datos es implementada como RAM estática. Cada registro en la memoria de datos tiene una dirección de 12 bits, permitiendo hasta 4096 bytes de memoria de datos. En la figura 9 se muestra la organización de la memoria de datos para los PIC18FXX2. El mapa de memoria de datos está dividido en 16 bancos que contienen 256 bytes cada uno. Los cuatro bits menos significativos del registro de selección de bancos (BSR<3:0> seleccionan cual banco será elegido, los cuatro bits más significativos del BSR no son implementados. Ilustración 14 Almacenamiento de instrucciones en memoria de programa