Obwody mikrokontrolera

Obwody mikrokontrolera

Jump to TINA Main Page & General Information 

TINA obsługuje wiele (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) mikrokontrolery; nowe MCU są stale dodawane. Możesz zobaczyć, zmodyfikować i debugować program uruchomiony w procesorze i, oczywiście, możesz utworzyć swój własny kod.

Istnieją dwa sposoby dostarczenia programu dla mikrokontrolerów w TINA. Możesz użyć kodu binarnego i pliku debugowania utworzonego przez standardowy kompilator (np. MPLAB dla PIC) lub możesz po prostu załadować kod zespołu, aby uruchomić i debugować w TINA za pomocą wbudowanego debugera asemblera.

Tworzenie prostego obwodu licznika za pomocą mikrokontrolera PIC z programowaniem w asemblerze

Tworzenie prostego obwodu licznika za pomocą mikrokontrolera PIC z programowaniem w języku C

Podstawowe debugowanie mikrokontrolera przy użyciu TINA

W TINA mikrokontrolery można symulować nie tylko samodzielnie, ale także razem z analogowymi, cyfrowymi, HDL lub innymi modelami.

Uruchamianie i edycja kodu MCU

Załaduj obwód PIC Flasher.TSC z folderu ExampleMicrocontrollersPic.

Poniższy schemat wykorzystujący mikrokontroler 16F73 PIC pojawi się wraz z mikrokontrolerem PIC 16F73:

Obwody mikrokontrolera, obraz 1

Ten obwód po prostu liczy do przodu jeden po drugim. wciśnij przycisk, aby zobaczyć, jak to działa.

Wyświetlacz powinien przesuwać się jeden po drugim.

Kliknij dwukrotnie MCU, aby zobaczyć w nim kod ASM. (więcej szczegółów w podręczniku Szybki start).

TINA ma świetną funkcję, dzięki której możesz edytować i zmieniać kod źródłowy bezpośrednio w TINA.

Pozwala dokonać następującej zmiany w kodzie:

Zmień instrukcję (wybraną powyżej) w wierszu 25 (możesz zobaczyć numer linii w prawym dolnym rogu okna edytora kodu):

z addlw 01H

do addlw 02H

Zapisz zmieniony kod w TINA, naciskając ikona i zamknij otwarte okna MCU.

Po naciśnięciu przycisk teraz, przyrost będzie 2!

Zauważ, że zmieniony kod zostanie automatycznie zapisany w pliku TINA .TSC.

Korzystanie z debugera

Zobaczmy inną aplikację o większej interaktywności.

Załaduj przykład PIC16F84interrupt_rb0.TSC TINA z folderu ExamplesMicrocontrollersPic.

Naciśnij przycisk. Na początku wydaje się, że nic się nie dzieje.

Jeśli jednak klikniesz przełącznik SW-HL1., Wyświetlacz przesunie się do przodu o 1 za każdym razem, gdy przełącznik zmieni się z niskiego na wysoki.

Możliwość obsługi przerwań PIC pozwoli nam wykryć zmiany przełączników.

Teraz zobaczmy operację bardziej szczegółowo za pomocą interaktywnego debugera ASM TINY.

Aby aktywować debuger, wybierz opcję w menu Analiza. Następnie ustaw pole wyboru „Włącz debuger kodu MCU”, jak pokazano poniżej w oknie dialogowym Opcje analizy.

Naciśnij przycisk OK i pojawi się debuger MCU:

Prześledźmy wykonanie programu krok po kroku, naciskając Śledź przycisk.

Po kliknięciach 14 docieramy do etykiety PT1:, gdzie program znajduje się w nieskończonej pętli.

PT1: TEMP INCF, F GOTO PT1

Teraz kliknij przełącznik SW-HL1 i zmień go na High. (Należy kliknąć, gdy kursor zmieni się w strzałkę skierowaną do góry Î). Wróć do debuggera i kliknij Śledź przycisk dwa razy. Program rozpozna przerwanie i wskoczy do


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

zwiększyć LICZNIK i skopiować do PORTU A, a wyjściem będzie 1. Po tym program powróci do „nieskończonej pętli” w PT1.

Edycja kodu w debuggerze

Teraz dokonajmy niewielkiej zmiany w programie, aby zademonstrować użycie debuggera. Powiel instrukcję INCF COUNTER, F za pomocą funkcji Kopiuj i Wklej w ten sposób:

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

Teraz, gdy naciśniesz program zapyta:

Naciśnij Tak i naciśnij ponownie. Teraz przyrost będzie 2 przy każdej zmianie niskiego poziomu przełącznika.

Możesz również sprawdzić obwód w trybie ciągłego działania debuggera, naciskając przycisk.

Nawet jeśli debugger będzie działał szybko, nadal można zobaczyć „cykl nieskończony”, a następnie skok do części serwera Przerwanie (INT_SERV:) po zmianie przełącznika.

Tworzenie punktu przerwania

Korzystając z trybu krok po kroku, często niemożliwe jest uzyskanie określonego punktu w programie. Nawet jeśli jesteś wystarczająco cierpliwy, aby wykonać tysiąc kroków, przepływ programu może nie pozwolić Ci na krok, gdzie chcesz.

Aby zatrzymać się w określonym wierszu, możesz oznaczyć instrukcję docelową, ustawiając „punkt przerwania”.

Uruchom program w trybie ciągłym debuggera za pomocą Uruchom polecenie, a teraz program zatrzyma się w żądanej linii przed wykonaniem zaznaczonego polecenia.

Aby to wykazać, kliknij instrukcję przyrostową w naszym serwerze przerwań po etykiecie INT_SERV: i naciśnij klawisz Przełącz przełącznik.

Teraz naciśnij Przycisk Uruchom. Program zaczyna działać w „nieskończonym cyklu”.

Nawet jeśli ustawiłeś punkt przerwania, wykonanie kodu nie zatrzyma się, ponieważ nigdy nie dotrze do punktu przerwania. Jednak po zmianie przełączenia z niskiego na wysoki program zatrzyma się na zaznaczonym oświadczeniu:

   INT_SERV:
             INCF COUNTER, F

Teraz możesz kontynuować krok po kroku lub w trybie Run