PIC16F877 - Artigos academicos

Descrição detalhada de um Microcontrolador PIC16F877


Desenvolvido pela MICROCHIP (www.microchip.com) CPU RISC de alta performance, baseado em uma arquitetura Haward modificada.
Suas características mais significativas são:

· Opera com set de 35 instruções (assembler)

· Operações com duração de um único ciclo, exceto pelas instruções de desvio (goto) que consomem dois ciclos de máquina. Cada ciclo equivale a 4 pulsos do circuito oscilador (clock)

· Operação em até 20 MHz (20 milhões de pulsos de clock por segundo = 5 milhões de ciclos de máquina por segundo = 200 ns por ciclo)

· 8 KWords de FlashROM (Word com 14 bits), suportando mais de 8 mil instruções em um programa. 368 Bytes de memória RAM

·Possue 256 Bytes de memória EEPROM (regravável via software e não volátil com ate 1.000.000 de gravações)

· Com interrupções com 14 fontes diferentes (timer0,timer1,timer2, contagem, pulso externo, serial, etc...)·

· Pilha call stak física com 8 níveis de profundidade

· Endereçamento direto, indireto e relativo

· Power-on Reset, power-on tiimer, oscillator start-up timer

· Watch-dog Timer baseado em oscilador RC interno para tratar um possível travamento de software

· Opção para proteção de código executável (Ativando-a, não é mais possível se ler a memória, evitando a duplicação do código em outro microcontrolador)

· Modo SLEEP para poupar energia consumo medio em sleep 4uA

· Opções diferentes para circuito oscilador

· Tecnologia CMOS FLASH/EEPROM de baixo consumo e alta velocidade, permitindo armazenamento não volátil na memória EEPROM interna em tempo de execução.

· Programação ICSP (recurso embutido de gravação) através de dois pinos, facilitando a gravação do microcontrolador.

· Capacidade opcional de gravação com tensão de 5V (LVP)

· Opção de depuração in-circuit através de dois pinos

· Tensão de trabalho de 2 a 5.5V

· Baixo consumo de energia (abaixo de 1mA)

· 3 timers (2 de 8 bits e 1 de 16 bits)

· 2 pinos para captura, comparação e módulos PWM

· 8 canais analógicos para um AD de 10 bits

· Porta serial sincrona com SPI (master) e I2C(mater/slave)

· Porta serial universal (RS232 ou RS485) com buffer via hardware (2 bytes)

· Porta paralela escrava de 8 bits

· Detector Brown-out

· 33 pinos de entrada/saída configuráveis

 

Pinagem do MCU

PINO 1: Suporta 3 níveis de tensão. Quando este pino estiver recebendo 5V, o microcontrolador estará em condições de executar o programa. Quando este pino receber 0V (GND), o PIC será “resetado”. Quando este pino receber tensão de 13,4V, o PIC irá entrar em modo gravação.

PINOS 11 e 32: Alimentação (máximo 5V)

PINOS 12 e 31: Referência (GND)

PINOS 13 e 14 : Onde estará ligado o resonador externo (cristal de clock).

Os demais pinos são conhecidos por I/Os (lê-se Aiôus, e vem do inglês Inputs/Outputs, que significa entradas/saídas). Estas I/Os são agrupadas em PORTs (portos), de no máximo 8 pinos cada (limitação pois o componente possui um núcleo de 8 bits).

Há um total de 33 I/Os disponíveis, que podem ser configuradas como entradas ou saídas em tempo de execução.

Quando um pino é configurado como ENTRADA, ele pode ser conectado a algum sensor para detectar sinais digitais através de variação da tensão de 0 e 5V. Quando um pino é configurado como saída, o programa poderá acioná-lo, e com isso gerar uma corrente baixa (max. 20 mA) com os níveis de tensão de 0V ou 5V.

Alguns pinos, porém, possuem outras funções além de serem entradas ou saídas digitais. Por exemplo, no diagrama ao lado podemos observar que os pinos 2 a 10 (exceto o pino 6) são entradas analógicas, e podem ser usados para detectar uma variação de tensão entre 0V e 5V, transformando esta variação em uma informação binária de 10 bits. Os pinos 39 e 40 também são pinos usados na gravação do microcontrolador, e os pinos 25 e 26 são usados para comunicação SERIAL padrão RS232. Os pinos 16 e 17 são pinos geradores de pulso (PWM), que é similar a uma saída analógica. Muito útil para controle de velocidade de motores, por exemplo. O pino 6 é um pino usado para contagem rápida.

Tradicionalmente conhecemos os pinos do microcontrolador NÃO PELO SEU NÚMERO, mas sim pela sua IDENTIFICAÇÃO DE I/0.

Os pinos são agrupados em PORTs, sendo agrupados em 5 linhas nomeadas pelas letras: A,B.C,D,E:

PORTA (com 6 I/Os disponíveis)

PORTB (com 8 I/Os disponíveis)

PORTC (com 8 I/Os disponíveis)

PORTD (com 8 I/Os disponíveis)

PORTE (com 3 I/Os disponíveis)

Ambiente de desenvolvimento MPLAB é uma das grandes vantagem de se usar o michip PIC o sistema de desenvolvimento é fornecido gratuitamente pela Microchip podendo ser desenvolvido em assembler ou C os programas, a aplicaçao é muito robusta e possiblita debuguer dos programas simulação de perifericos como usart e i2c.

março 23, 2014