Sunteți pe pagina 1din 53

INTRODUCCIÓN A LOS MICROPROCESADORES 1

LECCIÓN 2.- INTRODUCCIÓN A LOS MICROPROCESADORES

Índice:

Conceptos básicos
Sistema mínimo microprocesador
Arquitectura externa
- memoria
- buses de comunicación; dispositivos tri-estado
- unidad de E/S; periféricos
Arquitectura interna: la CPU (el CI microprocesador)
- unidad de control
- unidad de proceso; unidad aritmético-lógica (ALU)
Familias de microprocesadores
- coprocesadores matemáticos
Sistemas de desarrollo de microprocesadores

• CONCEPTOS BÁSICOS

Microprocesador (µP): CI digital, programable, que ejecuta secuencialmente una serie


de instrucciones para realizar unas funciones determinadas con los datos.

µP + dispositivos de E/S + memoria → Computadora

Arquitectura de Von Neumann (1940):

Generaciones de ordenadores:

1ª) Válvulas de vacío. Ordenadores muy grandes y caros


2ª) Semiconductores
3ª) Primeros CI. Lenguajes de alto nivel (Fortran, Cobol)
4ª) Circuitos Integrados LSI. Aparece el primer µP (4004, Intel, 1971)
5ª) Técnicas VLSI. Se logra integrar un computador en un solo CI:
microcontrolador (1976)
volver a índice
INTRODUCCIÓN A LOS MICROPROCESADORES 2

• SISTEMA MÍNIMO MICROPROCESADOR

volver a índice

• ARQUITECTURA EXTERNA

1) Memoria
- RAM. Volátil. Almacena datos y programas temporalmente. Memoria de L/E.
- ROM. No volátil. Almacena programas de forma permanente. Sólo lectura.
volver a índice

2) Buses de comunicaciones
- Bus de Datos. Tri-estado. Bidireccional salvo para la ROM. Tantos bits como
la palabra.
- Bus de Direcciones. Unidireccional. “n”bits ⇒ 2n posiciones de memoria.
- Bus de Control. Bidireccional. Control del sistema.

volver a índice

3) Unidad de E/S

Canaliza el intercambio de información con el exterior. Imprescindible dadas las


diferencias de velocidad y de niveles eléctricos de los periféricos (sistemas que se
encargan de “traducir” la información a códigos comprensibles por el ser humano).

volver a índice
• ARQUITECTURA INTERNA
INTRODUCCIÓN A LOS MICROPROCESADORES 3

La CPU controla las demás unidades del sistema y procesa los datos siguiendo una
secuencia lógica de instrucciones que están almacenadas en la memoria: programa.

volver a índice

1) Unidad de Control

Decodifica las instrucciones y genera las señales de control que gobiernan el


funcionamiento de las unidades internas y externas del µP.

volver a índice

2) Unidad de Proceso

El bloque principal es la Unidad Aritmético-Lógica (ALU) que realiza las operaciones


con uno o dos datos (+, -, AND, OR, complemento, desplazamientos...).

volver a índice
INTRODUCCIÓN A LOS MICROPROCESADORES 4

• FAMILIAS DE MICROPROCESADORES

Familia 80X86 (Intel): 8086 (1978) → 80186 → 80286 → 80386 → 80486 → Pentium
→ Pentium Pro → Pentium II → Pentium III → Pentium IV (2001).
FAMILIA 80X86 (Intel)
Bus de Bus de Frecuencias
Modelo Año datos direccciones (MHz) Otras características
(bits) (bits)
8086 1978 16 20 →1 Mbyte 5 - 8 - 10 Base de todos los µP Intel
80186 1980 16 20 →1 Mbyte 8 - 10 - 12,5 Integra funciones auxiliares en el CI
80286 (286) 1982 16 24→16Mbyte 8 - 10 - 12,5 Funcionamiento en “modo protegido”
→ multitarea
80386 (386) Mejor uso de la memoria
(386SX) 1985 32 32 → 4 16-20-25-33 Múltiples usuarios
(386DX) 16 Gbyte Modo pipeline → rapidez
puede superar Memoria caché
80486 (486) 1989 32 32 → 4 los 66 MHz Incorpora coprocesador
Gbyte Más de 1 millón de transistores
Dos memorias caché (datos e instruc.)
Pentium 1993 64 32 → 4 60 - 66 Doble pipeline → ejecuta dos
Gbyte instrucciones a la vez
Pentium Pro 1995 64 32 → 4 hasta 200 Para estaciones de trabajo y servidores
(P6) Gbyte MHz
Pentium II 1997 64 32 → 4 hasta 450 Tecnología MMX (procesado vídeo)
Gbyte MHz Operaciones multimedia
Para consumo masivo
Pentium III 1999 64 32 → 4 hasta 1 GHz* Mejora las aplicaciones 3D, imágenes
Gbyte y vídeo
(*) A finales de 2000. Para evitar el calentamiento los circuitos se alimentan a tensiones más bajas (2 V, e
incluso menos).

Familia 680X0 (Motorola): 68000 (1979) → 68020 → 68030 → 68040 → 68060 →


