Você está na página 1de 8

INTRODUÇÃO E RECURSOS DO MICROCONTROLADOR

PIC16F877A
O microcontrolador PIC16F877A é um dos microcontroladores mais renomados da indústria.
Este microcontrolador é muito conveniente de usar, a codificação ou programação deste controlador também é mais fácil.

Uma das principais vantagens é que pode ser escrita e apagada o maior número de vezes possível, pois utiliza a tecnologia de
memória FLASH.
Tem um número total de 40 pinos e há 33 pinos para entrada e saída.
O PIC16F877A é usado em muitos projetos de microcontroladores pic. PIC16F877A também tem muita aplicação em circuitos
eletrônicos digitais.

O PIC16f877a encontra suas aplicações em um grande número de dispositivos.


É usado em sensores remotos, dispositivos de segurança e proteção, automação residencial e muitos instrumentos industriais.

Um EEPROM também é apresentado nele, o que torna possível armazenar algumas das informações permanentemente, como
códigos de transmissor e frequências de receptor e alguns outros dados relacionados.
O custo deste controlador é baixo e seu manuseio também é fácil.
É flexível e pode ser usado em áreas onde os microcontroladores nunca foram usados antes, como em aplicações de
microprocessadores e funções de temporizador, etc.
 Tem um conjunto menor de 35 instruções.
 Ele pode operar até 20MHz de frequência.
 A tensão de operação está entre 4,2 volts à 5,5 volts.
Se você fornecer tensão superior a 5,5 volts, poderá ser danificado permanentemente.
 Não possui oscilador interno como outros PIC18F46K22, PIC18F4550.
 A corrente máxima que cada PORT pode receber ou fonte é de cerca de 100mA.
Portanto, o limite de corrente para cada pino GPIO do PIC16F877A é de 10 mili amperes.
 Está disponível em quatro embalagens IC, como PDIP de 40 pinos PLCC de 44 pinos, TQFP de 44 pinos, QFN de 44
pinos

CONTEUDO
 CONFIGURAÇÃO DE PIN E DESCRIÇÃO DO microcontrolador PIC16F877A
 COMO PROGRAMAR AS PORTAS DE ENTRADA E SAÍDA
 Compilador para microcontrolador PIC16F877A
 Principais características do microcontrolador PIC16F877A
 CÓDIGO PARA ACENDER UM ÚNICO LED/LED PISCANDO
 Diagrama de circuito para piscar LED COM PIC16F877A

CONFIGURAÇÃO DE PIN E DESCRIÇÃO DO MICROCONTROLADOR PIC16F877A


Como foi mencionado antes, existem 40 pinos deste microcontrolador IC.
Consiste em dois temporizadores de 8 bits e um de 16 bits.
Módulos de captura e comparação, portas seriais, portas paralelas e cinco portas de entrada/saída também estão presentes nele.
Esta imagem mostra o diagrama de pinagem do PIC16F877A.

Introdução e recursos do microcontrolador PIC16F877A Página 1 de 8


 Pino 1: MCLR
O primeiro pino é o pino limpo principal deste IC.
Ele redefine o microcontrolador e está ativo baixo, o que significa que deve receber constantemente uma tensão de 5V e se 0 V
forem fornecidos, o controlador será redefinido.
A redefinição do controlador o trará de volta à primeira linha do programa que foi queimada no IC.
Um botão de pressão e um resistor são conectados ao pino.
O pino já está sendo alimentado por 5V constantes.
Quando queremos redefinir o IC, basta pressionar o botão que trará o pino MCLR para 0 potencial, redefinindo o controlador.

 Pino 2: RA0/AN0
PORTA consiste em 6 pinos, do pino 2 ao pino 7, todos eles são pinos de entrada/saída bidirecionais.
O pino 2 é o primeiro pino desta porta.
Este pino também pode ser usado como um pino analógico AN0.
É construído em conversor analógico para digital.
 Pino 3: RA1/AN1
Esta pode ser a entrada analógica 1.
 Pino 4: RA2/AN2/Vref-
Também pode atuar como entrada analógica 2.
Ou tensão de referência analógica negativa pode ser dada a ele.
 Pino 5: RA3/AN3/Vref+
Pode atuar como entrada analógica 3.
Ou pode atuar como tensão de referência positiva analógica.

 Pino 6: RA0/T0CKI
Para timer 0 este pino pode atuar como pino de entrada do relógio, o tipo de saída é dreno aberto.
 Pino 7: RA5/SS/AN4
Esta pode ser a entrada analógica 4.

Introdução e recursos do microcontrolador PIC16F877A Página 2 de 8


