aula 3 - introdução à programação de microcontroladores.pdf
TRANSCRIPT
Aula 3 - Introdução à Programação
de Microcontroladores
Engenharia Elétrica/Computação
Microcontroladores e Microprocessadores
Fernando Rocha
Tópicos
• Linguagens e Compiladores
• Assistente de Criação de Programas (Wizard)
• Estrutura de um programa em C (PICC CCS )
• Comandos de controle de programa.
• Comandos de entrada e saída digital (I/O).
Linguagens e Compiladores
• Assembly ▫ MPLAB
• C ▫ MikroC, CCS PICC, Hitech PICC, MPLAB C18
• Basic ▫ MikroBasic
• Diagrama de blocos ▫ Flowcode
Linguagem C • Linguagem de programação de uso geral
desenvolvida no início da década de 70.
• Programação procedural (paradigma imperativo) . ▫ Especificação das etapas que um programa
deve seguir para alcançar um estado desejado.
▫ Chamadas a subrotinas (funções).
• Várias outras linguagens de programação foram baseadas na linguagem C.
• Uma das linguagens mais utilizadas de todos os tempos.
Linguagem C
• Arquivo de código (Source Code)
▫ terminado com a extensão .c
▫ contém a implementação do código
▫ é compilado gerando um arquivo .o
• Arquivo de cabeçalho (Header File)
▫ terminado com a extensão .h
▫ contém apenas defines e protótipos
▫ não é compilado
Estrutura de um programa em C (PICC CCS )
Bibliotecas Headers Defines
Código executado durante as
interrupções
Função Principal Ponto de partida
do programa
Linguagem C
• Tipos de dados:
▫ Toda informação que é inserida num computador é armazenada em formato binário
▫ Cada tipo de informação contém uma quantidade diferente de bits
▫ Cada bit pode representar informações diferentes, mesmo dentro de uma mesma variável
Tipos de dados (CCS PicC)
Tipo Tamanho Unsigned Signed
int1 1 bit 0 a 1 N/A
int8 8 bit 0 a 255 -128 a 127
int16 16 bit 0 a 65535 -32768 a 32767
int32 32 bit 0 a 4294967295 -2147483648 a 2147483647
float32
32 bit -1.5 x 1045 a 3.4 x 1038
C Standard Type Default Type
short int1
char unsigned int8
int int8
long int16
long long int32
float float32
Comandos de controle de programa
• If if (expr) stmt-1; [else stmt-2;]
• Switch
switch (cmd) { case 0:printf("cmd 0"); break; case 1:printf("cmd 1"); break; default:printf("bad cmd"); break; }
Comandos de controle de programa
• For for (i=1;i<=10;++i) printf("%u\r\n",i);
• While
while (get_rtcc()!=0) putc('n');
• Do-While
do { putc(c=getc()); } while (c!=0);
O Loop Infinito • Os sistemas embarcados geralmente executam uma
mesma tarefa, de maneira repetitiva, durante todo o seu funcionamento.
• Código principal é colocado dentro de um loop infinito:
Linguagens e Compiladores
• Compilador PICC da Empresa CCS ▫ Programação em C com funções simplificada e
otimizadas para os periféricos do microcontrolador PIC.
Assistente de Criação de Programas (Wizard)
• O compilador PICC possui um assistente para a criação de programas, que facilita o processo de criação de um programa, configurando o microcontrolador e os periféricos.
• Opções de configuração do microcontrolador
▫ Device: microcontrolador a ser utilizado.
▫ Oscilator Frequency: frequencia do oscilador do PIC (interno ou externo).
Assistente de Criação de Programas (Wizard)
• Tipo de oscilador: dependente do
microcontrolador .
• Opções de segurança em hardware: ▫ Power-Up Timer ▫ Brown-Out Reset ▫ Watchdog Timer ▫ Porta de Reset
• Configurações de Hardware
Comandos de entrada e saída digital
• set_tris_x(value) ▫ Define o valor do registro de direção das portas de E/S. O valor ’1’ define
a porta como entrada e ‘0’ como saída.
• output_high(pin) ▫ Coloca o pino informado em nivel lógico ‘1’ (alto).
• output_low(pin)
▫ Coloca o pino informado em nivel lógico ‘0’ (baixo).
• output_toggle(pin) ▫ Inverte o estado do pino informado.
• input(pin)
▫ Retorna o estado do pino informado.