Circuitos de microcontrolador
Circuitos de microcontrolador
Jump to TINA Main Page & General Information
TINA suporta muito (PIC, AVR, Arduino, 8051, 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:


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




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 
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, FAgora você pode continuar passo a passo 
