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

Задание 1. Наберите текст программы в каком-либо текстовом редакторе и сохраните в папке с вашим проектом под именем  led.asm.

Для работы программы необходима подпрограмма временной задержки del500ms на 500мс. Эта подпрограмма размещается в файле del500ms.asm, который должен находиться также в папке с вашим проектом. Текст подпрограммы задержки при частоте резонатора 4 МГц:

del500ms

clrf  Count1

clrf  Count2

movlw  .3

movwf  Count3

loop

decfsz  Count1

goto  loop

decfsz  Count2

goto  loop

decfsz  Count3

goto  loop

return

Задание 2. Наберите текст подпрограммы временной задержки и сохраните его в файле с именем  del500ms.asm  в папке с вашим проектом.

3.3.7. Теперь необходимо получить выходной hex-файл для загрузки его в память МК. С этой целью откройте меню  Source и выберите пункт Add/Remove Source File (добавить/удалить исходный файл). В появившемся диалоговом окне нажмите кнопку New (новый). Откроется окно New Source File, в котором нужно выбрать исходный файл. Найдите файл  led.asm из вашей папки и нажмите кнопку Открыть. Имя файла  led.asm должно появиться в строке Source Code Filename. Затем нажмите на кнопку выбора в окне Code Generation Tool (средство для генерации кода) и выберите ассемблер MPASMWIN. Подтвердите свой выбор, нажав кнопку OK.

Теперь необходимо выполнить компиляцию и получить выходной hex-файл. Для этого выберите пункт Build All в меню Source. Начнется компиляция программы, а затем откроется окно BUILD  LOG, в котором будут сообщения о результатах построения проекта. Если ошибок нет, то появятся кружки (семафоры) зеленого цвета и сообщение об успешной компиляции Source code build completed OK. Если же вы допустили ошибки, то семафоры будут красного цвета и появятся строки с сообщениями об ошибках.

Закройте окно сообщений компилятора.

3.3.8. И, наконец, нужно записать полученный hex-код программы в память МК, или, как часто говорят, запрограммировать МК. С этой целью наведите курсор мыши на изображение МК и дважды щелкните левой кнопкой мыши. Откроется окно редактирования свойств компонента Edit Component.  Щелкните по кнопке в строке Program File. Откроется окно Select File Name с hex-файлами из папки с вашими проектами. Выберите файл с именем  led.hex и нажмите кнопку «Открыть».

В строке Processor Clock Frequency (тактовая частота процессора) выставьте 4 МГц. В строке Program Configuration Word (слово конфигурации) изменять ничего не надо, так как соответствующие данные есть в исходном файле. Остальные установки также изменять пока нет необходимости.

Нажмите кнопку  OK для подтверждения выбора параметров. Щелкните по пустому месту схемы для снятия выделения с МК.

3.3.8. Теперь можно проверить работу МКУ. С этой целью с помощью кнопки Play – ПУСК запустите проект на выполнение. Если замигал светодиод, то все в порядке.

Обратите внимание на маленькие квадратики около выводов МК, резистора и светодиода. Цвет этих квадратиков говорит об  логических уровнях на выводах элементов в данный момент времени. Синий цвет – низкий, красный – высокий уровень.

3.3.9. Рассмотрим теперь средства отладки программ в Proteus. С этой целью поставьте выполнение проекта на паузу, нажав кнопку Pause – ПАУЗА. На экране появится окно отладчика. Если этого не произошло, щелкните по кнопке меню Debug и в раскрывшемся списке щелкните по пункту PIC CPU Source Code. На экране появится окно отладчика, в котором будет отображен листинг программы работы МК, то есть мнемокоды команд и адреса размещения их в программной памяти. В верхней части окна отображается имя файла отладки, в данном случае led.sdi. Далее следуют пиктограммы (иконки) выбора режима работы отладчика, функции которых отображаются при наведении курсора мыши на них:

· Run Simulation – продолжить выполнение программы;

· Step Over Source Line – шаг без входа в подпрограмму;

· Step Into Source Line – шаг с входом в подпрограмму;

· Step Out from Source Line – исполнять код до возврата из подпрограммы. Фактически остановка происходит на следующей за RETURN командой. Использовать эту опцию можно, естественно, только находясь в подпрограмме;