2. Los PIC son una familia de micro
controladores tipo RISC fabricados por Microchip Technology
Inc. y derivados del PIC1650, originalmente desarrollado por la
división de microelectrónica de General Instrument.
El nombre actual no es un acrónimo. En realidad, el nombre
completo es PICmicro, aunque generalmente se utiliza
como Peripheral Interface Controller (controlador de interfaz
periférico).
El PIC original se diseñó para ser usado con la nueva CPU de
16 bits CP16000. Siendo en general una buena CPU, ésta tenía
malas prestaciones de E/S, y el PIC de 8 bits se desarrolló
en 1975 para mejorar el rendimiento del sistema quitando peso
de E/S a la CPU.
HISTORIA DE LOS PIC´S
3. El PIC utilizaba micro código simple almacenado en ROM para
realizar estas tareas; y aunque el término no se usaba por aquel
entonces, se trata de un diseño RISC que ejecuta
una instrucción cada 4 ciclos del oscilador.
En 1985 la división de microelectrónica de General Instrument se
separa como compañía independiente que es incorporada como
filial (el 14 de diciembre de 1987 cambia el nombre a Microchip
Technology y en 1989 es adquirida por un grupo de inversores) y
el nuevo propietario canceló casi todos los desarrollos, que para
esas fechas la mayoría estaban obsoletos. El PIC, sin embargo, se
mejoró con EPROM para conseguir un controlador de
canal programable. Hoy en día multitud de PICs vienen con varios
periféricos incluidos (módulos de comunicación serie, UARTs,
núcleos de control de motores, etc.) y con memoria de programa
desde 512 a 32.000 palabras (una palabra corresponde a una
instrucción en lenguaje ensamblador, y puede ser 12, 14 o 16 bits,
dependiendo de la familia específica de PICmicro).
4. Control de pantallas a alfanuméricas LCD
Control de teclados
Control de memorias EEPROM seriales
Control de temperatura
Control de robots
Control para motores
Televisiones
Interface del PC
Aparatos de audio
Control remoto
Sistemas de alarma
Reloj digital
APLICACIONES DE LOS PICS
7. 1. Lenguaje BASIC
2. Lenguaje C
3. Lenguaje Ensamblador (assembler)
TIPOS DE LENGUAJE DE
PROGRAMACIÓN:
8. 1. El lenguaje BASIC:
Ventajas:
Es un lenguaje muy simple y con instrucciones fácilmente legibles,
incluso por no expertos.
Desventajas:
Nunca vas a tener el control del programa en cuanto tiempos de
ejecución y control de registros bit a bit.
Es muy complicado el manejo de interrupciones simultáneas en este
lenguaje.
Tiene limitaciones cuando genera el archivo .hex, es decir no optimiza
el tamaño de memoria de programa del PIC.
La mayoría de compiladores para este lenguaje pueden utilizarse
únicamente bajo ambiente Windows.
9. Ejemplo: rutina que hace parpadear un led en el pin cero
del puerto B cada 200 milisegundos en lenguaje Basic
empleando el software PICBASIC PRO:
10. 2. Lenguaje C:
Ventajas:
Es un lenguaje de alto nivel mas cercano a la máquina.
Puedes construir rutinas matemáticas fácilmente.
Puede ser de ayuda al combinarlo con Ensamblador sobre todo en la
gama alta.
Se pueden crear macros con este lenguaje, para después simplificar el
código en diferentes desarrollos.
Es aceptado por la empresa fabricante Microchip, incluso ellos tienen
algunos compiladores C.
Desventajas:
Los programas al compilarlos pueden resultar un poco extensos y
pesados por ello debe tenerse en cuenta la capacidad de memoria de
programa del PIC a utilizar.
Con este lenguaje tampoco se puede controlar del todo los tiempos y
los registros bit a bit.
11. Ejemplo: rutina que hace parpadear un led en el pin cero
del puerto B cada 200 milisegundos en lenguaje C
empleando el software de CCS PCW IDE
12. 3. Lenguaje Ensamblador:
Ventajas:
Es el lenguaje de bajo nivel natural de la línea PIC tanto para gama
baja, media o alta.
Con él se tiene un aprovechamiento eficiente de los recursos del
PIC.
Se pueden crear macros con este lenguaje, para después
simplificar el código en diferentes desarrollos.
Con él se pueden controlar los tiempos y los registros bit a bit.
Excelente para manejar interrupciones simultáneas.
Cuando se genera el archivo .hex éste es completamente
optimizado.
Desventajas:
En realidad desde mi punto de vista no existe ninguna, excepto
cuando no se tiene experiencia en programación puede tardarse el
desarrollo de alguna rutina en comparación con los otros
lenguajes.
13. Ejemplo: rutina que hace parpadear un led en el pin cero del
puerto B cada 200 milisegundos en lenguaje Ensamblador
empleando el software de Microchip MPLAB IDE: