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

·  Pulse High – подать импульс высокого уровня;

·  Pulse Low – подать импульс низкого уровня;

·  Set High – установить высокий уровень;

·  Set Low – установить низкий уровень;

·  Toggle – переключить уровень.

Опции Pulse High, Pulse Low посылают на вывод импульс длительностью в один цикл команды. Этот режим удобен для подачи счетных импульсов на таймер TMR0 или подачи запроса внешнего прерывания. Опции установки вывода в высокое (Set High) и низкое (Set Low) состояния передают заданную величину на вывод МК. Для произвольного изменения состояния входа можно запрограммировать две кнопки, одна из которых будет задавать 1, а другая – 0. Тот же результат достижим при помощи одной кнопки в режиме Toggle, каждое нажатие которой меняет состояние на входе.

Для создания асинхронных стимулов выберите пункт меню Debugger > Stimulus > NewWorkbook, при этом на экране появится диалоговое окно Stimulus. В этом окне выберите последнюю вкладку “Asynch”.

Поставьте курсор на первую строку в колонку “Pin/SFR” и щелкните левой кнопкой мыши. В появившемся списке выберите пункт RA0. Затем переместите курсор в колонку “Action” и щелкните левой кнопкой мыши. В появившемся списке выберите пункт “Set High”.

Далее поставьте курсор на вторую строку в колонку “Pin/SFR” и щелкните левой кнопкой мыши. В появившемся списке выберите пункт RA0. Потом переместите курсор в колонку “Action” и щелкните левой кнопкой мыши. В появившемся списке выберите пункт “Set Low”.

И, наконец, поставьте курсор на третью строку и выберите пункт RA0, а затем пункт “Toggle”.

После выбора настроек нажмите кнопку Apply в диалоговом окне с целью разрешения их использования. Окно примет вид, показанный на рис. 9.

Рис. 9. Окно асинхронных стимулов

Задание 1. Сделайте активным окно файла wait.asm. Выполните сброс микроконтроллера, а затем запустите программу в режиме  Animate.

Наблюдайте по перемещению зеленой стрелки работу программы, а по содержимому порта PORTA значение на входе RA0. Подайте сначала на линию RA0 высокий уровень (Set High), нажимая кнопку “>” поля  Fireв окне Stimulus. Затем подайте на линию RA0 низкий уровень (Set Low), нажимая кнопку “>” поля Fire. Повторите эти действия несколько раз, наблюдая за изменением сигналя на линии RA0 порта PORTA  и перемещением зеленой стрелки по программе. Попытайтесь понять, правильно ли работает программа?

Теперь подавайте на линию RA0 порта поочередно то высокий, то низкий уровни (режим Toggle), нажимая кнопку “>” поля Fire. Повторите эти действия несколько раз, наблюдая за перемещением зеленой стрелки и значением нулевого разряда порта PORTA. Правильно ли работает программа?

Задание 2. Теперь повторите все действия, перечисленные выше, используя пошаговый режим работы программы Step Into. После каждого зацикливания программы (выполнение команд  goto  wait1, goto  wait2) подавайте новое значение входного сигнала на линию RA0 порта.

4. Содержание отчета

Наименование и цель работы. Краткое описание способов задания режимов отладки программы с помощью пунктов меню Debugger , «горячих клавиш» и значков графического меню. Тексты исследуемых программ (комментарии обязательны!).

Контрольные вопросы

1.  Что такое MPLAB IDE?

2.  Перечислите состав встроенных компонентов MPLAB IDE.

3.  Перечислите состав дополнительных компонентов MPLAB IDE.

4.  Как выполняется создание нового исходного файла в MPLAB IDE?

5.  Как производится компиляция исходного файла?

6.  По каким признакам можно определить, что выбран MPLAB SIM в качестве отладчика?

7.  Как можно просмотреть содержимое ячеек памяти данных и изменить их содержимое?

8.  Как создается окно просмотра переменных? Как можно изменять формат их отображения?

9.  Какими способами можно задать и убрать точки останова выполнения программы?

10.  Какие виды пошагового режима отладки программы имеется в MPLAB SIM?

11.  Как выполняется режим Animate?

12.  Как выполняется управление состоянием линий портов ввода микроконтроллера с помощью асинхронных стимулов?