Existe uma porta serial síncrona no controlador também e este pino pode ser usado como a seleção de escravo para aquela
porta.
 Pino 8: RE0/RD/AN5
PORTE começa do pino 8 ao pino 10 e esta também é uma porta de saída de entrada bidirecional.
Pode ser a entrada analógica 5 ou para a porta paralela escrava pode atuar como um pino de ‘controle de leitura’ que estará
ativo baixo.
 Pino 9: RE1/WR/AN6
Pode ser a entrada analógica 6 e para a porta de escravo paralelo, ele pode atuar como o ‘controle de gravação’ que estará ativo
baixo.
 Pino 10: RE2/CS/A7
Pode ser a entrada analógica 7, ou para a porta de escravo paralelo, ele pode atuar como o ‘controle de seleção’, que também
estará ativo, assim como os pinos de controle de leitura e gravação.
 Pino 11 e 32: VDD
Esses dois pinos são a oferta positiva para os pinos de entrada/saída e lógica.
Ambos devem estar conectados a 5V.
 Pino 12 e 31: VSS
Esses pinos são a referência do solo para entrada/saída e pinos lógicos.
Eles devem estar conectados ao potencial 0.
 Pino 13: OSC1/CLIN
Esta é a entrada do oscilador ou o pino de entrada do relógio externo.
 Pino 14: OSC2/CLKOUT
Este é o pino de saída do oscilador.
Um ressonador de cristal está conectado entre os pinos 13 e 14 para fornecer relógio externo ao microcontrolador. ¼ da
frequência de OSC1 é emitido por OSC2 no caso do modo RC.
Isso indica a taxa de ciclo de instrução.

 Pino 15: RC0/T1OCO/T1CKI


O PORTC consiste em 8 pinos.
É também uma porta de saída de entrada bidirecional. Deles, o pino 15 é o primeiro.
Pode ser a entrada do relógio do Timer 1 ou a saída do oscilador do Timer 2.
 Pino 16: RC1/T1OSI/CCP2
Pode ser a entrada do oscilador do Timer 1 ou a saída Capture 2 Input/Compare 2 Saída/PWM 2.
 Pino 17: RC2/CCP1
Pode ser a captura 1 entrada/comparar 1 saída/PWM 1 saída.
 Pino 18: RC3/SCK/SCL
Pode ser a saída para os modos SPI ou I2C e pode ser a entrada/saída para o relógio serial síncrono.

 Pino 23: RC4/SDI/DAS


Pode ser o dado SPI no pino. Ou no modo I2C pode ser pino de entrada/saída de dados.
 Pino 24: RC5/SDO
Pode ser os dados fora do SPI no modo SPI.
 Pino 25: RC6/TX/CK
Pode ser o clock síncrono ou o pino de transmissão assíncrono USART.
 Pino 26: RC7/RX/DT
Pode ser o pino de dados síncrono ou o pino de recepção USART.
 Pino 19,20,21,22,27,28,29,30
Introdução e recursos do microcontrolador PIC16F877A Página 3 de 8
Todos esses pinos pertencem a PORTD, que é novamente uma porta de entrada e saída bidirecional.
Quando o barramento do microprocessador deve ser interfaceado, ele pode atuar como a porta escrava paralela.
 Pino 33-40: PORT B
Todos esses pinos pertencem ao PORTB.
Dos quais RB0 pode ser usado como pino de interrupção externo e RB6 e RB7 podem ser usados como pinos de depuração no
circuito.

NOTA:
Todos os pinos possuem múltiplas funcionalidades.
Como os pinos PORTC podem ser usados como pinos de entrada digital, pinos de saída digital, para comunicação UART,
comunicação I2C.
Mas podemos usar uma função de cada porta de cada vez ou você deve programá-la de forma inteligente para poder alternar entre
diferentes funcionalidades.
Como quando você precisa de um pino para ler o sinal analógico, defina-o para fins analógicos e depois mude para outras funções,
como saída digital, etc.
Para iniciantes, sugerimos usar um pino para funcionalidade única e você pode usar o modo multifuncional, uma vez que você
torne-se um especialista em programação.

COMO PROGRAMAR AS PORTAS DE ENTRADA E SAÍDA


 Como estudamos 5 portas de entrada e saída, nomeadamente PORTA, PORTB, PORTC, PORTD e PORTE, que podem ser
digitais e analógicas.
 Vamos configurá-los de acordo com nossos requisitos.
Mas no caso do modo analógico, os pinos ou as portas só podem atuar como entradas.
Há um conversor A para D embutido que é usado em tais casos.
Circuitos multiplexadores também são usados.
 Mas no modo digital, não há restrição.
