Burak_Integrir
Burak_Integrir
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Р
УИ
А.И. Бурак, В.Н. Левкович
БГ
ИНТЕГРИРОВАННАЯ СРЕДА MPLab IDE РАЗРАБОТКИ ПРОГРАММ
ДЛЯ МИКРОКОНТРОЛЛЕРОВ PICmicro ФИРМЫ MICROCHIP
а
ек
Методическое пособие
т
Минск 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
Бурак А.И.
БГ
а
ек
УДК 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
ек
3
ВВЕДЕНИЕ
MPLAB IDE– бесплатная интегрированная среда разработки для
микроконтроллеров PICmicro фирмы Microchip Technology Incorporated.
MPLAB IDE позволяет писать, отлаживать и оптимизировать текст программы.
MPLAB IDE включает в себя редактор текста, симулятор и менеджер
проектов, поддерживает работу эмуляторов (MPLAB-ICE, PICMASTER) и
программаторов (PICSTART plus, PRO MATE) фирмы Microchip и других
отладочных средств фирмы Microchip и третьих производителей.
Р
Легко настраиваемые инструментальные средства, тематическая помощь,
УИ
«выпадающие» меню и назначение «горячих» клавиш в MPLAB IDE
позволяют:
БГ
• получить код программы.
• наблюдать выполнение программы с помощью симулятора, определять
время выполнения программы.
а
• просматривать текущее значение переменных и специальных регистров.
ек
4
1. Работа с MPLAB IDE
1.1. Настройка среды проектирования
Рассмотрим работу в MPLAB IDE на конкретном примере.
Рабочий стол среды (рис.1) состоит из:
1) Главное текстовое меню.
2) Графическое меню.
3) Рабочая область, в которой размещаются открытые окна с файлами,
диалогами или другой информацией.
Р
4) Линейка состояния, отображающая текущую настройку системы.
УИ
БГ
Рис. 1. Рабочий стол среды MPLAB IDE
а
Выберите пункт Options > Development Mode, нажмите кнопку Tools для
ек
5
проектирования находится в режиме симулятора для микроконтроллера
PIC16F84.
Р
Выберите пункт меню File > New и укажите, где вы хотите сохранить
УИ
проект. В данном случае создается файл tutor84.pjt в каталоге “c:\Program Files
\MPLAB”.
БГ
Тип файла .PJT будет назначен автоматически. Файлы с таким
расширением являются файлами проекта в среде MPLAB IDE.
Подтверждение имени файла проекта и места его размещения приведет к
а
переходу к диалоговому окну установки свойств компиляции. Пока можно
ек
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
ек
способами. Описанный здесь метод использует пункт меню Project > Build All.
После выбора указанного пункта меню исходный текст программы сохраняется
ио
Р
Примечание. При старте компиляции открытые исходные файлы сохраня-
УИ
ются на диске.
1.6. Запуск программы
БГ
Выберите пункт меню Debug > Run > Reset для инициализации системы.
Счетчик команд будет установлен в нуль, что является вектором сброса для
микроконтроллера PIC16F84. В линейке состояния PC будет равен 0x00.
а
Затем выберите пункт меню Debug > Run > Step: темная полоса указывает
ек
Пункт меню Debug > Run > Step - дублирующая клавиша <F7>. Нажмите
кнопку <F7> несколько раз, наблюдая за значением счетчика команд PC и
бл
8
1.7. Открытие дополнительных окон
В MPLAB IDE существует большое количество способов контролировать
ход выполнения программы. Например, программа, которая используется в
примере, увеличивает значение счетчика, но как можно убедиться в том, что
это действительно происходит? Для просмотра текущего значения регистра
воспользуйтесь пунктом меню Window > File Registers. На экране появится
небольшое окно со всеми регистрами ОЗУ PIC16F84.
При каждом шаге программы (нажатие клавиши <F7>) значение регистров
Р
в окне будет обновляться. В нашем случае изменяется значение счетчика в
УИ
регистре с адресом 0х0С. Изменение значения регистра отображается в окне
памяти данных, выделяя его другим цветом. Однако в сложных программах
БГ
одновременно могут изменяться несколько регистров, что усложняет контроль
хода выполнения программы. Проблема может быть решена использованием
окон с переменными.
а
1.8. Использование окон с переменными
ек
Watch Window.
ио
бл
Би
9
Рис.5. Окно просмотра переменных
Р
>Watch Window > Save Active Watch или выбором команды Save Watch в
УИ
системном меню окна (для вызова системного меню окна нажмите на иконку в
левом верхнем углу окна). На экране появится диалог сохранения, показанный
на рисунке. Введите имя и нажмите кнопку ОК. Состояние окна, его
БГ
расположение на экране сохраняется вместе с проектом. При открытии проекта
окно также будет восстановлено.
а
ек
10
Рис.6. Контекстное меню точек остановки
Нажмите кнопку <F6> (Debug > Run > Reset) для сброса, а затем <F9> для
начала выполнения программы.
Выполнение программы будет прервано в точке остановки, значение
Р
переменной 'с1' после сброса будет равно 0x00 (вы можете увидеть значение
УИ
регистра в окне переменных или в окне памяти данных). Выполнение одного
шага программы изменит значение переменной 'с1' на 0x09. Нажмите кнопку
<F9> несколько раз, вы заметите изменение цвета линейки состояния во время
выполнения программы.
БГ
Примечание. Если выполнение программы не прерывается в точке
а
остановки, то проверьте глобальное разрешение остановки программы Global
Break Enable в пункте меню Options >Development Mode- Break Options.
ек
т
11
MPLAB SIM моделирует выполнение программы любого типа PICmicro с
учетом состояния портов ввода/вывода на скорости, которая зависит от
быстродействия персонального компьютера. Симулятор поддерживает
следующие функции:
• эмуляция памяти программ;
• прерывание выполнения программы в точках остановки;
• работа по шагам;
Р
• контроль регистров общего и специального назначения.
Все указанные функции используют данные из проекта MPLAB IDE.
УИ
Символьные метки могут использоваться для указания точек остановки и
трассировки, а также изменения значений регистров памяти данных.
БГ
В режиме симулятора инструкции выполняются с той скоростью, которую
позволяют вычислительные мощности персонального компьютера. Скорость
выполнения программы в симуляторе значительно медленнее, чем при
а
реальной работе, поскольку симулятор должен следить за состоянием портов
ек
Р
выполнения одной инструкции равное 4 Tosc, где Tosc период тактового
генератора микроконтроллера. Поэтому некоторые физические события не
УИ
могут быть смоделированы точно, это
• асинхронные сигналы (относительно тактового генератора
БГ
микроконтроллера);
• сигналы, которые имеют период меньше TCY.
Все внешние события синхронизируются с границами циклов команд
а
микроконтроллера, поэтому событие длительностью меньше одного машинного
ек
13
2.4. Точки остановки и трассировки
Функции отладки, влияющие на выполнение инструкций программы,
основаны на следующих элементах:
• точки остановки;
• точки трассировки;
• счетчик проходов.
Максимальное число именованных адресов точек каждого типа– 16. Точки
Р
трассировки и остановки полностью независимы друг от друга и могут быть
установлены в любой части программы.
УИ
Настройка точек остановки производится в меню Debug > Break Settings,
точек трассировки - Debug >Trace Settings.
• переполнение стека;
• переполнение счетчика сторожевого таймера WDT;
бл
• остановка пользователем.
Остановка при совпадении адреса точки остановки со счетчиком команд
Би
Р
выполнения программы при переполнении сторожевого таймера.
УИ
Остановка пользователем. Пользователь прерывает выполнение
программы следующими действиями:
БГ
• выбор пункта меню Debug > Run > Halt,
• нажатие кнопку <F5> на клавиатуре;
• нажатие кнопки остановки на графическом меню MPLAB IDE.
а
ек
15
нажмите кнопку Halt Trace.
Просмотр состояния микроконтроллера в ходе выполнения программы в
симуляторе MPLAB SIM возможен при помощи окна буфера трассировки.
Каждая запись буфера трассировки содержит адрес в памяти программ,
выполняемый код, время записи и измененные регистры. При записи времени в
буфер трассировки используются часы MPLAB IDE. Сброс времени записи
осуществляется при сбросе системных часов MPLAB IDE.
Р
2.4.3. Настройка числа проходов для точек остановки
УИ
MPLAB IDE позволяет назначить один 16-разрядный счетчик прохода для
любого адреса памяти программ.
БГ
Когда выполнение программы приостановлено, можно изменить число
проходов точки остановки/трассировки в диалоговых окнах настройки точек
остановки/трассировки соответственно. Сначала указывается желаемый адрес
а
(или диапазон адресов), а затем записывается 16-разрядное значение счетчика
ек
проходов.
Пример последовательности настройки точек остановки показан на рис.7.
бл
16
• нажмите кнопку Add для сохранения настроек.
2. Настроить вторую точку остановки с адресом 500:
• введите имя 10K_Passes в пункте Title;
• введите начала диапазона адресов 500 в строке Seart и конец
диапазона 500 в строке End;
• нажмите кнопку Add для сохранения настроек.
3. Настроить остановку после выполнения 10000 проходов адреса 500:
Р
• выберите точку остановки 10K_Passes;
• отметьте пункт Address is Qualifier,
УИ
• введите значение 10000 в пункте Pass Count;
• нажмите кнопку See для сохранения настроек.
БГ
а
ек
т
ио
17
2.5. Точки остановки по условию
Если настроена точка остановки по условию, MPLAB IDE прервет
выполнение программы, когда значение внутреннего регистра
микроконтроллера будет удовлетворять указанному условию.
2.5.1. Условия
MPLAB IDE остановит ход выполнения программы в одном из следующих
случаев:
• остановка пользователем– MPLAB IDE продолжает выполнять
Р
программу, пока не будет нажата кнопка Halt;
УИ
• выбор опции Halt в диалоговом окне точки остановки по условию;
• остановка после выполнения указанного числа циклов
БГ
микроконтроллера;
• удовлетворение условиям остановки.
а
2.5.2. Данные трассировки
ек
18
2.6. Функции стимула
Стимул подготавливает сигналы для симулятора MPLAB SIM.
Программисту предоставляется возможность моделировать состояние портов
ввода/вывода или записывать значения непосредственно в регистры.
Существует четыре вида стимулов:
• асинхронный стимул– непосредственное управление состоянием
портов ввода/вывода;
• файл состояния порта ввода/вывода– текстовый файл, описывающий
Р
состояние порта вода/вывода;
УИ
• файл стимула регистра– текстовый файл, содержащий 8-разрядное
значение регистра;
БГ
• стимул тактового сигнала– регулярный, программируемый,
периодический источник тактового сигнала.
а
2.6.1. Асинхронный стимул
ек
Выберите пункт меню Debug > Simulator Stimulus > Asynchronous Stimulus,
на экране появится диалоговое окно, показанное на рис.8,а.
Би
19
Рис.8. Меню настройки асинхронного воздействия
Р
Выберите пункт Toggle.
УИ
Снова поместите курсор на кнопку «Stim l (Т)» (символ «Р» изменился на
«Т» – Toggle) и нажмите правую кнопку «мыши», на экране появится
сокращенное меню выбора портов ввода/вывода PIC16F84.
БГ
Двойным щелчком левой кнопкой «мыши» выберите порт RBO. Обратите
внимание, что значение «Stim l (Т)» заменено на «RBO (Т)».
а
Выберите пункт меню Debug > Run > Animate для запуска быстрого
ек
20
4. Справа от слова CYCLE укажите имена выводов микроконтроллера,
которые должны соответствовать типу моделируемого
микроконтроллера.
5. Чтобы увидеть список поддерживаемых портов ввода/вывода,
воспользуйтесь пунктом меню Debug > Simulator Stimulus >
Asynchronous Stimulus и нажмите правой кнопкой «мыши» на одной
из кнопок окна.
6. Заполните таблицу, указав номер цикла и состояние вывода. После
Р
знака «;» или «!» можно вписать комментарии.
УИ
7. Сохраните файл стимула - File > Save As... Теперь файл готов к
использованию в проекте.
БГ
Порядок использования файла стимула:
1. Подключите файл стимула к проекту - Debug > Simulator Stimulus >
>Pin Stimulus > Enable.
а
2. Откройте дополнительные окна. Например, окно секундомера
ек
21
1. Создайте новый текстовый файл - File > New File. Вы будете
вводить текст файла стимула в этом окне.
2. В безымянном окне введите список значений в одну колонку,
которые Вы хотите назначить регистру.
3. Сохраните созданный файл - File > Save As... Выберите
директорию, в которой хотите сохранить файл, введите имя файла с
расширением .reg.
Порядок использования файла стимула регистра:
Р
1. Выберите пункт меню Debug > Simulator Stimulus > Register Stimulus >
УИ
Enable для открытия диалогового окна настройки стимула регистра.
2. Укажите адрес в памяти программ, в котором значения из файла должны
БГ
быть подставлены в регистр.
3. Укажите адрес регистра в памяти данных, в который будут подставляться
значения из файла.
а
4. Нажмите кнопку Browse и выберите файл стимула регистра.
ек
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 будет занесено значение из файла
ек
23
Р
УИ
Рис. 10. Меню стимула тактового сигнала
БГ
Настройки, показанные на рисунке следующие:
RBO– 4 цикла- высокий уровень, 6 циклов- низкий;
а
RB1– 8 циклов- высокий уровень, 8 циклов- низкий;
ек
кнопку Add.
ио
бл
Би
24
Приложение 1
Р
1. Выбор графического меню.
УИ
2. Создать новый файл.
3. Открыть файл.
БГ
4. Сохранить файл.
5. Вырезать в буфер.
6. Копировать в буфер.
а
7. Вставить из буфера.
ек
8. Печатать.
9. Найти.
т
25
Меню отладчика
Р
4. Выполнить текущую инструкцию программы.
УИ
5. Выполнить текущую инструкцию программы (инструкции CALL
выполняются за один шаг с полным выполнением подпрограммы).
6. Сброс микроконтроллера.
БГ
7. Выбрать значение счетчика команд PC.
8. Добавить инструкцию.
9. Новое окно с переменными.
а
10. Окно изменений.
ек
13. Триггер.
ио
26
Меню проекта
Р
4. Закрыть проект.
УИ
5. Сохранить проект.
6. Редактировать параметры проекта.
7. Выполнить проект.
БГ
8. Компиляция всех исходных файлов.
9. Компиляция текущего исходного файла.
а
10. Подключение модулей к проекту.
ек
11. Помощь.
т
ио
бл
Би
27
Меню пользователя
Р
4. Найти.
5. Вырезать в буфер.
УИ
6. Копировать в буфер.
7. Вставить из буфера.
БГ
8. Сохранить файл.
9. Запустить выполнение программы с текущего места.
10. Остановить выполнение программы.
а
11. Выполнить текущую инструкцию программы.
ек
28
Приложение 2
Назначение полей линейки состояния
Р
MPLAB IDE
Количество строк 18 Отображает количество строк в Не активно
УИ
в файле активном окне редактора MPLAB IDE
Модификация Символ «#» появляется, если Не активно
файла редактированный файл не был
сохранен
Защита от Включение/отключение защиты от Включает/
БГ
WR
редактирования редактирования: отключает защиту
WR - редактирование разрешено от редактирования
RD - только чтение
Выравнивание No Warp Отображаются параметры Включает/
текста выравнивания текста выключает
а
No Warp - выравнивание нет выравнивание
ек
29
настройки проекта
Режим User Режим среды проектирования MPLAB Не активно
IDE
Приложение 3
Р
*.С исходный файл на С
*.CFG файл конфигурации
УИ
*.CSV файл трассировки, только для MPLAB-ICE 2000
*.COD объектный код
БГ
*.DAT файл данных симулятора
*.ERR список ошибок при компиляции
*.Н дополнительный файл С
а
*.НЕХ код для микроконтроллера PICmicro
ек
30
Св. план 2003, поз. 56
Учебное издание
Р
УИ
АРХИТЕКТУРА И ОСНОВЫ ПРОГРАММИРОВАНИЯ
ОДНОКРИСТАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ PIC16F84
БГ
Методическое пособие
а
к лабораторным работам
по дисциплине
ек
31