0% нашли этот документ полезным (0 голосов)
6 просмотров

Burak_Integrir

Методическое пособие описывает использование интегрированной среды MPLAB IDE для разработки программ для микроконтроллеров PICmicro. В нем рассматриваются основные функции среды, включая настройку, создание проектов, компиляцию и отладку программ, а также использование симулятора и окон с переменными. Пособие предназначено для студентов специальностей 'Радиотехника' и 'Радиоэлектронные системы' и включает практические примеры и приложения.

Загружено:

VitaliyG
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
6 просмотров

Burak_Integrir

Методическое пособие описывает использование интегрированной среды MPLAB IDE для разработки программ для микроконтроллеров PICmicro. В нем рассматриваются основные функции среды, включая настройку, создание проектов, компиляцию и отладку программ, а также использование симулятора и окон с переменными. Пособие предназначено для студентов специальностей 'Радиотехника' и 'Радиоэлектронные системы' и включает практические примеры и приложения.

Загружено:

VitaliyG
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
Вы находитесь на странице: 1/ 31

Министерство образования Республики Беларусь

Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра радиотехнических систем

Р
УИ
А.И. Бурак, В.Н. Левкович

БГ
ИНТЕГРИРОВАННАЯ СРЕДА MPLab IDE РАЗРАБОТКИ ПРОГРАММ
ДЛЯ МИКРОКОНТРОЛЛЕРОВ PICmicro ФИРМЫ MICROCHIP
а
ек

Методическое пособие
т

к лабораторным работам по курсу


“Цифровые и микропроцессорные устройства»
ио

для студентов специальностей


39 01 01 «Радиотехника» и 39 01 02 «Радиоэлектронные системы»
бл

всех форм обучения


Би

Минск 2002
УДК 681.325.5-181.48(075.8)
ББК 32.973.26-04 я 73
Б91
Б91 Интегрированная среда Мplab IDE разработки программ для
микроконтроллеров PICmicro фирмы Microchip: Метод. пособие к
лабораторным работам по дисциплине “Цифровые и микропроцессорные
устройства» для студентов спец. 39 01 01 «Радиотехника» и 39 01 02
«Радиоэлектронные системы» всех форм обучения./ А.И. Бурак, В.Н. Левкович

Р
-Мн: БГУИР, 2002.- с.:31 ил. 10.

УИ
ISBN
Бурак А.И.

БГ
а
ек

В методическом пособии рассмотрены основные функции и порядок


работы в интегрированной среде Мplab IDE, предназначенной для написания и
т

отладки программ для однокристальных микроконтроллеров PICmicro.


Материал пособия рассчитан на начинающих пользователей.
ио

УДК 681.325.5-181.48(075.8)
ББК 32.973.26-04 я 73
бл
Би

ISBN
©Бурак А.И., В.Н. Левкович, 2003
© БГУИР, 2003

2
СОДЕРЖАНИЕ
Введение
1. Работа с MPLAB IDE
1.1. Настройка среды проектирования
1.2. Создание нового простого проекта
1.3. Создание нового исходного файла
1.4. Ввод исходного текста программы
1.5. Компиляция исходного файла

Р
1.6. Запуск программы

УИ
1.7. Открытие дополнительных окон
1.8. Использование окон с переменными

БГ
1.9. Точки остановки
2. Среда симулятора MPLAB SIM0
2.1. Функции отладчика MPLAB IDE
а
2.2. Среда симулятора MPLAB SIM
ек

2.3. Характеристики симулятора MPLAB SIM


2.4. Точки остановки и трассировки
т

2.5. Точки остановки по условию


2.6. Функции стимула
ио

Приложение 1. Описание кнопок графического меню MPLAB IDE


Приложение 2. Назначение полей линейки состояния
бл

Приложение 3. Назначение файлов среды MPLAB IDE


Би

3
ВВЕДЕНИЕ
MPLAB IDE– бесплатная интегрированная среда разработки для
микроконтроллеров PICmicro фирмы Microchip Technology Incorporated.
MPLAB IDE позволяет писать, отлаживать и оптимизировать текст программы.
MPLAB IDE включает в себя редактор текста, симулятор и менеджер
проектов, поддерживает работу эмуляторов (MPLAB-ICE, PICMASTER) и
программаторов (PICSTART plus, PRO MATE) фирмы Microchip и других
отладочных средств фирмы Microchip и третьих производителей.

Р
Легко настраиваемые инструментальные средства, тематическая помощь,

УИ
«выпадающие» меню и назначение «горячих» клавиш в MPLAB IDE
позволяют:

БГ
• получить код программы.
• наблюдать выполнение программы с помощью симулятора, определять
время выполнения программы.
а
• просматривать текущее значение переменных и специальных регистров.
ек

• работать с программаторами PICSTAR и PRO MATE II.


• использовать систему помощи по MPLAB IDE.
т

В данном пособии будут рассмотрены следующие модули MPLAB IDE:


• менеджер проекта MPLAB– используется для создания и работы с
ио

файлами, относящимися к проекту.