MPC 601 (Power PC) → MPC 750 (1999).
FAMILIA 680X0 (Motorola)
Bus de Bus de Frecuencias
Modelo Año datos direccciones (MHz) Otras características
(bits) (bits)
68000 1979 16* 24 → 16 Base de µP Motorola
16 Mbyte
68020 1985 32 32 → 4 33 Memoria caché para instrucciones
Gbyte
68030 1991 32 32→ 4 GByte 50 Memoria caché para datos
Más del doble de rápido que el 68020
Incorpora coprocesador
68040 1995 32 32 → 4 50 Múltiples pipelines → ejecuta varias
Gbyte instrucciones a la vez
68060 1995 32 32 → 4 75 Menor tensión de alimentación
Gbyte (menor consumo)
MPC601/ 1992 Ejecuta hasta 3 instrucciones por ciclo
MPC750 1999 64 32 → 4 400 Juego de instrucciones reducido
(Power PC) Gbyte Dos memorias caché de 32 kbyte
(*) Aunque está clasificado como µP de 16 bits, internamente tenía registros de 32 bits.
volver a índice
INTRODUCCIÓN A LOS MICROPROCESADORES 5

• SISTEMAS DE DESARROLLO

volver a índice
CONCEPTOS PREVIOS SOBRE MICROCONTROLADORES 1

LECCIÓN 3: CONCEPTOS PREVIOS SOBRE MICROCONTROLADORES

Índice:

Introducción. Circuito integrado microcontrolador (MCU)


Componentes de un Microcontrolador
- bloques comunes
- bloques especiales
Familias y fabricantes
- criterios de selección
Consideraciones al diseño con Microcontroladores
Herramientas de desarrollo de MCUs

• INTRODUCCIÓN

Microcontrolador (MCU: Micro-Controller Unit): Circuito Integrado que incluye todos los
componentes de un sistema microprocesador.

- microcontrolador incrustado o empotrado (embedded)

- microcontrolador incrustado en el ratón de un ordenador -

Campos de aplicación: Ventajas:

- automóvil - mayores prestaciones


- juguetes - mayor fiabilidad
- electrodomésticos - mayor flexibilidad
- informática - menor tamaño

- facturación mundial de microcontroladores -


índice
• COMPONENTES DE UN MICROCONTROLADOR
CONCEPTOS PREVIOS SOBRE MICROCONTROLADORES 2

Bloques Comunes: los tiene cualquier microcontrolador

- CPU: el más importante. Determina las características hardware y software


CISC (Complex Instruction Set Computer)
RISC (Reduced Instruction Set Computer)
SISC (Specific Instruction Set Computer)

- Memoria: para almacenar programas y datos


volátil
no volátil
ROM con máscara
OTP (One Time Programmable)
EPROM
EEPROM
Flash
NVRAM (Non-volatile RAM)

- Puertos de E/S: para comunicar con el exterior (periféricos)

- Reloj: sincroniza todas las operaciones


cristal de cuarzo y componentes pasivos
circuito resonante cerámico
red RC

Bloques Especiales: según fabricante y modelo. Los más comunes:

- Contadores/Temporizadores
- Convertidores A/D y/o D/A
- Puertos para comunicaciones
- Modo de reposo

- algunos tipos de encapsulado -


CONCEPTOS PREVIOS SOBRE MICROCONTROLADORES 3

- diagrama de bloques de un sistema microcontrolador -


índice

• FAMILIAS Y FABRICANTES

8048 (Intel): el primero de todos (4 bits)


8051 (Intel y otros): potente y muy utilizado
80186, 80188 y 80386 EX (Intel). Versiones en MCU de los µP 8086 y 8088
68HC11 (Motorola y Toshiba): potente y muy utilizado
683XX (Motorola): los µP de la familia 68000 con algunos periféricos añadidos
PIC (Microchip): los primeros de tipo RISC. Muy utilizados

Criterios de Selección:

- Requisitos de la aplicación
rapidez (frecuencia)
nº de bits
necesidades de E/S
consumo → modo de reposo
necesidades de memoria
diseño de la placa
bloques funcionales para la aplicación

- Otros requisitos
coste
herramientas de desarrollo
índice
• CONSIDERACIONES AL DISEÑO CON MICROCONTROLADORES
CONCEPTOS PREVIOS SOBRE MICROCONTROLADORES 4

Intercambio de información entre el MCU y los dispositivos externos → interfaz: “dispositivo


(hardware) o conjunto de reglas (software), cuya función es adaptar la información de salida de
un dispositivo a la entrada de otro”:

- protección del MCU frente a fallos en los periféricos


- convertir los niveles de las distintas señales

Soluciones:
- “buffers”
- “drivers”
- convertidores de potencia
- optoacopladores

- empleo de un driver -

- interfaz para Electrónica de Potencia -


índice

• HERRAMIENTAS DE DESARROLLO DE MICROCONTROLADORES

ensamblador grabador
compilador placas de evaluación
depurador emuladores
simulador

- esquema de un emulador externo -


índice
SOFTWARE DE LOS MICROCONTROLADORES PIC 16/17 1

LECCIÓN 4: SOFTWARE DE LOS MICROCONTROLADORES PIC 16/17

Índice:

Formato de las instrucciones


Juego de instrucciones
Ensamblador MPASM
directivas
programa fuente (.asm)
otros ficheros: .lst, .err, .hex, .cod, .o

