Изучение и исследование среды разработки электронных устройств PROTEUS. Коммерческий пакет программ САПР, страница 8

Снимите все точки останова с программы. Запустите проект на выполнение. В окне Watch Window будут видны изменения содержимого регистров в подпрограмме задержки и смена битов порта В при работе программы.

При отладке очень полезной функцией является останов выполнения программы по совпадению некоторого условия. Чтобы реализовать эту функцию, щелкните правой кнопкой мыши по окну Watch Window. Затем щелкните левой кнопкой по пункту Watchpoint Condition. На экране появится окно Watchpoint Condition (условие останова). В поле Global Break Condition (глобальное условие прерывания) будут следующие варианты:

·  Turn off (disable) watch point – запретить останов по условию;

·  Suspend the simulation if ANY expression is true – остановить симулятор, если любое условие соблюдено;

·  Stop the simulation only when ALL expressions is true – остановить симулятор только в случае, когда все условия соблюдены.   

Щелкните левой кнопкой мыши по кнопке в строке Suspend the simulation if ANY expression is true. После этого активизируется окно Item Break Expression (условия прерывания) со следующими полями:

·  Item – имя регистра, для которого применяется условие;

·  Mask – маска для выполнения логических функций AND, OR, XOR и далее значение маски;

·  Condition – выбор условия (равно, не равно, больше чем и т.д.);

·  Value – значение, с которым сравнивается содержимое выбранного регистра.

Введите в поле Item имя регистра PORTB, в поле Mask логическую функцию AND и число 0x01, в поле Condition условие Equals (равно), а в поле Value значение 1. Таким образом, мы выставили условие симулятору остановиться, когда 0-й бит порта В будет равен 1.

Запустите выполнение программы. Первый останов может быть внеплановый из-за того, что в регистре могут быть случайные значения. Продолжите выполнение программы, теперь останов будет проходить как нужно. Посмотрите в окно отладчика, на какой команде остановился симулятор. Правильно, на команде  call del500ms, а предыдущая была  bsf  PORTB,0. Именно она и установила 0-й бит порта В в 1.

Задание 4. Введите условие останова, когда значение в регистре Count1 будет равно 56. Запустите программу и проверьте правильность останова по этому условию.          

3.4.  Разработка проекта управления светодиодом с помощью кнопки

3.4.1. Теперь разработаем МКУ, в котором управление светодиодом будет выполняться с помощью кнопки. Принципиальная схема такого МКУ может иметь вид, приведенный на рис. 3.

Рис. 3. Принципиальная схема МКУ с кнопкой

Создайте новый проект, используя пункт меню File > New Design. На экране появится диалоговое окно, в котором спрашивается, нужно ли сохранять изменения в закрываемом проекте. Нажмите на кнопку OK. После этого появится диалоговое окно Create New Design, предлагающее выбрать шаблон для создания нового проекта. Щелкните мышью по варианту DEFAULT (проект с параметрами по умолчанию), а затем по кнопке OK. На экране появится основное окно Proteus с синим прямоугольником в окне редактирования, в котором вы будете создавать схему микроконтроллерного устройства.

Согласно схеме на рис. 3 для построения МКУ нам нужен микроконтроллер PIC16F84A, зеленый светодиод, кнопка и два резистора.

Выбор элементов схемы произведите по методике, изложенной в п. 3.3.2.

Для выбора зеленого светодиода введите в строку Keywords слово LED-GREEN (зеленый светодиод). Для выбора кнопки введите в строку Keywords слово BUTTON (кнопка). В окне Results выберите строку BUTTON ACTIVE.

Остальные элементы выбираются аналогично п. 3.3.2. Когда все необходимые элементы будут выбраны, нужно закрыть библиотеку.

3.4.2. Далее необходимо разместить элементы в окне редактирования согласно схеме, приведенной на рис. 3. Начните с микроконтроллера. Затем последовательно разместите резистор R1 и светодиод, потом – резистор R2 и кнопку.

Для выбора клемм общего провода и питания VDD щелкните по иконке с надписью Terminals Mode на панели инструментов. Выберите из списка в окне Object Selector клемму  Ground (земля, общий провод) и поместите ее в нужное место схемы. Затем выберите клемму Power (питание) и поместите ее над резистором R2 согласно рис. 3.