Você está na página 1de 6

Programao Daniel Corteletti Aula 2

Pgina 1/6

Conhecendo o PIC16F877
Microcontrolador de 8 bits da Microchip Co.

O microcontrolador PIC16F877 pode ser encontrado em diversos encapsulamentos:

PDIP,

QFP,

PLCC

Este modelo (16F877) possui 40 pinos (veja imagem


ao lado para o encapsulamento PDIP), sendo que destes 40 pinos, 7 pinos so usados para alimentao e
controle do mesmo.
PINO 1: Suporta 3 nveis de tenso. Quando este pino
estiver recebendo 5V, o microcontrolador estar em condies de executar o programa. Quando
este pino receber 0V (GND), o PIC ser resetado. Quando este pino receber tenso de 13,4V, o
PIC ir entrar em modo gravao.
PINOS 11 e 32: Alimentao (mximo 5V)
PINOS 12 e 31: Referncia (GND)
PINOS 13 e 14 : Onde estar ligado o resonador externo (cristal de clock).
Os demais pinos so conhecidos por I/Os (l-se Aius, e vem do ingls Inputs/Outputs, que significa
entradas/sadas). Estas I/Os so agrupadas em PORTs (portos), de no mximo 8 pinos cada (limitao pois o componente possui um ncleo de 8 bits).
H um total de 33 I/Os disponveis, que podem ser configuradas como entradas ou sadas em tempo de execuo.
Quando um pino configurado como ENTRADA, ele pode
ser conectado a algum sensor para detectar sinais digitais
atravs de variao da tenso de 0 e 5V. Quando um pino
configurado como sada, o programa poder acion-lo, e
com isso gerar uma corrente baixa (max. 20 mA) com os
nveis de tenso de 0V ou 5V.
Alguns pinos, porm, possuem outras funes alm de serem entradas ou sadas digitais. Por exemplo, no diagrama
ao lado podemos observar que os pinos 2 a 10 (exceto o
pino 6) so entradas analgicas, e podem ser usados para
detectar uma variao de tenso entre 0V e 5V, transformando esta variao em uma informao binria de 10 bits.
Os pinos 39 e 40 tambm so pinos usados na gravao do
microcontrolador, e os pinos 25 e 26 so usados para comunicao SERIAL padro RS232. Os pinos 16 e 17 so
pinos geradores de pulso (PWM), que similar a uma sada
analgica. Muito til para controle de velocidade de motores,
por exemplo. O pino 6 um pino usado para contagem rpida.

Programao Daniel Corteletti Aula 2

Pgina 2/6

Tradicionalmente conhecemos os pinos do microcontrolador NO PELO SEU NMERO, mas sim


pela sua IDENTIFICAO DE I/0.
Os pinos so agrupados em PORTs, sendo:
PORTa (com 6 I/Os disponveis)
PORTc (com 8 I/Os disponveis)
PORTe (com 3 I/Os disponveis)

PORTb (com 8 I/Os disponveis)


PORTd (com 8 I/Os disponveis)

EXERCITANDO: Identifique os seguintes recursos no microcontrolador PIC16f877a (qual o nmero


do pino no encapsulamento PDIP correspondente)
PINO A3: _________________
PINO E0: _________________

PINO B7: _________________


PINO D6: _________________

PINO C2: _________________


PINO D2: _________________

Observaes importantes:
A letra F (PIC16F877) identifica que o microcontrolador em questo utiliza a tecnologia FLASH, ou seja, pode ser regravado. Alguns modelos (que utilizam a letra C
no nome, como o PIC16C877) s podem ser gravados uma nica vez e so mais
baratos.
Outros modelos da famlia 16 (como o PIC16F870, PIC16F628, PIC16F84, ....)
possuem variaes em termos de recursos (com mais ou com menos pinos de
I/Os, entradas analgicas, memria ROM, memria RAM, etc...), mas todos podem
ser programados com a mesma linguagem.
Modelos da famlia 18 so mais rpidos e um pouco mais caros, continuando a ser
de 8 bits.
Modelos da famlia 24 so de 16 bits, e indicados para aplicaes que exijam mais
poder de processamento.
Os microcontroladores PIC so indicados para aplicaes mais simples, que no
necessitem de grande volume de dados manipulados, e que no necessitem processamento em tempo real de alta performance.
Quando transferimos um programa para o microcontrolador, este deve estar em
linguagem de mquina (ARQUIVO HEX), e ser armazenado na memria ROM do
microcontrolador. Esta memria no ser apagada at que outro programa seja
enviado, mesmo que a alimentao de energia eltrica seja desativada.

