A maior rede de estudos do Brasil

Grátis
85 pág.
Apostila.PIC16F877.CCS

Pré-visualização | Página 7 de 23

possa operar em tensões de alimentação diferentes, 
uma fonte de alimentação DC de 5V é a mais adequada. O circuito mostrado na figura 
3.4 utiliza um circuito integrado de três terminais LM7805, um regulador positivo que 
oferece alta qualidade de estabilidade de tensão e corrente suficiente para permitir que o 
microcontrolador e periféricos eletrônicos funcionem normalmente (o suficiente, aqui, 
significa 1A). 
 Para que o microcontrolador possa operar corretamente, uma lógica (VCC) deve 
ser aplicado sobre o pino de reset (pino 1). O botão conectando o pino MCLR ao GND 
não é necessário. No entanto, é quase sempre fornecido, pois permite que o 
microcontrolador seja resetado manualmente, fazendo com que este retorne às 
condições normais de funcionamento, caso algo dê errado. Ao pressionar este botão, o 
pino é levado a 0V, o microcontrolador é reiniciado e começa a execução do programa 
desde o início. Um resistor de 10K é usado para permitir que o pino MCLR vá a 0V, 
através do botão, sem curto-circuitar com o nível de 5V DC. Esse resistor é chamado de 
resistor de “pull-up”, pois é conectado entre o VCC e o pino. 
 Mesmo que o microcontrolador possua um oscilador interno, ele não pode 
operar sem componentes externos que estabilizam o seu funcionamento e determinem 
sua freqüência (velocidade de operação do microcontrolador). Dependendo do elemento 
em uso para estabilizar a frequência, bem como suas freqüências, o oscilador pode 
operar em quatro modos diferentes: 
 
LP - Cristal de Baixa Potência; 
XT - Cristal/Ressonador; 
HS - Cristal de Alta Velocidade e 
RC - Resistor/Capacitor. 
 
 Quando o cristal de quartzo é utilizado para a estabilização da freqüência, o 
oscilador funciona com uma frequência precisa, que não é afetado por mudanças na 
temperatura e tensão de alimentação. Esta frequência é geralmente indicada na 
embalagem do crysal. Além do cristal, os capacitores C1 e C2 também devem ser 
conectados conforme esquema abaixo. Os valores previstos para C1 e C2 na tabela a 
seguir devem ser considerados como uma recomendação e não como uma regra rígida. 
 
 
 
Curso – Microcontroladores PIC e Linguagem C 
Prof. Fagner de Araujo Pereira 
 25
 
 
Figura 3.4 – Circuito de alimentação, reset e oscilador para o PIC 16F877. 
 
 Como visto na figura acima, trata-se de um circuito simples, mas nem sempre é 
assim. Se o dispositivo de destino é utilizado para controlar grandes máquinas ou 
dispositivos de suporte a vida, tudo fica cada vez mais complicado. No entanto, esta 
solução é suficiente por enquanto. 
 Independentemente do fato de que o microcontrolador é um produto de 
tecnologia moderna, este é inútil se não estiver ligado a alguns componentes adicionais. 
Simplificando, o aparecimento de tensões nos pinos do microcontrolador não significa 
nada se não for utilizado para a realização de determinadas operações, tais como ligar 
ou desligar LEDS, relés, ler botões ou chaves, exibir dados em um display de 7 
segmentos ou display de LCD etc. 
 Nos capítulos que se seguem, serão abordadas as técnicas de programação em 
linguagem C, bem como a utilização do micocontrolador para realizar tarefas que vão 
desde acender/apagar um LED, até tarefas mais complexas como escrita em um LCD ou 
mesmo a comunicação entre dois microcontroladores. 
 No final desta apostila, encontra-se o datasheet resumido do PIC16F877, 
contendo as principais informações necessárias para o desenvolvimento de aplicações 
utilizando esse microcontrolador. 
 
Curso – Microcontroladores PIC e Linguagem C 
Prof. Fagner de Araujo Pereira 
 26
 
 
Introdução à 
Linguagem C 
 
 Assim como o uso de uma linguagem não está limitada apenas a livros e revistas, as 
