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á:
