Documente Academic
Documente Profesional
Documente Cultură
Í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
Generaciones de ordenadores:
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
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
volver a índice
2) Unidad de Proceso
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).
• SISTEMAS DE DESARROLLO
volver a índice
CONCEPTOS PREVIOS SOBRE MICROCONTROLADORES 1
Índice:
• INTRODUCCIÓN
Microcontrolador (MCU: Micro-Controller Unit): Circuito Integrado que incluye todos los
componentes de un sistema microprocesador.
- Contadores/Temporizadores
- Convertidores A/D y/o D/A
- Puertos para comunicaciones
- Modo de reposo
• FAMILIAS Y FABRICANTES
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
Soluciones:
- “buffers”
- “drivers”
- convertidores de potencia
- optoacopladores
- empleo de un driver -
ensamblador grabador
compilador placas de evaluación
depurador emuladores
simulador
Índice:
- manipulan bits:
índice
- juego de instrucciones -
índice
• ENSAMBLADOR MPASM
Directivas
- directivas de MPASM -
índice
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:
mnemónicos:
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
Otros ficheros
- ficheros de MPASM -
índice
SOFTWARE DE LOS MICROCONTROLADORES PIC 16/17 7
- 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.
- 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.
- También se incluye una lista con todos los símbolos utilizados en el programa.
Este fichero indica la línea errónea y da una breve descripción del error.
- formato INHX8M -
Cuando el programa forma un solo cuerpo (no está formado por programas
objeto reublicables enlazados) genera este fichero para la depuración.
índice
Í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:
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
Índice:
Familias
Memoria
Alimentación
Encapsulados
PIC 16/17 DESCRIPCIÓN GENERAL 2
Versiones
Características esenciales
Periféricos
Ventajas
• ARQUITECTURA
• ORGANIZACIÓN DE LA MEMORIA
Los PIC tienen dos tipos de memoria: memoria de programa y memoria de datos.
Memoria de Programa
Registro PCL/PCLATH
Memoria de Datos
Modos de direccionamiento
- modos de direccionamiento -
índice
Registro STATUS
- registro STATUS -
índice
PIC 16/17 DESCRIPCIÓN GENERAL 8
- memoria EEPROM -
- registro EECON1 -
LECCIÓN 6. EJERCICIOS
6.1.- Escribir un programa que sume dos valores inmediatos (p.e. los decimales 12 y 7).
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.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
Índice:
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).
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
PORTA y TRISA
PORTB y TRISB
PORTD y TRISD
PORTE y TRISE
- el registro TRISE -
índice
• ADVERTENCIAS A LA PROGRAMACIÓN DE ENTRADAS/SALIDAS
MICROCONTROLADORES PIC: PUERTOS DE ENTRADA/SALIDA (I/O PORTS) 6
2) Si se realiza una lectura a continuación de una escritura, hay que dar tiempo a que los
datos se estabilicen.
- entradas/salidas sucesivas -
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.
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
Í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
• PALABRA DE CONFIGURACIÓN
Permite al usuario escoger entre determinadas opciones programando sus bits adecuadamente.
Existen dos formas de programar esos bits:
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.
Oscilador a cristal
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.
- 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 -
• RESET
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 de encendido -
- temporizador OST -
• INTERRUPCIONES
- 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
Registro INTCON
Registro OPTION_REG
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
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:
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:
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
Índice
Introducción
TMR0
TMR1. Registro T1CON
TMR2. Registro T2CON
Ejercicios
Temporizadores/Contadores:
• TMR0
- registro T1CON -
MICROCONTROLADORES PIC: TEMPORIZADORES (TMRs) 3
- 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
- registro T2CON -
índice
MICROCONTROLADORES PIC: TEMPORIZADORES (TMRs) 4
EJERCICIOS
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
- 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.
índice
MICROCONTROLADORES PIC: MÓDULOS CCP 1
Í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:
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
- el registro CCPCON -
índice
• EL MODO COMPARACIÓN
- se pone a "1"
- se pone a "0"
- no cambia, pero puede generar una interrupción
• 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).
[ ]
TPWM = 1 + ( PR 2) ⋅ 4 ⋅ 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