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-XMC) 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
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, F
Agora você pode continuar passo a passo