Exercitando (Responda)
1)
2)
3)
4)
5)

Quem fabrica o microcontrolador PIC ?


Quantos pinos de I/O o modelo PIC16F877 possui ?
O modelo PIC16F877 s oferecido na verso PDIP ?
Posso gravar e regravar um PIC quantas vezes eu quiser ?
Para onde um programa enviado quando programamos um microcontrolador PIC ?
6) Um pino do microcontrolador pode acionar diretamente um motor eltrico
que consome 100mA ? Por que ?

Programao Daniel Corteletti Aula 2


Descrio detalhada do PIC16F877

Pgina 3/6
Desenvolvido pela MICROCHIP (www.microchip.com)
CPU RISC de alta performance, baseado em uma arquitetura
Haward modificada. Suas caractersticas mais significativas so:
Opera com somente 35 instrues (ASSEMBLY)
Operaes com durao de um nico ciclo, exceto pelas
instrues de desvio que consomem dois ciclos de mquina.
Cada ciclo equivale a 4 pulsos do circuito oscilador (clock)
Operao em at 20 MHz (20 milhes de pulsos de clock por
segundo = 5 milhes de ciclos de mquina por segundo = 200
ns por ciclo)
8 KWords de FlashROM (Word com 14 bits), suportando mais
de 8 mil instrues em um programa.
368 Bytes de memria RAM
256 Bytes de memria EEPROM (regravvel via software e
no voltil)
Capacitado para interrupes com 14 fontes diferentes (timer,
contagem, pulso externo, serial, etc...)
Pilha fsica com 8 nveis de profundidade
Endereamento 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 possvel travamento de software
Opo para proteo de cdigo executvel (Ativando-a, no
mais possvel se ler a memria, evitando a duplicao do cdigo em outro microcontrolador)
Modo SLEEP para poupar energia
Opes diferentes para circuito oscilador
Tecnologia CMOS FLASH/EEPROM de baixo consumo e alta
velocidade, permitindo armazenamento no voltil na memria EEPROM interna em tempo de execuo.
Programao ICSP (recurso embutido de gravao) atravs
de dois pinos, facilitando a gravao do microcontrolador.
Capacidade opcional de gravao com tenso de 5V (LVP)
Opo de depurao in-circuit atravs de dois pinos
Tenso 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, comparao e mdulos PWM
8 canais analgicos 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/sada configurveis

Programao Daniel Corteletti Aula 2

Pgina 4/6

Descrio dos pinos (muitos pinos possuem vrias funes, no significando que as funes possam ser exercidas ao mesmo tempo):
1.

2.
3.
4.

5.

6.
7.

8.

9.

10.

11.
12.
13.

14.
15.

16.

MCLR : Master Clear Quando em nvel baixo (0V),


define situao de RESET. Quando em nvel alto
(5V), determina programa em execuo. VPP : Tenso de programao Quando este pino estiver em
13.4V, o microcontrolador entra em modo gravao,
permitindo a transferncia de um programa via ICSP
RA0 Entrada / sada digital. AN0 Entrada analgica canal 0 para o ADC interno.
RA1 Entrada / sada digital. AN1 Entrada analgica canal 1 para o ADC interno.
RA2 Entrada / sada digital. AN2 Entrada analgica canal 2 para o ADC interno. Vref- - Uso do pino
para definir a referncia negativa para o conversor
AD.
RA3 Entrada / sada digital. AN3 Entrada analgica canal 3 para o ADC interno. Vref+ - Uso do pino para definir a referncia positiva para o conversor AD.
RA4 Entrada / sada digital. TOCKI Contador
rpido
RA5 Entrada / sada digital. AN4 Entrada analgica canal 4. SS Slave Select para porta serial
sncrona
RE0 Entrada / sada digital. RD Entrada de
controle de leitura para porta paralela escrava. AN5
Entrada analgica canal 5.
RE1 Entrada / sada digital. WR Entrada de
controle de gravao para porta paralela escrava.
AN6 - Entrada analgica canal 6.
RE2 Entrada / sada digital. CS Chip Select
para porta paralela escrava. AN7 Entrada analgica canal 7.
VDD Alimentao (preferncia 3V a 5V)
VSS Referncia (0V / GND)
OSC1/CLKIN Pino para ligao do circuito oscilador externo (entrada). Usado em conjunto com o pino OSC/CLKOUT. Recomendado usar cristal de 4 a
20 MHz
OSC2/CLKOUT Pino para ligao do circuito
oscilador externo (sada).
RC0 Entrada / sada digital. T1OSO Sada do
oscilador do TIMER1. T1CKI Entrada de clock para TIMER1.
RC1 Entrada / sada digital. T1OSI Entrada do
oscilador do TIMER1. CCP2 Entrada de captura 2,
sada de comparador 2 ou PWM 2.

