Данное учебно-методическое пособие предназначено для студентов технических специальностей, изучающих микропроцессорную технику. В издании представлены теоретические основы архитектуры микроконтроллеров AVR семейства Mega (на примере ATmega16), принципы работы с памятью, портами ввода-вывода, таймерами, АЦП и радиомодулями nRF24L01+. Сборник содержит подробные задания для лабораторных работ и примеры программного кода на языке Ассемблер.
- Министерство транспорта Российской Федерации
- МИКРОПРОЦЕССОРНЫЕ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИЕ СИСТЕМЫ
- Аннотация
- ВВЕДЕНИЕ
- 1. Общие сведения о микроконтроллере ATmega16
- 1.1. Архитектура AVR микроконтроллера ATmega16
- 1.2. Память данных
- 1.2.1. Регистры общего назначения
- 1.2.2. Регистры ввода/вывода
- 1.2.3. Оперативная память. Стек
- 1.3. Память программ
- 1.4. Организация переходов в памяти программ. Подпрограммы.
- 2. Лабораторная работа №1: «Работа с памятью EEPROM микроконтроллера ATmega16»
- 2.1. Теоретические сведения
- 2.2. Задания на лабораторную работу №1
- 3. Лабораторная работа №2: «Работа с портами ввода/вывода микроконтроллера ATmega16»
- 3.1. Теоретические сведения
- 3.1.1. Порты ввода/вывода
- 3.1.2. Структура программы. Прерывания
- 4. Лабораторная работа №3: «Опрос матричной клавиатуры микроконтроллером ATmega16»
- 4.1. Теоретические сведения
- 4.2. Задания на лабораторную работу №3
- 5. Лабораторная работа №4: «Изучение встроенного АЦП микроконтроллера AVR»
- 5.1. Общие сведения
- 5.3. Задание на лабораторную работу №4
- 6. Лабораторная работа №5: Обмен данными между микроконтроллерами с помощью радиомодуля nRF24L01+
- 6.1. Теоретические сведения
- 6.1.1. Последовательный периферийный интерфейс (SPI)
- 6.1.2. Радиомодуль nRF24L01+
- 6.2. Задание на лабораторную работу №5
- 7. Лабораторная работа №6 «Передача динамически изменяемых данных между микроконтроллерами с помощью радиомодуля nRF24L01+»
- 7.1. Задание на лабораторную работу №6
- Библиографический список
- Приложение: Пример оформления текста программы на языке Ассемблер
Министерство транспорта Российской Федерации
Федеральное агентство железнодорожного транспорта
Федеральное государственное бюджетное образовательное учреждение высшего образования «Дальневосточный государственный университет путей сообщения»
Кафедра «Автоматика, телемеханика и связь»
В.А. Разуваев, П.А. Степанович
МИКРОПРОЦЕССОРНЫЕ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИЕ СИСТЕМЫ
Учебно-методическое пособие по выполнению лабораторных работ
Хабаровск, Издательство ДВГУПС, 2020
Аннотация
Разуваев, В. А. Микропроцессорные информационно-управляющие системы: сборник лабораторных работ / В. А. Разуваев, П. А. Степанович. – Хабаровск : Изд-во ДВГУПС, 2020. 56 с. : ил.
Соответствует рабочим программам дисциплин «Основы микропроцессорной техники» и «Микропроцессорные информационно-управляющие системы». Сборник лабораторных работ соответствует ФГОС ВО по специальности 23.05.05 «Системы обеспечения движения поездов», по направлению 11.03.02 «Инфокоммуникационные технологии и системы связи».
Рассмотрены основные теоретические положения, изложены задания, порядок и методика выполнения лабораторных работ по изучению основ микропроцессорных информационно-управляющих систем на разработанном лабораторном макете «Микропроцессорной технологии», основанном на микроконтроллере ATmega16 семейства AVR, приводится примеры написания программ и подпрограмм на языке Ассемблер.
ВВЕДЕНИЕ
Микропроцессорные системы являются значимыми элементами всех отраслей промышленности. Использование данных систем позволяет создавать более сложные алгоритмы логического управления при значительном снижении размеров и стоимости управляющих устройств.
Курс изучения микропроцессорных информационно-управляющих систем предполагает освоение обучающимися базовых навыков работы с однокристальными микроконтроллерами: структуры микроконтроллера, логики его работы, написание программ, программирование микроконтроллера. Для изучения предлагается AVR микроконтроллеры компании Microchip.
Для подробного изучения структуры и логики работы микроконтроллера предлагается написание управляющих программ на языке Ассемблер. В сборнике приведены теоретические сведения, задания на лабораторные работы, а также примеры написания алгоритмов и подпрограмм.
1. Общие сведения о микроконтроллере ATmega16
1.1. Архитектура AVR микроконтроллера ATmega16
В микроконтроллерах AVR семейства Mega реализована Гарвардская архитектура, в соответствии с которой разделены не только адресные пространства памяти программ и памяти данных, но также и шины доступа к ним. [IMAGE_1]
Поскольку микроконтроллеры AVR имеют 16-битную систему команд, объем памяти программ на рис. указан не в байтах, а в 16-битных словах. Символ «$» перед числом означает, что это число записано в шестнадцатеричной системе счисления.
1.2. Память данных
Память данных микроконтроллеров семейства Mega разделена на три части: регистровая память, оперативная память (статическое ОЗУ) и энергонезависимое ЭСППЗУ (EEPROM).
1.2.1. Регистры общего назначения
Регистры общего назначения (РОН) — ячейки памяти, предназначенные для хранения данных (операндов), используемых для выполнения арифметико-логических операций. В микроконтроллерах AVR имеется 32 регистра общего назначения. [IMAGE_2] [IMAGE_3]
1.2.2. Регистры ввода/вывода
Все регистры ввода/вывода (РВВ) условно можно разделить на две группы: служебные регистры микроконтроллера и регистры, относящиеся к конкретным периферийным устройствам. Для чтения РВВ используется команда IN, для изменения содержимого предназначена команда OUT. [IMAGE_4]
Таблица 1.1. Биты регистра состояния SREG
| Бит | Название | Описание |
|---|---|---|
| 7 | I | Общее разрешение прерываний |
| 6 | T | Хранение копируемого бита |
| 5 | H | Флаг половинного переноса |
| 4 | S | Флаг знака |
| 3 | V | Флаг переполнения дополнительного кода |
| 2 | N | Флаг отрицательного значения |
| 1 | Z | Флаг нуля |
| 0 | C | Флаг переноса |
1.2.3. Оперативная память. Стек
Оставшийся объем оперативной памяти используется в качестве стека, а также для временного хранения данных и организации массивов данных. Он работает в порядке LIFO (Last In, First Out).
1.3. Память программ
Память программ предназначена для хранения команд, управляющих работой микроконтроллера, а также для хранения таблиц констант.