• редактор MPLAB– предназначен для написания и редактирования
бл

исходного текста программы, шаблонов и файлов сценария линкера.


• MPLAB-SIM симулятор– программный симулятор моделирует
Би

выполнение программы в микроконтроллере с учетом состояния портов


ввода/вывода.
• MPASM ассемблер– компилирует исходный текст программы.

4
1. Работа с MPLAB IDE
1.1. Настройка среды проектирования
Рассмотрим работу в MPLAB IDE на конкретном примере.
Рабочий стол среды (рис.1) состоит из:
1) Главное текстовое меню.
2) Графическое меню.
3) Рабочая область, в которой размещаются открытые окна с файлами,
диалогами или другой информацией.

Р
4) Линейка состояния, отображающая текущую настройку системы.

УИ
БГ
Рис. 1. Рабочий стол среды MPLAB IDE
а
Выберите пункт Options > Development Mode, нажмите кнопку Tools для
ек

выбора инструментального средства и типа микроконтроллера, используемого


в проекте.
т
ио
бл
Би

Рис.2. Меню Development Mode


Выберите симулятор MPLAB SIM и микроконтроллер PIC16F84.
Симулятор инициализирован, в линейке состояния на рабочем столе
появится микроконтроллер «PIC16F84» и режим «SIM». Теперь среда

5
проектирования находится в режиме симулятора для микроконтроллера
PIC16F84.

1.2. Создание нового простого проекта


Для работы симулятора MPLAB SIM нужен код программы (файл с
расширением .HEX), который получается компиляцией исходного текста
программы. В данном примере файл называется tutor84.hex, позже он может
быть загружен непосредственно в микроконтроллер с помощью программатора.

Р
Выберите пункт меню File > New и укажите, где вы хотите сохранить

УИ
проект. В данном случае создается файл tutor84.pjt в каталоге “c:\Program Files
\MPLAB”.

БГ
Тип файла .PJT будет назначен автоматически. Файлы с таким
расширением являются файлами проекта в среде MPLAB IDE.
Подтверждение имени файла проекта и места его размещения приведет к
а
переходу к диалоговому окну установки свойств компиляции. Пока можно
ек

использовать настройки по умолчанию. Нажмите кнопку ОК для сохранения


параметров компиляции и возврату к диалоговому окну настройки проекта.
т

1.3. Создание нового исходного файла


ио

Поставьте курсор в любое место пустого, неназванного файла, который


был создан автоматически при создании нового проекта. Выберите пункт меню
бл

File > Save As... , укажите файл tutor84.asm, нужную директорию и нажмите
кнопку ОК.
Би

На рабочем столе MPLAB IDE будет открыт пустой файл с новым именем.
Имя исходного файла должно быть такое же, как и имя проекта, в данном
случае tutor84. Если изменяется имя исходного файла, также должно быть
изменено имя проекта.

6
1.4 Ввод исходного текста программы
Сохраните приведенный ниже текст в файле tutor84.asm. При
необходимости текст комментария вводится после символа “.”.
List p=16f84
Include <p16f84.inc>
C1 equ 0x0C ;
org 0x00 ;

Р
reset goto start ;
org 0x04 ;

УИ
start movlw 0x09 ;
movwf C1 ;

БГ
loop incfz c1,F ;
goto loop ;
goto bug ;
а
end
ек

1.5. Компиляция исходного файла


Компиляция исходного файла может быть выполнена несколькими
т

способами. Описанный здесь метод использует пункт меню Project > Build All.
После выбора указанного пункта меню исходный текст программы сохраняется
ио

и запускается программа MPASM. Как только компилирование будет


завершено, на экране появится окно результатов (Рис.3).
бл
Би

Рис. 3. Окно результатов компиляции


В последней строке текста программы преднамеренно была сделана
ошибка (подраздел 1.4). При выполнении компилирования MPASM выдаст
7
ошибку о несуществующей метке. Двойной щелчок “мышью” на сообщении об
ошибке перенесет курсор на строку в исходном тексте, где была сделана
ошибка.
Исправьте последнюю строку, замените слово “bug” на “start”.
Вновь дайте команду “выполнить компилирование”– Project > Build All.
После исправления всех ошибок на экране появится окно результатов с
сообщением об успешной компиляции "Build completed successfully". Теперь
можно использовать симулятор для проверки работы программы.

Р
Примечание. При старте компиляции открытые исходные файлы сохраня-

УИ
ются на диске.
1.6. Запуск программы

БГ
Выберите пункт меню Debug > Run > Reset для инициализации системы.
Счетчик команд будет установлен в нуль, что является вектором сброса для
микроконтроллера PIC16F84. В линейке состояния PC будет равен 0x00.
а
Затем выберите пункт меню Debug > Run > Step: темная полоса указывает
ек

на инструкцию в исходном тексте программы, которая будет выполнена


следующей. Значение счетчика программы будет равно «РС:Ох04».
т

Многие пункты меню продублированы комбинациями клавиш на


клавиатуре компьютера и кнопками графического меню MPLAB IDE.
ио

Пункт меню Debug > Run > Step - дублирующая клавиша <F7>. Нажмите
кнопку <F7> несколько раз, наблюдая за значением счетчика команд PC и
бл

темной полосой, указывающей следующую инструкцию.


Выбором пункта меню Debug > Run > Run или нажатием на клавишу <F9>
Би

выполняется запуск программы с текущего места. Темная полоса, указывающая


текущую инструкцию, изменит свой цвет, ни один параметр на линейке
состояния не будет изменять своего значения до приостановки программы.
Остановите программу Debug > Run > Halt <F5>, указатель текущей
инструкции примет первоначальный цвет, информация в линейке состояния
обновится.

8
1.7. Открытие дополнительных окон
В MPLAB IDE существует большое количество способов контролировать
ход выполнения программы. Например, программа, которая используется в
примере, увеличивает значение счетчика, но как можно убедиться в том, что
это действительно происходит? Для просмотра текущего значения регистра
воспользуйтесь пунктом меню Window > File Registers. На экране появится
небольшое окно со всеми регистрами ОЗУ PIC16F84.
При каждом шаге программы (нажатие клавиши <F7>) значение регистров

Р
в окне будет обновляться. В нашем случае изменяется значение счетчика в

УИ
регистре с адресом 0х0С. Изменение значения регистра отображается в окне
памяти данных, выделяя его другим цветом. Однако в сложных программах

БГ
одновременно могут изменяться несколько регистров, что усложняет контроль
хода выполнения программы. Проблема может быть решена использованием
окон с переменными.
а
1.8. Использование окон с переменными
ек

1.8.1. Создание окна


Чтобы создать окно, выберите пункт меню Window > Watch Window > New
т

Watch Window.
ио
бл
Би

Рис. 4. Диалоговое окно добавления переменных


На экране появится диалоговое окно добавления переменных, показанное
на рис.4.
Введите в поле 'Symbol:' новую переменную 'с1' и нажмите кнопку «Add»
(добавить). Переменная добавится в список. Нажмите кнопку Close, и на экране
появится окно с переменной C1 (рис. 5):

9
Рис.5. Окно просмотра переменных

1.8.2. Сохранение окна


Сохранение параметров окна на диске выполняется командой Window >

Р
>Watch Window > Save Active Watch или выбором команды Save Watch в

УИ
системном меню окна (для вызова системного меню окна нажмите на иконку в
левом верхнем углу окна). На экране появится диалог сохранения, показанный
на рисунке. Введите имя и нажмите кнопку ОК. Состояние окна, его

БГ
расположение на экране сохраняется вместе с проектом. При открытии проекта
окно также будет восстановлено.
а
ек

1.8.3. Редактирование окна


Редактирование окна можно выполнять только после его создания
т

(открытия). Для редактирования окна вы можете использовать подменю


Window > Watch Window или системное меню окна. С его помощью можно
ио

добавлять и удалять переменные, управлять настройками отображения данных.


бл

1.9. Точки остановки


Нажатием кнопки <F5> (Debug > Run > Halt) остановите выполнение
Би

программы. Щелкните левой кнопкой “мыши” на строке с текстом 'movlw


0x09', затем правой кнопкой “мыши” на той же строке, появится диалоговое
окно, показанное на рис 6.
Выберите пункт Break Point(s) , указательная линия изменит свой цвет,
показывая точку остановки.

10
Рис.6. Контекстное меню точек остановки

Нажмите кнопку <F6> (Debug > Run > Reset) для сброса, а затем <F9> для
начала выполнения программы.
Выполнение программы будет прервано в точке остановки, значение

Р
переменной 'с1' после сброса будет равно 0x00 (вы можете увидеть значение

УИ
регистра в окне переменных или в окне памяти данных). Выполнение одного
шага программы изменит значение переменной 'с1' на 0x09. Нажмите кнопку
<F9> несколько раз, вы заметите изменение цвета линейки состояния во время
выполнения программы.
БГ
Примечание. Если выполнение программы не прерывается в точке
а
остановки, то проверьте глобальное разрешение остановки программы Global
Break Enable в пункте меню Options >Development Mode- Break Options.
ек
т

2. ОТЛАДЧИК И СИМУЛЯТОР MPLAB IDE


2.1. Функции отладчика MPLAB IDE
ио

После ввода и компиляции проекта в MPLAP IDE можно посмотреть, как


выполняется программа. Одним из методов может быть программирование
бл

микроконтроллера и установка его в устройство, чтобы проверить работу


программы. Как правило, с первого раза новая программа работать будет
Би

неправильно и потребуется отладка текста программы.


Отладку программы можно выполнить с помощью симулятора MPLAB
SIM или эмулятора MPLAB-ICE для управления реальным устройством.
В любом случае будет необходимо прерывание выполнения программы
для проверки значения регистров общего и специального назначения и
состояния процессора.

11
MPLAB SIM моделирует выполнение программы любого типа PICmicro с
учетом состояния портов ввода/вывода на скорости, которая зависит от
быстродействия персонального компьютера. Симулятор поддерживает
следующие функции:
• эмуляция памяти программ;
• прерывание выполнения программы в точках остановки;
• работа по шагам;

