top of page

Os microcontroladores possuem entradas e saídas digitais e essas são totalmente configuráveis e podem receber ou enviar somente dados digitais logicamente, ou 0 ou 1, em outras palavras, podem estar em nível baixo ou em nível alto. Essas portas variam em quantidade e posição de acordo com o microcontrolador usado e portanto faz-se necessário conhecê-lo lendo o seu datasheet. Os pinos digitais são nomeados por letras e números. Para esse tópico usaremos o PIC16F628A. A figura abaixo lista todos os pinos do nosso microcontrolador.

ENTRADAS E SAÍDAS DIGITAIS

Perceba que logo no pino 1 tem escrito RA2 indicando que ali é o pino digital A2 que pode servir como entrada ou saída, isso veremos mais adiante. Há também descrito nesse pino outras coisas como AN2 que indica o pino analógico 2. Para conhecer todos os pinos e suas funcionalidades leia o datasheet do PIC16F628A que pode ser encontrado facilmente através de uma busca no Google ou no próprio site do fabricante,a MICROCHIP.

PROGRAMAÇÃO PARA PINOS DIGITAIS.​

 

A programação para portas digitais conta com alguns comandos básicos, são eles:

 

                  Output_high (nome_pino);  Configura o pino como saída de dados (Output) digitais em nível alto (high).

                  Output_low (nome_pino);  Configura o pino como saída de dados (Output) digitais em nível baixo (low).

 

O campo nome_pino deve ser preenchido com a palavra PIN_ seguida do nome do pino. Exemplo:

 

                  Output_high (PIN_A0);

 

Dessa forma eu configuro o pino digital A0 para ser saída em nível alto.

 

Da mesma forma acontece com o comando Output_low (...)

 

A entrada, ou captura, de dados digitais é realizada por um só comando:

 

                  Input (nome_pino);

 

Esse comando recebe algum valor digital (0 ou 1) e portanto deve possuir alguma variável para captura do mesmo. Exemplo: int X = Input (PIN_A0);

 

 

EXEMPLIFICANDO...

 

 

Vamos a um programa exemplo usando portas digitais? Que tal acender algum LED com o PIC? O programa a seguir faz isso.



​While(TRUE)

{

       Output_high(PIN_A0);

       Delay_ms(1000);

}

 

O esquema de ligações elétricas para esse código será:

 

bottom of page