• FORMATO DE LAS INSTRUCCIONES

Instrucción (PIC16CXXX): 14 bits = código de operación + operando/s

- manejan bytes (los operandos son registros):

- manipulan bits:

- control y operandos inmediatos:

- instrucciones “CALL” y “GOTO”:

índice

• JUEGO DE INSTRUCCIONES (Instruction set)


SOFTWARE DE LOS MICROCONTROLADORES PIC 16/17 2

- juego de instrucciones -
índice

• ENSAMBLADOR MPASM

Directivas

No se graban en la memoria de programa.


Controlan el funcionamiento del ensamblador indicándole:

- cómo debe tratar las instrucciones


- las referencias de los datos
- formato que debe dar al fichero
SOFTWARE DE LOS MICROCONTROLADORES PIC 16/17 3
SOFTWARE DE LOS MICROCONTROLADORES PIC 16/17 4

- directivas de MPASM -
índice

Programa Fuente (.asm)

Se crea con cualquier editor de texto en caracteres ASCII. Debe cumplir:

1) En cada línea puede haber hasta 4 tipos de información: etiquetas, mnemónicos,


operandos y comentarios.

2) Su orden y posición es importante:


- las etiquetas deben comenzar en la columna 1
- los mnemónicos pueden comenzar en la columna 2 (o posteriores)
- los operandos deben ir detrás de los mnemónicos
- los comentarios pueden ir detrás de los operandos, de los mnemónicos o de las
etiquetas, o pueden comenzar en cualquier columna si el primer carácter que no
sea un espacio es “ ∗ ” ó “ ; ”.

3) La anchura máxima de línea es de 255 caracteres.

4) La etiqueta y los mnemónicos, y éstos y los operandos deben estar separados por uno
o más espacios. Los operandos entre sí pueden ir separados por una “ , ”.

5) Y también:

etiquetas:

· la etiqueta puede ir seguida por “ : ”, “ESPACIO”, “TAB”, o el final de la


línea, sin que se consideren parte de ella
· deben comenzar por una letra o por “ _ ”, y pueden tener caracteres
alfanuméricos, “ _ ”, y “ ? ”.
SOFTWARE DE LOS MICROCONTROLADORES PIC 16/17 5

· pueden tener hasta 31 caracteres, y distinguen mayúsculas (por defecto)


aunque esta opción se puede anular con CLI

mnemónicos:

· los mnemónicos de las instrucciones de ensamblador, las directivas y las


llamadas a macros deben comenzar, al menos, en la columna 2
· si en la misma línea hay una etiqueta, deben estar separados por uno o más
espacios (valen las “TAB”)

operandos:

· los operandos deben separarse de los mnemónicos por uno o más espacios (o
“TAB”)
· los operandos que vienen en listas deben separarse por “ , “
· si un mnemónico requiere un número fijo de operandos, todo lo que venga
detrás de ellos en la misma línea se ignora (se permiten comentarios al final de
la línea)
· si un mnemónico permite un número variable de operandos, el final de la lista
de operandos viene determinado por el final de la línea o por el inicio de un
comentario

comentarios:

· los comentarios al final de una línea deben estar separados del resto de la línea
por uno o más espacios (o “TAB”)
· todo lo que hay en una línea detrás del carácter de comentario y hasta el final
de ella, se ignora

- ejemplo de programa fuente (.asm) -

- generación de código absoluto -


SOFTWARE DE LOS MICROCONTROLADORES PIC 16/17 6

- creación de una biblioteca de programas reutilizables -

- generación de un programa ejecutable a partir de módulos -


índice

Otros ficheros

Se generan al ensamblar el programa fuente

- ficheros de MPASM -
índice
SOFTWARE DE LOS MICROCONTROLADORES PIC 16/17 7

fichero de listado ( .lst)

- Al principio de cada página indica la versión del programa, nombre del fichero
que se ensambla, fecha, hora y número de página.

- Si las 8 primeras columnas están juntas, indican el valor (de 32 bits) de


símbolos creados por las directivas SET, EQU, VARIABLE, CONSTANT, o
CBLOCK.

- Si las 8 primeras columnas están separadas, las 4 primeras indican la dirección


de base donde irá el programa en la memoria de programa y las 4 siguientes
están reservadas para código máquina.

- Las siguientes columnas indican en primer lugar el número de línea del fichero
fuente asociado y tras él se repite la propia línea del fichero fuente.

- Los errores, advertencias y mensajes están entre las líneas y se refieren a la


línea siguiente.

- También se incluye una lista con todos los símbolos utilizados en el programa.

- Así mismo se indica la memoria utilizada: “ X ” indica memoria utilizada, y “


− ” no utilizada.

- ejemplo de fichero de listado (.lst) -


índice

fichero de errores ( .err)


SOFTWARE DE LOS MICROCONTROLADORES PIC 16/17 8

Este fichero indica la línea errónea y da una breve descripción del error.

Ejemplo: Error[113] C:\PROG.ASM 7 : Symbol not previously defined (start)


índice

fichero objeto ( .hex)

Fichero que ya puede ser leído por el simulador, el emulador o el programador.


Existen 3 formatos diferentes: INHX8M, INHX8S y INHX32. Utilizamos el
INHX8M.

- formato INHX8M -