Р
• контроль регистров общего и специального назначения.
Все указанные функции используют данные из проекта MPLAB IDE.

УИ
Символьные метки могут использоваться для указания точек остановки и
трассировки, а также изменения значений регистров памяти данных.

БГ
В режиме симулятора инструкции выполняются с той скоростью, которую
позволяют вычислительные мощности персонального компьютера. Скорость
выполнения программы в симуляторе значительно медленнее, чем при
а
реальной работе, поскольку симулятор должен следить за состоянием портов
ек

ввода/вывода, значением регистров памяти данных общего и служебного


назначения, учитывать точки остановки и трассировки.
т

В симуляторе предусмотрена автоматическая работа по шагам. Программа


выполняется непрерывно, но значительно медленнее, с обновлением всех
ио

значений в открытых окнах после исполнения каждой инструкции.


бл

2.2 Среда симулятора MPLAB SIM


Дискретный симулятор MPLAB SIM встроен в среду разработки MPLAB
Би

IDE и предназначен для следующих семейств микроконтроллеров PICmicro:


• PIC12CXXX
• PIC14000
• PIC16C5X
• PIC16CXX
• PIC16FXXXX
• PIC17CXXX
12
• PIC18CXXX
• PIC18FXXX

2.3 Характеристики симулятора MPLAB SIM


MPLAB SIM выполняет контроль и управление состоянием портов ввода/
вывода на границах инструкций с периодичностью TCY. TCY– время

Р
выполнения одной инструкции равное 4 Tosc, где Tosc период тактового
генератора микроконтроллера. Поэтому некоторые физические события не

УИ
могут быть смоделированы точно, это
• асинхронные сигналы (относительно тактового генератора

БГ
микроконтроллера);
• сигналы, которые имеют период меньше TCY.
Все внешние события синхронизируются с границами циклов команд
а
микроконтроллера, поэтому событие длительностью меньше одного машинного
ек

цикла смоделировано быть не может. Следующие ограничения


распространяются на симуляцию портов ввода/ вывода и периферийных
т

модулей PICmicro из-за синхронизации событий с границами цикла


инструкции:
ио

• тактовые импульсы таймеров не могут быть меньше времени TCY, хотя


предделитель таймера способен обрабатывать импульсы короче времени
бл

выполнения одной инструкции;


• ШИМ-импульсы, меньше TCY, не поддерживаются;
Би

• не поддерживается 8-разрядное сравнение;


• асинхронные сигналы (относительно тактового генератора
микроконтроллера) не моделируются;
• форму сигнала генератора на выводах RCO/RC1 описывать нельзя;
• MPLAB SIM не моделирует работу последовательных интерфейсов.

13
2.4. Точки остановки и трассировки
Функции отладки, влияющие на выполнение инструкций программы,
основаны на следующих элементах:
• точки остановки;
• точки трассировки;
• счетчик проходов.
Максимальное число именованных адресов точек каждого типа– 16. Точки

Р
трассировки и остановки полностью независимы друг от друга и могут быть
установлены в любой части программы.

УИ
Настройка точек остановки производится в меню Debug > Break Settings,
точек трассировки - Debug >Trace Settings.

2.4.1. Точки остановки


БГ
Точка остановки– условие, при котором микроконтроллер прекращает
а
выполнение программы.
ек

MPLAB IDE обеспечивает следующие условия остановки:


• совпадение адреса точки остановки с программным счетчиком PC;
т

• заполнение буфера трассировки;


• выполнение указанного числа проходов точки остановки;
ио

• переполнение стека;
• переполнение счетчика сторожевого таймера WDT;
бл

• остановка пользователем.
Остановка при совпадении адреса точки остановки со счетчиком команд
Би

PC прерывает ход выполнения программы на инструкции, адрес которой


соответствует адресу точки остановки. Например, если точка остановки
назначена на адрес 5Аh, то остановка будет выполнена на адресе 5Аh до
выполнения инструкции.
Остановка при полном буфере трассировки прерывает ход выполнения
программы при заполнении выделенного З-Кбайтного буфера трассировки.
Остановка после выполнения указанного числа проходов MPLAB IDE
14
позволяет указывать число проходов точки остановки. Счетчик проходов
используется для того, чтобы остановить выполнение программы после
определенного числа проходов точки остановки. Например, если разрешен счет
числа проходов, то программа будет приостановлена в точке остановки, когда
значение счетчика обнулится.
Остановка при переполнении стека прерывает ход выполнения программы
при переполнении аппаратного стека микроконтроллера.
Остановка при срабатывании сторожевого таймера WDT прерывает ход

Р
выполнения программы при переполнении сторожевого таймера.

УИ
Остановка пользователем. Пользователь прерывает выполнение
программы следующими действиями:

БГ
• выбор пункта меню Debug > Run > Halt,
• нажатие кнопку <F5> на клавиатуре;
• нажатие кнопки остановки на графическом меню MPLAB IDE.
а
ек

