
- •Введение
- •1. Микроконтроллеры at90s4434/8535 семейства avr
- •1.1. Структура микроконтроллеров avr
- •1.2. Представление данных в языке ассемблера
- •1.2.1. Двоичная система счисления
- •1.2.2. Биты, байты и слова
- •1.2.3. Шестнадцатеричная система счисления
- •1.3. Адресное пространство микроконтроллеров avr
- •2. Лабораторный комплекс
- •2.1. Назначение и состав комплекса
- •2.2. Блок управления
- •3. Директивы ассемблера
- •3.1. Директивы организации сегментов
- •3.2. Директивы счетчика текущего адреса
- •3.3. Директивы определения данных
- •3.4. Директивы присваивания
- •3.5. Директивы задания набора допустимых команд
- •3.6. Директивы управления файлами
- •3.7. Директивы управления листингом
- •4. Система команд микроконтроллеров семейства avr
- •4.1. Команды пересылки данных
- •4.2. Арифметические команды
- •4.3. Логические команды
- •4.4. Команды перехода
- •5. Программа на ассемблере
- •5.1. Структура программы
- •5.2. Алгоритм решения задачи и структура данных
- •5.3. Пример алгоритма программы
- •5.4. Пример текста программы
- •6. Набор и отладка программ
- •6.1. Набор программы
- •6.2. Отладка программы
- •6.3. Запись программы в микроконтроллер
- •7. Меры безопасности при эксплуатации комплекса
- •8. Общие методические указания к лабораторным работам
- •Порядок выполнения лабораторных работ:
- •Содержание отчета по лабораторной работе:
- •9. Лабораторная работа № 1. Изучение системы команд микроконтроллера и директив ассемблера
- •9.2. Пояснения к работе
- •9.3. Варианты индивидуальных заданий
- •10. Лабораторная работа № 2. Система параллельного ввода/вывода
- •10.1. Цель работы
- •10.2. Пояснения к работе
- •Для вызова подпрограммы используется команда rcall pprmet, где pprmet – это метка и название подпрограммы.
- •10.3. Варианты индивидуальных заданий
- •11. Лабораторная работа № 3. Динамическая индикация
- •11.1. Цель работы Освоить организацию динамической индикации, используемой в программах. Экспериментально определить влияние длительности задержек на качество индикации.
- •11.2. Пояснения к работе
- •Работа продолжает изучение 8-разрядных двунаправленных портов программируемого микроконтроллера ат90s8535 для ввода и вывода дискретной информации, при этом используется динамическая индикация.
- •Если нет необходимости в длительной задержке, количество ступеней в подпрограмме можно уменьшить.
- •11.3. Варианты индивидуальных заданий
- •12. Лабораторная работа № 4. Система внешних прерываний микроконтроллера
- •12.1. Цель работы
- •12.2. Пояснения к работе
- •12.3. Варианты индивидуальных заданий
- •13. Лабораторная работа № 5. Программирование таймеров/счетчиков
- •13.1. Цель работы
- •13.2. Пояснения к работе
- •13.3.1. Работа в режиме счетчика
- •13.3.2. Работа в режиме таймера
- •13.3.3. Работа в режиме широтно-импульсного модулятора
- •13.3. Варианты индивидуальных заданий
- •Библиографический список
- •Алгоритм
- •Текст программы
- •Выводы по работе:
- •Содержание
- •Ломакин Игорь Владимирович
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
высшего профессионального образования
«КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ
ЭНЕРГЕТИЧЕСКИЙ УНИВЕРСИТЕТ»
И.В. ЛОМАКИН
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ И ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ
Лабораторный практикум
по дисциплине
«Программное обеспечение и технология программирования микроконтроллеров»
Казань 2009
УДК 004.431.4
ББК 32.973.26-018.2
Л74
Рецензенты:
кандидат технических наук, доцент
Казанского высшего военного командного училища П.П. Павлов;
кандидат технических наук, доцент Казанского государственного
энергетического университета В.В. Шаров
Л74 |
Ломакин И.В. |
|
Программное обеспечение и технология программирования микроконтроллеров. Лабораторный практикум / И.В. Ломакин. – Казань: Казан. гос. энерг. ун-т, 2009. – 92 с. |
|
Лабораторный практикум предназначен для закрепления знаний по архитектуре, функционированию и технологии программирования микроконтроллеров на примере микроконтроллеров AT90S4434/8535 семейства AVR, а также приобретения навыков программирования и отладки программ на языке ассемблера. Лабораторный практикум предназначен для студентов высших учебных заведений, обучающихся по направлению 140600 «Электротехника, электромеханика и электротехнологии». |
УДК 004.431.1
ББК 32.973.26-018.2
© Казанский государственный энергетический университет, 2009
Введение
Целью лабораторного практикума по дисциплине «Программное обеспечение и технология программирования микроконтроллеров» является закрепление знаний по архитектуре и функционированию основных модулей микроконтроллеров на примере микроконтроллеров AT90S4434/8535 семейства AVR, а также приобретение в процессе выполнения лабораторного практикума навыков программирования и отладки программ на языке Ассемблера.
Для удобства проведения лабораторного практикума в методическом руководстве дано описание основных элементов языка Ассемблера семейства AVR: системы счисления, машинное представление данных и команд. Кроме того, приведены директивы Ассемблера для AVR, и система команд процессора AT90S4434/8535 и некоторые дополнительные сведения к ним.
Одна из глав книги описывает порядок создания, компиляции и отладки программ на этапе разработки с помощью программы AvrStudio. Для записи программы в микроконтроллер используется программа New_SP.
Подробно рассмотрены особенности программирования микропроцессорных систем на языке Ассемблера, организации интерфейса с устройствами ввода-вывода и хранения информации. Каждая лабораторная работа содержит справочную информацию необходимую для решения заданной задачи с указанием возможных проблем при вычислениях и способов их устранения.
1. Микроконтроллеры at90s4434/8535 семейства avr
1.1. Структура микроконтроллеров avr
Упрощенно модульную структуру микроконтроллера семейства AVR можно представить в следующем виде (рис. 1.1).
Рис. 1. Структура микроконтроллера семейства AVR
AVR представляет собой 8-разрядный RISC микроконтроллер, имеющий быстрое процессорное ядро, внутрисистемно программируемую Flash-память программ (ROM) емкостью 8 Кбайт, EEPROM память данных емкостью 512 байт, память данных SRAM (512 байт), порты ввода/вывода и интерфейсные схемы.
В микроконтроллерах AVR использованы принципы Гарвардской архитектуры – отдельные память и шины для программ и данных.
При работе с памятью программ используется одноуровневый конвейер – в то время, как одна команда выполняется, следующая команда выбирается из памяти программ, Такой прием позволяет выполнять команду в каждом тактовом цикле.
1.2. Представление данных в языке ассемблера
Для освоения программирования на ассемблере необходимо познакомиться с двоичными и шестнадцатеричными числами, так как без понимания того, как хранятся данные в памяти компьютера, трудно использовать логические и битовые операции.
1.2.1. Двоичная система счисления
В электрических цепях микропроцессорных систем напряжение может принимать два значения – низкого и высокого уровня (нет сигнала и есть сигнал). Этим двум значения поставили в соответствие две цифры – ноль и единица. Именно эти две цифры и используются в двоичной системе счисления, а вместо степеней десяти, как в обычной десятичной системе, – степени двойки. Для перевода двоичного числа в десятичное необходимо сложить двойки в степенях, соответствующих позициям, где в двоичном числе стоят единицы. Например:
10010111b =
= 1 27 + 0 26 + 0 25 + 1 24 + 0 23 + 1 22 + 1 21 + 1 20 =
= 128 + 16 + 4 + 2 + 1 = 151.
Для перевода десятичного числа в двоичное можно, например, разделить его на два, записывая остатки справа налево (таблица 1.1).
Чтобы отличать двоичные числа от десятичных, в тексте в конце каждого двоичного числа ставится буква b.
Таблица 1.1. Перевод десятичного числа в двоичное
Частное |
Остаток |
151 / 2 |
1 |
75 / 2 |
1 |
37 / 2 |
1 |
18 / 2 |
0 |
9 / 2 |
1 |
4 / 2 |
0 |
2 / 2 |
0 |
1 / 2 |
1 |
Результат |
10010111b |