Você está na página 1de 3

MECATRÔNICA

LPAM – Linguagem de Programação Aplicada à Mecatrônica

AULA 05: PROGRAMAÇÃO MCU

DIRETIVAS – ENTRADAS E SAÍDAS (CONFIGURAÇÃO)

DIRETIVAS

Diretivas podem ser descritas como comandos dados ao compilador, indicado a ações que devem ser
feitas no momento da compilação. Elas podem ou não gerar código que efetivamente vai ser executado
pelo microcontrolador, já que sua função é orientar a compilação do programa.

#include
A diretiva #include permite incluir arquivos de cabeçalho e bibliotecas de funções.

Exemplo:
#include <P18F4520.h> // inclui um arquivo de definição do PIC

#include <spi.h> // inclui a biblioteca de funções SPI.c

É como se, ao se chegar a essa diretiva, o compilador "colasse"(incluísse) o conteúdo do arquivo apontado.

#define

Esta diretiva é muito útil pois permite "apelidar “um trecho de texto por um nome. #define define que
um nome representa o texto imediatamente a seguir, de forma que quando da compilação toda ocorrência
desse nome seja substituído pelo texto. Vejamos os exemplos a seguir:

Exemplo:

#define VALOR MAXIMO 125

#define LED POTRDbits.RD0

#define ACENDE LED LED = 1

No primeiro exemplo, o valor 125 foi chamado de VALOR MAXIMO. Esse tipo de construção é útil
quando temos um limite ou constante que queremos usar em diferentes partes do código,
mas que pode mudar seu valor devido a alguma necessidade do projeto. Chamando de VALOR MAXIMO
o valor 125, se for necessário mudá-lo para, por exemplo, 203 basta alterar na definição, e não em todos
os pontos do código.
No segundo caso, usamos #define para atribuir um nome a um pino do microcontrolador. Dessa forma,
não precisamos fazer sempre referência ao pino, chamamo-lo por seu apelido LED. Isto facilita o
entendimento do código e possíveis alterações na configuração do hardware.

No último caso usamos #define para apelidar um trecho de código, criando o que é conhecido
como macro.

ENTRADAS E SAÍDAS

Os registros que controlam a direção dos pinos dos portais, isto é, o registro TRISx, podem ser
acessados por dois nomes: TRISx (TRISA, TRISB, TRISC, etc...) e DDRx (DDRA, DDRB, DDRC, etc.).
DDRx vem de Direction Data Register - Registro de Direção de Dados. Pode-se configurar o PORT todo
de uma vez ou os registros individualmente. O exemplo a seguir trata do PORTB, mas o mesmo raciocínio
pode ser estendido aos demais PORTs. Exemplo:

Para tornar o código mais compreensível e facilitar alterações na configuração de hardware podemos
usar a diretiva #define para atribuir nomes aos pinos dos portais, conforme apresentado a seguir. Exemplo:
EXERCÍCIO:

1. Crie um projeto onde cada chave aciona um LED, conforme a tabela abaixo. Utilize o hardware da
maleta EXSTO.

Chaves LEDs
RB0 RD7
RB1 RD6
RB2 RD5
RB3 RD4
RB4 RD1
RB5 RD3
RB6 RD0
RB7 RD2

Você também pode gostar