2.4.2. Точки трассировки


Дополнительным средством контроля за ходом выполнения программы
т

являются точки трассировки.


Симулятор MPLAB SIM поддерживает З-Кбайтный буфер трассировки, в
ио

котором сохраняются данные о состоянии микроконтроллера. Допускается


запись в буфер при переполнении, удаляя более старые значения (если не
бл

выбран параметр остановки программы при переполнении буфера). MPLAB


IDE непрерывно фиксирует состояние микроконтроллера в указанных точках
Би

трассировки. Структура информации, записываемой в буфер:


• 16-разрядный адрес точки трассировки;
• 16-разрядный код и данные инструкции;
• время и измененные регистры.
Остановка записи в буфер трассировки (Halt Trace) позволяет просмотреть
состояние микроконтроллера в точках трассировки без нарушения хода
выполнения программы. Для продолжения записи в буфер трассировки

15
нажмите кнопку Halt Trace.
Просмотр состояния микроконтроллера в ходе выполнения программы в
симуляторе MPLAB SIM возможен при помощи окна буфера трассировки.
Каждая запись буфера трассировки содержит адрес в памяти программ,
выполняемый код, время записи и измененные регистры. При записи времени в
буфер трассировки используются часы MPLAB IDE. Сброс времени записи
осуществляется при сбросе системных часов MPLAB IDE.

Р
2.4.3. Настройка числа проходов для точек остановки

УИ
MPLAB IDE позволяет назначить один 16-разрядный счетчик прохода для
любого адреса памяти программ.

БГ
Когда выполнение программы приостановлено, можно изменить число
проходов точки остановки/трассировки в диалоговых окнах настройки точек
остановки/трассировки соответственно. Сначала указывается желаемый адрес
а
(или диапазон адресов), а затем записывается 16-разрядное значение счетчика
ек

проходов. Когда счетчик проходов будет декрементирован до нуля, произойдет


остановка программы (запись в буфер трассировки).
т

Если указан счетчик проходов, то остановка программы произойдет при


обнаружении другого условия остановки или при обнулении счетчика
ио

проходов.
Пример последовательности настройки точек остановки показан на рис.7.
бл

Следует иметь в виду, что настраиваемые точки остановки независимы друг от


друга. Создадим две точки остановки со следующими условиями: при
Би

выполнении любых инструкций в пределах диапазона адресов от 100 до 200 и


после выполнения 10000 проходов адреса 500.

1. Настроить диапазон адресов 100-200 для точки остановки:


• введите имя Halt_Range в пункте Title;
• введите начала диапазона адресов 100 в строке Seart и конец
диапазона 200 в строке End;

16
• нажмите кнопку Add для сохранения настроек.
2. Настроить вторую точку остановки с адресом 500:
• введите имя 10K_Passes в пункте Title;
• введите начала диапазона адресов 500 в строке Seart и конец
диапазона 500 в строке End;
• нажмите кнопку Add для сохранения настроек.
3. Настроить остановку после выполнения 10000 проходов адреса 500:

Р
• выберите точку остановки 10K_Passes;
• отметьте пункт Address is Qualifier,

УИ
• введите значение 10000 в пункте Pass Count;
• нажмите кнопку See для сохранения настроек.

БГ
а
ек
т
ио

Рис. 7. Меню настроек точек останова


бл

2.4.4. Настройка числа проходов для точки трассировки


Если указан счетчик проходов, то пока его значение не станет равно нулю,
Би

данные в буфер трассировки записываться не будут. Когда значение счетчика


проходов будет равно нулю, данные записываются в буфер трассировки при
проходе через точку трассировки.
Счетчик проходов декрементируется каждый раз при выполнении команды
с указанным адресом. Целесообразно использовать эту особенность, чтобы
определить число раз исполнения команды.

17
2.5. Точки остановки по условию
Если настроена точка остановки по условию, MPLAB IDE прервет
выполнение программы, когда значение внутреннего регистра
микроконтроллера будет удовлетворять указанному условию.
2.5.1. Условия
MPLAB IDE остановит ход выполнения программы в одном из следующих
случаев:
• остановка пользователем– MPLAB IDE продолжает выполнять

Р
программу, пока не будет нажата кнопка Halt;

УИ
• выбор опции Halt в диалоговом окне точки остановки по условию;
• остановка после выполнения указанного числа циклов

БГ
микроконтроллера;
• удовлетворение условиям остановки.
а
2.5.2. Данные трассировки
ек

Данные трассировки позволяют контролировать значения регистров в


диалоговом окне точек остановки по условию.
т

2.5.3. Единственный цикл


ио

MPLAB IDE выполняет отдельные циклы микроконтроллера, пока не


встретится условие остановки.
бл

2.5.4. Многократные циклы


Би

В режиме многократных циклов инструкции выполняются в режиме


реального времени (для эмулятора), проверяются условия выбранных точек
остановки и условной остановки. Симулятор останавливается только при
выполнении указанного условия. Точки остановки и условия остановки по
значению регистров проверяются только в точках, определенных в диалоговом
окне настройки параметров точек остановки.