Linguagens de Programação não estão estritamente relacionadas com algum tipo especial de 
computador, processador ou Sistema Operacional. C é atualmente uma linguagem de 
programação de alto nível e de uso geral. Entretanto, o fato da não associatividade da 
linguagem C a nenhuma máquina pode causar problemas durante a sua utilização, 
dependendo das peculiaridades de cada máquina em que está se programando (isto poderia 
ser comparado ao uso de diferentes dialetos de uma linguagem). 
 
 
4.1 Introdução 
 
 A idéia associada a escrever um programa na linguagem C é quebrar um grande 
problema em vários problemas menores, mais simples de serem resolvidos. Suponha, 
por exemplo, que é necessário escrever um programa para o microcontrolador para 
realizar a medição de temperatura e mostrar o resultado em um display de cristal 
líquido. O processo de medir é feito com o uso de um sensor apropriado, que converte a 
temperatura em uma tensão proporcional. O microcontrolador usa seu conversor A/D 
para converter essa tensão (analógica) em um número (digital) que é então enviado para 
o LCD através de vários fios. Assim, o programa é dividido em quatro partes que 
precisam ser executadas na ordem correta, como seguem: 
 
 
 
 
1. Ativar e ajustar o conversor A/D; 
2. Realizar a medição do valor analógico; 
3. Calcular a temperatura; 
4. Enviar os dados de forma apropriada para o display. 
 
 
 
 
 
 
Capítulo 4 
Curso – Microcontroladores PIC e Linguagem C 
Prof. Fagner de Araujo Pereira 
 27
 Para facilitar a compreensão da linguagem C, vejamos primeiramente um 
exemplo de programa: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Vejamos o significado de cada linha do programa. 
 A primeira linha do programa: 
 
// Primeiro exemplo 
 
é chamada de comentário. Os comentários não são interpretados pelo compilador, mas 
são apenas descrições inseridas no código-fonte pelo programador com o intuito de 
documentar o programa e para facilitar o seu entendimento por parte de outros 
programadores que eventualmente farão alterações ou atualizações no programa 
original. 
 Os comentários podem ser de linha simples, como foi mostrado no exemplo 
anterior, e são iniciados por uma barra dupla. Os comentários de linha simples podem 
ser iniciados em qualquer ponto de uma linha e são muito utilizados para descrever o 
funcionamento ao final de cada linha de código. 
 Os comentários também podem ser de múltiplas linhas. Nesse caso, são 
compostos por uma ou mais linhas. Iniciam sempre com os caracteres “/*” para iniciar o 
comentário, e a sequência “*/” para terminar o comentário, como mostra o exemplo 
abaixo: 
 
/* 
Este é um exemplo 
de comentário de 
múltiplas linhas 
*/ 
 
Na próxima linha temos: 
 
#include <16F877A.h> 
 
 O comando #include é uma diretiva do compilador. Neste caso, está 
determinando ao compilador que anexe ao programa o arquivo especificado: 
“16F877A.h”, que é um arquivo que contém todas as informações sobre o 
microcontrolador utilizado, no caso, o PIC 16F877A. Arquivos com extensão do tipo 
“.h” são chamados de arquivos de cabeçalho e são utilizados em C para definir 
variáveis, tipos, símbolos e funções úteis ao programa. 
// Primeiro exemplo 
 
#include <16F877A.h> 
#fuses HS 
#use delay(clock=20M) 
 
main() 
{ 
 output_high(pin_b0); //seta o pino rb0 
 delay_ms(500); //aguarda 500ms 
 output_low(pin_b0); //reseta o pino rb0 
 
} 
 
Curso – Microcontroladores PIC e Linguagem C 
Prof. Fagner de Araujo Pereira 
 28
 Na próxima linha encontramos: 
 
#fuses HS 
 
 Esta é uma diretiva que especifica o estado dos “fusíveis” da palavra de 
configuração do dispositivo. No caso, estamos indicando ao processador que opere com 
a opção HS ou High Speed, isto é, com um cristal de alta velocidade. Existem várias 
outras opções para configurar os fuses, como por exemplo, proteger o código gravado 
no microcontrolador contra leitura, modos de programação, proteção para evitar 
travamentos no caso de uma queda de tensão, etc. 
 Em seguida temos: 
 
#use

Crie agora seu perfil grátis para visualizar sem restrições.