Файл: Самоучитель по программированию PIC контроллеров для начинающих (Е.А. Корабельников,2008).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2025

Просмотров: 3611

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

5. Интегрированная среда проектирования MPLAB IDE и работа в ней.

MPLAB это интегрированная среда проектирования для ПИКов, то есть, набор программ, которые позволяют программисту, с максимальным комфортом, составлять, отлаживать и оптимизировать текст программы, а также создавать (после этого) HEX - файл программы ("прошивку").

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

Давайте сначала разберемся с "прожиточным минимумом".

Предполагается, что MPLAB уже установлен на Вашем компьютера и готов к работе.

Общие положения. MPLAB создана конкретно для ПИКов.

Для микроконтроллеров других видов имеются свои среды проектирования.

MPLAB поддерживает все типы ПИКов, за исключением самых новейших разработок (их можно догрузить) и существенно облегчает работу программиста за счет совмещения нескольких, необходимых для работы программиста, функций.

MPLAB можно представить себе как надежного друга, который берет на себя значительную часть рутинной и трудоемкой работы.

Этот друг укажет на ошибку, если она совершена, и поможет Вам в решении проблемных задач, которых, при создании и отладке программ, Вы встретите множество.

Редко когда бывает так, что составление программы идет "как по маслу".

Скорее всего такое - исключение из правил (особенно, для достаточно сложных программ), и поэтому "прожиточный минимум" MPLAB нужно знать как "Отче наше".

Сразу же нужно уяснить следующее: работа по созданию текста своей программы или работа по изменению текста чужой программы всегда начинается с создания так называемого

проекта.

Что-то изменять в тексте программы, производить ее оптимизацию и отладку лучше всего в проекте.

Вэтом случае, с максимальным комфортом, можно пользоваться полным набором возможностей MPLAB.

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

Вцелях определения ясных и понятных "правил игры", давайте договоримся о следующем: составлять, оптимизировать, отлаживать тексты программ, подпрограмм, и вообще, вносить в их тексты какие-либо изменения, мы будем только в проекте.

Вне проекта, мы будем только просматривать тексты программ и HEX – файлы, а также открывать файлы, предназначенные для копирования в проект.

Впределах проекта, осуществляется работа только со "своими" текстами программ.

Для того чтобы изменить их содержимое, необходимо либо сделать это "вручную", либо скопировать в них (полностью или частично), через буфер обмена, содержимое какой-то другой программы.

Вне проекта, никаких изменений в тексты программ мы вносить не будем (хотя и можно). Советую Вам и в дальнейшем, работать по этим правилам.

На мой взгляд, это самый оптимальный и безпроблемный вариант.

В проекте, программист может создавать "свой" текст программы или/и вносить в него

45


изменения, а также вносить изменения в текст "чужой" программы (ASM-файл). Практической необходимости в "ручном" изменении содержимого HEX-файла ("прошивки"), в подавляющем большинстве случаев, нет, так как проще и эффективнее работать не с "прошивкой", а с текстом программы.

Если нет ошибок, то в процессе любого ассемблирования текста программы, MPLAB автоматически создает HEX-файл программы (мозги отдыхают).

В ходе работы над текстом программы, это можно делать многократно (хоть миллион раз), не боясь того, что при этом "наплодится" большое количество HEX-файлов, в которых можно запутаться.

Объяснение этому простое: по "правилам игры" MPLABа, "право на жизнь" имеет только один HEX-файл. Тот, который создан при последнем ассемблировании.

Он просто записывается "по верху предшественника" ("предшественник усоп"). Программисту не нужно знать все детали процесса ассемблирования. MPLAB "все сделает в лучшем виде".

Самое главное - было бы что ассемблировать, и чтобы это "что" было без ошибок, а иначе MPLAB "выдаст на гора" сообщение об ошибках, с указанием вида ошибок, мест ошибок в тексте программы и "откажется" создавать HEX-файл.

Если текст программы (любой) открыт в MPLAB и нужно создать HEX-файл, то программисту нужно только "запустить" процесс ассемблирования и дождаться его окончания.

Если происходит работа в проекте, то HEX-файл, "в автомате, уходит" в папку проекта (см. ниже).

Кроме HEX-файла, MPLAB создает еще несколько файлов с различными расширениями (ASM-файл не в счет), на которые можно "закрыть глаза".

Лично я, после того как заканчиваю работу над программой, либо вообще удаляю их из папки проекта, либо просто не обращаю на них внимания.

Например, содержимое папки проекта с названием Multi, после окончания работы над проектом, выглядит так:

Основные файлы папки проекта, без которых обойтись нельзя:

1.Файл проекта с расширением .PJT: чисто "технологический" файл, который "рулит" всеми остальными файлами папки.

