Interrupções no microcontrolador 8051 e estrutura e programação

Experimente Nosso Instrumento Para Eliminar Problemas





Os recursos mais poderosos e importantes são as interrupções em Microcontrolador 8051 . Na maioria dos processos em tempo real, para lidar com certas condições de forma adequada, a tarefa real deve ser interrompida por algum tempo - ela executa a ação necessária - e então deve retornar à tarefa principal. Para a execução desse tipo de programa, são necessárias interrupções. É totalmente diferente do método de pesquisa em que o processador deve verificar sequencialmente cada dispositivo e perguntar se o serviço é necessário ou não, enquanto consome mais tempo do processador.

Interrupções no microcontrolador 8051

Interrupções no microcontrolador 8051



As interrupções no microcontrolador 8051 são mais desejáveis ​​para reduzir a verificação de status regular dos dispositivos de interface ou dispositivos embutidos. Interromper é um evento que suspende temporariamente o programa principal, passa o controle para uma seção de código especial, executa a função relacionada ao evento e retoma o fluxo do programa principal de onde havia parado.


As interrupções são de tipos diferentes, como software e hardware, mascaráveis ​​e não mascaráveis, interrupções fixas e vetoriais e assim por diante. A rotina de serviço de interrupção (ISR) entra em cena quando ocorre uma interrupção e, em seguida, diz ao processador para tomar a ação apropriada para a interrupção e, após a execução de ISR, o controlador salta para o programa principal.



Tipos de interrupções no microcontrolador 8051

O microcontrolador 8051 pode reconhecer cinco eventos diferentes que fazem o programa principal interromper a execução normal. Estas cinco fontes de interrupções no 8051 são:

  1. Interrupção de estouro do temporizador 0 - TF0
  2. Interrupção de estouro do temporizador 1 - TF1
  3. Interrupção de hardware externo - INT0
  4. Interrupção de hardware externo - INT1
  5. Interrupção de comunicação serial - RI / TI

As interrupções Timer e Serial são geradas internamente pelo microcontrolador, enquanto as interrupções externas são geradas por dispositivos de interface ou interruptores conectados externamente ao microcontrolador. Essas interrupções externas podem ser disparadas por borda ou por nível. Quando ocorre uma interrupção, o microcontrolador executa a rotina de serviço de interrupção para que a localização da memória corresponda à interrupção que a habilita. A interrupção correspondente ao local da memória é fornecida na tabela de vetores de interrupção abaixo.

Tabela de vetor de interrupção

Tabela de vetor de interrupção

Estrutura de interrupção do microcontrolador 8051

Após 'RESET', todas as interrupções são desabilitadas e, portanto, todas essas interrupções devem ser habilitadas por um software. Em todas essas cinco interrupções, se qualquer um ou todos estiverem ativados, isso define os sinalizadores de interrupção correspondentes, conforme mostrado na figura. Todas essas interrupções podem ser definidas ou apagadas por bit em algum registro de função especial que é Interrupt Enabled (IE), e isso por sua vez depende da prioridade, que é executada pelo registro de prioridade de interrupção de IP.


Estrutura de interrupção do microcontrolador 8051

Estrutura de interrupção do microcontrolador 8051

Registro de habilitação de interrupção (IE): Este registro é responsável por habilitar e desabilitar a interrupção. É um registro endereçável por bits no qual o EA deve ser definido como um para permitir interrupções. O bit correspondente neste registro habilita interrupções específicas como temporizador, entradas externas e seriais. No registro IE abaixo, o bit correspondente a 1 ativa a interrupção e 0 desativa a interrupção.

Registro de habilitação de interrupção (IE)

Registro de habilitação de interrupção (IE)

Registro de prioridade de interrupção (IP): Também é possível alterar os níveis de prioridade das interrupções definindo ou apagando o bit correspondente no registro de prioridade de interrupção (IP), conforme mostrado na figura. Isso permite que a interrupção de baixa prioridade interrompa a interrupção de alta prioridade, mas proíbe a interrupção por outra interrupção de baixa prioridade. Da mesma forma, a interrupção de alta prioridade não pode ser interrompida. Se essas prioridades de interrupção não forem programadas, o microcontrolador executa de maneira predefinida e sua ordem é INT0, TF0, INT1, TF1 e SI.

Registro de IP

Registro de IP

Registro TCON: Além dos dois registros acima, o registro TCON especifica o tipo de interrupção externa para o microcontrolador 8051, conforme mostrado na figura. As duas interrupções externas, sejam disparadas por borda ou por nível, são especificadas por este registro por um conjunto ou apagadas por bits apropriados nele. E, também é um registro endereçável de bits.

Registro TCON

Registro TCON

Interromper programação em 8051

1. Programação de interrupção do temporizador

As interrupções do temporizador 0 e do temporizador 1 são geradas pelos bits de registro do temporizador TF0 e TF1. Essas interrupções programação por código C envolve:

  • Seleção do temporizador configurando o registro TMOD e seu modo de operação.
  • Escolher e carregar os valores iniciais de TLx e THx para os modos apropriados.
  • Habilitando os registros do IE e o bit do temporizador correspondente nele.
  • Definir o bit de execução do cronômetro para iniciar o cronômetro.
  • Escrever a sub-rotina para o temporizador para o tempo necessário e limpar o valor do temporizador TRx no final da sub-rotina.
Programação de interrupção do temporizador

Programação de interrupção do temporizador

2. Programação de interrupção de hardware externa

Os microcontroladores 8051 consistem em duas interrupções de hardware externas: INT0 e INT1 conforme discutido anteriormente. Eles são habilitados no pino 3.2 e no pino 3.3. Eles podem ser acionados por borda ou por nível. No disparo de nível, o baixo no pino 3.2 permite a interrupção, enquanto no pino 3.2 - a transição de alto para baixo permite a interrupção disparada por borda. Este disparo de borda ou disparo de nível é decidido pelo registro TCON que foi discutido acima. O procedimento de programação em 8051 é o seguinte:

  • Habilite o bit correspondente de interrupção externa no registro do IE.
  • Se for disparo de nível, basta escrever a sub-rotina apropriada para esta interrupção, ou então habilitar o bit de registro TCON correspondente à interrupção disparada por borda - seja INT0 ou INT1.
Programação de interrupção de hardware externo

Programação de interrupção de hardware externo

3. Programação de interrupção de comunicação serial

As interrupções de comunicação serial surgem quando há necessidade de enviar ou receber dados. Uma vez que um bit de interrupção é definido para ambos os sinalizadores TI (Interrupção de transferência) e RI (Interrupção do receptor), a rotina do serviço de interrupção deve examinar esses sinalizadores para saber a interrupção real.

A operação lógica OR desses dois sinalizadores (RI es TI) causa essa interrupção e ela é limpa apenas pelo software. Aqui, um registro especial SCON é usado para controlar comunicação operação ativando os bits correspondentes.

  • Configure o registro do IE para permitir a interrupção serial
  • Configure o registro SCON para receber ou transferir a operação
  • Escreva a sub-rotina para esta interrupção com a função apropriada e apague os sinalizadores TI ou RI com esta rotina.
Programação de interrupção serial

Programação de interrupção serial

Trata-se de interrupções no microcontrolador 8051, tipos, sua estrutura e programação. Espero que você tenha recebido boas informações deste artigo. Além disso, você pode escrever para nós na seção de comentários abaixo para a implementação em tempo real de projetos de microcontroladores para que possamos ajudá-lo para uma melhor experiência prática.

Créditos fotográficos