Entradas e Saídas Digitais do Intel 8051

Instruções do Intel 8051 Mapa de Memória no Intel 8051 8051 Arquitetura Intel 8051

Este artigo apresentará as portas de entradas e saídas digitais do Intel 8051. O 8051 dispõe de quatro portas de entrada/saída que são utilizadas para conectar o microcontrolador ao meio externo. Cada porta é composta por 8 bits, em que cada bit representa um pino específico. Ao todo 32 pinos de entrada/saída podem ser utilizados, contudo alguns pinos podem assumir funções específicas de acordo com um periférico, ou ainda para realizar o acesso a memórias externas. Assim, esse artigo apresentará a estrutura da porta P1. Cabe ressaltar que o mesmo conceito é aplicado às outras portas, embora suas estruturas sejam diferentes.

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 1 mostra 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.

Esquema de um pino da porta P1
Figura 1: Esquema de um pino da porta P1 [1].

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 2, 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.

Registrador TCON
Figura 2: Registrador TCON [1].

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.

Referências

  • [1] MCS® 51 Microcontroller Family User’s Manual.
  • Crédito da Imagem Destacada.

Outros artigos da série

<< Interrupções e Subrotinas no Intel 8051Temporizador/Contador no Intel 8051 >>
Veja + conteúdo

Fascinado por computação, especialmente na interface entre hardware e software, me engajei na área de sistemas embarcados. Atuo com desenvolvimento de sistemas embarcados e sou docente da Faculdade de Engenharia de Sorocaba.

Para mais informações: https://about.me/fdelunogarcia

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Comentários:
Notificações
Notificar
guest
2 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Souza
Souza
05/11/2016 19:29

De boas curtindo cada parte.

Ricardo Munhoz
Ricardo Munhoz
31/10/2016 17:23

Muito bom .. estou ficando viciado nisso.
Ah, Fernando e Francesco me desculpe pelos meus “devaneios” sobre o oscilador. Estou aprendendo rsrs

Talvez você goste:

Séries



Outros da Série

Menu