17. RC2 Entrada / sada digital. CCP1 Entrada de


captura 1, sada de comparador 1 ou PWM 1.
18. RC3 Entrada / sada digital. SCK/SCL Entrada ou
sada de sinal de clock serial sncrono para SPI e I2C.
19. RD0 Entrada / sada digital. PSP0 Pino 0 da porta
paralela escrava.
20. RD1 Entrada / sada digital. PSP1 Pino 1 da porta
paralela escrava.
21. RD2 Entrada / sada digital. PSP2 Pino 2 da porta
paralela escrava.
22. RD3 Entrada / sada digital. PSP3 Pino 3 da porta
paralela escrava.
23. RC4 Entrada / sada digital. SDI Entrada de dados
em SPI. DAS Entrada/sada de dados em modo I2C.
24. RC5 Entrada / sada digital. SD0 Sada de dados
SPI.
25. RC6 Entrada / sada digital. TX Pino para transmisso serial assncrona. CK Clock para transmisso
sncrona.
26. RC7 Entrada / sada digital. RX Pino para recepo
serial assncrona. DT Dados da serial sncrona.
27. RD4 Entrada / sada digital. PSP4 Pino 4 da porta
paralela escrava.
28. RD5 Entrada / sada digital. PSP5 Pino 5 da porta
paralela escrava.
29. RD6 Entrada / sada digital. PSP6 Pino 6 da porta
paralela escrava.
30. RD7 Entrada / sada digital. PSP7 Pino 7 da porta
paralela escrava.
31. VSS - Referncia (0V / GND)
32. VDD Tenso de alimentao (mesma que pino 11)
33. RB0 Entrada / sada digital. INT Entrada de sinal de
interrupo via hardware.
34. RB1 Entrada / sada digital.
35. RB2 - Entrada / sada digital.
36. RB3 Entrada / sada digital. PGM Entrada de sinal
para gravao em baixa tenso (5V)
37. RB4 Entrada / sada digital.
38. RB5 Entrada / sada digital.
39. RB6 Entrada / sada digital. PGC Clock para programao ICSP ou pino para depurao.
40. RB7 Entrada / sada digital. PGD Dados para programao ICSP ou pino para depurao.

Glossrio de termos relacionados ao microcontrolador PIC16F877


PORT : Agrupamento de pinos. Ex : PORT A : Pinos RA0 a RA5. PORT B : Pinos RB0 a RB7.
PWM : Modulao por largura de pulso. Permite simular uma sada analgica atravs de pulsos digitais rpidos e de tamanho regulvel.
ADC : Conversor digital / analgico.
ICSP : Recurso de programao serial embutida, permitindo que um gravador seja construdo com custo relativamente baixo.
RAM : Memria de acesso aleatrio, voltil e de alta velocidade de acesso.
ROM : Memria de programa, gravada quando se transfere o programa para o microcontrolador.
EEPROM : Memria fixa que pode ser gravada e apagada em tempo de execuo.
SERIAL : Dispositivo de comunicao onde um bit enviado de cada vez.
I2C : Padro de comunicao serial desenvolvido pela PHILIPS.
SPI : Serial Peripheral Interface Interface perifrica serial : Padro de comunicao serial que usa 4 fios.

Programao Daniel Corteletti Aula 2

Pgina 5/6

