- •Глава 1. Теория, понятия, определения
- •Глава 2. Команды ассемблера
- •Глава 3. Составление текста программы на ассемблере в mplab
- •Глава 4. Макетная плата. Программатор
- •Глава 5. Элементарные базовые проекты
- •Глава 6. Инструменты mplab
- •Глава 7. Сопряжение микроконтроллера с внешними устройствами
- •Глава 1. Теория, понятия, определения
- •Регистры специального назначения
- •Регистры общего назначения
- •Как работает микроконтроллер?
- •Банки памяти
- •Глава 2. Команды ассемблера
- •Вычисляемый переход
- •Проверить бит на равенство нулю btfsc f,b
- •Проверить бит на равенство единице btfss f,b
- •; Проверка на факт переноса
- •; Проверка на факт займа
- •; Проверка на равенство нулю
- •; Проверка на равенство одного регистра другому регистру
- •; Проверка на равенство константы какому-либо регистру
- •Сдвиг вправо битов в регистре rrf f, d сдвиг влево битов в регистре rlf f, d
- •Глава 3. Составление текста программы на ассемблере в mplab
- •Структура программы
- •Описание конфигурационных битов.
- •Описание комбинаций битов выбора генератора.
- •Направления работы ножек мк и выполняемые функции задаются в регистрах специального назначения.
- •Глава 5. Элементарные базовые проекты
- •1 (Input) – работа на вход
- •0 (Output) – работа на выход
- •Глава 6. Инструменты mplab
- •Глава 7. Сопряжение микроконтроллера с внешними устройствами
- •Передача данных в сторону компьютера
- •Приём данных от пк на стороне мк
- •Это не конец
Сдвиг вправо битов в регистре rrf f, d сдвиг влево битов в регистре rlf f, d
При работе с этой командой необходимо сначала определить состояние бита C в регистре STATUS, а затем выполнять соответствующий сдвиг. Это позволит вам однозначно знать содержимое сдвигаемого регистра после процедуры сдвига.
А теперь для своего блага перепишите на отдельный лист бумаги все рамки с описаниями команд друг за другом. Вам еще не раз потребуется к ним обратиться.
Дорогие друзья, обращаюсь к вам с просьбой. Если у вас есть человеческие примеры и понятные описания использования других команд – прошу не стесняться – вышлите на адрес ntv1978@mail.ru – ваша информация будет отражена на страницах этого проекта.
Всё, что вам не понятно или понятно иным образом, активно обсуждайте на форуме, руководствуясь принципом – "Не бывает глупых вопросов – бывают плохие учителя". Форум сделан специально для этого. Приглашаю всех к обсуждениям!
Глава 3. Составление текста программы на ассемблере в mplab
Текст программы, составленный из команд на языке ассемблер, называется исходным текстом. Исходный текст для МК будем составлять в программе MPLAB. Затем в этой программе исходный текст компилируется, т.е. переводится в машинные коды. Так как наша программа составлена на языке ассемблер, процесс компиляции ещё называют ассемблированием. Результатом ассемблирования является HEX-файл – обычный текстовый файл с расширением *.hex, который можно открыть стандартным блокнотом Windows. Содержимое этого файла имеет следующий вид:
:020000040000FA
:10000000831686018312FF308600092086010920AD
:10001000032855308C008A308D0003308E008C0B05
:0C0020000F288D0B0F288E0B0F280800F6
:02400E00F13F80
:00000001FF
Именно такого вида информацию мы будем с помощью нашего программатора прошивать в МК.
Таким образом, в данном разделе мы последовательно рассмотрим:
– установка и подготовка к работе MPLAB;
– создание проекта и подключение файла с программой;
– структуру текста программы;
– правила оформления программы;
– конфигурирование МК;
– особенности сопоставления имен и чисел;
– циклическая концепция программы;
– модульная структура программы;
– понятие о времени исполнения программы;
– задержки в программе и их расчёт;
– компиляция и устранение ошибок.
Установка и подготовка к работе MPLAB
MPLAB IDE – интегрированная среда проектирования. В адрес MPLAB можно сказать много нехороших критических высказываний, одно из которых "MPLAB – программа не для людей!". Для удобства работы можно предложить концептуальные усовершенствования, но ввиду того, что MPLAB бесплатен, видимо, это никому не нужно. Не ищите в MPLAB интуитивности в понимании*. (* Это было первое впечатление. Спустя годы работы я уже ко всему привык и уже все компоненты программы стоят на своих местах. На самом деле, для того чтобы начать работать и получить результат, достаточно знать 4-5 простых действий). В связи с этим, рекомендую больше осваивать команды ассемблера, а не MPLAB. MPLAB вам покажет явные ошибки. Что касается ошибок организации программы для МК или неправильной логики ее выполнения – это будет на вашей совести; MPLAB здесь не помощник. Тем не менее, в MPLAB присутствуют некоторые инструменты, позволяющие смоделировать и оценить работу программы для МК. Далее мы научимся работе с этими инструментами на конкретных практических примерах. Какую версию MPLAB ставить? Было проведено сравнение нескольких версий MPLAB: v5.хх, v6.хх, v7.хх. Версии v5.xx – наиболее повернуты лицом к пользователю в плане изучения; в сети Internet имеются русскоязычные описания по работе в версии v5.хх. На описание версий v6.xx не будем тратить время. Версии v7.xx в плане поддержки гораздо хуже, но имеется большой плюс – цветовая подсветка правильности синтаксиса (правильности набора команд). Таким образом, будем работать в версии MPLAB v7.xx и постараемся её развернуть к вам лицом. Внимание! Версию v7.52 не скачивать; она ставится, но не запускается. У нас стоит v7.50. Скачать MPLAB IDE можно с официального сайта Microchip**. На другом дружественном русском сайте можно на начальном этапе обучения поверхностно ознакомиться для общего развития с официально переведенной русскоязычной документацией на тему МК и смежные темы. Ну и конечно всё это (или большая часть) есть на нашем сайте. (** Это ссылка на архив новых и предыдущих версий программ. Уверен, что вышло множество обновлений. Качайте версию 7.50, т.к. далее в самоучителе примеры именно по этой версии прогарммы, в т.ч. картинки окон MPLAB версии 7.50). Процесс установки MPLAB IDE прост и не вызывает никаких проблем. Закрываем все открытые посторонние окна и программы. Запускаем инсталлятор, соглашаемся с лицензией, оставляем типичную установку, ставим в предложенную папку, далее… готово.
Перед работой создаем отдельную папку Project в месте установки программы, например, здесь C:\Program Files\Microchip\Project\. В этой папке мы будем создавать и сохранять наши проекты. Вот и всё.
Создание проекта и подключение файла с программой
Как было сказано MPLAB – программа не для людей. Поэтому всё, что будет сказано далее, запоминаем как буквы алфавита.
1. Запускаем программу.
2. Запускаем мастер проектов Project –> Project Wizard…
3. Выбираем тип микроконтроллера, например PIC16F84A.
4. Выбор языкового средства, в нашем случае Microchip MPASM Toolsuite и ниже прописываются пути для компилятора, ассемблера, линкера (по умолчанию всё прописано и настроено; перенастраивается в случае работы на других языках, например СИ).
5. Ввод имени проекта (Project Name). Имя проекта строго на английской раскладке без пробелов разумной длины, например, Proba.
Выбор папки для размещения проекта (Project Directory). Нажимаем Browse… , находим и выбираем ранее созданную нами папку Project (путь – C:Program FilesMicrochipProject); далее нажимаем кнопку "Создать папку" которую именуем как Proba.
Папку рекомендуем создавать с тем же именем, что и имя проекта.
6. Далее, далее, готово.
Проект – это файл c расширением *.mcp который использует MPLAB для своих нужд. Но без этого файла мы не сможем работать. Более того, к этому файлу-проекту нужно подключить наш файл, с текстом программы. Всё это непонятно и запутано, поэтому делаем следующее.
7. Создаем файл, в котором будет набран текст программы. File –> New. Появляется пустое окно с заголовком Untitled.
8. Сохраняем этот файл. File –> Save As… под именем Proba в папку проекта Proba (путь – C:Program FilesMicrochipProjectProba).
А теперь главное, перед сохранением поставьте галочку перед Add File To Project и этим сделаете ПОДКЛЮЧЕНИЕ ФАЙЛА С ПРОГРАММОЙ к проекту.
9. Альтернативное подключение файла с текстом программы (если эту галку забыли поставить) можно сделать иначе.
В окне с заголовком (в нашем примере – Proba.mcw) щелкаем правой кнопкой мыши по Source Files и выбираем пункт Add Files…, затем по адресу C:Program FilesMicrochipProjectProba находим сохраненный нами файл Proba.asm и открываем его.
Наш файл – Proba.asm – это файл исходник, в котором размещается текст нашей программы на ассемблере. Файл с расширением *.asm , как и файл *.hex , можно открыть в стандартом блокноте Windows. С точки зрения важности – актуален файл исходник, т.к. проект можно создать в любой момент, в любой версии MPLAB и уже потом скомпилировать прошивку.
В ходе продвижения нашего обучения, не смотря на критику, в MPLAB мы покажем некоторые полезные возможности, которые помогут по-новому взглянуть на механизм исполнения программы.
Структура текста программы
Мы установили программу, подключили файл с текстом программы и что дальше? С чего начать? Чем закончить? Здесь мы рассмотрим структуру текста программы и ответим на вопросы: что, как и в какой последовательности должно располагаться в тексте, а далее рассмотрим нюансы при создании структуры. Текст программы состоит из двух частей: шапки и тела программы. В шапке программы указывается:
– тип используемого МК;
– его конфигурация (директива __CONFIG);
– перечисляются имена с сопоставленными числами (директива EQU). В шапке программы, образно говоря, определяют правила игры. Действительно, нужно знать какой используется МК, как он настроен (об это позже), какие регистры и какие числа решили сопоставить. Необходимо отметить, что имена регистров специального назначения мы можем узнать не только из документации, но и в файлах с расширением *.INC (путь – C:_Program Files_Microchip_MPASM Suite), например, P16F84A.INC .
Между шапкой и телом программы стоит директива ORG , определяющая начальный адрес программы в памяти программ в МК.
Затем идёт тело программы, которое определяет логику работы МК.
В самом конце идёт директива END , определяющая конец программы.