- ejemplo de fichero hexadecimal ( .hex) -


índice

fichero de símbolos y depuración ( .cod)

Cuando el programa forma un solo cuerpo (no está formado por programas
objeto reublicables enlazados) genera este fichero para la depuración.
índice

código objeto reubicable ( .o)

Fichero con programa objeto reubicable.


índice
SISTEMAS DE DESARROLLO DE LOS PIC 16/17 1

LECCIÓN 5: SISTEMAS DE DESARROLLO DE MICROCONTROLADORES PIC

Índice:

Herramientas software
Herramientas hardware

Los MCUs PIC disponen de una gran variedad de herramientas de desarrollo, que se
pueden clasificar en dos grandes grupos:

A) Herramientas Software:

- Paquete integrado MPLAB IDE


- Ensamblador
MPASM
- Compiladores
MPLAB-C17
MPLAB-C18
- Enlazador
MPLINK/MPLIB
- Simulador
MPLAB-SIM
- Depurador en circuito
MPLAB-ICD
índice

B) Herramientas Hardware:

- Emuladores
MPLAB-ICE
PICMASTER
ICEPIC
- Programadores
PRO MATE II
PICSTART
PICSTART PLUS
- Tarjetas de aplicación
SIMICE
PICDEM-1
PICDEM-2
PICDEM-3
PICDEM-17
SEEVAL
KEELOG
índice
PIC 16/17 DESCRIPCIÓN GENERAL 1

LECCIÓN 6: DESCRIPCIÓN GENERAL DE LOS MICROCONTROLADORES PIC

Índice:

Generalidades. Familias y modelos


ventajas de los PIC
Arquitectura
Organización de la memoria
memoria de programa; registro PCL/PCLATH; la pila
memoria de datos; modos de direccionamiento
registro STATUS
Memoria flash y memoria EEPROM
Ejercicios

• GENERALIDADES. FAMILIAS Y MODELOS

PIC: Peripheral Interface Controller (controlador de interfaces para periféricos)

Familias

- Gama baja: 33 Instrucciones de 12 bits. PIC12CXXX, PIC16C5X


- Gama media: 35 Instrucciones de 14 bits. PIC12CXXX, PIC16CXXX
- Gama alta:
55 (ó 58) Instrucciones de 16 bits. PIC17CXXX
77 Instrucciones de 16 bits. PIC18CXXX

Memoria

Alimentación

Encapsulados
PIC 16/17 DESCRIPCIÓN GENERAL 2

- ejemplos de encapsulados de plástico -

Versiones

- Borrables con luz UV (EPROM)


- Programables una sola vez (OTP)
- Borrables eléctricamente (EEPROM)
- Programables eléctricamente (Flash)
- ROM: programado al fabricar

Características esenciales

- Oscilador - CPU y ALU - Organización de la Memoria


- Interrupciones - Lógica de Reset - Juego de instrucciones

Periféricos

- PORTs - TIMERs - Módulos CCP


- SSP - SCI - Tensiones de referencia
- Comparadores - ADC - Drivers para LCD
- PSP
Características especiales

- POR - BOR - Palabra de configuración


PIC 16/17 DESCRIPCIÓN GENERAL 3

- WDT - SLEEP - Oscilador RC interno


- ICSP

Ventajas

- Rapidez - Sencillez - Precio


- Información - Tamaño - Herramientas de apoyo
- Altas prestaciones
índice

• ARQUITECTURA

Los PIC utilizan arquitectura tipo Harvard, en lugar de Von Neumann.

- arquitectura Harvard y arquitectura Von-Neumann -

- operación de la ALU y el registro W -


PIC 16/17 DESCRIPCIÓN GENERAL 4

- diagrama de bloques genérico de los microcontroladores PIC de la gama media -


PIC 16/17 DESCRIPCIÓN GENERAL 5

- ciclos de reloj y de instrucción -

- flujo de instrucciones tipo pipeline -


índice

• ORGANIZACIÓN DE LA MEMORIA

Los PIC tienen dos tipos de memoria: memoria de programa y memoria de datos.

Memoria de Programa

- memoria de programa y pila -


índice
PIC 16/17 DESCRIPCIÓN GENERAL 6

Registro PCL/PCLATH

- carga del contador de programa -


índice

Memoria de Datos

- memoria de datos del PIC 16F84 -


índice
PIC 16/17 DESCRIPCIÓN GENERAL 7

Modos de direccionamiento

- modos de direccionamiento -
índice

Registro STATUS

- registro STATUS -
índice
PIC 16/17 DESCRIPCIÓN GENERAL 8

• MEMORIA EEPROM Y MEMORIA FLASH

Ambas permiten la lectura/escritura mientras opera el microcontrolador. La memoria EEPROM


es de datos y está separada del bloque de registros que constituye la memoria de datos (RAM).
Algunos modelos de PIC tienen su memoria de programa de tipo flash.

- memoria EEPROM -

- registro EECON1 -

- registros asociados con la memoria EEPROM -


índice
PIC 16/17 DESCRIPCIÓN GENERAL 9

LECCIÓN 6. EJERCICIOS

6.1.- Escribir un programa que sume dos valores inmediatos (p.e. los decimales 12 y 7).

6.2.- Escribir un programa que resuelva la ecuación: (A + B) - C.

6.3.- Escribir un programa que sume dos números de 16 bits A y B.

6.4.- Escribir un programa que reste dos números, A - B, de 16 bits cada uno.

6.5.- Escribir un programa que compare dos números A y B. Si son iguales, el resultado debe
ser 0. Si A > B, el resultado debe ser la diferencia A - B, y si A < B, el resultado debe ser la
suma A + B.

6.6.- Escribir un programa para almacenar el valor 33 en 15 posiciones contiguas de la memoria


de datos, empezando en la dirección 0x30.

6.7.- Escribir un programa que convierta un número de 8 bits, escrito en binario natural, en su
equivalente en BCD.

6.8.- Escribir un programa que convierta un número de 4 bits escrito en binario natural en su
equivalente en código Gray.
índice
MICROCONTROLADORES PIC: PUERTOS DE ENTRADA/SALIDA (I/O PORTS) 1

LECCIÓN 7: PUERTOS DE ENTRADA/SALIDA (I/O PORTS)

Índice:

Puertos de E/S (I/O ports)


- el registro TRIS
Puertos PORTA, PORTB y PORTC y registros TRISA, TRISB Y TRISC
Puerto esclavo paralelo (PSP), PORTD, PORTE y TRISD, TRISE
Advertencias para la programación de E/S
Ejercicios

• PUERTOS DE E/S (I/O PORTS)

Para controlar otros dispositivos. Sus terminales suelen estar multiplexados con otras funciones.
Alguno de ellos puede operar controlado por un microprocesador de 8 bits (PSP).

- terminal de E/S típico -

El registro TRIS: configura los terminales del puerto como entradas ("1") o como
salidas ("0").
índice
MICROCONTROLADORES PIC: PUERTOS DE ENTRADA/SALIDA (I/O PORTS) 2

• PUERTOS PORTA, PORTB Y PORTC Y REGISTROS TRISA, TRISB Y TRISC

PORTA y TRISA

- puerto A y sus registros asociados en el 16F84 -

- diagrama de bloques de los terminales del PORTA -


MICROCONTROLADORES PIC: PUERTOS DE ENTRADA/SALIDA (I/O PORTS) 3

PORTB y TRISB

- puerto B y sus registros asociados en el 16F84 -

- diagrama de bloques de los terminales del PORTB -


índice
MICROCONTROLADORES PIC: PUERTOS DE ENTRADA/SALIDA (I/O PORTS) 4

• PUERTO ESCLAVO PARALELO (PSP), PORTD, PORTE Y TRISD, TRISE

PORTD y TRISD

- puerto D y sus registros asociados -

- conexión del puerto D como puerto esclavo paralelo -


MICROCONTROLADORES PIC: PUERTOS DE ENTRADA/SALIDA (I/O PORTS) 5

PORTE y TRISE

- puerto E y sus registros asociados -

- el registro TRISE -
índice
• ADVERTENCIAS A LA PROGRAMACIÓN DE ENTRADAS/SALIDAS
MICROCONTROLADORES PIC: PUERTOS DE ENTRADA/SALIDA (I/O PORTS) 6

1) La escritura en un puerto se realiza en tres etapas: lee → modifica → escribe ⇒ un


cambio en la configuración del terminal puede hacer que el PIC opere con valores
desconocidos.

2) Si se realiza una lectura a continuación de una escritura, hay que dar tiempo a que los
datos se estabilicen.

- lectura errónea tras una escritura -

- entradas/salidas sucesivas -

3) Al inicializar un puerto se recomienda inicializar primero el PORT y después


configurar los pines.
índice
MICROCONTROLADORES PIC: PUERTOS DE ENTRADA/SALIDA (I/O PORTS) 7

EJERCICIOS

7.1.- Escribir un programa que lea y obtenga en 8 LEDs conectados en cátodo común al
puerto B, el estado lógico que presentan 5 interruptores conectados a los terminales
PORTA<4:0>, como indica la figura:

7.2.- Escribir un programa que cuente el número de veces que se pulsó la tecla
conectada al terminal RA4 y que saque ese valor en binario natural por el Puerto B.

7.3.- Escribir un programa que, dependiendo del estado de dos interruptores


conectados a RA0 y RA1, presente en el puerto B diferentes funciones lógicas cuya tabla de
verdad es:

RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
0 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1
1 0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 0 0 0 0
índice
LECCIÓN 8:MICROCONTROLADORES PIC. CARACTERÍSTICAS ESPECIALES DE LA CPU 1

LECCIÓN 8: CARACTERÍSTICAS ESPECIALES DE LA CPU

Índice:

Introducción
Palabra de configuración
Configuraciones del oscilador
- oscilador a cristal
- oscilador RC
Reset
Interrupciones
- registro INTCON
- salvar registros durante las interrupciones
Perro guardián (WDT). Registro OPTION_REG
El modo de reposo (SLEEP)
Protección del programa
Ejercicios

Las características especiales de la CPU están encaminadas a:

- maximizar las prestaciones


- minimizar el coste
- minimizar el consumo
- proteger el programa
índice

• PALABRA DE CONFIGURACIÓN

Permite al usuario escoger entre determinadas opciones programando sus bits adecuadamente.
Existen dos formas de programar esos bits:

- mediante la directiva "__CONFIG"


