El PIC16F788A es un microcontrolador de 8 bits de la familia PIC16 de Microchip. Es una buena opción para proyectos de control, instrumentación y automatización, y puede programarse sin problemas usando MPLAB X IDE + XC8 o PIC C Compiler.[1].
Características principales
CPU
- Arquitectura Harvard de 8 bits.
- Núcleo RISC.
- 35 instrucciones.
- Velocidad máxima:
- Hasta 20 MHz con cristal externo.
- Ciclo de instrucción = Fosc/4.
- A 20 MHz → 5 MIPS.
Memoria
| Tipo | Capacidad |
|---|---|
| Flash Program Memory | 8 KB |
| RAM | 368 Bytes |
| EEPROM | 256 Bytes |
Entradas y Salidas (GPIO)
Dispone de:
- Puerto A
- Puerto B
- Puerto C
Total:
- Hasta 16 pines de E/S digitales.
Los pines pueden configurarse individualmente como:
- Entrada
- Salida
- Analógicos
- Funciones especiales
Ejemplo XC8:
TRISB = 0x00; // Puerto B como salida
PORTB = 0xFF; // Encender todos los pines
Convertidor Analógico Digital (ADC)
Incluye:
- ADC de 10 bits
- Hasta 11 canales analógicos
Resolución:
1024 niveles
0 - 1023
Ideal para:
- Potenciómetros
- Termistores
- Sensores de temperatura
- Sensores de luz
- Sensores de voltaje
Temporizadores
Posee:
- Timer0 (8 bits)
- Timer1 (16 bits)
- Timer2 (8 bits)
Permiten:
- Generar retardos precisos
- Interrupciones periódicas
- PWM
- Medición de frecuencia
PWM
Incluye módulo CCP:
- PWM de 10 bits
Aplicaciones:
- Control de velocidad de motores DC
- Control de brillo LED
- Servomotores
Comunicación Serial
USART
Permite:
- UART TTL
- RS232 (usando MAX232)
- Bluetooth HC-05
- ESP8266
- ESP32
- Módulos GSM
Velocidades típicas:
9600
19200
38400
57600
115200
Comunicación I2C
Módulo MSSP:
- Maestro
- Esclavo
Dispositivos compatibles:
- EEPROM 24LC256
- RTC DS1307
- RTC DS3231
- Pantallas OLED SSD1306
- Sensores BMP280
- MPU6050
Comunicación SPI
También mediante MSSP:
- Maestro
- Esclavo
Compatible con:
- Pantallas TFT
- Tarjetas SD
- Convertidores ADC externos
- Sensores SPI
Comparadores Analógicos
Incorpora:
- 2 comparadores analógicos
Permiten detectar:
Ventrada > Vreferencia
Sin necesidad de usar el ADC.
Interrupciones
Soporta interrupciones por:
- Timer0
- Timer1
- Timer2
- UART
- ADC
- Cambio en PORTB
- Interrupción externa INT
Osciladores
Opciones:
- Cristal externo
- Resonador cerámico
- Oscilador RC
- Oscilador interno
Oscilador interno:
- Hasta 8 MHz
Configuración típica XC8:
#pragma config FOSC = INTRCIO
Voltaje de operación
Funciona entre:
2.0V a 5.5V
Lo más común:
5V
Pines PIC16F877A
Referencias
[1] microchip http://ww1.microchip.com/downloads/en/devicedoc/39582b.pdf, Consultado mayo 2019