Académique Documents
Professionnel Documents
Culture Documents
umento
A linguagem C
Introduo a Linguagem C
At este pondo do curso, estudamos vrios tpicos fundamentais para o
desenvolvimento do nosso curso, conhecemos a histria dos microcontroladores,
estudamos os recursos e estruturas de hardware do PIC18F452 e aprendermos a
compilar e editar um programa no compilador mikroC.
Chegou o momento de aprendermos a programar em linguagem C os
microcontroladores PIC. Antes de estudarmos os conceitos da linguagem, devemos
saber que a linguagem C trata-se de uma linguagem complexa e de difcil assimilao
para programadores inexperientes. Procuraremos abordar o contedo e estrutura da
linguagem baseando-se em exemplos de programas, pois dessa forma, ficar muito mais
claro para o aluno entender a linguagem.
Acompanhe o exemplo abaixo:
//Primeiro Programa
/* Programa Pisca -Pisca (1 segundo)
Este programa tem por objetivo ascender e apagar um led conectado no
pino RB0 do PIC em intervalos de 1 segundo aproximadamente;
Curso Online: Microcontroladores PIC - Programao em C
*/
void main()
{
trisb = 0;
portb = 0;
while(1)
{
portb.f0 = 1;
//seta pino RB0
Delay_ms(1000); //aguarda 1000 ms (milisegundos)
portb.f0 = 0;
//resseta pino RB0
Delay_ms(1000);
// aguarda 1 segundo
}
}
A operao portb.f0 = 0 faz com que o pino RB0 do PORTB seja colocado em
nvel lgico 0;
Desta forma, ao programarmos o PIC com o programa exemplo, o pino RB0 ficar
mudando de estado lgico 1 e 0 a cada 1 segundo,
trisd = 0;
portd = 0;
while(1)
{
portb = 255;
portd = 255;
Delay_ms(100);
portb = 0;
portd = 0;
Delay_ms(100);
}
}
O programa acima tem por objetivo piscar infinitamente o portb e portd do PIC em
intervalos de 100 milissegundos. Suas caracteristicas so parecidas com a do programa
anterior, sua nica diferena esta no tratamento das portas;
portb = 255;
portd = 255;
//representao decimal
Representao Hexadecimal:
Para representar um nmero em hexadecimal devemos colocar o prefixo 0x (ou 0X)
antes do nmero hexadecimal. (0 a F)
portb = 0xBB;
ou
portb = 0Xbb;
Representao binria:
Para representarmos um nmero em binrio devemos colocar o prefixo 0b (ou 0B) antes
do nmero em binrio.
portb = 0b10111011;
ou
portb = 0B10111011;
Exerccios 01:
Gostaramos de enviar aos pinos do PORTB os seguintes estados;
RB0 = 0
RB1 = 1
BR2 = 1
RB3 = 0
RB4 = 0
RB5 = 1
RB6 = 0
RB7 = 0
Qual o valor numrico que devemos colocar na instruo abaixo para representar os
estados dos pinos do PORTB. Obedea as representaes numricas solicitadas:
Representao decimal:
portb = X; ?
Representao binria:
portb = X; ?
Representao hexadecimal:
portb = X; ?
Representao octal:
portb = X; ?
Representao binria:
portb = 0b00100110;
Representao hexadecimal:
portb = 0x26;
Representao octal:
portb = 046;