- al programar el dispositivo

- palabra de configuración del PIC 16F84


índice
LECCIÓN 8:MICROCONTROLADORES PIC. CARACTERÍSTICAS ESPECIALES DE LA CPU 2

• CONFIGURACIONES DEL OSCILADOR

El oscilador proporciona al PIC la fuente de señal de la que el circuito interno obtiene la señal
de reloj que sincroniza el funcionamiento de todo el sistema. Imprescindible.

- selección de los modos de oscilación -


índice

Oscilador a cristal

Los componentes: (XTAL), C1 y C2 (iguales) y la resistencia RS, si fuera necesaria,


deben situarse lo más cerca posible del CI del PIC.

- conexión de un oscilador de cristal en el 16F84 y valores recomendados -

También puede utilizarse una fuente externa de reloj siempre que su frecuencia esté
dentro del margen utilizable por el PIC y los niveles sean compatibles.

- conexión de una señal de reloj externa -


LECCIÓN 8:MICROCONTROLADORES PIC. CARACTERÍSTICAS ESPECIALES DE LA CPU 3

- establecimiento de la oscilación -
índice

Oscilador RC

Para aplicaciones en las que la señal de reloj no es crítica. Es el modo de oscilación que
toma el PIC por defecto.

- conexión de un oscilador RC -

La frecuencia de oscilación depende fundamentalmente de: VDD, REXT, CEXT. Microchip


recomienda que 5 kΩ < REXT < 100 kΩ y que CEXT > 20 pF.
índice

• RESET

Los PIC distinguen entre diferentes tipos de reset:

- POR: power on reset


- Externo
- WDT: watchdog timer
- BOR: brown out reset
LECCIÓN 8:MICROCONTROLADORES PIC. CARACTERÍSTICAS ESPECIALES DE LA CPU 4

- circuito de reset del 16F84 -

Al salir del reset se ejecuta la instrucción que esté almacenada en la posición 0000 de la
memoria de programa salvo en dos ocasiones relacionadas con la salida del estado de sleep:

- reset para el PC y STATUS -

Reset de encendido (POR: power on reset): Al conectar la tensión de alimentación, se


genera un reset. Las instrucciones comienzan a ejecutarse tras finalizar TOST.

- reset de encendido -

Temporizador de encendido PWRT (power-up timer): introduce un tiempo de 72 ms


nominales tras el POR. Mantiene al PIC en reset hasta que la alimentación alcanza un
nivel aceptable.
LECCIÓN 8:MICROCONTROLADORES PIC. CARACTERÍSTICAS ESPECIALES DE LA CPU 5

Temporizador de arranque del oscilador OST (oscillator start-up timer): introduce un


retardo de 1024 · TOSC tras PWRT para dar tiempo a que el circuito resonante estabilice
su señal. Sólo en los modos de oscilación XT, LP y HS.

- temporizador OST -

- significado de los bits de STATUS - - temporizaciones en el arranque -

Reset de protección ante caídas de tensión BOR (brown-out reset): si la tensión de


alimentación cae por debajo del valor mínimo permisible es recomendable que el PIC
efectúe un reset, para lo cual deben utilizarse circuitos específicos conectados a la
patilla MCLR .

- circuitos de protección brown-out -


LECCIÓN 8:MICROCONTROLADORES PIC. CARACTERÍSTICAS ESPECIALES DE LA CPU 6

- inicialización de los registros tras un reset -


índice

• INTERRUPCIONES

Fuentes de interrupción para el 16F84:

- Petición externa
- Cambio en la señal de alguna patilla determinada
- Desbordamiento (overflow) de algún temporizador/contador
- Escritura en la EEPROM

Los modelos de PIC superiores admiten otras fuentes de interrupción procedentes de los
diferentes módulos que contengan. (Consultar la hoja de datos del fabricante.)

Petición de interrupción: → se activa un flag. El usuario decide si se atiende o no. El flag debe
borrarse por software.
LECCIÓN 8:MICROCONTROLADORES PIC. CARACTERÍSTICAS ESPECIALES DE LA CPU 7

- lógica de interrupciones en el 16F84 -

- cronograma cuando se atiende una interrupción externa -

Registro INTCON

- registro INTCON en el 16F84 -


índice
LECCIÓN 8:MICROCONTROLADORES PIC. CARACTERÍSTICAS ESPECIALES DE LA CPU 8

Salvar registros durante las interrupciones

Es conveniente guardar en algún registro de la memoria de datos los contenidos de


STATUS y W ya que cuando se atiende una interrupción, el PIC sólo guarda el
contenido del contador de programa, es decir, la dirección de retorno.
índice

• PERRO GUARDIÁN (WDT). REGISTRO OPTION_REG

Watchdog timer: temporizador que al desbordarse "resetea" el microcontrolador. Útil por si el


microcontrolador queda "colgado" y para sacar al PIC del estado de reposo. Admite un divisor
de frecuencia (prescaler).

- diagrama de bloques del WDT -


índice

Registro OPTION_REG

- registro OPTION_REG en el 16F84 -


índice
LECCIÓN 8:MICROCONTROLADORES PIC. CARACTERÍSTICAS ESPECIALES DE LA CPU 9

• MODO DE REPOSO (SLEEP)

