Circuitos de microcontrolador

Circuitos de microcontrolador

Jump to TINA Main Page & General Information 

TINA suporta muito (PIC, AVR, Arduino, 8051, HCS, STM, BRAÇO, TI-Tiva, TI-Sitara, Infineon-XMCmicrocontroladores; novos MCUs são constantemente adicionados. Você pode ver, modificar e depurar o programa em execução no processador e, claro, você pode criar seu próprio código.

Existem duas maneiras de fornecer o programa para microcontroladores no TINA. Você pode usar o código binário e o arquivo de depuração feitos por um compilador padrão (por exemplo, MPLAB para PICs) ou você pode apenas carregar seu código assembly para executar e depurar no TINA usando seu depurador assembler embutido.

Criando um circuito contador simples usando um microcontrolador PIC com programação em linguagem assembly

Criando um circuito contador simples usando um microcontrolador PIC com programação em linguagem C

Depuração básica de microcontroladores usando TINA

Em TINA microcontroladores pode ser simulado não só sozinho, mas também em conjunto com analógico, digital, HDL ou outros modelos.

Executando e editando o código do MCU

Carregue o circuito PIC Flasher.TSC da pasta ExamplesMicrocontrollersPic.

O seguinte esquema usando o microcontrolador 16F73 PIC aparecerá com o microcontrolador 16F73 PIC:

Circuitos de microcontrolador, imagem 1

Este circuito simplesmente conta para frente um por um. aperte o botão para ver como funciona.

A tela deve avançar um por um.

Clique duas vezes no MCU para ver o código ASM nele. (veja mais detalhes no manual Quick Start).

A TINA tem um ótimo recurso pelo qual você pode editar e alterar o código-fonte diretamente no TINA.

Vamos fazer a seguinte mudança no código:

Altere a instrução (selecionada acima) na linha 25 (você pode ver o número da linha no canto inferior direito da janela do editor de código):

de addlw 01H

adicionar 02H

Salve o código alterado em TINA pressionando o botão ícone e feche as janelas abertas do MCU.

Se você pressionar o botão agora, o incremento será 2!

Observe que o código alterado será salvo automaticamente no arquivo TINA .TSC.

Usando o depurador

Vamos ver outro aplicativo com mais interatividade.

Carregue o exemplo PIC16F84interrupt_rb0.TSC de TINA da pasta ExamplesMicrocontrollersPic.

Pressione o botão botão. Parece a princípio que nada está acontecendo.

No entanto, se você clicar no interruptor SW-HL1, o monitor avançará pelo 1 cada vez que o interruptor mudar de baixo para alto.

A capacidade de tratamento de interrupções do PIC nos permitirá detectar alterações no switch.

Agora vamos ver a operação com mais detalhes usando o depurador ASM interativo da TINA.

Para ativar o depurador, selecione Opção no menu Análise. Em seguida, defina a caixa de seleção "Ativar depurador de código de MCU", conforme mostrado abaixo na caixa de diálogo Opções de análise.

Pressione o botão OK e o depurador da MCU aparecerá:

Vamos seguir a execução do programa passo-a-passo pressionando o botão Trace Into botão.

Após cerca de 14 cliques chegamos ao PT1: label onde o programa parece estar em um loop infinito.

PT1: INCF TEMP, F GOTO PT1

Agora clique no interruptor SW-HL1 e mude para Alto. (Você deve clicar quando o cursor se transformar em uma seta apontando para cima Î). Volte para o Depurador e clique no Trace Into button duas vezes. O programa reconhecerá a interrupção e entrará no


NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT

incremente o COUNTER e copie para PORT A e a saída será 1. Depois disso, o programa retornará ao “loop infinito” no PT1.

Editando o código no depurador

Agora vamos fazer uma pequena alteração no programa para demonstrar o uso do depurador. Duplique a declaração F do INCF COUNTER, F usando Copy and Paste como este:

        INT_SERV:
        INCF COUNTER, F 
        INCF COUNTER, F 
        MOVF COUNTER, 0
        MOVWF PORTA    

Agora, quando você pressionar o o programa perguntará:

Pressione Sim e pressione o botão novamente. Agora, o incremento será 2 em cada alteração Low-High do switch.

Você também pode verificar o circuito no modo de execução contínua do depurador, pressionando o botão botão.

Mesmo que o depurador seja executado rapidamente, você ainda pode ver o "ciclo infinito" e, em seguida, o salto para a parte do servidor de interrupção (INT_SERV:) quando você altera a opção.

Fazendo um breakpoint

Usando o modo passo-a-passo, muitas vezes é impossível chegar a um ponto específico no programa. Mesmo se você for paciente o suficiente para pisar mil passos, o fluxo do programa pode não permitir que você vá aonde quiser.

Para parar em determinada linha, você pode marcar a declaração de destino, definindo um "ponto de interrupção".

Execute o programa no modo contínuo do depurador usando o Execute o comando e agora o programa irá parar na linha desejada antes de executar o comando marcado.

Para demonstrar isso, clique na instrução de incremento em nosso servidor de interrupção após o rótulo INT_SERV: e pressione o botão Alternar botão de pausa.

Agora pressione o Botão Executar. O programa começa a rodar em um "ciclo infinito".

Mesmo que você tenha definido um ponto de interrupção, a execução do código não será interrompida porque nunca chegará ao ponto de interrupção. No entanto, quando você alterar o interruptor de baixo para alto, o programa será interrompido na declaração marcada:

   INT_SERV:
             INCF COUNTER, F

Agora você pode continuar passo a passo ou no modo de execução