Circuitos de microcontrolador

Circuitos de microcontrolador

Jump to TINA Main Page & General Information 

TINA suporta muito (PIC, AVR, Arduino8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC, ESP32 ) microcontroladores; novos MCUs são constantemente adicionados. Você pode ver, modificar e depurar o programa em execução no processador e, é claro, 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.

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

Simulação do microcontrolador ESP32C3

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

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

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

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 em 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 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

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 na chave SW-HL1 e mude para High. (Você deve clicar quando o cursor mudar para uma seta apontando para cima Î). Volte para o Debugger e clique no botão 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

Pressione Sim e pressione o

Você também pode verificar o circuito no modo de execução contínua do depurador, pressionando 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

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

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