Con la instrucción "sleep" el microcontrolador queda "dormido". Muy útil para minimizar el
consumo cuando va a pasar largos intervalos sin realizar ninguna operación. El PIC se
"despierta" al producirse algún suceso determinado:

- reset externo
- reset del WDT
- ciertos tipos de interrupción

- salida del modo sleep mediante una interrupción externa -


índice

• PROTECCIÓN DEL PROGRAMA

El 16F84 tiene la posibilidad de proteger el programa: si el bit CP0 = "1" el programa no está
protegido, y si el bit CP0 = "0" todo el programa está protegido. Otros modelos ofrecen más
opciones, por ejemplo los 16F87X:

- opciones de protección del programa en los 16F87X -

Microchip recomienda no proteger el programa de los dispositivos con encapsulado de ventana.


índice
LECCIÓN 8:MICROCONTROLADORES PIC. CARACTERÍSTICAS ESPECIALES DE LA CPU 10

EJERCICIOS

8.1.- Se desea generar un dado electrónico basado en un MCU PIC. Para ello se conecta un
display de 7 segmentos de cátodo común a los siete terminales de menor peso del puerto B de
un PIC 16F84, como indica la figura. El microcontrolador está configurado para un oscilador
externo de tipo RC (FOSC0 = FOSC1 = “1”). Escribir un programa que ilumine un número
aleatorio al soltar un pulsador dispuesto para ese fin. (Al apretar el pulsador comienza la
oscilación y al soltarlo el programa se interrumpe).

8.2.- Escribir un programa que ilumine los LEDs conectados al puerto B según las siguientes
especificaciones:

- Inicialmente aparecen parpadeando los LED; si se aprieta un pulsador conectado a la


patilla RA4 se produce un desplazamiento de Derecha a Izquierda o de Izquierda a
Derecha en función de las veces que se pulse RA4. Dicho desplazamiento debe
comenzar al soltar el pulsador.
- En todo momento, en el instante en que se aprieta el pulsador conectado a la patilla
RA1, se pasa al parpadeo inicial.

La frecuencia del oscilador es de 4 MHz.

8.3.- Obtener el código de la tecla que se pulsa en un teclado estándar conectado al puerto B de
un microcontrolador PIC 16F873, como indica la figura.

índice
MICROCONTROLADORES PIC: TEMPORIZADORES (TMRs) 1

LECCIÓN 9: PERIFÉRICOS INTEGRADOS (I): TEMPORIZADORES (TIMERs)

Índice
Introducción
TMR0
TMR1. Registro T1CON
TMR2. Registro T2CON
Ejercicios

Temporizadores/Contadores:

- todos pueden generar interrupciones al desbordarse (overflow)


- algunos pueden asociarse con módulos CCP (Captura/Comparación/PWM)

• TMR0

- Contador ascendente de 8 bits


- Los impulsos pueden ser de reloj interno o externo
- Admite divisor de frecuencia (prescaler) que comparte con el WDT
- Si se escribe en TMR0, el contador se inhibe los dos ciclos siguientes
- Al desbordarse activa el flag T0IF (debe borrarse por software)
- No puede sacar al MCU del modo sleep

- diagrama de bloques de TMR0 y sus registros asociados -


índice

• TMR1. REGISTRO T1CON


MICROCONTROLADORES PIC: TEMPORIZADORES (TMRs) 2

- 16 bits divididos en dos registros de 8 bits: TMR1H y TMR1L


- Al desbordarse activa el flag TMR1IF (debe borrarse por software)
- Puede incrementarse con tres tipos de señal:
· reloj interno (Fosc/4)
· flanco de subida de la señal externa en RC0
· flanco de subida de un oscilador a cristal conectado entre RC0 y RC1
- Admite divisor de frecuencia
- Puede operar conjuntamente con módulos CCP
- Puede sacar al MCU del modo sleep

- diagrama de bloques de TMR1 -

- registro T1CON -
MICROCONTROLADORES PIC: TEMPORIZADORES (TMRs) 3

- valores de los condensadores y su conexión para TMR1 -


índice

• TMR2. REGISTRO T2CON

- 8 bits
- Admite dos divisores de frecuencia: prescaler y postscaler
- Puede emplearse como base de tiempos para el modo PWM de los módulos CCP

- diagrama de bloques de TMR2 -

- registro T2CON -
índice
MICROCONTROLADORES PIC: TEMPORIZADORES (TMRs) 4

EJERCICIOS

9.1.- Escribir un programa que realice un parpadeo de 200 ms en el encendido/apagado


de ocho LEDs conectados en cátodo común al Puerto B de un microcontrolador PIC 16F873
operando en modo RC con un oscilador de 4 MHz.

9.2.- Debido a un accidente de circulación se han colocado cuatro señales luminosas a


cada lado de la calzada para que sirvan de advertencia a los conductores que circulan por esa
ruta (ver figura). Las luces deben encenderse por parejas y en secuencia, es decir, L0 y L1,
después L2 y L3 apagándose L0 y L1, después L4 y L5 apagándose L2 y L3, y finalmente L6 y
L7 apagándose L4 y L5, para posteriormente repetirse el ciclo. Para dar tiempo a ser
observadas, el ciclo de encendido, desde que se enciende la pareja L0 - L1 hasta que vuelve a
encenderse de nuevo debe ser de (aproximadamente) 0,5 seg. El control del encendido/apagado
se realiza mediante un microcontrolador PIC 16F84 y unos drivers conectados a los terminales
del puerto B, como indica la figura. El ciclo debe comenzar cuando se apriete un pulsador
conectado al terminal RA4.