Он создается при создании проекта. К нему можно применить принцип: "создал и забыл". Он "живет по законам" MPLAB и нам там делать нечего.

2.Файл текста программы с расширением .ASM.

3.Результат ассемблирования текста программы - файл с расширением .HEX.

Сразу после создания проекта, в папке проекта, имеется PJT-файл и "пустой" ASM-файл. Так как ассемблирования не производилось (да и что ассемблировать, ведь ASM-файл "пустой"), то HEX-файл будет отсутствовать, но он появится, в этой папке, после первого же успешного ассемблирования.

В "пустом" ASM-файле можно либо "настучать" программу с "нуля", либо скопировать в него (через буфер обмена) предварительно заготовленные части будущей программы и далее ее доработать, либо скопировать в него текст "чужой" программы, с целью его изменения, либо в комплексе.

Все манипуляции с содержимым ASM-файла происходят в специальном текстовом редакторе MPLAB.

46


По принципу своей работы, он мало чем отличается от других текстовых редакторов, и работать с ним проще, чем, например, с редактором "Винворда".

Специальным он называется по той причине, что "встроен" в MPLAB. Что дает такая "встроенность"?

При наличии ошибок в тексте программы, после щелчка (в окне результата ассемблирования) по той или иной строке сообщения об ошибке, в редакторе выделяется строка, в которой допущена ошибка.

Втексте программы может быть организован поиск чего-то повторяющегося, например, команд, которые обращаются к тому или иному регистру.

Входе отладки программы, Вы будете видеть исполняемую команду (она выделяется).

Для определения времени исполнения составных частей программы, можно назначить точки остановки и задействовать секундомер. И т.д.

Предполагаю, что для Вас еще не совсем понятны эти нюансы. Я говорю о них только лишь для того, чтобы создать общее представление о том, с чем придется иметь дело.

Ничего страшного. На практике все гораздо проще, чем на словах. Скоро Вы убедитесь в этом сами.

Итак, текстовый редактор это "посредник в общении" программиста и программы, в ходе ее составления, оптимизации и отладки.

Поэтому основную часть времени работы с программой Вы будете проводить именно в нем. За этим немудреным (с точки зрения манипуляций с текстом) редактором, тем не менее, стоит вся "мощь" MPLAB и в этом отношении, любой, даже самый "крутой" редактор, "работающий сам по себе", ему и "в подметки не годится".

Зауважали? Правильно сделали.

Спецы "Микрочипа" свою зарплату отрабатывают "по полной программе".

Совместно с текстовым редактором, работает так называемая программа - симулятор. Уже из названия понятно, что она что-то "симулирует", то есть, "создает видимость работы".

Симулятор является средством отладки программы и позволяет, без применения реального ПИКа, сымитировать работу программы в своего рода "виртуальном" ПИКе, который, специально для этого, создается программой-симулятором.

Этот "виртуальный" ПИК, на самом деле, физически не существует.

Он создается программными средствами MPLAB, причем, конкретно для каждого типа ПИКа (в зависимости от того, какой из типов ПИКа выбран).

Симулятор, конечно же, не "всесилен", но с его помощью (плюс некоторые хитрости) можно проверить работу программы в большинстве возможных режимов (как в целом, так и по частям), скорректировать ее временные характеристики, найти ошибки и проверить их устранение.

Симулятор это та "палочка - выручалочка", которая применяется в случае "корявой" работы программы, зависания ("глюка") или в случае, когда программа вообще не работает или работает не так, как нужно.

Программа - симулятор покажет Вам, по каким адресам находятся те или иные регистры и

47


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

И все это без "прошивки" реального ПИКа, что экономит кучу времени и нервов.

По большому счету, программисту вовсе не обязательно знать, с помощью какой именно программы, из набора программ MPLAB, производятся те или иные действия.

Достаточно только знать, какое именно действие нужно произвести, как его "запустить" и как проверить результат этого действия, но все-таки будет лучше, если программист, хотя бы в общих чертах, имеет представление о структуре "инструмента", с которым он работает.

Хуже от этого не будет. Итак, ближе к практике.

Работа с MPLAB

Сейчас, разумнее всего, не создавать программу с "нуля", а создать проект какой-нибудь готовой программы.

Вкачестве этой программы, я буду использовать, приведенную выше, в качестве примера, программу Multi.asm

Вдальнейшем, на ее примере, будет показано, как производится ассемблирование, как редактируется текст программы и как происходит отладка программы.

Настройка MPLAB.

Мудрить с настройкой не нужно.

По умолчанию, разработчики MPLAB установили оптимальный вариант настройки, за что им большое спасибо.

Что нужно сделать?

