- •Содержание
- •Введение
- •Лабораторная работа 1 Изучение интегрированной среды разработки mplab
- •Методика выполнения работы
- •Создание нового проекта
- •Создание файла с исходным текстом программы
- •Добавление файла к проекту
- •Компиляция исходного текста программы в машинные коды
- •Запись кода программы во внутреннюю flash память микроконтроллера
- •Отладка (выполнение) программы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 2 Изучение запоминающих устройств микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Постановка задачи
- •Разработка алгоритма программы
- •Написание текста программы на языке Ассемблер
- •Трансляция исходного текста программы в машинные коды
- •Тестирование и отладка
- •Сопровождение
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 3 Изучение работы параллельных портов микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 4 Изучение работы последовательных портов микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Лабораторная работа 5 Изучение работы таймеров микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 6 Изучение работы аналого-цифрового преобразователя микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Постановка задачи
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 7 Изучение работы модуля захвата/сравнения/шим микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Библиографический список
- •Приложение 1. Схема лабораторного макета
- •Приложение 2. Краткое описание набора инструкций pic16
- •Приложение 3. Список команд pic16 и их подробное описание
- •Addlw – Сложение рабочего регистра w и константы k
- •Addwf – Сложение рабочего регистра w и регистра f
- •Andlw – Побитное «и» рабочего регистра w и константы k
- •Andwf – Побитное «и» рабочего регистра w и регистра f
- •Bтfsc – Условный переход при нулевом бите b регистра f
- •Bтfss – Условный переход при единичном бите b регистра f
- •Call – Вызов подпрограммы
- •Clrf – Обнуление регистра f
- •Clrw – Обнуление рабочего регистра w
- •Clrwdt – Сброс сторожевого таймера
- •Comf – Инверсия регистра f
- •Decf – Декремент регистра f
- •Decfsz – Декремент регистра f и пропуск в случае нулевого результата
- •Goto – Переход по адресу
- •Incf – Декремент регистра f
- •Incfsz – Декремент регистра f и пропуск в случае нулевого результата
- •Iorlw – Побитное «или» w и константы k
- •Iorwf – Побитное «или» w и регистра f
- •Movf – Пересылка регистра f
- •Movlw – Пересылка константы k
- •Movwf – Пересылка из регистра w в регистр f
- •Retfie – Возврат из подпрограммы с включением прерываний
- •Retlw – Выход из подпрограммы с загрузкой в регистр w константы k
- •Return – Выход из подпрограммы
- •Sleep – Перейти в спящий режим
- •Sublw – Вычитение w из константы k
- •Subwf – Вычитание w из регистра f
- •Swapf – Обмен местами ниблов в регистре f
- •Xorlw – Побитное «Исключающее или» w и константы k
- •Xorwf – Побитное «Исключающее или» w и регистра f
- •Основы микропроцессорной техники
- •620034, Екатеринбург, ул. Колмогорова 66.
Запись кода программы во внутреннюю flash память микроконтроллера
Для программирования микроконтроллера и отладки программы в лабораторном макете применяется программатор-отладчик PICkit 2, который должен быть подключен к USB порту персонального компьютера. Указание MPLAB об использовании PICkit 2, как отладчика дается через пункт меню Debugger › Select Tool › PICkit 2. После подключения PICkit становятся доступными команды программирования в меню и соответствующие им кнопки на панели инструментов. Запись программы в память микроконтроллера осуществляется командой Debugger › Program, чтение памяти программ – Debugger › Read, а чтение энергонезависимой памяти данных – Debugger › Read EEDATA. Результат успешного программирования микроконтроллера, либо возникшие при этом ошибки отображаются в выходном окне MPLAB.
Отладка (выполнение) программы
Запуск выполнения программы возможен в нескольких режимах. Для этого предусмотрены соответствующие команды в меню и кнопки на панели инструментов. Debugger › Run запускает программу в режиме реального времени. При частоте кварцевого резонатора 4 МГц время выполнения одной команды составляет ровно 1 мкс. Debugger › Animate запускает программу в режиме мультипликации. Время выполнения команды составляет примерно 0,5 с, что позволяет наблюдать ход выполнения программы. Debugger › Step Into приводит к выполнению одной очередной команды в основной программе и вложенных подпрограммах. Debugger › Step Over работает аналогично, но без выполнения подпрограмм. Очередная выполняемая команда обозначается курсором в виде зеленой стрелки, расположенной слева от текста программы.
Выполнение программы может быть остановлено командой Debugger › Halt, а также при помощи предварительно установленной точки останова, задаваемой в команде меню Debugger › Breakpoints... или путем двойного щелчка правой клавишей мыши по нужной строке исходного текста программы. Точка останова отображается в виде красного кружка с буквой В слева от текста программы. Неактивные точки останова отображаются в виде красной окружности.
Во время отладки можно наблюдать изменения производимые программой в памяти микроконтроллера и его встроенных периферийных устройствах. Для этого необходимо открыть соответствующее окно в рабочей области MPLAB.
Команда View › Disassembly Listing открывает одноименное окно (рис. 1.11), в котором отображается содержимое памяти программ в виде машинных кодов и мнемонических обозначений команд. View › EEPROM открывает окно энергонезависимой памяти данных (рис. 1.12). View › File Registers открывает окно памяти данных (рис. 1.13). View › Hardware Stack открывает окно аппаратного стека (рис. 1.14). View › Program memory – окно памяти программ (рис. 1.15). View › Special Funtion Registers – окно регистров специальных функций и др. (рис. 1.16).
Рис . 1.11. Окно дизассемблера
Рис. 1.12. Окно энергонезависимой памяти данных
Рис. 1.13. Окно памяти данных
Рис. 1.14. Окно аппаратного стека
Рис. 1.15. Окно памяти программ
Рис. 1.16. Окно регистров специальных функций