Programação de PIC em C Exposição das funções básicas para programar microcontroladores PIC.
Transcript of Programação de PIC em C Exposição das funções básicas para programar microcontroladores PIC.
Programação de PIC em C
Exposição das funções básicas paraprogramar microcontroladores PIC
Pinagem do 16F628A (18)
DECLARAÇÃO DE VARIAVEIS• Para utilizar variáveis de controle no programa é
necessário indicar para o software o tipo de variável a ser utilizada. Os tipos básicos são mostrados a seguir:
• INT valor inteiro.
Ex.:
int x;
x = 5;• CHAR caractere.
Ex.:
char letra;
letra = ‘a’;
FUNÇÕES PARA ESCRITA NOS PORT’S DE I/O
• OTPUT_Z(X) Onde ‘X’ é o valor em decimal dos pinos em
que se deseja executar a escrita e ‘Z’ é o nome da porta de i/o.
Ex.: output_b(255) => representa todos os pinos da porta B acionados.
B0 B1 B2 B3 B4 B5 B6 B7 1 1 1 1 1 1 1 1 output_b(0) => representa todos os pinos da
porta B desacionados. B0 B1 B2 B3 B4 B5 B6 B7 0 0 0 0 0 0 0 0
• OUTPUT_LOW(Y) Utilizado quando deseja-se comandar um pino
separadamente. Onde ‘Y’ é o ‘valor’ do pino. Ex.: output_low(48) => representa a escrita de
nível lógico baixo no pino de saída B0. B0 B1 B2 B3 B4 B5 B6 B7 0 x x x x x x x output_low(49) => representa a escrita de nível
lógico baixo no pino de saída B1. B0 B1 B2 B3 B4 B5 B6 B7 x 0 x x x x x x
• OUTPUT_HIGH(Y)
Utilizado quando deseja-se comandar um pino separadamente.
Onde ‘Y’ é o ‘valor’ do pino.
Ex.: output_high(48) => representa a escrita de nível lógico alto no pino de saída B0.
B0 B1 B2 B3 B4 B5 B6 B7
1 x x x x x x x
output_high(49) => representa a escrita de nível lógico alto no pino de saída B1.
B0 B1 B2 B3 B4 B5 B6 B7
x 1 x x x x x x
FUNÇÕES PARA LEITURA DOS PORT’S DE I/O
• INPUT(X) Lê o estado lógico no pino especificado
por ‘X’. Ex.: Z = input(pin_b0) => armazena em z
o valor lógico contido no pino B0.• INPUT_Y( ) Lê o estado lógico da porta especificada
por ‘Y’. Ex.: Z = input_b( ) => armazena em z o
valor lógico contido nos oito pinos de entrada da porta B.
EXEMPLO DE PROGRAMA PARA ASCENDER E APAGAR LED’S
#include <16f628a.h> //biblioteca do microcontrolador a ser utilizado.
#use delay(clock=4000000) //velocidade de clock do hardware.
void main() //função principal do programa.
{
output_b(255); //todos os pinos do port b em ‘1’.
delay_ms(1000); //conta um tempo de 1 segundo.
output_b(0); //todos os pinos do port b em ‘0’.
delay_ms(1000); //conta um tempo de 1 segundo.
}
COMANDO DE DECISÃO• IF ( condição) // se (verdadeiro)
{ comandos // comandos caso condição seja verdadeira.
}
ELSE
{ comandos // comandos caso condição seja falsa.
}
* Condição pode ser qualquer operação que retorne verdadeiro ou falso.
EXEMPLO DE PROGRAMA PARA DECISÃO
#include <16f628a.h> //biblioteca do microcontrolador a ser utilizado.
#use delay(clock=4000000) //velocidade de clock do hardware.
void main() //função principal do programa.
{
x = input(pin_a0);
if (x ==1)
{
output_b(15);
delay_ms(1000); //conta um tempo de 1 segundo.
}
else
{
output_b(0); //todos os pinos do port b em ‘0’.
delay_ms(1000); //conta um tempo de 1 segundo.
}
}
Problema
• Objeto da questão.• Um problema será uma pergunta (ou, situação)
de caráter geral a ser respondida (ou, resolvida).
• Um problema é descrito identificando-se:– quais são os possíveis dados (ou entradas);– quais são os possíveis resultados (ou saídas);– que condições (ou relações) devem ser satisfeitas
para que um particular resultado seja uma saída aceitável para uma certa entrada.
Lógica
• Trata da correção do pensamento, do raciocínio.
• Arte de pensar corretamente.
Givanildo é mais velho que Durvalino.
Durvalino é mais velho que Alzemiro.
Portanto, Givanildo é mais velho que Alzemiro
Algoritmo
• Algoritmo é uma seqüência de passos que visam atingir um objetivo determinado.
• Um algoritmo pode ser visto como uma seqüência de ações executáveis para a obtenção de uma solução para um determinado tipo de problema.
• Receita de bolo.
Programa
• O processamento de dados é feito pela execução de programas.
• Um programa é uma seqüência de instruções codificadas em uma linguagem de programação e para ser executado precisa ser armazenado na memória do computador.
• Programar é basicamente estruturar dados e construir algoritmos.
• Software, Sistemas de Computador.
Linguagem de Programação
• Software, através símbolos (convenções) permite exprimir de uma forma “natural”o raciocínio algorítmico.
• Linguagens Estruturadas– Pascal, Clipper, C, Cobol
• Linguagens Orientadas a Objetos– Delphi, C++, Java
Formas de Representação de Algoritmos
• Descrição Narrativa
• Fluxograma Convencional
• Pseudocódigo, Linguagem Estruturada ou Portugol
• Fluxograma de Chapin
Descrição Narrativa
• representação dos algoritmos diretamente em linguagem natural (receita de bolo)
Troca de um pneu furado:Afrouxar ligeiramente as porcasSuspender o carroRetirar as porcas e o pneuColocar o pneu reservaApertar as porcasAbaixar o carroDar o aperto final nas porcas
Fluxograma Convencional
• É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintas.
• detalhes físico da implementação do algoritmo
Simbologias Básica
Início e final do fluxograma
Operação de entrada de dados
Operação de saída de dados
Operações de atribuição e chamada ouretorno de subalgoritmo
Decisão
Fluxo da informação (dado)
Início
N1, N2
Média (N1 + N2) / 2
Média>=7
Reprovado
Aprovado
Fim
.V.
.F.
Pseudocódigo, Portugol
• assemelha-se bastante à forma em que os programas são escritos
Programa Aprovação;var N1, N2, Média: real;início leia(N1, N2); Média (N1 + N2) / 2; Se Média >= 7 Então Escreva(“Aprovado”) Senão Escreva(“Reprovado”);fim.
Fluxograma de Chapin
Leia(N1, N2)
Média (N1 + N2) / 2
Média >= 7
imprima(Aprovado) imprima(Reprovado)
V F
• Criado por NED CHAPIN a partir dos trabalhos de NASSI & SHNEIDERMAN
Método para Construção de Algoritmos• Ler atentamente o enunciado.• Retirar do enunciado a relação das entradas de
dados.• Definir a relação das saídas.• Determinar o que deve ser feito para
transformar entradas determinadas nas saídas especificadas
• Construir o algoritmo.• Executar o algoritmo (teste de mesa).
Desenvolvimento de Programas• De posse de um bom algoritmo, a tarefa
a seguir é expressá-lo em uma determinada linguagem de programação, envolvendo as seguintes etapas:– Implementação (refinamento e codificação);– Certificação (depuração e verificação);– Análise de eficiência;– Documentação.
Seqüencial (ou composição)
• Na estrutura seqüencial os comandos são executados numa seqüência pré-estabelecida.
• Cada comando é executado somente após o término do comando anterior.
• início - fim
início
Comando 1;
Comando 2;
...
Comando N;
fim;
verdadeira
A
Condiçãofalsa
B
se Condição então A senão B;
No caso da Condição avaliada ser verdadeira, o comando A é executado e, após seu término, o fluxo de execução prossegue pela próxima instrução após a instrução se.
Quando a Condição é falsa, o comando B é executado e o fluxo prossegue normalmente pela primeira instrução após a instrução se.
verdadeira
A
Condiçãofalsa
repetição(loop)
enquanto Condição faça A;
Ao início da construção enquanto a Condição é testada. Se seu resultado for falso,então o comando no seu interior não é executado e a execução prossegue normalmentepela instrução seguinte a instrução enquanto.
Se a condição for verdadeira o comando A é executado e ao seu término retorna-se aoteste da condição. Assim, o processo acima será repetido enquanto a condição testadafor verdadeira. Quando esta for falsa, o fluxo de execução prosseguirá normalmentepelas instruções posteriores a instrução enquanto.