Нужно проконтролировать (на всякий случай) включение симулятора и выставить в Опциях тот тип ПИКа, который задействован в программе (в нашем случае это PIC16F84A), определить стандартный режим работы генератора (XT), значение частоты кварца (4мГц) и единицу измерения частоты (мГц).

Запустите MPLAB.

После этого, Вы увидите "фасад" программы с пустым окном программы.

Управление - привычное: сверху - главное меню, под ним - кнопки, дублирующие основные действия.

Самая левая кнопка - выбор различных раскладок этих кнопок.

Таких раскладок - 4 (на все случаи жизни), но лично я, пользуюсь только одной.

Если в этой раскладке не хватает какого-то нужного мне действия, то я использую команды главного меню.

Пощелкайте по самой левой кнопке: найдите и оставьте ту раскладку, в которой кнопки с двумя светофорами занимают 9-ю и 10-ю позиции слева.

Вглавном меню щелкните по слову Options, а затем - по строке Development Mode. Откроется окно Development Mode с активной вкладкой Tools.

Если вкладка Tools не активна, то щелкните по ней.

На вкладке Tools должна быть поставлена точка перед MPLAB SIM Simulator (симулятор включен).

Если это не так, то поставьте ее и не снимайте, так как симулятор нужен всегда. Щелкните по кнопке списка Processor.

Вы увидите список ПИКов, c которыми работает MPLAB. Нужно выбрать из этого списка PIC16F84A.

Перейдите на вкладку Clock и поставьте там точку перед MHz. Укажите значение частоты применяемого кварца (4.000000).

Ввыпадающем списке Oscillator Type, нужно выбрать XT (стандартный генератор).

Вконечном итоге, Вы должны наблюдать следующее (это две отдельные картинки вкладок. Я их просто совместил):

48


Щелкните по OK.

Настройка опций MPLAB закончена.

Остальные настройки - по умолчанию (то есть, делать больше ничего не нужно).

Создаем проект

Если для файлов проекта заранее не определено место их хранения, то все они будут "свалены в кучу" внутри MPLAB, и Вы будете долго и нудно их искать среди большого количества файлов программы.

В целях недопущения такого "бардака", необходимо заранее (до создания проекта) определить место, где эти файлы будут компактно храниться.

Советую Вам делать так, как делаю я:

Не запуская MPLAB, зайдите в папку программы MPLAB (например, через проводник). Для ориентира: Вы должны увидеть папку Example.

Здесь же создайте "глобальную" папку с названием, например, Pic (для хранения различных проектов), а внутри папки Pic создайте пустую папку Multi (в нее мы и поместим все файлы проекта Multi).

Таким образом, в папке Pic будут храниться папки с файлами различных проектов, которые мы будем создавать. Дешево, сердито и никакого "бардака".

Открываем MPLAB.

Сначала необходимо создать пустой файл, который, в дальнейшем, мы как-нибудь назовем, присвоим расширение (.ASM) и сохраним в папке Multi.

Это делается очень просто: щелкните по слову File в главном меню, а затем по New в выпадающем списке, после чего откроется пустое окно файла, которому программа присвоит название Untitled1 (безымянный №1), 2, 3...

Это не имеет значения, так как далее, это название будет изменено. Одновременно с созданием "пустышки", программа предложит Вам создать проект.

Щелкните по кнопке Yes. Откроется окно New Project.

49

Справа, под словом Directories, Вы увидите что-то типа "недоношенного" Виндовского проводника, а еще ниже - окошко выбора дисков компьютера. Выбираете тот диск, на котором у Вас находится MPLAB и в проводнике щелкаете по папке MPLAB, после чего Вы увидите ее содержимое. Найдите предварительно созданную папку Pic.

Щелкните по ней, а затем по папке Multi.

После того, как Вы увидите, что она открылась (в том смысле, что картинка папки изменится с закрытой на открытую), обратите внимание на левую часть окна New Project.

Снизу (List Files of Type) Вы увидите, что программа автоматически присвоит создаваемому файлу проекта расширение .PJT, поэтому в окошке File Name можно даже указать имя файла проекта без расширения (это относится и к файлам с расширениями .ASM и .HEX, о которых речь пойдет далее), а можно и с расширением. Кому как нравится.

Лучше всего присвоить всем файлам проекта одно и то же имя. В нашем случае - Multi. Так как у всех файлов проекта разные расширения, то "конфликтовать" между собой они не будут.

Внимание: при создании проекта, русские буквы применять нельзя. Нужно применять только латинские буквы и цифры. Все названия должны включать в себя не более

8-ми (включительно) символов (без учета символов расширения), а иначе MPLAB будет "ругаться".

Итак, в окошке File Name "настукиваем": Multi или Multi.pjt

50