Podemos configurar as portas como saída ou como entrada.
Isso é feito por meio de programação.
Para PIC, o compilador preferível é o mikro C pro, que pode ser baixado de seu site.
 Existe um registrador chamado ‘TRIS’ que controla a direção das portas.
Para diferentes portas existem diferentes registradores como TRISA, TRISB etc.
 Se definirmos um bit do registrador TRIS para 0, o bit da porta correspondente atuará como a saída digital.
 Se definirmos um bit do registrador TRIS para 1, o bit da porta correspondente atuará como a entrada digital.
 Por exemplo, para definir todo o portb como saída, podemos escrever a instrução do programa como:

 Agora a porta atuará como a porta de saída e podemos enviar qualquer valor na saída, como

 FF representa todos os 1s em binário, ou seja, FF=11111111, agora todos os pinos da porta b estão altos.
Se conectarmos LEDs em todos os pinos, todos eles começarão a brilhar nessa condição.
 Se quisermos negar os valores da porta b, podemos usar a instrução:

 Agora todos os pinos da porta b estarão baixos.

COMPILADOR PARA MICROCONTROLADOR PIC16F877A


 Três compiladores populares que são usados para programar microcontroladores pic são MPLAB XC8, Mikro C for PIC,
compilador PIC CCS e compilador Hi-Tech.
 O compilador oficial é o compilador MPLAB XC8 que é desenvolvido pelos fabricantes de PIC16F877A.
 Geralmente, recomendamos o Mikro C para compilador de pic para iniciantes e o compilador MPLAB XC8 para aqueles
que desejam aprender programação de microcontroladores de PIC a partir de conceitos bare metal de nível de registro.
 Você pode consultar nosso artigo de compiladores de microcontroladores de fotos de lista para obter mais detalhes.

Introdução e recursos do microcontrolador PIC16F877A Página 4 de 8


PRINCIPAIS CARACTERÍSTICAS DO MICROCONTROLADOR PIC16F877A
Como todos os outros microcontroladores, o PIC16F877A também fornece recursos úteis integrados, conforme mencionado nesta
lista:
 Módulo conversor analógico para digital
Possui módulo ADC de 8 bits que consiste em 8 canais.
Podemos usar 8 sensores analógicos com este microcontrolador.,
 Temporizadores
Fornece três temporizadores timer0, timer1 e timer2.
Todos esses temporizadores podem ser usados no modo de temporizador ou no modo de contador.
Esses temporizadores são usados para gerar atrasos, modulação de largura de pulso, contagem de eventos externos e
interrupções de temporizador.
TIMER0 é um temporizador de 8 bits e pode operar com frequência de clock interna ou externa.
Quando usamos Timer0 no modo timer, normalmente o operamos com frequência interna e no modo contador, acionamos com
fonte de clock externa.
Da mesma forma, TIMER1 é um temporizador de 16 bits e também pode operar em ambos os modos.
TIMER2 também é de 8 bits.
É usado com PWM como base de tempo para o módulo CCP.
 EEPROM
Também possui memória interna somente leitura apagável eletricamente 256 x 8 bytes que pode ser usada para armazenar
dados permanentemente, mesmo que o microcontrolador esteja desligado, os dados permanecerão lá. Geralmente é usado com
projetos relacionados a fechaduras eletrônicas.
 Módulos PWM
Também fornece 2 módulos CCP.
CCP significa captura comparar módulos PWM.
Podemos facilmente gerar dois sinais PWM com este microcontrolador.
A resolução máxima que ele suporta é de 10 bits.
Você pode ler o PWM usando o tutorial do microcontrolador PIC16F877A para obter mais informações e programação.
 Pinos de comunicação serial ou UART
Suporta um canal UART.
Os pinos UART são usados para comunicação serial entre dispositivos digitais.
O pino RC7 é um pino transmissor ou RX que é o pino número 26.
RC6 é um pino receptor ou Tx que é o pino número 25.
Para mais detalhes, consulte este guia completo sobre comunicação serial usando o microcontrolador PIC16F877A.

 Comunicação I2C
O PIC16F877A também suporta comunicação I2C e possui um módulo para comunicação I2C.
Os pinos 18/RC3 e 23/RC4 são pinos SCL e SDA, respectivamente.
SCL é uma linha de relógio serial e SDA é uma linha de dados serial.
O tutorial de comunicação I2C ajudará você a entender melhor.
 Interrupções