1.4. Организация переходов в памяти программ. Подпрограммы.
Для организации переходов между непоследовательными строками программы используются команды относительного и абсолютного перехода RJMP и JMP соответственно.
2. Лабораторная работа №1: «Работа с памятью EEPROM микроконтроллера ATmega16»
Цель работы: изучить базовые инструкции процессоров AVR, освоить принципы работы с РОН и памятью EEPROM.
2.1. Теоретические сведения
Память EEPROM используется для сохранения пользовательских настроек при снятии электропитания с устройства. Для адресации ячеек используются регистры EEARH и EEARL.
2.2. Задания на лабораторную работу №1
Студент должен выбрать вариант в соответствии с порядковым номером списка группы. Задания включают пересылку массивов, работу с семисегментными индикаторами, логические операции и работу с EEPROM.
3. Лабораторная работа №2: «Работа с портами ввода/вывода микроконтроллера ATmega16»
3.1. Теоретические сведения
3.1.1. Порты ввода/вывода
Микроконтроллер ATmega16 имеет 4 цифровых восьмиразрядных порта ввода/вывода.

[IMAGE_7] [IMAGE_8]
Таблица 3.1. Конфигурации контактов портов ввода/вывода
| DDxn | PORTxn | PUD | Функция вывода | Резистор |
|---|---|---|---|---|
| 0 | 0 | X | Вход | Отключен |
| 0 | 1 | 0 | Вход | Подключен |
| 0 | 1 | 1 | Вход | Отключен |
| 1 | 0 | X | Выход | Отключен |
| 1 | 1 | X | Выход | Отключен |
3.1.2. Структура программы. Прерывания
Под прерыванием понимают приостановку выполнения основной программы для выполнения подпрограммы обработки прерывания. [IMAGE_9]

