Portas de Entradas/Saídas Digitais
As portas de I/O podem ser endereçadas bit a bit. Os registradores que exercem essas funções são: P0, P1, P2 e P3. Esses registradores estão localizados nos endereço 80H, 90H, A0H e B0H. Cada bit desses registradores representa um pino que pode funcionar como entrada digital ou saída digital.
Estrutura Interna de um Pino
A Figura abaixo ilustra a estrutura interna de um pino da porta P1. Basicamente, este circuito é composto por um elemento de memória (P1.X latch) e de sinais de controle. Os sinais de controle têm como função indicar a operação realizada, isto é, leitura ou escrita do estado do pino.
A saída invertida do latch é conectada a um transistor. Quando o bit N da porta está em 1, os pinos ficam em nível lógico 1 devido ao resistor de pullup interno. Nessa condição, o pino funciona como uma entrada e seu estado dependerá do que estiver conectado externamente. Agora, quando o bit N da porta está em 0, o pino funciona como um saída em nível lógico 0.
Acessando as Portas do 8051
Várias instruções podem ser utilizadas para acessar as portas. Instruções de movimentação de dados podem ser utilizadas para escrever diretamente nos 8 bits da porta, ou realizar a leitura desses 8 bits. Porém, as instruções booleanas podem ser utilizadas quando é necessário realizar a leitura ou escrita de um único bit. Isso é possível pois as portas podem ser endereçadas bit a bit. De modo geral:
MOV <porta>,<valor>: Movimentação de dados (8 bits), em que <porta> = <valor>;
MOV <valor>,<porta>: Movimentação de dados (8 bits), em que <valor> = <porta>;
SETB <bit>: faz bit = 1;
CLR <bit> : faz bit = 0;
JB <bit>,<label>: testa bit, e se for igual a 1 salta para o label;
JNB <bit>,<label>: testa bit, e se for igual a 0 salta para o label.
A utilização dessas instruções é mostrada no exemplo abaixo, em que uma chave está conectada ao pino P1.4.
Interrupções Externas
Dois pinos da porta 3 (P3.2-INT0 e P3.3-INT1) podem ser utilizados para gerar uma interrupção externa. Nesse caso, o registrador TCON, ilustrado na Figura abaixo, deve ser utilizado para configurar o modo de disparo da interrupção, isto é, se o evento será detectado por nível baixo ou por borda de descida. Nesse registrador também são definidas as flags que indicam qual interrupção ocorreu. O registrador TCON pode ser endereçado bit a bit e está localizado no endereço 88H.
Os quatros bits menos significativos são utilizados para as interrupções externas:
IE1: Interrupt 1 Edge Flag – Seu valor é determinado pelo hardware.
0: Quando a rotina de interrupção é processada.
1: Quando o hardware detecta o evento de interrupção externa.
IT1: Interrupt 1 Type Control.
0: trigger por nível baixo.
1: trigger por borda de descida.
IE0: Equivalente ao IE1 (para rotina localizada no endereço 0013H).
IT0: Equivalente ao IT1.
A configuração da INT0 é mostrada no trecho de código abaixo.
A configuração da INT1 é mostrada no trecho de código abaixo.
Last updated