18
2.6. Функции стимула
Стимул подготавливает сигналы для симулятора MPLAB SIM.
Программисту предоставляется возможность моделировать состояние портов
ввода/вывода или записывать значения непосредственно в регистры.
Существует четыре вида стимулов:
• асинхронный стимул– непосредственное управление состоянием
портов ввода/вывода;
• файл состояния порта ввода/вывода– текстовый файл, описывающий

Р
состояние порта вода/вывода;

УИ
• файл стимула регистра– текстовый файл, содержащий 8-разрядное
значение регистра;

БГ
• стимул тактового сигнала– регулярный, программируемый,
периодический источник тактового сигнала.
а
2.6.1. Асинхронный стимул
ек

Используется для моделирования логического состояния порта


ввода/вывода, настроенного на вход (установка значений +5В или 0В). Вы
т

можете нажатием кнопки в диалоговом окне асинхронного стимула указывать


входной сигнал на портах ввода/вывода.
ио

Для примера рассмотрим управление состоянием сигнала на входе RB0


PORTB микроконтроллера PIC16F84.
бл

Выберите пункт меню Debug > Simulator Stimulus > Asynchronous Stimulus,
на экране появится диалоговое окно, показанное на рис.8,а.
Би

Поместите курсор на кнопку «Stim l (P)» и нажмите правую кнопку


«мыши», на экране появится сокращенное меню (рис. 8,б).

19
Рис.8. Меню настройки асинхронного воздействия

Р
Выберите пункт Toggle.

УИ
Снова поместите курсор на кнопку «Stim l (Т)» (символ «Р» изменился на
«Т» – Toggle) и нажмите правую кнопку «мыши», на экране появится
сокращенное меню выбора портов ввода/вывода PIC16F84.

БГ
Двойным щелчком левой кнопкой «мыши» выберите порт RBO. Обратите
внимание, что значение «Stim l (Т)» заменено на «RBO (Т)».
а
Выберите пункт меню Debug > Run > Animate для запуска быстрого
ек

выполнения программы по шагам. Нажмите кнопку «RBO (Т)» в диалоговом


окне асинхронного стимула. Изменение состояния PORTB можно увидеть в
т

окне регистров специального назначения.


ио

2.6.2. Файлы стимула порта ввода/вывода


Текстовый файл стимула портов ввода/вывода состоит из нескольких
бл

колонок. Первая колонка определяет номер цикла при выполнении программы,


в котором будут изменяться значения портов ввода/вывода.
Би

Порядок создания файла стимула:


1. Создайте новый текстовый файл ( File > New File), в котором будет
вводиться текст файла стимула.
2. Впишите первое слово в первой строке “CYCLE”.
3. Первый столбец определяет номер цикла (в соответствии с
секундомером MPLAB IDE), в котором будет изменяться состояние
порта ввода/вывода.

20
4. Справа от слова CYCLE укажите имена выводов микроконтроллера,
которые должны соответствовать типу моделируемого
микроконтроллера.
5. Чтобы увидеть список поддерживаемых портов ввода/вывода,
воспользуйтесь пунктом меню Debug > Simulator Stimulus >
Asynchronous Stimulus и нажмите правой кнопкой «мыши» на одной
из кнопок окна.
6. Заполните таблицу, указав номер цикла и состояние вывода. После

Р
знака «;» или «!» можно вписать комментарии.

УИ
7. Сохраните файл стимула - File > Save As... Теперь файл готов к
использованию в проекте.

БГ
Порядок использования файла стимула:
1. Подключите файл стимула к проекту - Debug > Simulator Stimulus >
>Pin Stimulus > Enable.
а
2. Откройте дополнительные окна. Например, окно секундомера
ек

Window > Stopwatch и окно специальных регистров Window >


Special Function Registers. В окне секундомера будет показано
т

прошедшее время при выполнении каждой команды. Если


секундомер сбрасывается, файл стимула портов ввода/вывода тоже
ио

сбрасывается в начальное состояние.


3. Сбросьте микроконтроллер и наблюдайте за состоянием порта
бл

ввода/вывода, выполняя программу по шагам.


Би

2.6.3. Файл стимула регистра


Текстовый файл стимула регистра состоит из одной колонки значений,
которые будут переданы регистру, когда адрес в счетчика команд PC равен
значению, указанному в диалоговом окне стимула регистра. Это может быть
полезно, например, при моделировании работы АЦП.

Порядок создания файла стимула регистра:

21
1. Создайте новый текстовый файл - File > New File. Вы будете
вводить текст файла стимула в этом окне.
2. В безымянном окне введите список значений в одну колонку,
которые Вы хотите назначить регистру.
3. Сохраните созданный файл - File > Save As... Выберите
директорию, в которой хотите сохранить файл, введите имя файла с
расширением .reg.
Порядок использования файла стимула регистра:

Р
1. Выберите пункт меню Debug > Simulator Stimulus > Register Stimulus >

УИ
Enable для открытия диалогового окна настройки стимула регистра.
2. Укажите адрес в памяти программ, в котором значения из файла должны

