Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Pedro Pedrosa
h"p://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4227622E1
pedrosarf@ifce.edu.br
Prof. Pedro Pedrosa
Ø Visão Geral
• Ambiente integrado de desenvolvimento (IDE): compilador PCWH;
• Plataforma: Windows;
• Abrangência: séries PIC12, PIC14, PIC16 e PIC18;
• Previsão: suporte para dsPIC;
• Módulos:
• PCB: para dispositivos de 12 bits (PIC12 e PIC16C5X);
• PCM: para dispositivos de 14 bits (PIC14000 e PIC16xXXX);
• PCH: para dispositivos de 16 bits (PIC18).
• Os módulos podem ser adquiridos separados ou em um pacote completo;
Abre um arquivo para o editor. Opções: Source, Project, Output, RTF, Flow Chart,
Open
Hex ou Text. Atalho: Ctrl+O
Save Salva apenas o arquivo que está sendo editado. Atalho: Ctrl+S
Exit pedrosarf@ifce.edu.br
Encerra o PCWH Prof. Pedro Pedrosa
Ø Barra de ferramentas aba Project
aba View
pedrosarf@ifce.edu.br
Apresenta os registros especiais para cada tipo de PIC. Prof. Pedro Pedrosa
Special Register
Prof. Pedro Pedrosa
Prof. Pedro Pedrosa
Ø Regras Básica
/* UNIVASF – CENEL
Microcontroladores & Microprocessadores
Este é um comentário em bloco
*/
MODIFICADOR DESCRIÇÃO
Representa tanto números positivos
signed
quanto negativos
unsigned Representa números sem sinal
Determina que a variável tenha um
short
tamanho menor que o tipo modificado
Determina que a variável tenha um
long
tamanho maior que o tipo modificado
OU
tipo var_1;
tipo var_2;
...
tipo var_n;
void main( )
{
int contador = 0; //contador de uso geral
char temp_1, temp_2 = 10; //variáveis auxiliares
...
}
void main( )
{
int conta; //variável local da função main
somatorio = 0; //manipulação da variável global
...
}
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø Declaração de constantes
Duas maneiras:
x = 10;
y = x;
OPERADOR AÇÃO
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Resto de divisão inteira
++ Incremento
-- Decremento
OPERADOR AÇÃO
> Maior que
>= Maior ou igual a
< Menor que
<= Menor ou igual a
== Igual a
!= Diferente de
OPERADOR AÇÃO
&& AND (E)
|| OR (OU)
! NOT (NÃO)
Resultam em V ou F, ex.:
int x, y;
x = 10;
if(x > 5 && x < 15)
{};
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø Lógicos Bit a Bit
Realizam operações matemáticas em relação a um ou mais
dados.
OPERADOR AÇÃO
& AND (E)
| OR (OU)
Decorrência:
100 decimal = 01100100
AND (&)
015 decimal = 00001111
Resultado = 00000100
20 hexadecimal = 00100000
OR (|)
04 hexadecimal = 00000100
Resultado = 00100100
Decorrência:
10 decimal = 00001010
<<
00010100 (1 vez)
<<
Resultado = 00101000 (2 vezes)
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø Lógicos Bit a Bit
Operador >> (Deslocamento a direita)
Exemplo:
10 decimal = 00001010
>>
00000101 (1 vez)
>>
if (condição)
{
<comandos>;
}
else //uso opcional
{
<comandos>;
}
if (condição_1) <comando_1>;
else if (condição_2) <comando_2>;
else <comando_3>;
if aninhados:
if (condição_1)
{
if (condição_2) <comando_1>;
<comando_2>;
}
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø Comando if-else
Exemplo:
if (tecla == 1)
{
led = 1; //condição atendida
}
else
{
led = 0; //condição não atendida
}
OU
while (condição)
{
<comando_1>;
...
<comando_n>;
}
do
{
<comandos>;
} while (condição)
endereco = 0;
do
{
dado = read_adc( );
grava_eeprom_i2c(endereco,dado);
} while(endereco != 0);
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø Comando for
Sintaxe:
goto rotulo;
Exemplo:
int conta = 0;
loop:
conta++;
if(conta <= 10)
goto loop;
int soma(int v1, int v2); int soma(int v1, int v2)
{
void main( ) return v1+v2;
{ }
int res;
res = soma(10 , 20 ); void main( )
} {
int res;
int soma(int v1, int v2) res=soma(10 , 20);
{ }
return v1+v2;
}
void main( )
{
int res, a, b;
printf(“ Digite uma numero a:”);
scanf(“%d”, &a);
res=soma(a , b);
int
vet[30];
float
vet[20];
char
vet[10];
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø Atribuição
int
vet[30];
vet[0]=10;
vet[1]=20;
vet[2]=vet[0]+vet[1];
Sintaxe:
#asm
<código>
#endasm
Sintaxe:
#asm
<código>
#endasm
Exemplo:
#fuses opções
Exemplos:
#fuses HS
#fuses WDT
#fuses PUT
#fuses MCLR
#use rs232(opções)
Exemplo:
#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)