[IMAGE_11] [IMAGE_12] [IMAGE_13] [IMAGE_14] [IMAGE_15] [IMAGE_16] [IMAGE_17] [IMAGE_18] [IMAGE_19]

[IMAGE_21] [IMAGE_22] [IMAGE_23]

[IMAGE_25]
4. Лабораторная работа №3: «Опрос матричной клавиатуры микроконтроллером ATmega16»
4.1. Теоретические сведения
Матричная архитектура подразумевает группировку кнопок, при которой один из контактов подключается параллельно контактам кнопок, расположенных в одной строке, а второй контакт подключается параллельно контактам кнопок, расположенных в одном столбце. [IMAGE_26] [IMAGE_27]
4.2. Задания на лабораторную работу №3
Задания включают разработку программ для отображения нажатых клавиш, записи данных в EEPROM и управления светодиодными модулями.
5. Лабораторная работа №4: «Изучение встроенного АЦП микроконтроллера AVR»
5.1. Общие сведения
Микроконтроллер ATmega16 оснащен 10-разрядным аналого-цифровым преобразователем последовательного приближения. [IMAGE_28] [IMAGE_29] [IMAGE_30] [IMAGE_31] [IMAGE_32]
5.3. Задание на лабораторную работу №4
Разработать программу измерения температуры воздуха в аудитории с помощью делителя напряжения на основе NTC термистора.
6. Лабораторная работа №5: Обмен данными между микроконтроллерами с помощью радиомодуля nRF24L01+
6.1. Теоретические сведения
6.1.1. Последовательный периферийный интерфейс (SPI)
SPI представляет собой четырехпроводную синхронную шину, предназначенную для последовательного обмена данными между микросхемами.
6.1.2. Радиомодуль nRF24L01+
Микросхема nRF24L01+ оснащена встроенным конечным автоматом, который управляет переходами между режимами микросхемы.
6.2. Задание на лабораторную работу №5
Разработать программу радиопередающего устройства на основе радиомодуля nRF24L01+.
7. Лабораторная работа №6 «Передача динамически изменяемых данных между микроконтроллерами с помощью радиомодуля nRF24L01+»
7.1. Задание на лабораторную работу №6
Разработать программу радиоприемного устройства на основе радиомодуля nRF24L01+ под управлением микроконтроллером ATmega16. Принимать значения напряжения от АЦП передающего стенда, преобразовывая в значения температуры.
Библиографический список
- Евстифеев, А.В. Микроконтроллеры AVR семейства Mega. Руководство пользователя / А.В. Евстифеев. Москва : Додэка XXI, 2015. 588с.
- Техническое описание микроконтроллера ATmega16 // сайт компании Microchip. – URL : http://www.microchip.com.
- Техническое описание микросхемы nRF24L01+ // сайт компании Nordic Semiconductor. – URL : http://www.nordicsemi.com/
Приложение: Пример оформления текста программы на языке Ассемблер
Пример включает директивы, организацию памяти, таблицу векторов прерываний, инициализацию портов, таймеров и подпрограммы обработки прерываний.
