Типичный вариант реализации микросхемы ППЗУ. Интегрированная среда MPLABIDE разработи программ для PIC-микроконтроллеров, страница 4

Теперь осуществите выполнение программы в режиме Animate, выбрав пункт меню Debugger > Animate.  В этом режиме происходит замедленное автоматическое выполнение программы. Можно следить за работой программы по перемещению зеленой стрелки и обновлению информации в линейке состояния. Остановить работу можно с помощью пункта меню Debugger > Halt.

Использование пунктов меню Debugger в процессе проверки работы программы не совсем удобно. Проще воспользоваться значками (кнопками) в области графического меню или «горячими клавишами». В табл. 1 приведены соответствия между пунктами меню Debugger , значками (кнопками) и «горячими клавишами».

Таблица 1

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

Таблица 2

Название режима

Выполняемые действия

Run

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

Halt

Останов выполнения программы

Animate

Автоматическое выполнение программы в замедленном режиме

Step Into

Выполнение одной команды

Step Over

Выполнение одной команды с пропуском вызова подпрограммы

Step Out

Выполнение одной команды с выходом из подпрограммы

Reset

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

Примечания.  1.Чтобы узнать функцию кнопки (значка) графического меню, нужно поместить курсор на эту кнопку и на экране появится название функции.

2.Пошаговые режимы Step Over  и Step Out  действуют только при выполнении подпрограмм.

Задание 1. Выполните действия по проверке работы программы (сброс, пошаговое выполнение, прогон в автоматическом и замедленном режимах, останов) с использованием кнопок (значков) графического меню.

         Задание 2.  Выполните аналогичные действия с использованием «горячих клавиш».

Сделайте выводы об удобствах каждого способа управления выполнением программы. В дальнейшем вы можете использовать любой из этих способов.

3.8.  Открытие дополнительных окон

В MPLAB IDE существует большое количество способов контролировать ход выполнения программы. Например, программа, которая используется в примере, увеличивает значение счетчика, но как можно убедиться в том, что это действительно происходит? Для просмотра текущего значения регистра воспользуйтесь пунктом меню View > File Registers. На экране появится окно со всеми регистрами памяти данных PIC16F84A.

 Рис. 5. Окно с текущими значениями регистров

При каждом шаге в процессе выполнении программы значение регистров в окне будет обновляться. Сделайте несколько шагов. В нашем случае изменяется значение счетчика Count  в регистре с адресом 0х0С. Изменение значения регистра отображается в окне памяти данных, выделяя его другим цветом.

Для «ручного» изменения содержимого регистра надо подвести курсор на нужный адрес и щелкнуть левой кнопкой мыши. Выделенный адрес изменит цвет на синий. Затем надо щелкнуть два раза левой кнопкой мыши и ввести с клавиатуры новое значение содержимого регистра.

Задание 1. Занесите в регистры (ячейки памяти данных) с адресом 11h (0x11) значение 55h (0x55), а по адресу 18h (0x18) значение AAh (0xAA).

Иногда возникает необходимость заполнить несколько ячеек памяти данных константой. Для этого нужно поставить курсор в любое место окна File Registers и щелкнуть правой кнопкой мыши. Появится контекстное меню, в котором следует выбрать пункт Fill Registers... В раскрывшемся окне нужно задать начальный и конечный адреса области памяти, а в поле Dataввести требуемые данные в шестнадцатиричном или десятичном формате (это определяется с помощью переключателей DataRadix) и нажать кнопку Write. Для выхода без выполнения записи используется кнопка Close.

Задание 2. Занесите в регистры (ячейки памяти данных) с адреса 10h (0x10) по 1Fh (0x1F) константу 22h (0x22).

Обратите внимание, что содержимое регистров общего назначения, расположенных в 0-м банке памяти данных по адресам 0x0C...0x4F дублирует содержимое регистров, расположенных в 1-м банке по адресам 0x8C...0xCF. Другими словами, регистры общего назначения, а их всего 68 в микроконтроллере PIC16F84A, отображаются в банке 0 на адреса 0x0C...0x4F, а в банке 1 – на адреса 0x8C...0xCF.