книги / Программирование микроконтроллеров с использованием IDE
..pdfМинистерство науки ивысшего образования РоссийскойФедерации
Федеральное государственное автономное образовательное учреждение высшего образования
«Пермский национальный исследовательский политехнический университет»
ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ С ИСПОЛЬЗОВАНИЕМ IDE
Утверждено Редакционно-издательским советом университета
в качестве учебного пособия
Под редакцией профессора, доктора технических наук С.Ф. Тюрина
Издательство Пермского национального исследовательского
политехнического университета
2021
1
УДК 004.438 (075.8) ББК З973.2-018.1
П78
Рецензенты:
канд. физ.-мат. наук, доцент А.С. Епифанов (Институт точной механики проблем управления РАН, г. Саратов);
д-р техн. наук, доцент В.И. Фрейман (Пермский национальный исследовательский политехнический университет)
Программирование микроконтроллеров с использованием П78 IDE : учеб. пособие / C.Ф. Тюрин, Д.А. Ковыляев, Е.Ю. Данилова, А.Ю. Городилов; под ред. С.Ф. Тюрина. – Пермь :
Изд-во Перм. нац. исслед. политех. ун-та, 2021. – 100 с.
ISBN 978-5-398-02583-5
Рассмотрено создание в САПР Proteus программ для микроконтроллера 8051 как классического устройства, архитектура которого до сих пор востребована, а также для современного 32-разрядного микроконтроллера STM32F401RE. Изложен материал по программированию микроконтроллеров с использованием IDE (Integrated Development Environment), в том числе Keil uVision, входящих в со-
став MDK-ARM, а также ресурса программирования встроенных систем Mbed для платы NUCLEO-F401RE. Предназначено для обеспечения практических и лабораторных работ студентов бакалавриата и специалитета, изучающих дисциплины «Программирование встроенных систем» и «Цифровая схемотехника». Может быть полезно для магистров и аспирантов.
УДК 004.438 (075.8) ББК З973.2-018.1
ISBN 978-5-398-02583-5 |
ПНИПУ, 2021 |
2
ОГЛАВЛЕНИЕ |
|
Введение.................................................................................................. |
4 |
1. Исследование классического микроконтроллера 8051................ |
10 |
1.1. Создание проекта в Proteus Design Suite |
|
для исследования микроконтроллера 8051.................................... |
10 |
1.2. Создание схемы для моделирования ввода-вывода............... |
13 |
1.3. Программирование ввода-вывода на языке Ассемблер ....... |
18 |
1.4. Программная реализация автомата-распознавателя |
|
с помощью универсальной программы.......................................... |
21 |
2. Исследование микроконтроллера STM32F401RE......................... |
29 |
2.1. Создание проекта в Proteus Design Suite |
|
для исследования микроконтроллера STM32F401RE .................. |
29 |
2.1.1. Загрузка и установка Java.................................................. |
30 |
2.1.2. Загрузка и установка MDK – ARM Keil .......................... |
34 |
2.1.3. Загрузка и установка STM32CubeMX.............................. |
40 |
2.1.4. Настройка микроконтроллера........................................... |
47 |
2.2. Программа ввода-вывода.......................................................... |
55 |
2.3. Схема ввода-вывода.................................................................. |
59 |
2.4. Тестирование программы ввода-вывода................................. |
67 |
2.5. Программа вводас двух ключей ивывода надва светодиода.. |
70 |
3. Программирование микроконтроллера |
|
в составе платы NUCLEO-F401RE ..................................................... |
77 |
3.1. Программа распознавания последовательности |
|
срабатывания датчиков.................................................................... |
78 |
3.2. Моделирование автомата. ........................................................ |
81 |
4. Реализация генетических алгоритмов и программ |
|
диагностирования логики ПЛИС на базе микроконтроллера |
|
STM32F401RE....................................................................................... |
86 |
4.1. Описание программы и алгоритма |
|
диагностирования логики ПЛИС.................................................... |
86 |
4.2. Тестирование работы алгоритма на микроконтроллере........ |
92 |
Заключение............................................................................................ |
97 |
Cписок литературы............................................................................... |
98 |
3
ВВЕДЕНИЕ
Микропроцессор как наследник «больших» и «мини»-ЭВМ, разработанный в начале 70-х годов ХХ века, явился по сути развитием концепции микропрограммного автомата Уилкса, созданного Морисом Уилксом в конце 40-х годов ХХ века для одной из первых ЭВМ с хранимой памятью программ (рис. В1).
Рис. В1. Микропрограммный автомат Уилкса
То есть был создан программный автомат в виде одной микросхемы (правда, были созданы и многокристальные микропроцессоры с масштабируемой разрядностью), содержащий устройство управления
ичасть операционного устройства ОУ (внутреннее ОУ: АЛУ + регистры общего назначения РОН и др.), другая часть ОУ, внешняя, включает дополнительные микросхемы ПЗУ, ОЗУ, устройства ввода УВв
ивывода УВыв и унифицированным образом, через специальные шины, подключается к микропроцессору. Получается микропроцессорная система (рис. В2). Это и есть так называемая фон-Неймановская архитектура. Кроме того, имеется генератортактовыхимпульсовГТИ.
Пример такой микропроцессорной системы в виде лабораторной установки на основе «советского» микропроцессора КР580ВМ80А (Микросхема 580ИК80: Техническое описание И13.480.016 ТО,
4
а
б
Рис. В2. Микропроцессорная система: а – программный автомат – микропроцессор 8080А (КР580ВМ80А); б – внешнее ОУ
Рис. В3. Лабораторнаяустановканаосновемикропроцессора8080А, разработаннаяС.Ф. ТюринымсовместносА.В. Яковлевымподруководством В.А. Несмелова, Т.И. Коганавсередине80-хгодовХХвека
5
1978 г.), разработанной в 80-е годы ХХ века (прототип-схема была любезно предоставлена Куйбышевским политехническим институтом, кроме того использовалась статья из американского журнала: Jonathan A. Titus. Build “Dyna-micro” an 8080 microcomputer. Radio-Electronics, 1976, № 5, 6, 7), показан на рис. В3. На нижней установке УМ2-6 слева – устройство ввода с пультом ввода программы в восьмеричных кодах. Второй слева блок – собственно процессор, там же был и ГТИ, системный контроллер и шинные формирователи. Третий слева блок – ОЗУ (RAM), четвертый – ПЗУ (ROM). Последний блок со светодиодами – устройство вывода, на трех портах отображался адрес и вводимая программа, тудажемогливыводитьсярезультатыработыпрограммы.
Следующий шаг был сделан на рубеже 80-х годов ХХ века – включение в одну микросхему всей микропроцессорной системы, получили микроконтроллер (рис. В4, В5).
Рис. В4. Микроконтроллер «МикроЭВМ»
Не случайно ранее микроконтроллеры носили название «МикроЭВМ», они широко используются в цифровой аппаратуре [1–4]. В настоящее время они содержат дополнительно ЦАП-АЦП и др., все, что необходимо для так называемых встроенных систем, например для робототехники, для «интернета вещей» и т.д. Для работы встроенного тактового генератора необходимо подключить кварцевый резонатор и конденсаторы, иначеиспользуетсявнешнийгенератор.
6
Рис. В5. Внешний вид микроконтроллера 8051, имеющего 40 выводов (1982 год)
Архитектура одного из первых микроконтроллеров – 8051, созданного фирмой «Интел» в 80-е годы ХХ века, до сих пор востребована, например, в бортовых системах управления (справочник АО «Дизайн Центр «Союз») [5] (рис. В6).
а
Рис. В6. Микроконтроллеры с архитектурой 8051:
а – 5400ТР105-001; б – 5400ТР105-003; в – 5400ВК015
7
б
в
Рис. В6. Окончание
Правда, микроконтроллер 8051 имеет Гарвардскую архитектуру, для памяти команд и данных используются отдельные шины.
Со времени издания учебного пособия по микроконтроллерам [2] прошло более 11 лет, поэтому пришла пора расширить диапазон изучаемых микроконтроллеров. Современные микроконтроллеры семейства STM32 [6] производятся компанией STMicroelectronics (архитектура компании ARM) [7] (рис. В7)
8
Рис. В7. Микроконтроллеры STM32
Выберем STM32F401RE, его характеризует высокая производительность, а также доступность работы с ним в среде Proteus. Имеется много готовых, относительно недорогих плат с такими микроконтроллерами [8–12], для программирования которых разработаны удобные онлайн-ресурсы, например Mbed [13].
9
1. ИССЛЕДОВАНИЕ КЛАССИЧЕСКОГО МИКРОКОНТРОЛЛЕРА 8051
1.1. Создание проекта в Proteus Design Suite
для исследования микроконтроллера 8051
Proteus Design Suite – пакет программ для автоматизированного проектирования (САПР) электронных схем (Протеус – сын древнегреческого бога Посейдона, известный своей способностью к перевоплощению. – прим. авт.) (рис. 1.1).
Рис. 1.1. Символ Proteus Design Suite версия 8
Необходимо загрузить соответствующую свободно распространяемую систему схемотехнического моделирования на сайте фирмы Labcenter Electronics (Ве-
ликобритания).
Далее создаем проект с прошивкой (рис. 1.2).
а
Рис. 1.2. Создание проекта в Proteus 8: а – начало; б – задание имени и выбор пути; в – далее; г – далее; д – выбираем 8051 с прошивкой – программированием на Ассемблере; е – итого
10