Professional Documents
Culture Documents
programación de controladores
Micro-controladores
Concepto de microcontrolador: sistema microcomputador
completo en un chip destinado a resolver una tarea específica.
•Núcleo microprocesador+memoria (instrucciones, datos)
+elementos de entrada/salida. Estos recursos varían en función del
fabricante y del modelo:
- Memoria no volátil para programa
- Memoria volátil para datos <y una parte no volátil>
- Puertos paralelo y/o serie (I2C, RS232, USB, ..).
- Convertidores A/D y D/A, comparadores analógicos, PWM,..
- Temporizadores digitales, perro guardián, etc
Micro-controladores PIC
(Web del fabricante: www.microchip.com )
CARACTERÍSTICAS GENERALES
• Gama muy amplia de modelos para elección óptima en función
de los requisitos de la aplicación.
• Disponibilidad de herramientas de desarrollo de hardware y de
software de bajo coste.
Distintas alternativas de
programación (ROM, OTP, y
FLASH) para optimización de coste en función del número de
unidades.
Arquitectura de micro-controladores PIC
Arquitectura RISC tipo Harvard:
-Memoria de datos y de programa separadas: instrucciones y datos de distinta longitud y
posibilidad de acceso simultáneo mediante buses distintos.
-Repertorios reducido de instrucciones máquina; todas las instrucciones de una palabra
(longitud constante).
-Cauce segmentado de dos etapas: simultaneidad de ejecución de una instrucción y
captación de la siguiente.
Flash(F)
ó RAM
ROM(CR)
GPR (68x8)
RP0
Memoria de programa
(1Kx14bits) y Pila (8x13bits)
El PIC16x84 sólo tiene implementadas
las primeras 1024 posiciones de las 8K
posibles del mapa de memoria
Bus_DATOS
WRITE Port
Bus_DATOS
Bus_DATOS
WRITE TRIS_Port
Ejercicio 1: Control de E/S
Valores prescaler
Ejercicio 3: Timer0 como contador
(*)
Programación de interrupciones en C (CCS)
El compilador se encarga de generar el código necesario para guardar y restaurar el
estado del procesador, y también de borrar el flag de la correspondiente interrupción
(lo hace al final de la RSI).
El programa principal debe habilitar la(s) interrupción(es) y definir las rutinas de
interrupción necesarias.
► La directiva #INT_XXXX
encabeza la rutina de interrupción del tipo XXXX (los modos disponibles dependen del
micro, está definidos en el correspondiente archivo de cabecera, ej. 16F84.h)