
- •СведенИя о процессоре pic16. Система команд Архитектура процессоров семейства pic16
- •Распределение областей памяти процессоров pic16
- •Система команд процессоров pic16
- •Программирование на Ассемблере
- •Синтаксис числовых значений в различных системах счисления
- •Практическая часть Процесс подготовки программ для процессоров pic16 Методические указания
- •Ход работы
- •Лабораторная работа № 1
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 2.
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 3.
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 4
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 5
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 6
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 7
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 8
- •Теоретические сведения
- •Ход работы
- •Список литературы
Ход работы
1. Создание проекта, ввод текста программы на ASSEMBLER, компиляция программы.
1.1. После запуска MPLAB на экране появится заставка, затем – окно с главным меню пакета в верхней части. В главном меню выберите пункт File/New. На экране появится пустое окно с заголовком Untitled 1.
1.2. Введите программу.
LIST p=16f77 ; указание типа процессора
INCLUDE p16f77.inc ;подключение файла
;с описанием процессора
LOOP NOP
NOP
NOP
INCF 20,W
DECF 20,F
GOTO LOOP
END ;завершение программы
Все, что находится в строчке программы правее «;» ассемблер «не видит», что позволяет вставлять в программу комментарии.
1.3. Выберите пункт File/Save As… и сохраните содержимое окна под именем lab1.asm. Соответственно изменится заголовок.
При создании файла и проекта кириллицу применять нельзя, только латинские буквы и цифры, имена должны включать в себя не более восьми символов (без учета символов расширения).
Правильно |
Неправильно |
D:/CAUNT/MPP/Ivanov/lab.asm |
D:/Рабочий стол/Мои документы/lab.asm |
1.4. Откройте пункт Project/New Project и задайте в окне Project Name имя проекта lab, а в окне Project Directory – папку, в которой он будет находиться.
1.5. В открывшемся окне lab.msw (View/Project) в список Source files нажатием правой клавиши мыши добавьте файл lab.asm (Add Files).
1.6. В меню Debugger / Select Tool выберите средство отладки MPLAB SIM. В дальнейшем на панели выбирается необходимый режим.
1.7. Осуществите компиляцию программы нажатием кнопки Build All либо кнопкой Run на панели отладчика. Если все в порядке, на экран выводится окно с сообщением Build Succeeded. Здесь же могут появиться предупреждения и сообщения об обнаруженных в процессе трансляции ошибках. При отсутствии ошибок происходит подготовка двоичного файла для записи в ПЗУ процессора и файла-листинга для тестирования программы.
1.8. Чтобы получить листинг программы с указанием шестнадцатеричного кода и адреса каждой команды, откройте вкладку View/Disassembly Listing.
1.9. Для того, чтобы иметь возможность проследить за всеми изменениями в состоянии регистров процессора, откройте вкладки View/File Registers (RAM, список регистров в ОЗУ процессора с отображением их формальных имен и состояния в шестнадцатеричной, десятичной и двоичной форме).
1.10. С помощью мыши измените размер окон, их положение, создавая удобную для себя рабочую область. При завершении работы с пакетом MPLAB (выборе пункта File/Exit) на экран выводится вопрос о сохранении проекта. В случае положительного ответа последующее открытие проекта приведет к полному восстановлению режимов и вида экрана, имевшихся при последнем сеансе работы.
2. Описание программы, симуляция исполнения программы с помощью отладчика.
2.1. Первой строчкой программы LIST p=16f77 вы указали тип микропроцессора, сообщив программам пакета MPLAB некоторые сведения о нем.
Вторая строчка программы #INCLUDE р16f77.inc подключает файл с описанием микропроцессора. Наименование типа процессора и файла с его описанием должны совпадать.
Последняя строчка END указывает на завершение программы.
Эти строки программы не преобразуются в двоичные коды процессора. LIST, #INCLUDE, END называют командами препроцессора или директивами.
2.2. LOOP – метка (ассемблер подставит вместо нее адрес помеченной команды программы);
NOP, INCF, GOTO – собственно команды, точнее коды выполняемых ими операций.
0x20 – численное значение ячейки с адресом 20 в шестнадцатеричном формате;
F и W – имена констант.
2.3. Выполните компиляцию программы (п.1.7). В окне программы окажется выделенной строка с первой выполняемой командой (в данном случае снабженная меткой LOOP).
2.4. На панели выберите режим Step Into (пошаговое выполнение программы), нажмите кнопку. В результате выделенная команда выполняется, и выделение переходит на следующую строку.
Пошаговый режим исполнения программы применяется в тех случаях, когда нужно разобраться с последствиями выполнения тех или иных команд (или всех команд) выбранного участка программы.
В окнах SFR и RAM все значения, изменившиеся в результате выполнения команды, отмечаются красным цветом. В данном случае (команда NOP) должно измениться только содержимое счетчика команд PCL (содержимое счетчика РС и регистра W можно увидеть и в нижней части экрана).
2.5. В результате выполнения программы по шагам достигнута команда INCF 20,W. Обратите внимание на число в ячейке по адресу 020. После выполнения этой команды это значение не изменится, а в регистр W будет записано число на единицу больше.
2.6. Следующая команда DECF 20,F уменьшает прочитанное из той же ячейки по адресу 020 значение на 1, но, в отличие от предыдущей, оставляет значение в W неизменным, а результат возвращает в исходную ячейку.
2.7. Цикл завершает команда GOTO LOOP, не изменяющая ничего, кроме программного счетчика. В результате цикл будет повторен.
2.8. Измените номер ячейки на число 20+N, где N – номер бригады. Выполните компиляцию программы (п.1.7). Пройдите цикл несколько раз, наблюдая за изменением состояния регистров.
3. Оформите протокол работы, включающий в себя:
3.1. описание создания файла lab.asm, проекта lab.msw;
3.2. таблицу с листингом программы.