Схемы микроконтроллеров ( МПУ )
TINA v7 и выше поддерживают множество PIC, AVR и 8051 микроконтроллеров; новые МПУ постоянно пополняются. Можно просмотреть, изменить и отладить программу, запуская их в процессоре и, конечно, вы можете создать свой собственный код.
Существует два способа обеспечения программы для микроконтроллеров в TINA. Вы можете использовать бинарный код и производить отладку файла, созданного стандартным компилятором (напр. MPLAB для PIC) или вы можете просто загрузить сборку кода, чтобы запустить и отладить в TINA, используя встроенный ассемблер-отладчик.
Запуск и редактирование кода МПУ
Загрузите схему PIC Flasher.TSC из папки Examples\Microcontrollers\Pic. Появится следующая схема, использующая 16F73 PIC и 16F73 PIC микроконтроллеры.
чтобы увидеть, как она работает. Дисплей должен шагнуть вперед
Дважды нажмите на МПУ, чтобы увидеть ASM код в нем. (подробнее см. руководство по быстрому старту).
В TINA есть интересная особенность, посредством которой вы можете редактировать изменять исходный код прямо в TINA.
Сделаем следующие изменения в коде. Измените иструкцию (выбранную выше) в строке 25 (вы можете увидеть номер строки в правом нижнем углу окна редактора кода)
из
addlw 01H
на
addlw 02HСохраните измененный код в TINA, нажав значок и закройте открытые окна МПУ. Если вы сейчас нажмете кнопку , приращение будет 2! Отметим, что измененный код будет автоматически сохранен в TINA .TSC файле.
Использование отладчика
Давайте посмотрим другое приложение с большим взаимодействием.
Загрузите пример PIC16F84interrupt_rb0.TSC из папки Examples\Microcontrollers\Pic.
Нажмите кнопку . На первый взгляд кажется, что ничего не происходит.
Однако, если вы нажмете на SW-HL1 ключ, дисплей будет шагать вперед на 1 каждый раз, как ключ изменит состояние с Низкого на Высокое. Возможность PIC обработки прерываний позволяет обранужить переключения ключа.Посмотрим работу более подробно, используя интерактивный ASM отладчик TINA.
Для включения отладчика выберите Опции в меню Анализ. Затем установите “флажок Включить отладчик МПУ кода”, как показано ниже в окне Опций анализа.
Нажмите кнопку OK, затем появится MCU отладчик:
Проследим за выполнением программы шаг за шагом, нажимая кнопку Войти в блок. После примерно 14 нажатий, мы попадем в PT1: метка, где программа, кажется, попала в бесконечный цикл.
PT1: INCF TEMP, F GOTO PT1
Теперь нажмите на SW-HL1 ключ и измените его в Высокий уровень. (Вы должны
нажать, когда курсор изменится на стрелку, направленную вверх Î).
Возвращайтесь к Отладчику и нажмите кнопку Войте в блок дважды .
Программа узнает прерывание и перепрыгнет в метке
NT_SERV: .увеличит СЧЕТЧИК и скопирует ПОРТ A, а выход станет 1. После этого программа вернется к “бесконечному циклу” в PT1.INT_SERV:
INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
Редактирование кода в отладчике
Сделаем маленькое изменение в программе, чтобы продемонстрировать использование отладчика. Дублируйте INCF COUNTER, F оператор, используя Копировать и Вставить как здесь:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Теперь, когда вы нажмете программа спросит:
Нажмите да и кнопку еще раз. Теперь приращение будет равно
2 при каждом изменении состояния ключа Низкий-Высокий уровень.
Можете проверить схему в режиме непрерывной Работы
отладчика, нажав кнопку . Даже несмотря на то, что отладчик будет быстро работать, вы по-прежнему сможете видеть “бесконечный цикл’, а затем перепрыгнуть в части прерывания сервера ( INT_SERV: ) когда вы измените ключ.
Создание точки останова
Используя пошаговый режим, часто невозможно добраться до определенной точки в программе. Даже если вы достаточно терпеливы, чтобы пройти тысячу шагов, поток программы возможно не позволит вам дойти туда, куда вы хотите. Чтобы остановиться на определенной линии, можно пометить целевой оператор, установив "точку останова". Запустите программу в непрерывном режиме отладчика, используя команду Запустить, и затем программа остановится в необходимой строке, перед выполнением помеченной команды.
Чтобы продемонстрировать это, нажмите на оператор инкремента в нашем сервере прерываний после метки INT_SERV: и нажмите кнопку Тумблера .
Далее нажмите кнопку Запустить . Программа начнет работать в
“бесконечном цикле”. Даже если вы установите точку останова, выполнение кода не остановится, так как мы никогда не попадем в точку останова. Однако, при изменении состояния ключа из Низкого в Высокий уровень, программа остановится в помеченном операторе:
INT_SERV: INCF COUNTER, FТеперь вы можете продолжать либо пошагово либо в рабочем режиме