aula 3 - introdução à programação de microcontroladores.pdf

19
Aula 3 - Introdução à Programação de Microcontroladores Engenharia Elétrica/Computação Microcontroladores e Microprocessadores Fernando Rocha

Upload: amauri-silva

Post on 25-Dec-2015

12 views

Category:

Documents


6 download

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

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

Linguagem C

• Comentários:

▫ Uma linha: //comentario

▫ Bloco: /* comentario */

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

Assistente de Criação de Programas (Wizard)

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.

Dúvidas?

[email protected]