As interrupções têm aplicações maravilhosas no campo de sistemas embarcados.
Se você não sabe sobre interrupções, sugiro que você compreenda completamente sobre elas, você não obterá comando sobre a
programação incorporada delas.
O microcontrolador PIC16F877A fornece 8 tipos de interrupções: Interrupções externas, interrupções de temporizador,
interrupções de mudança de estado PORT, interrupção UART, I2C, interrupções PWM.
Você pode ler este guia sobre interrupções do microcontrolador PIC para obter informações adicionais.
 Módulo comparador
Possui um módulo comparador composto por dois comparadores.
Eles são usados para comparação de sinais analógicos semelhantes aos comparadores em circuitos eletrônicos.
Os pinos de entrada para esses comparadores são RA0, RA1, RA2 e RA3 e a saída pode ser medida através de RA4 e RA5.
 Watchdog timer:
WDT é um oscilador separado no chip que funciona livremente.
É um oscilador separado do OSC1/CLKI.
O WDT também funcionará mesmo se o dispositivo estiver no modo de suspensão.
Ele é usado para acordar o dispositivo do modo de suspensão e também para gerar a reinicialização do temporizador do
watchdog.
 Modo de suspensão
PIC16F877A também fornece operação em modo de suspensão.
Neste modo, o dispositivo opera com potência muito baixa.
Todos os periféricos consomem uma quantidade mínima de corrente.
Introdução e recursos do microcontrolador PIC16F877A Página 5 de 8
Acorde do modo de suspensão a partir de recursos de interrupções como interrupção de timer1, interrupção de uart, operação
de conclusão de gravação de EEPROM e muitos outros.
 Detecção de brown out
Também possui um circuito de detecção de brown out que detecta a queda significativa na tensão da fonte de alimentação.
Se a tensão de alimentação cair de um certo limite, ele irá gerar um sinal de interrupção.
Este bit de configuração (BODEN) é usado para desabilitar ou habilitar este circuito.
 Reinicialização de brown out:
Esta opção reinicializa o dispositivo após a detecção de sinal de interrupção de brown out do sinal BODEN, se a tensão de
alimentação ficar abaixo do limite por mais de 100 microssegundos.
 Proteção de código programável, reset Brown out ocorrerá e o dispositivo permanecerá resetado até que a tensão suba para
seu valor nominal.
O dispositivo verifica a voltagem a cada 72ms.

Alguns outros recursos importantes estão listados abaixo:


 Energia na redefinição
 Grupo de osciladores múltiplos
 Depurador do circuito no circuito
 Programação em série no circuito
 Programação de ICSP de baixa tensão

CÓDIGO PARA ACENDER UM ÚNICO LED/LED PISCANDO


Este é um tutorial simples sobre como piscar um LED com o microcontrolador PIC16F877A.
Usamos o compilador Mikro C for PIC para escrever este código.

Se você está apenas começando com a programação de microcontroladores PIC, você pode verificar este tutorial no Mikro C para
PIC:
 Escrevendo seu primeiro programa usando Mikro C para compilador de imagens
 Programação de microcontrolador Pic em c usando Mikro c para pic

Este código é usado para alternar o número do pino PORTC zero com o atraso de quinhentos milissegundos.
Dentro da função main esta linha inicializa o RB0 como pino de saída digital.

Depois disso, o loop é usado, porque queremos alternar o LED repetidamente.


Dentro do loop, essas linhas tornam o RB0 Digital High por 500ms.

Introdução e recursos do microcontrolador PIC16F877A Página 6 de 8


E da mesma forma essas linhas, desligue o LED por 500ms.

DIAGRAMA DE CIRCUITO PARA PISCAR LED COM PIC16F877A

 Projete este circuito no proteus. Conecte os pinos com a fonte, terra e oscilador conforme explicado na seção de
descrição dos pinos.
 Conecte o oscilador de 8 MHz com OSCI e OSC2 através de dois capacitores de 22 pico farad.
 Forneça 5 volts ao pino de reset através do resistor de 10k ohm. O resistor não é mostrado na simulação, mas você deve
conectar o resistor enquanto faz o circuito praticamente.
 Um LED é conectado no pino 33 RB0, um resistor é usado para limitar a corrente e evitar que o LED queime. Escreva e
compile o programa em mikro C pro.
 Grave o microcontrolador com o arquivo hexadecimal clicando duas vezes no controlador no proteus e execute o circuito
com sucesso. melhor maneira de aprender qualquer microcontrolador é verificar sua folha de dados.
Introdução e recursos do microcontrolador PIC16F877A Página 7 de 8
 Pic kit3 é um programador famoso usado para fazer upload de código para chips de microchip, Como programar usando
Pic kit3 é uma boa fonte para ler.
<Download do DataSheet PIC16F877A>

Introdução e recursos do microcontrolador PIC16F877A Página 8 de 8

Você também pode gostar