ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
ПРОЕКТИРОВАНИЕ СРЕДСТВ КОНТРОЛЯ И ДИАГНОСТИКИ С ЭЛЕМЕНТАМИ ВЫСОКОЙ ИНТЕГРАЦИИ Методические указания к выполнению лабораторной работы № 1
Санкт-Петербург 2005
Составители: кандидат технических наук, доцент С. И. Ковалев, кандидат технических наук, доцент В. А. Голубков
Даны методические указания к выполнению лабораторной работы по курсу «Проектирование средств контроля и диагностики с элементами высокой интеграции», которая ориентирована на ознакомление с интегрированной средой разработки MPLAB, предназначенной для отладки программ микропроцессоров фирмы Microchip Technology Incorporated. Методические указания предназначены для студентов специальности 190200 – «Приборы и методы контроля качества и диагностики». Подготовлены кафедрами электротехники и информационных систем и рекомендованы к изданию редакционно-издательским советом государственного образовательного учреждения высшего профессионального образования «Санкт-Петербургский государственный университет аэрокосмического приборостроения».
Подписано к печати 28.04.05. Формат 60×84 1/16. Бумага офсетная. Печать офсетная. Усл. печ. л. 1,91. Уч. -изд. л. 2,47. Тираж 100 экз. Заказ № Отпечатано с оригинал-макета, подготовленного автором Отдел оперативной полиграфии СПбГУАП 190000, Санкт-Петербург, ул. Б. Морская, 67 © ГОУ ВПО «СПбГУАП», 2005
Лабораторная работа № 1 Ознакомление с интегрированной средой разработки MPLAB Цель работы – ознакомление с программными средствами написания и отладки программ для микроконтроллеров фирмы Microchip Technology Incorporated. MPLAB – интегрированная среда разработки (IDE) MPLAB представляет собой законченную среду разработки, интегрируя несколько инструментальных средств: MPLAB – менеджер проектов (project Manager). Используется для создания проектов и работы со связанными файлами. MPLAB – редактор (Editor). Используется для создания и редактирования текстовых файлов, таких как исходные и файлы сценариев компоновки. MPLAB-SIM – симулятор (Simulator). Позволяет моделировать выполнение команд и входные/выходные сигналы микроконтроллеров. MPLAB-ICE – внутрисхемный эмулятор (Emulator). Позволяет, используя дополнительные аппаратные средства и компьютер, заменять микроконтроллер в разрабатываемом устройстве в реальном времени. MPASM – универсальный ассемблер. MPLINK компоновщик (linker) создает законченное приложение, связывая перемещаемые модули MPASM, MPLAB-C17, и MPLAB-C18. MPLIB – управляет пользовательскими библиотеками. MPLAB-CXX – компилятор C. Позволяет включать в проект исходные тексты написанные на языке высокого уровня С и на ассемблере. PRO MATE II и PICSTART Plus – программаторы. PICMASTER и PICMASTER-CE – внутрисхемные эмуляторы. Создание нового проекта Для создания проекта надо выполнить следующие шаги: Выбор папки проекта. Создайте на диске директорий (папку) для своего проекта. Внимание! MPLAB не поддерживает корректно длинные и русские имена папок, то есть имя должно состоять из не более 8 латинских букв. То же самое относится и к названию проекта и к именам исходных файлов. Создание исходного файла для проекта. Создайте в своей папке пустой файл с расширением .asm. Другой вариант: можно взять готовую заготовку asmфайла для своего проекта. Файлы-заготовки для проектов находятся в папке …\template\code. Если Вы уже выбрали тип микроконтроллера для своего проекта, то скопируйте соответствующий файл в папку своего проекта и переименуйте во 1
что-то типа: prog.asm (<my project>.asm). В этом файле будет храниться ваша исходная ассемблерная программа (в текстовом виде). Выбор языка инструментальной среды. Выберите Project>Install Language Tool из меню. Выберите Language Suite: Microchip и Tool Name: MPASM. Если не указан путь к файлу ассемблера mpasmwin.exe, укажите. Затем установите опцию Windowed и нажмите OK. Создание файла проекта. В MPLAB выберите Project>New Project, укажите путь к Вашей папке и введите имя проекта, желательно такое же, как и имя основного исходного файла. Нажмите OK. Установка конфигурации. После перечисленных действий откроется окно редактирования проекта. Для простоты не будем добавлять дополнительные файлы, файлы библиотек и компоновки. Нажмите кнопку Change. в пункте Development Mode. Откроется окно с вкладками для установки. В дальнейшем это окно можно будет вызвать, выбрав Options>Development Mode. Остановимся подробнее на пунктах в этом окне: - Tools. Выберите инструментальную среду. Скорее всего у Вас нет дополнительного оборудования, поэтому придется довольствоваться симулятором MPLAB-SIM (установите признак) и выберите тип микроконтроллера. - Clock. Выберите тип генератора тактовых импульсов (кварцевый резонатор, внутренний или внешний RC-генератор, внешняя частота и т. д.) и его частоту. - Configuration. Конфигурация сторожевого таймера и памяти программ. Если Вы разрешаете использование сторожевого таймера, то задайте и коэффициент деления предделителя. А для микроконтроллеров 17-й серии необходимо указать, какая память программ будет использоваться: внутренняя (microcontroller), внешняя (microprocessor) или обе (extended microcontroller). - Pins. Разрешите или запретите использование вывода внешнего сброса (MCLR). - Break option. Конфигурация прерываний и стека при отладке (лучше пока оставить по умолчанию). Нажимаете OK. Конфигурация выходного файла. Щелкните, чтобы подсветить на файле <my project>[.hex]. При этом станет доступно меню Node Properties. В ранних версиях MPLAB без вызова окна конфигурации выходного файла нельзя было добавить в проект свой исходный файл. Можно попробовать изменить конфигурацию, а можно оставить по умолчанию. Добавление исходного файла. Чтобы добавить в создаваемый проект свой исходный файл на ассемблере, нажмите на кнопке Add Node. В открывшемся окне выберите свой файл и нажмите OK. После этого нажмите OK в окне редактирования проекта. Если нажмете Cancel, то проект записан не будет! В дальнейшем это окно всегда можно будет вызвать через Project>Edit Project.
2
Открытие исходного файла. Теперь можете открыть свой исходный файл для редактирования: File>Open. В проекте может быть несколько исходных файлов на ассемблере, но указывать необходимо при редактировании проекта один. Остальные включаются в основной исходный файл директивой ассемблера include. З а м е ч а н и е . В последующие дни для продолжения работы над проектом вам каждый раз будет необходимо лишь запустить MPLAB, зайти в Project>Open Project. и открыть свой ранее созданный проект. При этом все настройки проекта сохраняются. Компилирование. Чтобы перекомпилировать только те файлы, в которые были внесены изменения, нажмите Project>Make Project. Чтобы перекомпилировать все файлы проекта выберите Project>Build. После завершения процесса будет вызвано окно с генерированной командной строкой, перечнем предупреждений или ошибок (если есть) и результатом компиляции: компиляция не завершена (build failed) или завершена успешно (build successful ). Помощь при исправлении ошибок может оказать файл-листинг, вызвать который можно из меню таким образом: Window>Absolute Listing. Этапы выполнения проекта
3
Запуск и отладка проекта Для инициализации системы выберите Debug>Run>Reset. При этом программный счетчик (PC)будет сброшен на нулевой адрес 0x00. В файле источника указатель (темная панель – dark bar) установится на команду, соответствующую нулевой ячейки памяти. Сброс происходит автоматически и после перекомпилирования проекта. MPLAB-SIM можно использовать для отладки программы при отсутствии внутрисхемного эмулятора. Это накладывает некоторые ограничения: – невозможность отладки программы с реальными входными сигналами на выводах микроконтроллера; – невозможность запускать выполнение программы в реальном времени. Скорость выполнения зависит от многих факторов: количества открытых окон и запущенных приложений, скорости самого компьютера и других. Чтобы запустить отлаживаемую программу в пошаговом режиме (одна команда за одно нажатие) можете выбрать в меню Debug>Run>Step или нажать на панели инструментов. При этом текущая команда будет
или кнопку выполнена, программный счетчик увеличится и указатель установится на следующую инструкцию (если, конечно, не было команд ветвления, перехода или модификации PC). Кнопка тоже выполняет программу в пошаговом режиме, только подпрограммы будут выполняться за одно нажатие (в непрерывном режиме). Для запуска программы в непрерывном режиме выберите Debug>Run>Run или нажмите или кнопку на панели инструментов. Программа будет выполняться до тех пор, пока Вы не прервете работу, выбрав в меню или произойдет останов в Debug>Run>Halt или нажав или кнопку заранее установленной точке прерывания (breakpoint). Меню File Это стандартное меню со стандартными пунктами для управления файлами проекта. Пункты Export и Import предназначены для обмена данными между компьютером и внешними устройствами (симулятор, эмулятор). Меню Project Пункты для управления проектом и конфигурацией. Изменение установок созданного проекта Edit Project. Make Project – компилировать все исходные файлы для создания одного hex файла, Build All – компилировать все файлы, Build Node – компилировать один выборочный файл. Меню Install Language Tool предназначено для выбора языка программирования и конфигурации. 4
Меню Edit Тоже стандартное меню для управления буфером обмена, а также для поиска, замены текста и другого. Меню Debug После компилирования проекта Вы, наверняка, захотите видеть как Ваш код выполняется. Обычно, разрабатываемое устройство не будет работать правильно, как Вы хотите. Поэтому придется код отлаживать. Вы можете использовать MPLAB-SIM для симулирования работы микроконтроллера или внутрисхемный эмулятор (что вряд ли в наших условиях, например PICMASTER стоит порядка $4000), такой, как MPLAB-ICE. PICMASTER и др. В любом случае придется останавливать работу и наблюдать состояние регистров микроконтроллера и выполнять в пошаговом режиме. Меню Debug содержит все опции, которые Вы будете использовать при отладке Вашего кода с симулятором или эмулятором: Меню Run Опции этого меню позволяют управлять выполнением Вашей программы. Run (F9) – запуск выполнения в непрерывном режиме (с использованием эмулятора в реальном времени, с использованием симулятора с максимально возможной скоростью). Reset (F6) – сброс. Halt (F5) – остановить выполнение программы. Halt Trace (Shift + F5) – остановить трассировку без остановки выполнения программы. Animate – запуск в непрерывном режиме, но с возможностью наблюдать изменение значений регистров и памяти в процессе. Аналогично постоянному нажатию на кнопку пошагового выполнения. Step (F7) – выполнить одну команду и остановиться. Step Over (F8) – тоже самое, но не опускаться в подпрограммы (выполняются в непрерывном режиме). Update All Registers – обновить все регистры для текущей команды Change Program Counter – изменить программный счетчик. Можно ввести числовой адрес, а можно ввести метку. Меню Execute Execute an Opcode – выполнить введенную Вами команду Conditional Break – выполнять программу в непрерывном режиме пока не выполнится введенное Вами условие или не будет нажат Halt. При выборе этой опции откроется окно для конфигурирования. Меню Simulator Stimuls Позволяет имитировать внешние сигналы на входных выводах (портах) микроконтроллера. MPLAB не позволяет изменять состояние портов как других регистров. С одной стороны это вызывает некоторые неудобства, но с другой имеются достаточно мощные средства моделирования входных сигналов: Asynchronous Stimulus Dialog – опция позволяет устанавливать постоянные логические уровни на входных выводах Pin Stimulus Files – подключение специального текстового файла (расширение .sti) описывающего изменение 5
внешних сигналов на входных выводах микроконтроллера. Register Stimulus Files – подключение текстового файла (расширение .reg), описывающего изменение регистров (8 бит). Обычно используется при отладке аналогоцифрового преобразования. Clock Stimulus – опция позволяет имитировать периодические сигналы. Меню Center Debug Location Переместить указатель текущей выполняемой команды в центр окна. Работает с окнами исходных файлов, программной памяти и абсолютного листинга. Меню Breakpoint Settings. Конфигурация точек останова (прерывания). Можно устанавливать до 16 точек. Можно установить при достижении адреса или области и других случаев. Если останов в выбранной точке не происходит, то проверьте установлен ли соответствующий флаг в окне конфигурации (Options>Development Mode). Еще точку останова можно установить щелкнув правой кнопки мыши на нужной строке исходного файла и выбрав Break Point(s), но эти установки сбрасываются при каждом перекомпилировании проекта. Меню Trace Point Settings Конфигурация трассировки, то есть записи в соответствующем окне последовательности выполняемых команд. Меню Trigger In/Out Settings и Trigger Out Point Settings Возможны при работе с внутрисхемным эмулятором и управляют конфигурацией прерывания по внешним сигналам и др. Меню Clear All Points Очистить все установленные точки останова и трассировки. Меню Complex Trigger Settings и Enable Code Coverage. Для работы с эмулятором. Меню Clear Program Memory (Ctrl+Shift+F2) Очистить память программ. Меню System Reset (Ctrl+Shift+F3) Системный сброс. Перезапускается MPLAB, симулятор или подключенный эмулятор. Затем производится инициализация всего оборудования как при старте MPLAB. Меню Power-On-Reset (Ctrl+Shift+F5) Сброс отлаживаемого устройства (симулятор или эмулятор), аналогичный состоянию при подачи напряжения питания. Меню PICSTART Plus Меню конфигурации и управления фирменным программатором PICSTART Plus. При отсутствии подключенного программатора также не доступно
6
Меню Option Меню для конфигурирования самого MPLABа. Включает в себя следующие опции: Development mode. Открывается окно для конфигурирования микроконтроллера в проекте. Информация из этого окна используется симулятором или эмулятором при отладке. Устанавливается тип отладчика, тип тактового генератора (осциллятора), частота, конфигурация внешнего сброса (MCLR), точек останова, сторожевого таймера и др. Window setup. Запись (save) и считывание (load) конфигурации MPLAB, а также установка по умолчанию (default). Current editor settings. Конфигурация встроенного редактора, вида вывода файла на принтер, типа файла. Reset editor modes. Сбросить установленную конфигурацию редактора и установить конфигурацию по умолчанию. Environment setup (Ctrl+F7) Открывается окно с несколькими вкладками для конфигурирования самого MPLABа. Краткое описание вкладок: General Options – установка системного шрифта, расположения панели инструментов, количества знаков для символьных переменных и меток и некоторых установок при загрузке MPLAB. Project Template Options – установка языка программирования и расположения файлов при создании нового проекта (как бы установки по умолчанию). Files – выбор папки, которая будет предлагаться по умолчанию при записи и загрузке. Можно установить как последнюю к которой было обращение (наиболее удобно) или как одну определенную заранее. И еще количество файлов, которые будут предлагаться открыть как наиболее часто употребляемые (для быстрого открытия). Default Editor Modes – установка конфигурации встроенного редактора для новых файлов. Key Mappings – конфигурирование «горячих» клавиш для быстрого вызова или каких-либо действий. Colors – установка цветовой гаммы для текста, выделенного текста, точек останова, трассировки и др. Programmer options – Выбор программатора, его конфигурация и выбор порта для подключения. Меню Tools Опции меню позволяют запустить файлы в ДОС строке и проверять возможность обмена информацией с внешними устройствами (программаторами и эмуляторами).
7
Меню Window MPLAB обеспечивает окна для обзора программной памяти, содержимого стека и содержимого регистров. Внимание: чтобы открыть системное меню для изменения отображаемых данных в открытом окне щелкните левой кнопки мыши в верхнем левом углу этого окна. Все опции меню Window доступны в режиме симулятора (виртуального отладчика) или внутрисхемного эмулятора. В режиме Editor Only доступны только: окно Абсолютного Листинга и окно списка символов (simbol list). Подробнее об возможных опциях: Program Memory – окно памяти программы. Trace Memory – окно результатов трассировки. Если счетчик программы (PC) попадает в область, отмеченную для трассировки, то в этом окне сохраняется порядок выполнения команд. EEPROM Memory – окно просмотра содержимого EEPROM (Электрически программируемая область памяти, сохраняется при отключении питания. Присутствует в кристаллах, содержащих в обозначении букву F, например 16F84). Calibration Data – окно просмотра калибровочных данных. Calibration Memory – окно просмотра калибровочной памяти для кристаллов, содержащих таковую (PIC14400, например). Absolute Listing – окно просмотра абсолютного листинга – полного отчета о компилировании. Полезно просматривать при поиске ошибок. Map File – окно просмотра схемы памяти. По умолчанию этот файл при компилировании не генерируется. Чтобы он был доступен при вызове, надо вызвать окно редактирования проекта Project>Edit Project, подсветите выходной HEX-файл и выберите его свойства Node Properties. В открывшемся окне поставьте галочку в графе ON для Cross Reference File и в графе DATA введите имя файла с именем Вашего проекта и расширением MAP, например myprog.map. После изменений перекомпилируйте проект. Stack – просмотр стека, то есть точек входа в подпрограммы. Не стоит забывать, что у некоторых микроконтроллеров глубина стека всего 2 (например, PIC16C505). Это значит, что можно вызывать только одну подпрограмму из подпрограммы. При третьем вызове информация о возврате теряется и программа будет работать самым неожиданным образом! File Registers – окно просмотра содержимого регистров общего назначения (RAM). Не забудьте, что вид просмотра можно выбрать из меню, щелкнув в левом верхнем углу окна. Special Function Registers – окно просмотра регистров специального назначения (SFR). Show Symbol List (Ctrl+F8) – окно списка символов. Все используемые переменные, регистры, метки, константы и др. Stopwatch – окно просмотра временных параметров. Показывает тактовую частоту (выставляется в окне конфигурации микроконтроллера) и время 8
прошедшее с начала выполнения программы или с момента обнуления в тактах и микросекундах. Очень удобно при отладке программы, когда используются счетчики, таймеры, прерывания и все, связанное со временем. Project Window – окно файла проекта. Включает пути к файлам, подключенные файлы, даты и другая информация. Watch Windows Меню управления окнами просмотра, которые можно определить самостоятельно. При создании и редактировании окна Вы определяете какие регистры и в каком виде показывать. Эти окна можно тоже сохранить в папке Вашего проекта для последующего использования. Удобно при отладке, когда необходимо держать перед глазами содержимое некоторых регистров. Примечание: при двойном щелчке на адресе регистра вызывается окно модификации для изменения содержимого. Надо отметить, что таким образом нельзя менять содержимое портов микроконтроллера. Modify – окно модификации регистров. Можно ввести абсолютный адрес, можно имя переменной или регистра. Можно выбрать тип модифицируемой памяти и заполнить область. Tile Horizontal, Tile Vertical, Cascade, Iconize All, Arrange Icons – опции управления открытыми окнами: упорядочить по горизонтали, по вертикали, уложить каскадом, свернуть все.... Open Windows – быстро открыть какое либо загруженное и свернутое окно. При большом количестве файлов проекта оказывается очень удобно. Меню Help Вызов помощи и справок. Полная оригинальная фирменная информация на английском языке. Если что-то не понятно, то всегда можно там найти. Панель инструментов (Toolbar) Панель инструментов представляет собой ряд кнопок для быстрого вызова тех или иных функций или выполнения каких-либо действий. Существует 4 набора кнопок для разных действий: для редактирования, отладки, управления проектом и для определения пользователем. Для конфигурирования панели инструментов выберите Option>Environment Setup и вкладку General. На ней можно выбрать месторасположение панели (вверху, слева, справа) или, нажав кнопку Layout, добавить или убрать кнопки. Если навести указатель мыши на какую-либо кнопку, то внизу окна MPLAB в строке состояния появится ее описание. Назначение кнопок панели инструментов – сменить набор кнопок панели инструментов (Edit, Debug, Project, User Default) кнопка панели Edit действие 9
кнопка панели Debug действие
создать новый файл запустить программу в непрерывном режиме
открыть файл остановить выполнение программы
сохранить файл выполнить очередную команду
вырезать выделение в буфер выполнить команду, не опускаясь в подпрограммы
копировать выделение в буфер сброс микроконтроллера
вставить из буфера
10
модифицировать счетчик программы (PC)
печать выполнить введенную команду
поиск текстовой последовательности создать новое окно просмотра
повторить последний поиск модифицировать регистр, переменную
поиск и замена текстовой последовательности установить точку останова
повторить поиск и замену текстовой последовательности установить точки трассировки
вернуться на одно действие назад
11
установить защелки
сдвинуть строку вправо на расстояние табуляции очистить все точки останова, трассировки, защелки
сдвинуть строку влево не расстояние табуляции условная точка останова
переместиться на строку с номером... остановить трассировку
включить нумерацию строк в файлах системный сброс
вызвать справку MPLAB вызвать описание версии MPLAB
кнопка панели Project действие 12
кнопка панели User действие
создать проект открыть проект
открыть проект сохранить проект
закрыть проект поиск текстовой последовательности
сохранить проект вырезать выделение в буфер
редактировать проект копировать выделение в буфер
компилировать проект
13
вставить из буфера
компилировать все исходные файлы сохранить файл
компилировать один исходный файл запустить программу в непрерывном режиме
установить язык проекта остановить выполнение программы
вызвать помощь по ассемблеру MPASM выполнить очередную команду
выполнить команду, не опускаясь в подпрограммы
сброс микроконтроллера окно просмотра регистров общего назначения 14
окно просмотра памяти программы
окно просмотра регистров специального назначения
создать новое окно просмотра
компилировать проект Директивы MPASM Директивы ассемблера располагаются в тексте исходного файла для расширения функций ассемблера, определения и управлением процессом. Общее правило – директивы не должны располагаться в первой позиции строки в тексте (иначе будут определены как метка). ДИРЕКТИВА ОПИСАНИЕ ПРИМЕР Директивы управления CONSTANT Определение символьной константы constant cnt=255 #DEFINE Определение текстовой последовательности для замены #define snd portsnd, 1 END Конец блока программы 15
End EQU Определение константы temp equ 0xF0 ERROR Сообщение об ошибке error «error line» ERROR LEVEL Установка типа сообщений об ошибках в файле листинга и файле ошибок errorlevel 1, -202 INCLUDE Вставить другой файл источника include LIST Определение формата (тип микроконтроллера, количество символов в строке, табуляция и многое другое см. MPASM Help) или разрешает вывод, если было предварительно запрещено list p=17c42, f=INHX32, r=DEC MESSG Создать пользовательское сообщение messg “see here!” NOLIST Запретить вывод nolist ORG Установить начальный адрес программы org 0x100 PAGE Вставить страницу в файл листинга page PROCESSOR Установить тип микроконтроллера 16
processor 16F84 RADIX Установить систему счисления по умолчанию для выражения данных radix dec SET Определение константы. Аналогична EQU, но в последствии можно переопределить temp set b’00110011’ SPACE Вставить пустые строки в файл листинга space 3 SUBTITLE Вставить второй заголовок в файл листинга subtitle “Main Project” TITLE Вставить заголовок в файл листинга title “Project Of PIC” #UNDEFINE Удаление определенной текстовой последовательности #undefine snd VARIABLE Определение символьной переменной variable temp=0xF0 Условия ELSE Начало блока альтернативного условия (IF) else ENDIF Завершение блока условия endif ENDW 17
Завершение цикла ПОКА endw IF Начало блока условия if version == 100 IFDEF Выполнить, если определено ifdef testing IFNDEF Выполнить, если не определено ifndef testing WHILE Цикл ПОКА while i < count Данные CBLOCK Определение блока констант cblock 0x20 __CONFIG Описание бит конфигурации микроконтроллера __config H'FFFF' DATA Создание числовых и текстовых данных txt data “please”, 0x30 DB Определение байта данных temp db 0xFF DE Определение данных в EEPROM temp de 0xF0, 0xF1
18
DT Определение таблицы temp dt «text», 0, 0x30 DW Определение слова (2 байта) данных temp dw 39, “text” ENDC Окончание блока констант endc FILL Заполнение области константой fill 0x1009, 5 __IDLOCS Определение ID __idlocs H'FFEE' RES Резервирование памяти buffer res 64 Макросы ENDM Окончание макроса endm EXITM Выход из макроса exitm EXPAND Полный текст макроса в файле листинга expand LOCAL Определение локальной переменной в макросе local leng, tmp 19
MACRO Определение макроса out_sym macro temp NOEXPAND Не разворачивать макрос noexpand Формат представления чисел В исходном тексте представлять числа можно по-разному и в разных системах счисления: ФОРМАТ СИНТАКСИС ПРИМЕР Десятичный D'число' .число D'100' .100 Шестнадцатиричный H'число' 0xчисло H'f9' 0xAF00 Восьмиричный O'число' O'777' Двоичный B'число' B'11110000' Символьный
20
'символ' A'символ' 'C' A'C' Арифметические операторы MPASM ОПЕРАТОР ОПИСАНИЕ ПРИМЕР $ Текущий счетчик программы goto $ + 3 ( левая скобка 1+(d*4) ) правая скобка ( leght + 1 ) * 255 ! операция «НЕ» (логическая инверсия) if ! ( a - b ) ~ инверсия flags = ~ flags отрицательное число (вторая инверсия) - 1 * lenght high выделить старший байт слова movlw high llasid low 21
выделить младший байт слова movlw low ( llasid + .2551 ) * умножение a=c*b / деление a=b/c % модуль lenght = totall % 16 + сложение tot_len = lenght * 8 + 1 вычитание Entry_Son = ( Tot - 1 ) / 8 << сдвиг влево val = flags << 1 >> сдвиг вправо val = flags >> 1 >= больше либо равно if ent >= num > больше if ent > num < меньше 22
if ent < num <= меньше либо равно if ent <= num == равно if ent == num != не равно if ent != num & поразрядное «И» flags = flags & err_bit ^ поразрядное «ИСКЛЮЧАЮЩЕЕ ИЛИ» flags = flags ^ err_bit | поразрядное «ВКЛЮЧАЮЩЕЕ ИЛИ» flags = flags | err_bit && логическое «И» if ( len == 512) && ( b == c ) || логическое «ИЛИ» if ( len == 512 ) || ( b == c ) = установить равному... entry_index = 0 += сложить и установить равному... entry_index += 1 -= 23
вычесть и установить равному... entry_index -= 1 *= умножить и установить равному... entry_index *= lenght /= делить и установить равному... entry_index /= lenght %= модуль и установить равному... entry_index %= 8 <<= сдвиг влево и установить равному... entry_index << 3 >>= сдвиг вправо и установить равному... entry_index >> 4 &= «И» и установить равному... entry_index %= err_flags |= «ВКЛЮЧАЮЩЕЕ ИЛИ» и установить равному... entry_index |= err_flags ^= «ИСКЛЮЧАЮЩЕЕ ИЛИ» и установить равному... entry_index ^= err_flags ++ увеличить на 1 (инкремент) i ++ -уменьшить на 1 (декремент) i—
24
Логические функции Таблица истинности для основных логических функций: X1 Аргумент 1 X2 Аргумент 2 AND
«И» IOR «ИЛИ» XOR Искл. «ИЛИ» 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1
25
Стандартные расширения для файлов MPLAB РАСШИРЕНИЕ НАЗНАЧЕНИЕ ФАЙЛА *.ASM исходный файл на ассемблере *.C исходный файл на С *.CFG файл конфигурации *.COD содержит символьную информацию и объектный код *.CSV файл с записью трассировки (только для MPLAB-ICE 2000) *.DAT файл данных симулятора *.ERR файл обнаруженных ошибок, генерируется ассемблером или С при компиляции *.H добавленный файл на С *.HEX файл с машинными кодами в HEX формате для PIC микроконтроллеров *.HLP файл помощи *.INC добавленный файл на ассемблере *.INI конфигурация MPLAB и установленного языка программирования 26
*.KEY файл схемы кнопок MPLAB *.LKR файл сценария компоновки MPLINK *.LST абсолютный листинг, генерируется ассемблером или С при компиляции *.MTC файл конфигурации языка программирования *.PJT файл содержит главную информацию о проекте *.REG файл, описывающий модификацию регистров при отладке *.STI файл, описывающий входные сигналы на входах микроконтроллера *.TB файл трассировки точек останова *.TBR файл панели инструментов *.TPL временный файл *.TRC файл записи трассировки *.TXT файл записи трассировки (только MPLAB-ICE 2000) *.WAT файл окна просмотра
27
Задание 1. Прочитать методические указания к лабораторной работе. 2. Получить у преподавателя текст программы, создать проект, ввести программу и пройти по шагам заданный фрагмент. 3. Определить время выполнения фрагмента программы. 4. Продемонстрировать преподавателю умение работать с MPLAB, при удачной демонстрации получить отметку в журнале преподавателя о выполненной работе. Студент должен уметь: a) создавать проект; б) устанавливать текущую строку отладчика на произвольную строчку отлаживаемой программы; в) Устанавливать точки останова для автоматического режима отладки; г) проходить отладчиком заданный фрагмент в пошаговом и автоматическом режимах; д) замерять время выполнения отдельных команд и всего фрагмента в целом. 5. Подготовить отчет (один на бригаду). Требования к отчету Отчет должен содержать: - титульный лист; - цель работы; - схему этапов выполнения проекта; - текст фрагмента программы; запись последовательности действий, которые потребовалось выполнить для измерения времени выполнения данного фрагмента программы; измеренное время выполнения всего фрагмента программы и каждой команды фрагмента в отдельности.
28
Словарь Alpha character – набор символов, который включает в себя только буквы латинского алфавита: a, b,... z, A, B,... Z. Alphanumeric – набор символов, который включает в себя набор alpha символов и цифры: 0, 1,... 9. Assemble (ассемблирование) – операция производимая ассемблером (assembler) Assembler (ассемблер) – инструмент языка программирования, который переводит текстовый файл-источник с расширением .asm в исполняемый машинный код. Break point – точка останова, адрес, устанавливаемый пользователем, где выполнение программы останавливается. Build – функция перекомпилирования всех исходных файлов рабочего проекта. C – язык программирования высокого уровня для PIC микроконтроллеров. Calibration memory – специальный регистр или регистры для калибровки внутреннего RC генератора. Compile (компилирование) – операция, производимая компилятором. Compiler (компилятор) – инструмент языка программирования, переводящий исходный файл в исполняемый машинный код. Configuration bits (биты конфигурации) – специальные биты устанавливаемые при программировании микроконтроллера, определяющие рабочую конфигурацию. В исходном файле необходимо определять, используя директиву __config, при использовании симулятора или эмулятора необходимо установить в меню Options>Development Mode. EEPROM – электрически стираемая и программируемая память только для чтения (Electrically Erasable Programmable Read Only Memory). Особый тип памяти, доступный из основной программы микроконтроллера для чтения и записи. Содержимое EEPROM сохраняется при выключения напряжения питания. Extended Microcontroller Mode – режим расширенного микроконтроллера, только для PIC17CXXX и PIC18CXXX кристаллов, при котором используется как и внутренняя память программы, так и внешняя. При превышении объема внутренней памяти автоматически происходит переход на внешнюю память. External RAM – внешняя память для чтения/записи, возможна только для PIC17CXXX и PIC18CXXX кристаллов. Hex Code – стандартный файл hex формата, содержащий выполняемые инструкции, результат ассемблирования или компилирования исходных файлов. Hex Code может быть конвертирован в Object Code (объектный код). Hex File – ASCII файл, содержащий шестнадцатиричный адрес и содержимое (hex code).Файлы этого формата являются исходными файлами программаторов. ICD – внутрисхемный отладчик (In-Circuit Debugger). 29
ICE – внутрисхемный эмулятор (In-Circuit Emulator). IDE – интегрированная среда разработки (Integrated Development Environment). MPLAB IDE включает в себя: компилятор, ассемблер, менеджер проекта, редактор, отладчик, симулятор и другие инструменты. Identifier – функция или имя переменной. Librarian – библиотекарь – инструментальный язык для создания и перемещения библиотек. Library – библиотека – коллекция перемещаемых объектных модулей. Link – функция, выполняемая линкером (linker). Linker – инструментальный язык, комбинирующий объектные файлы (Object Files) и библиотеки для создания выполняемого кода. Linker Script Files – командный файл MPLINK с расширением .lkr, определяющий опции связывания и описывающий возможную память. Listing File – листинг-файл – текстовый файл, показывающий машинный код, сгенерированный для каждого С оператора или ассемблерной инструкции, а также MPASM директивы и макросы. Machine Code – выполняемый машинный код. Macro. При ассемблировании в исходном тексте имя макроса заменяется на определенные ранее инструкции ассемблера (участок кода). Начало макроса соответствует директиве macro и оканчивается директивой endm. Macro Directives – директивы, контролирующие выполнение макроса и распределение данных внутри тела макроса Make Project – команда для перекомпилирования только тех файловисточников, которые были изменены после последнего компилирования. Microcontroller Mode – одна из возможных конфигурация памяти программы только для PIC17CXXX и PIC18CXXX кристаллов. В этом режиме используется только внутренняя память, расположенная на одном кристалле с микроконтроллером. Microprocessor Mode – одна из возможных конфигурация памяти программы только для PIC17CXXX и PIC18CXXX кристаллов. В этом режиме используется только внешняя память программы, внутренняя память отключена. Адресное пространство составляет 64 Кбайта. Node – компонент проекта MPLAB. NOP. Нет операции. Object Code – объектный код, получаемый путем ассемблирования или компилирования исходного файла. Этот перемещаемый код может быть загружен в MPLINK для создания выполняемого кода. Объектный код содержится в объектном файле. Object File – модуль, который содержит перемещаемый объектный код или данные и ссылки на внешний код или данные. Off-Chip Memory – память. 30
Opcodes. Operational Codes. Мнемоника, которая при ассемблировании или компилировании порождает код. Pod – внешнее устройство эмулятора, содержащее память, таймеры, логику прерываний. Power-on-Reset Emulation – программный случайный процесс записи случайных значений в регистры общего назначения (RAM). Program Counter – регистр, содержащий адрес текущей выполняемой команды (инструкции). Program Memory – область памяти микроконтроллера, где хранится код программы (команды, инструкции). В эту область загружается при симулировании или эмулировании код текущей программы. Programmer – программатор, устройство для записи программ в микросхемы, такие как микроконтроллеры, микросхемы памяти и т. п. Project – совокупность исходных файлов и инструкций по компилированию или ассемблированию для одного приложения. RAM – память с произвольным доступом (Random access memory), память данных. ROM – память только для чтения (Read only memory), память программ. SFR, Special Function Registers – регистры специального назначения (Special Function Registers ), РОН. Simulator – программа моделирования работы микроконтроллера. Simulator Stimulus – описание внешних входных сигналов. Возможность изменять состояние или задавать периодический или произвольный сигнал. Source – источник кода, обычно текстовый файл, содержащий инструкции ассемблера или код на С. Source Code - Assembly – источник кода содержащий инструкции микроконтроллера, директивы ассемблера и макросы, который будет переведен в машинный код при ассемблировании. Source Code - C – программа, написанная на языке высокого уровня С, которая будет переведена в машинный код при компилировании. Stack – стек, список вызываемых подпрограмм. При выполнении call или при прерывании в стек заносится текущий адрес программы, а при команде return и возвращении из прерывания адрес из стека переносится в счетчик программы. Stopwatch – счетчик, измеряющий выполненные циклы. Tool Bar – колонка или полоса кнопок-иконок по которым Вы можете щелкать мышью для выполнения функций MPLAB. Watchdog Timer – таймер микроконтроллера, сбрасывающий его при переполнении. Разрешить или запретить таймер возможно установкой соответствующих битов конфигурации микроконтроллера при программировании. Выбрать и изменять пределитель и его коэффициент можно в программе. Watch Window – окно просмотра содержит список переменных и регистров, которые Вы можете просматривать и модифицировать при отладке. 31
Использованные источники информации http://www.microchip.com/0/tools/picmicro/devenv/mplabi/software/v540/index.htm http://www.microchip.com/Download/tools/picmicro/devenv/mplabi/software/manua l/51025e.pdf http://www.disall.newmail.ru/book/glossary.htm
32
Оглавление Создание нового проекта……………………………………………………………… 1 Этапы выполнения проекта…………………………………………………………… 3 Запуск и отладка проекта……………………………………………………………… 4 Назначение кнопок панели инструментов………………………………………….. 10 Директивы MPASM………………………………………………………………….. 15 Формат представления чисел ……………………………………………………….. 20 Арифметические операторы MPASM………………………………………………. 21 Логические функции………………………………………………..………………... 25 Стандартные расширения для файлов MPLAB…………………………………….. 26 Задание………………………………………………………………………………... 28 Требование к отчету……………………………………………………………...…... 28 Словарь………………………………………………………………………………... 29 Использованные источники информации …………………………………...……... 32
33