Diagrama de programao:
Passo 1 : Extrao de requisitos Levantar as
necessidades da automao junto ao cliente, aos
usurios do equipamento e as demais pessoas
envolvidas no processo de automao.
Passo 2 : Modelo de software a planta
baixa do programa. Define quais sero as estratgias de programao que sero utilizadas. Para
programas mais simples, recomenda-se a construo de um fluxograma ou de um modelo grfico
do programa. Para situaes mais complexas, o
modelo deve prever a quebra do problema em
situaes ou camadas mais simples, que podem
ser implementadas separadamente.
Passo 3 : Implementao a escrita do programa na linguagem de programao desejada
(no caso, linguagem C). Deve ser observado o
compilador a ser utilizado, bem como as variaes
na sintaxe da linguagem de programao para a
ferramenta escolhida.
Passo 4 : Compilao Ocorre a traduo da linguagem de programao para a linguagem nativa do microcontrolador.
Nesta etapa, parte dos erros (principalmente os erros de sintaxe) so detectados. Os erros de sintaxe so os erros causados
por erros de digitao ou uso incorreto de comandos.
Passo 5 : Transferncia Atravs de um programa especfico, os dados contidos no arquivo HEX gerado pelo compilador
so transferidos para a memria ROM do microcontrolador.
Passo 6 : Testes Aqui so descobertos os erros de lgica que podem ser gerados por um erro de digitao (pontuao
incorreta, comando inadequado, esquecimento de linhas, etc...). Esta etapa realimenta o processo, at que os testes efetuados garantam a qualidade do programa criado.

Programas recomendados :
AMBIENTE ASSEMBLY : MPLAB / COMPILADOR C: CCS (PCW.EXE) / PROGRAMADOR : EPIC (EPICWIN.EXE)

Programao Daniel Corteletti Aula 2


PARTES MAIS IMPORTANTES DO MICROCONTROLADOR PIC famlia 16

1)

ACUMULADOR
Tambm conhecido por WORK REGISTER. uma rea de 8 bits
onde as informaes so afetadas por um conjunto de instrues.
onde o processamento ocorre na maioria dos casos.

2)

REGISTRADORES (FILE REGISTERS)


So reas de memria RAM que esto
ligadas ao funcionamento dos recursos e
perifricos do microcontrolador
No PIC16F877 a memria ROM dividida
em 4 bancos de memria com 128 posies
cada, conforme tabela ao lado (extrada do
datasheet do microcontrolador em questo).

As reas de memria marcadas como


GENERAL PURPOSE REGISTER so reas de uso
geral (memria RAM livre).
Cada uma das demais posies possuem
uma funo especfica. Por exemplo, se gravarmos
informaes na posio de memria 07h, na tabela
identificada como PORTC, estaremos acionando ou
desligando bits ligados aos pinos do PORTC.
Os registradores PORTA, PORTB, PORTC,
PORTD, PORTE (presentes no bank0) so usados
para acionar ou ler estados dos pinos.
Os registradores TRISA, TRISB, TRISC,
TRISD e TRISE (bank1) so usados para definir se os
pinos so de entrada ou sada digital de dados.
O registrador ADCON1 utilizado para
configurar quantos e quais pinos sero entradas
analgicas.
O registrador STATUS possue alguns bits
que permitem modificar o BANK que pode ser
acessado pelas prximas instrues.

RESUMINDO
O processador do PIC bastante simples em
termos de instrues, e cabe ao software agregar
complexidade usando estas instrues existentes.
O ncleo do microcontrolador pode mover
dados entre os registradores (F) e o registrador
principal (W), entre a ROM e o registrador principal.
Pode tambm acionar e desativar bits em quaisquer
uma das posies de memria.
Devido a sua simplicidade, somente uma
operao pode ser executada por vez (ciclo de
mquina).
Em condies normais de operao, cada
ciclo de mquina equivale a 4 ciclos de clock.
possvel tambm, atravs de registradores
especiais, se configurar, disparar, parar e controlar os
recursos perifricos do PIC, como PWM, Conversor
AD, contadores, timers, comunicao serial, etc...
Para conhecer mais sobre os procedimentos
de
configurao
e
uso
dos
recursos
do
microcontrolador em questo, utilize o DATASHEET do
mesmo, ou ainda algum livro sugerido na bibliografia
bsica da disciplina.

Pgina 6/6

Você também pode gostar