Anda di halaman 1dari 34

Programao em c para

microcontroladores
Solander Patrcio Lopes Agostinho
Porque usar linguagem C?
Caractersticas:
Estruturada;
Alto nvel (comparada ao Assembly);
Facilidade de acesso ao hardware;
Portabilidade;
Curva de aprendizagem reduzida;
Reutilizao de cdigo;
Estrutura bsica
Comentrios...
So Utilizados para:
Documentao do software;
Excluso de linhas durante a compilao.
Comentrios de linha simples:
//este um comentrio de linha simples
Comentrios de Mltiplas linhas:
/*
este um comentrio de
mltiplas linhas
*/
Representao numrica
Decimal:
valorDecimal = 125;
Binrio:
PORTA=0b11010011;
Hexadecimal:
valor_hexa = 0xA4;
Octal:
valorOctal=075;
Caracter:
valorCaracter = A;
Tipos de dados
Limitao nos dados (Int)...
Limitao nos dados (float)...
Regra de declarao de variaveis
Um varivel declarada da seguinte forma:
<qualificador> + <tipo de dado> + <nome da varivel> + <valor>;
Obs.: onde o valor pode ou no ser inicializado.
Exemplos:
unsigned int valor = 12345;
int contador;
short y;
...Em subrotinas
Declarao global...
Operadores...
Abreviao de operadores
If-else...
Switch...
Comando for...
While... Do-While
Acendendo um led
Neste exemplo o objetivo acender um led. para isso utiliza-se uma
nica sada do pic16f628a , esta sada por sua vez esta ligada atravs
de um resistor a um led que indica o funcionalidade do exemplo.
Cdigo
Pisca-Pisca
exemplo de um pisca pisca feito com leds, como poder ser visto no cdigo fonte este ira piscar a cada
350 ms (milisegundos), e colocara a sada do pic em nvel lgico alto ou baixo.
Cdigo
Produzir um circuito para executar o cdigo
abaixo
#use delay(clock=4000000)

#define PINOLED PIN_A1 //Pino ao qual o led esta ligado

void main()
{
while (1)
{
output_bit(PINOLED, TRUE); // Liga o Led
delay_ms(5000); // Aguarda 5 segundos
output_bit(PINOLED, FALSE); // Desliga o Led
delay_ms(2000); // Aguarda 2 segundos
}
}
Acionar o led com ajuda de um boto
Este projeto tem a funo de acionar um led por boto, onde o led
somente ira acender quando for solto o boto e ira apagar quando for
apertado e solto novamente.
Cdigo fonte...
Exerccios
Criar um projeto com 4 leds que piscam num intervalo de 350 ms
sequencialmente
Criar um projeto um projeto que acine dois leds pressionando um
boto.
Aps este processo, mudar o circuito para acender somente um dos leds
quando for pressionado o boto
Acionar led com chave
o exemplo a seguir tem como funo ligar e desligar um led.O que diferencia
do exemplo anterior que agora alem da sada referente ao led tem tambm
uma entrada acomoda a chave liga e desliga.
Cdigo
Corredor de leds
Codigo
Boto de trava
Este exemplo usa duas chaves, ligadas a duas entradas do microcontrolador e consequentemente
um led ligado numa sada do port_b, sua funcionalidade a seguinte, o led
s ira acender se for ligado e desligado a primeira chave, mais desde que no seja apertado o boto 2
Cdigo...
Atividade em grupo: LED-RGB
Descrio do problema
possvel acender cada uma das cores com diferentes intensidades, resultando em
cores diferentes das primrias. Como o PIC possui apenas um canal PWM, utilizaremos a
interrupo do TIMER1 e trs portas do PIC, emulando um canal PWM.

Para cada interrupo gerada, uma variavel (i) incrementada e comparada com as
variveis (R, G, B), se o valor de (i) menor, a porta ter nvel lgico 1, caso for maior a
porta ter nvel lgico 0.

No Circuito coloquei apenas 3 botes para incrementar os valores das cores.

O timer1 deve ser configurado para disparar a cada 100us, com um clock de 8Mhz

Anda mungkin juga menyukai