El PIC16F84A es un microcontrolador gama media de 8 bits que físicamente consta de 18 pines, su memoria de programa es de tipo flash, lo que nos permitirá grabarlo hasta unas 10000 veces. Es realmente sencillo de manejar, por eso será nuestro punto de partida para el estudio del lenguaje ensamblador y microcontroladores.
Sus características principales son:
- Set de solo 35 instrucciones
- Memoria de programa de 1 KB (equivale a 1024 instrucciones)
- Máxima velocidad de operación: 20 MHz
- 68 Bytes de RAM
- 64 Bytes de EEPROM
- 4 fuentes de interrrupción
- 2 puertos de salida
- 13 Líneas de I/O configurables individualmente
- 25 mA de corriente por pin
Descripción de los pines
El PIC 16F84A contiene 13 líneas I/O (entrada o salida), 5 pertenecen al puerto A y 8 pertenecen al puerto B.
- VDD: Alimentación positiva (5 voltios)
- VSS: Tierra (0 voltios)
- MCLR: pin de resetear
- OSC1, OSC2: Conexión de oscilador
- RA0, RA1, RA2, RA3, RA4: líneas I/O del puerto A
- RB0, RB1, RB2, RB3, RB4, RB5, RB6, RB7: líneas I/O del puerto B
Conexión de los pines
Es importante tener muy claro la forma en la que se deben conectar los pines del microcontrolador aún cuando estos no se usen.
- La alimentación: El voltaje de alimentación debe estar comprendido entre 2.0 y 5.5 voltios (preferiblemente usar una alimentación regulada de 5 voltios). Para mejorar su desempeño se puede adicionar un capacitor cerámico de 100 nF en paralelo con la fuente de voltaje y ubicado lo más cerca posible a los pines VDD y VSS.
- El reset (MCLR): A este pin se le conectarán dos componentes: un resistor de 10 kΩ a VDD (5 voltios) y un pulsador a GND (tierra).
- El oscilador: Por ahora, conectaremos un cristal de cuarzo de 4 MHz entre los pines OSC1 y OSC2, también conectaremos un capacitor cerámico de 22 pF entre OSC1 y tierra y otro capacitor igual entre OSC2 y tierra. Más adelante se detallarán las diversas formas de configurar estos pines.
- Las líneas de salida: Si lo que queremos es solo testear el comportamiento del microcontrolador, basta con poner en cada salida un LED en serie con una resistencia.
- Las líneas de entrada: Si la entrada se da a travès de un interruptor será obligatorio conectar un resistor de 10 kΩ a VDD sin importar si la línea se usará o no, una solución sencilla para evitar la conexíón de tantos resistores es configurar como salidas las líneas que no vayamos a usar en nuestro proyecto.
Las resistencias de pull-up (ver fig 2.7)
La electrónica digital maneja dos estados lógicos para su funcionamiento: el «1» y el «0». Supongamos que un circuito digital tiene una entrada y conectamos un interruptor entre dicha entrada y VSS (tierra), analizando veremos que el cero ya está definido por el interruptor cuando este está cerrado, pero si el interruptor estuviera abierto no hay un estado definido porque la entrada no tiene contacto con ningún cero ni con ningún uno lógico (sería un pin sin conexión), esto se llama estado flotante y puede tener consecuencias como el mal funcionamiento del circuito. Esto se soluciona poniendo una resistencia entre el pin de entrada y VDD llamada resistencia de pull-up, su objetivo es asegurar un «1» lógico cuando el interruptor esté abierto. Si lo que se desea es asegurar un «0» lógico, la resistencia se conecta a VSS y recibe el nombre de resistencia de pull-down.
Nota: Se aconseja conectar cualquier línea de entrada a VDD mediante una resistencia de 10 kΩ, omitir este paso podría causar daños en el PIC.