
- •1. Техническое описание лабораторного комплекса
- •1.1. Назначение комплекса
- •1.2. Состав комплекса
- •1.3. Технические данные комплекса
- •1.4. Структура комплекса и общие принципы работы
- •1.5 Общие принципы работы с комплексом
- •1.5.2 Ассемблер микроконтроллеров avr и его особенности
- •1.5.2.2 Система команд
- •1.5.2.3 Директивы ассемблера
- •Cseg - Code segment
- •Dseg - Data Segment
- •Eseg - eeprom Segment
- •Org - Установить адрес начала программы
- •Db - определить байт(ы) в программной памяти или в eeprom
- •Dw – Определить слово(а) в программной памяти или в eeprom
- •Def – Присвоить имя регистру
- •Equ – Присвоить имя выражению
- •Include –вставить другой файл
- •1.5.3.1 Написание программы
- •1.7 Сбои в лабораторном комплексе и их устранение
1.5 Общие принципы работы с комплексом
1.5.1 Общие положения
Перед проведением лабораторных работ студент должен ознакомиться с составом стенда, назначением основных элементов, адресацией переменных, принципиальной схемой блока управления и последовательностью подготовки и проведения лабораторных работ.
Каждому студенту заранее выдается индивидуальное задание. Он должен дома подготовиться к лабораторной работе:
- изучить теоретический материал, который давался студенту на лекциях;
- изучить адресацию и использование органов управления и индикации блока управления;
- проанализировать задание;
- разработать алгоритм решения поставленной задачи;
- написать программу на языке ассемблера для микроконтроллера.
Перед написанием программы студент анализирует поставленную задачу и разрабатывает алгоритм. Алгоритм может быть представлен в виде схемы алгоритма, помогающей при программировании не упустить какие-то операции, переходы и зацикливания в программе.
Сложность программирования на языке ассемблера заключается в том, что для того, чтобы пользоваться всеми возможностями такого языка необходимо, по крайней мере, знать обо всех возможных командах микропроцессора.
Предлагаемое описание не преследует цели научить читателя всем тонкостям программирования на языке ассемблера, скорее это попытка дать основные сведения о программировании на языке ассемблера, чтобы при проведении лабораторных работ можно было писать несложные программы. Более подробную информацию о языке ассемблера можно получить из специализированной литературы.
Разработка программы на языке ассемблера включает следующие этапы:
а) подготовка исходного текста программы;
б) компиляция программы (получение объектного кода);
г) отладка программы.
Обычно эти этапы циклически повторяются, потому что при нахождении ошибок при компиляции или при отладке приходится вновь возвращаться к первому этапу и изменять текст программы для устранения ошибок.
1.5.2 Ассемблер микроконтроллеров avr и его особенности
1.5.2.1 Общая информация
Здесь представлена информация по ассемблеру всей серии AVR, т.к. все микроконтроллеры этой серии программно совместимы.
Ассемблер – это инструмент, с помощью которого создаётся программа для микроконтроллера. Ассемблер транслирует ассемблируемый исходный код программы в объектный код, который может использоваться в симуляторах или эмуляторах AVR. Также ассемблер генерирует код, который может быть непосредственно введен в программную память микроконтроллера.
При работе с ассемблером нет никакой необходимости в непосредственном соединении с микроконтроллером.
Исходный файл, с которым работает ассемблер, должен содержать мнемоники, директивы и метки.
Перед каждой строкой программы можно ставить метку, которая является алфавитно-цифровой строкой, заканчивающейся двоеточием. Метки используются как указания для безусловного перехода и команд условного перехода.
Строка программы может быть в одной из четырёх форм:
[ Метка:] директива [операнды] [Комментарий]
[ Метка:] команда [операнды] [Комментарий]
Комментарий
Пустая строка
Комментарий имеет следующую форму:
; [Текст]
Таким образом любой текст после символа “ ; ” игнорируется ассемблером и имеет значение только для пользователя.
Операнды можно задавать в различных форматах:
- десятичный (по умолчанию): 10,255
- шестнадцатеричный (два способа): 00а, $0а
- двоичный: 0b00001010, 0b11111111
- восьмеричный (впереди ноль): 010, 077