Escribir un programa en ensamblador que realice dicho control sabiendo que la frecuencia del
oscilador es de 4 Mhz.

9.3.- Una variedad del ejercicio anterior consiste en hacer que cuando cada pareja de
lámparas se encienda no se apague la anterior. Cuando finalice la temporización de L6/L7 (con
las otras 6 lámparas también encendidas), deben apagarse todas un tiempo y comenzar de nuevo
el ciclo.
MICROCONTROLADORES PIC: TEMPORIZADORES (TMRs) 5

9.4.- Mediante un microcontrolador PIC 16F873 operando en modo RC con un


oscilador de 4 MHz, se desea controlar una máquina taladradora con las siguientes
especificaciones:

- Al apretar el pulsador de arranque conectado al terminal RA0 se inicia el ciclo de


funcionamiento con un descenso rápido del taladro.

- Cuando la parte inferior del portabrocas activa el sensor conectado al terminal RA2
(pone RA2 a "0"), se activa un relé que hace que la broca gire. Simultáneamente el
descenso del taladro debe ser lento.

- Cuando la parte inferior del portabrocas activa el sensor conectado al terminal RA3
(pone RA3 a "0"), se considera que la pieza está taladrada y el taladro debe subir con
rapidez manteniendo el giro de la broca.

- Cuando el taladro en su regreso alcanza el final de carrera que está conectado al


terminal RA1 (pone RA1 a "0") debe detenerse la subida del taladro y desactivarse el
relé del giro de la broca. Además, debe activarse una señal acústica que avise del fin de
la operación

- El nuevo ciclo comienza al apretarse de nuevo el pulsador de arranque

índice
MICROCONTROLADORES PIC: MÓDULOS CCP 1

LECCIÓN 10: PERIFÉRICOS INTEGRADOS (II): MÓDULOS CCP

Índice:
Introducción
El modo captura. El registro CCPCON
El modo comparación
El modo PWM
Ejercicios

Algunos modelos de PIC disponen de módulos CCP (Capture, Compare, PWM), capaces de
realizar tres funciones:

- captura de una señal


- comparación con una señal
- salida PWM

- temporizador asociado a cada modo de funcionamiento -


índice

• MODO CAPTURA. REGISTRO CCPCON

El registro CCPR captura el contenido de TMR1 si en la patilla CCPx (que debe estar
configurada como entrada) se produce alguna de las situaciones siguientes:

- 1 flanco de subida
- 1 flanco de bajada
- 4 flancos de subida
- 16 flancos de subida

- diagrama de bloques para el modo de captura -


MICROCONTROLADORES PIC: MÓDULOS CCP 2

- el registro CCPCON -
índice

• EL MODO COMPARACIÓN

El contenido de CCP se compara constantemente con el de TMR1. Cuando son iguales, se


puede producir alguna de estas situaciones en la patilla CCPx (debe estar configurada como
salida):

- se pone a "1"
- se pone a "0"
- no cambia, pero puede generar una interrupción

- diagrama de bloques para el modo de comparación -


índice
MICROCONTROLADORES PIC: MÓDULOS CCP 3

• EL MODO PWM

En la patilla CCPx (que debe estar configurada como salida) se tiene una señal de impulsos
modulados en anchura (PWM: pulse width modulation).

- diagrama de bloques para el modo PWM -

- forma de onda PWM -

[ ]
TPWM = 1 + ( PR 2) ⋅ 4 ⋅ Tosc ⋅ [ prescaler de TMR 2]

duty = DC1 ⋅ Tosc ⋅ ( prescaler de TMR 2)

 F 
log  osc 
 FPWM 
resmax = bits
log( 2 )
índice
MICROCONTROLADORES PIC: MÓDULOS CCP 4

EJERCICIOS

10.1.- Se desea detectar el momento en el que en una línea externa se han recibido un número
determinado de impulsos. Ese número viene fijado por el valor binario de cinco entradas
conectadas a los terminales RA0 - RA4. Escriba un programa para un microcontrolador PIC que
realice la función indicada.

10.2.- Para una determinada aplicación es necesario que un microcontrolador PIC cuyo
oscilador exterior es de 4 MHz proporcione una señal que cambie de estado cada 2 horas (120
minutos). Esa señal se observará en un LED conectado al terminal RB0. Describa un circuito
que realice la temporización indicada y escriba el programa necesario.

10.3.- Se desea controlar la velocidad de giro de un pequeño motor de corriente continua con
una señal formada por impulsos modulados en amplitud (PWM: pulse width modulation)
procedente de un microcontrolador PIC 16F873 que opera con un oscilador a cristal de 4 MHz.
El periodo de la señal PWM debe ser de 4 ms. El ciclo de trabajo se podrá variar con cinco
interruptores conectados a los terminales RA4 : RA0 del PIC, como indica la figura. Escriba un
programa fuente que proporcione la señal PWM necesaria.

índice

S-ar putea să vă placă și