PIC16F877
# PIC16F877

O PIC 16F877 é um microcontrolador da família de 8 bits e núcleo de 14 bits fabricado pela Microchip Technology.

## Denominação

O número 16 significa que ele faz parte da família "MID-RANGE". É um microcontrolador da família de 8 bits. Isto significa que a ALU (Arithmetic and Logique Unit ou Unidade Aritmética e Lógica em português) lida com palavras de no máximo 8 bits.
A letra F indica que a memória de programa deste PIC é do tipo "Flash". Cada linha da memória é uma palavra de 14 bits.
Os três últimos números permitem identificar precisamente o PIC, que neste caso é um PIC do tipo 877.
A referência 16F877 pode ter um sufixo do tipo "-XX", onde XX representa a frequencia máxima do relógio que o PIC pode receber.

## Características

* Sua frequência de operação (clock) vai até 20 MHz, resultando em uma velocidade de processamento de 5 MIPS.
* Possui memória flash de programa com 8192 palavras de 14 bits, memória RAM com 368 bytes e memória EEPROM com 256 bytes.
* Seu conjunto de instruções RISC se compõe de 35 instruções.
* Pode funcionar com alimentação de 2V a 5,5V.
* Sua pinagem DIP tem 40 pinos.
* A versão mais recente do PIC16F877A contém um módulo de 2 comparadores analógicos (CMCON) e um módulo gerador de tensão de referência (VRCON).
Como periféricos ele possui:
* 5 conjuntos de portas de entrada e saída (total de 33 portas)
* Conversor analógico-digital de 10 bits de resolução e 8 canais de entrada
* Periférico de comunicação paralela e serial (USART e MSSP)
* 2 Módulos CCP (Comparação, Captura e PWM)
* 3 Timers (1 de 16 bits e 2 de 8 bits)
* Watchdog timer

## Memória Flash

O μProcessador utiliza a memória FLASH no armazenamento dos programas. Possui 8k linhas tendo cada linha 14 bits.

## Aplicações

* Usado em sistemas de automação com grande número de aplicações devido ao seu número de pinos ele é muito versátil para projetos que envolve um grande poder de processamento. Controle em comunicação visual como: Placares eletrônicos, painel de mensagem, controle de display de LCD ou LED, painel de senha, relógios de hora e temperatura em vias públicas .

## Software de desenvolvimento

* O fabricante fornece gratuitamente o MPLab como a ferramenta de desenvolvimento dos modelos fabricados. A IDE (Interface de Desenvolvimento) podem ser integradas ferramentas adicionais, tais como compilador, gravador, etc.

## Programação

As linguagens de programação disponíveis são:
* arquivo em Hexadecimal (como nos anos 1960);
* Assembler;
* Basic;
* C.