БГ
быть подставлены в регистр.
3. Укажите адрес регистра в памяти данных, в который будут подставляться
значения из файла.
а
4. Нажмите кнопку Browse и выберите файл стимула регистра.
ек

5. Откройте окно памяти данных - Window > File Registers.


6. Сбросьте микроконтроллер и выполните шаги программы. Каждый раз,
т

когда значение адреса счетчика команд PC совпадет с указанным адресом


в диалоговом окне, в регистр будет занесено значение из файла стимула.
ио

Значения из файла стимула будут подставляться циклически, пока


выполняется программа в симуляторе MPLAB-SIM.
бл

Пример работы с файлом стимула регистра. Этот пример подразумевает, что


создан проект, описанный в главе 2.
Би

1. Создайте новый файл - File > New File и введите построчно следующие
числа: 10, 2Е, 38, 41, 50, 7А, 99, АО, FD.
2. Сохраните файл File > Save As... с именем tutor84.reg. Этот файл будет
использоваться для последовательного ввода значений в регистр.
3. Выберите пункт меню Debug > Simulator Stimulus > Register Stimulus >
Enable для открытия диалогового окна стимула регистра (рис. 9).

22
Рис. 9. Меню стимула регистра

Р
Укажите в качестве адреса памяти программ (Program Memory Address)
метку Loop, адрес регистра памяти данных (Register Address) 0x0D и

УИ
нажмите кнопку Browse для указания файла стимула tutor84.reg.
4. Откройте окно с регистрами Window > File Registers для наблюдения

БГ
эффекта стимула регистра.
5. Сбросьте микроконтроллер и выполните шаги программы. Каждый раз,
когда значения адреса счетчика команд PC совпадет с указанным
а
адресом Loop, в регистр 0x0D будет занесено значение из файла
ек

стимула tutor84.reg. Значения 0x10, 0х2Е будут внесены в регистр,


выбранный в диалоговом окне стимула регистра, при проходе через
т

метку Loop. После того как подставлено последнее значение (0xFD из


файла tutor84.reg), при следующей подстановке будет использоваться
ио

первое значение (0x10).


бл

2.6.4 Стимул тактового сигнала


Стимул тактового сигнала формирует на входе порта ввода/вывода
Би

регулярную форму сигнала с периодичностью, кратной тактовым циклам


микроконтроллера.
Выберите пункт меню Debug > Simulator Stimulus > Clock Stimulus для
открытия диалогового окна стимула тактового сигнала (рис. 10).

23
Р
УИ
Рис. 10. Меню стимула тактового сигнала

БГ
Настройки, показанные на рисунке следующие:
RBO– 4 цикла- высокий уровень, 6 циклов- низкий;
а
RB1– 8 циклов- высокий уровень, 8 циклов- низкий;
ек

Для добавления стимула тактового сигнала укажите имя порта


ввода/вывода, длительность высокого и низкого уровня сигнала и нажмите
т

кнопку Add.
ио
бл
Би

24
Приложение 1

Описание кнопок графического меню MPLAB IDE

Меню редактора MPLAB IDE

Расположение и назначение кнопок по умолчанию.

Р
1. Выбор графического меню.

УИ
2. Создать новый файл.
3. Открыть файл.

БГ
4. Сохранить файл.
5. Вырезать в буфер.
6. Копировать в буфер.
а
7. Вставить из буфера.
ек

8. Печатать.
9. Найти.
т

10. Повторить поиск.


11. Заменить.
ио

12. Повторить замену.


13. Отменить действие.
бл

14. Увеличить отступ.


15. Уменьшить отступ.
Би

16. Перейти на строку.


17. Показать нумерацию строк.
18. Контекстная помощь.

25
Меню отладчика

Расположение и назначение кнопок по умолчанию.


1. Выбор графического меню.
2. Запустить выполнение программы с текущего места.
3. Остановить выполнение программы.

Р
4. Выполнить текущую инструкцию программы.

УИ
5. Выполнить текущую инструкцию программы (инструкции CALL
выполняются за один шаг с полным выполнением подпрограммы).
6. Сброс микроконтроллера.

БГ
7. Выбрать значение счетчика команд PC.
8. Добавить инструкцию.
9. Новое окно с переменными.
а
10. Окно изменений.
ек

11. Точка остановки.


12. Точка трассировки.
т

13. Триггер.
ио

14. Сбросить все точки остановки.


15. Условная остановка.
16. Прекратить запись в буфер трассировки.
бл

17. Системный сброс.


18. Отличия версии.
Би

26
Меню проекта

Расположение и назначение кнопок по умолчанию.


1. Выбор графического меню.
2. Создать новый проект.
3. Открыть проект.

Р
4. Закрыть проект.

УИ
5. Сохранить проект.
6. Редактировать параметры проекта.
7. Выполнить проект.

БГ
8. Компиляция всех исходных файлов.
9. Компиляция текущего исходного файла.
а
10. Подключение модулей к проекту.
ек

11. Помощь.
т
ио
бл
Би

