1- Microcontroladores PIC 2- Memoria de datos y programa en PIC 3- PIC 16F84 4- PIC 16F84. Instrucciones. Circuitería 5- Comentarios programa PIC 16F84
Memoria de Programa
El microcontrolador está diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control. Como este siempre es el mismo, debe estar grabado de forma permanente. Existen algunos tipos de memoria adecuados para soportar estas funciones, de las cuales se citan las siguientes:
- ROM con máscara: se graba mediante el uso de máscaras. Solo es recomendable para series muy grandes debido a su elevado coste.
- EPROM: se graba eléctricamente con un programador controlador por un PC. Disponen de una ventana en la parte superior para someterla a luz ultravioleta, lo que permite su borrado. Puede usarse en fase de diseño, aunque su coste unitario es elevado.
- OTP: su proceso de grabación es similar al anterior, pero estas no pueden borrarse. Su bajo coste las hacen idóneas para productos finales.
- EEPROM: también se graba eléctricamente, pero su borrado es mucho más sencillo, ya que también es eléctrico. No se pueden conseguir grandes capacidades y su tiempo de escritura y su consumo es elevado.
- FLASH: se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar en circuito al igual que las EEPROM, pero que suelen disponer de mayor capacidad que estas últimas.
Son recomendables aplicaciones en las que es necesario modificar el programa a lo largo de la vida del producto. Por sus mejores prestaciones, está sustituyendo a la memoria EEPROM para contener instrucciones.
De esta forma, Microchip comercializa dos microcontroladores prácticamente iguales que sólo se diferencian en que la memoria de programa de uno de ellos es tipo EEPROM y la del otro tipo Flash. Se trata del PIC16C84 y el PIC16F84, respectivamente.
Memoria de Datos
Los datos que manejas los programas varían continuamente, y esto exige que la memoria que los contiene debe ser de lectura y escritura, por lo que la memoria RAM estática (SRAM) es la más adecuada, aunque sea volátil.
Hay microcontroladores que disponen como memoria de datos una de lectura y escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimentación no ocasiona la pérdida de la información, que está disponible al reiniciarse el programa. El PIC16F84 dispone de 64 bytes de memoria EEPROM para contener datos.
A excepción de dos patitas destinadas a recibir la alimentación, otras dos el cristal de cuarzo, que regula la frecuencia de trabajo, y una más para provocar el Reset, las restantes patitas de un microcontrolador sirven para soportar su comunicación con los periféricos externos que controla.
Las líneas de E/S que se adaptan con los periféricos manejan información en paralelo y se agrupan en conjuntos de ocho, que reciben el nombre de Puertas.
Hay modelos con líneas que soportan la comunicación en serie; otros disponen de conjuntos de líneas que implementan puertas de comunicación para diversos protocolos, como el I2C, el USB, etc.
Recursos auxiliares
Según las aplicaciones a las que orienta el fabricante, cada modelo de microcontrolador, incorpora una diversidad de complementos que refuerzan la potencia y la flexibilidad del dispositivo. Entre los recursos más comunes se citan los siguientes:
- Circuito de reloj: se encarga de generar los impulsos que sincronizan el funcionamiento de todo el sistema.
- Temporizadores, orientados a controlar tiempos.
- Perro Guardián o WatchDog: se emplea para provocar una reinicialización cuando el programa queda bloqueado.
- Conversores AD y DA, para poder recibir y enviar señales analógicas.
- Sistema de protección ante fallos de alimentación.
- Estados de reposos, gracias a los cuales el sistema queda congelado y el consumo de energía se reduce al mínimo.
Programación de microcontroladores
La utilización de los lenguajes más cercanos a la máquina (de bajo nivel) representan un considerable ahorro de código en la confección de los programas, lo que es muy importante dada la estricta limitación de la capacidad de la memoria de instrucciones.
Los programas bien realizados en lenguaje Ensamblador optimizan el tamaño de la memoria que ocupan y su ejecución es muy rápida.
Los lenguajes de alto nivel más empleados con microcontroladores son el C y el BASIC de los que existen varias empresas que comercializan versiones de compiladores e interpretes para diversas familias de microcontroladores.
En el de los PIC es muy competitivo e interesante el compilador de C PCM de la empresa CCS y el PBASIC de microLab Engineering, ambos comercializados en España por Microsystems Engineering.
Hay versiones de intérpretes de BASIC que permiten la ejecución del programa línea a línea, y en ocasiones, residen en la memoria del propio microcontrolador. Con ellos se puede escribir una parte del código, ejecutarlo y comprobar el resultado antes de proseguir.
Tut_PICs2.asp Tut_Lineas_E-S_recursos_auxiliares_programacion_microcontroladores.asp
1- Microcontroladores PIC 2- Memoria de datos y programa en PIC 3- PIC 16F84 4- PIC 16F84. Instrucciones. Circuitería 5- Comentarios programa PIC 16F84