27
Меню пользователя

Расположение и назначение кнопок по умолчанию.


1. Выбор графического меню.
2. Открыть проект.
3. Закрыть проект.

Р
4. Найти.
5. Вырезать в буфер.

УИ
6. Копировать в буфер.
7. Вставить из буфера.

БГ
8. Сохранить файл.
9. Запустить выполнение программы с текущего места.
10. Остановить выполнение программы.
а
11. Выполнить текущую инструкцию программы.
ек

12. Выполнить текущую инструкцию программы (инструкции CALL


выполняются за один шаг с полным выполнением подпрограммы).
т

13. Сброс микроконтроллера.


14. Окно памяти программ.
ио

15. Окно памяти данных.


16. Окно регистров специального назначения.
бл

17. Новое окно с переменными.


18. Выполнить проект.
Би

28
Приложение 2
Назначение полей линейки состояния

Пример Результат двойного


Формат поля отображения Описание нажатия левой
кнопкой «мыши»
Строка №, Ln 1 Col 1 Номер строки и колонки размещения Открытие диалога
Колонка № в курсора в активном окне редактора. перехода на
активном окне Номер версии MPLAB IDE определенную
или версия строку Не активно

Р
MPLAB IDE
Количество строк 18 Отображает количество строк в Не активно

УИ
в файле активном окне редактора MPLAB IDE
Модификация Символ «#» появляется, если Не активно
файла редактированный файл не был
сохранен
Защита от Включение/отключение защиты от Включает/

БГ
WR
редактирования редактирования: отключает защиту
WR - редактирование разрешено от редактирования
RD - только чтение
Выравнивание No Warp Отображаются параметры Включает/
текста выравнивания текста выключает
а
No Warp - выравнивание нет выравнивание
ек

WR 72 - выравнивание текста, текста


максимальное число символов в линии
72
Параметр ввода INS Отображается параметр ввода Переключает
т

текста текста параметр ввода


INS - вставка текста
OVR - замещение вставка/замещение
ио

Тип PIC16F84 Отображается тип микроконтроллера Не активно


микроконтроллер используемого в проекте
а
бл

Счетчик команд PC:Ox00 Текущее значение счетчика команд Открывает диалог


PC выбора значения
счетчика команд
Регистр W W:OxOO Значение регистра W Не активно
Би

Биты статуса Z dc с Состояние битов ALU Не активно


Верхний регистр - бит установлен
Нижний регистр - бит сброшен
Флаг разрешения BkOn Глобальное разрешение прерываний Разрешет/
прерываний запрещает
прерывания
Среда Sim ЕО - только редактор Открывает окно
проектирования Sim - симулятор MPLAB SIM настройки проекта
Si - симулятор SIMICE
ICE - эмулятор MPLAB-ICE
Em - эмулятор PICMASTER
Частота 4MHz Тактовая частота микроконтроллера Открывает окно

29
настройки проекта
Режим User Режим среды проектирования MPLAB Не активно
IDE
Приложение 3

Назначение файлов среды MPLAB IDE

*.ASM исходный файл на ассемблере

Р
*.С исходный файл на С
*.CFG файл конфигурации

УИ
*.CSV файл трассировки, только для MPLAB-ICE 2000
*.COD объектный код

БГ
*.DAT файл данных симулятора
*.ERR список ошибок при компиляции
*.Н дополнительный файл С
а
*.НЕХ код для микроконтроллера PICmicro
ек

*.HLP файл помощи


*.MNC настройка MPASM
т

*.MNI настойка MPLAB IDE


*.KEY назначение клавиш в MPLAB IDE
ио

*.LKR файл сценария для MPLINK


*.LST файл листинга программы
бл

*.PJT файл проекта


*.REG файл стимула регистра
Би

*.STI файл стимула вывода


*.ТВ файл настройки точек остановки
*.TBR настройки графического меню
*.TPL файл шаблонов
*.TRC файл буфера трассировки
*.WAT файл окна с переменными

30
Св. план 2003, поз. 56
Учебное издание

Бурак Андрей Иосифович,


Левкович Василий Николаевич

Р
УИ
АРХИТЕКТУРА И ОСНОВЫ ПРОГРАММИРОВАНИЯ
ОДНОКРИСТАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ PIC16F84

БГ
Методическое пособие
а
к лабораторным работам
по дисциплине
ек

“Цифровые и микропроцессорные устройства»


для студентов специальностей
390101 «Радиотехника» и 390102 «Радиоэлектронные системы»
т

всех форм обучения


ио

Редактор Е.Н. Батурчик


бл

Подписано в печать Формат 60х84 1/16.


Бумага Печать Гарнитура
Би

Усл. печ. л. Уч.-изд. л. 2.0. Тираж 100 экз.


Заказ

Издатель и полиграфическое оформление:


Учреждение образования
«Белорусский государственный университет информатики
и радиоэлектроники»
Лицензия ЛП №156 от 05.02.2001.
Лицензия ЛВ №509 от 03.08.2001.
220013, Минск, П.Бровки,6

31

Вам также может понравиться