Микроконтроллеры AVR : вводный курс
Вводный курс
Покупка
Тематика:
Микроэлектроника. Наноэлектроника
Издательство:
ДМК Пресс
Автор:
Мортон Джон
Перевод:
Евстифеев Андрей Викторович
Год издания: 2023
Кол-во страниц: 272
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-429-2
Артикул: 640555.02.99
Данное издание представляет собой практическое руководство, с помощью которого вы сможете изучить, а впоследствии и использовать микроконтроллеры AVR компании Atmel. Неважно, студент ли вы, собирающийся использовать микроконтроллер AVR в своем проекте или же опытный разработчик встраиваемых систем, впервые столкнувшийся с AVR, — если вам нужно быстро разобраться в этих популярных микроконтроллерах, то эта книга для вас. Для демонстрации различных возможностей AVR Джон Мортон использует простые устройства и программы. В отличие от книг, в которых излагается голая теория либо просто воспроизводится фирменная техническая документация, такой подход (обучение в процессе использования) предлагает быстрое и интуитивное изучение возможностей микроконтроллеров AVR. В общей сложности, в книге рассмотрены 16 проектов, охватывающих все наиболее популярные микроконтроллеры AVR, включая модели семейства Tiny. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов и радиолюбителей.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 11.03.01: Радиотехника
- 11.03.04: Электроника и наноэлектроника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Микроконтроллеры AVR Вводный курс
John Morton AVR An Introductory Course
Серия «МИРОВАЯ ЭЛЕКТРОНИКА» Джон Мортон Микроконтроллеры AVR Вводный курс Перевод с английского Москва ДМК Пресс, ДодэкаXXI 2023 2-е издание, электронное
УДК 621.316.544.1Atmel ББК 31.264 М80 М80 Мортон, Джон. Микроконтроллеры AVR : вводный курс / Дж. Мортон ; пер. с англ. А. В. Евстифеева. — 2-е изд., эл. — 1 файл pdf : 272 с. — Москва : ДМК Пресс, Додэка-XXI, 2023. — (Мировая электроника). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-429-2 Данное издание представляет собой практическое руководство, с помощью которого вы сможете изучить, а впоследствии и использовать микроконтроллеры AVR компании Atmel. Неважно, студент ли вы, собирающийся использовать микроконтроллер AVR в своем проекте или же опытный разработчик встраиваемых систем, впервые столкнувшийся с AVR, — если вам нужно быстро разобраться в этих популярных микроконтроллерах, то эта книга для вас. Для демонстрации различных возможностей AVR Джон Мортон использует простые устройства и программы. В отличие от книг, в которых излагается голая теория либо просто воспроизводится фирменная техническая документация, такой подход (обучение в процессе использования) предлагает быстрое и интуитивное изучение возможностей микроконтроллеров AVR. В общей сложности, в книге рассмотрены 16 проектов, охватывающих все наиболее популярные микроконтроллеры AVR, включая модели семейства Tiny. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов и радиолюбителей. УДК 621.316.544.1Atmel ББК 31.264 Электронное издание на основе печатного издания: Микроконтроллеры AVR : вводный курс / Дж. Мортон ; пер. с англ. А. В. Евстифеева. — Москва : ДМК Пресс, Додэка-XXI, 2015. — 272 с.— (Мировая электроника). — ISBN 978-5-97060-258-4. — Текст : непосредственный. Все права защищены. Никакая часть этого издания не может быть воспроизведена в любой форме или любыми средствами, электронными или механическими, включая фо& тографирование, ксерокопирование или иные средства копирования или сохранения информации, без письменного разрешения издательства. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-429-2 © John Morton © Издательский дом «Додэка&XXI» © Издание, ДМК Пресс, 2015 ® Серия «Мировая электроника»
Оглавление — 5 — ОГЛАВЛЕНИЕ Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Глава 1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Краткое замечание для пользователей PIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Системы счисления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Сложение в двоичной системе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Отрицательные числа. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8битный RISC FLASHмикроконтроллер? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Первые шаги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Выбор модели . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Блоксхема алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Написание программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Ассемблирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Регистры. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Команды. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Шаблон программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Оглавление — 6 — Глава 2. Основные операции в АТ90S1200 и TINY12 . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Программа A. Светодиод (LEDon) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 AVR Studio — трансляция с языка ассемблера. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Проверка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 AVR Studio — симуляция. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Эмуляция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Аппаратное обеспечение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 AVR Studio — программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Конфигурационные ячейки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Программы B и C. Кнопка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Семисегментные индикаторы и косвенная адресация. . . . . . . . . . . . . . . . . . . . . . . . 49 Программы D и E. Счетчик . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Формирование временных интервалов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Программа F. Бегущий огонек. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Формирование временных интервалов без таймера? . . . . . . . . . . . . . . . . . . . . . . . . . 69 Счетчик команд и подпрограммы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Программа G. Счетчик (версия 3.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Программа H. Светофор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Логические элементы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Программа I. Симулятор логических элементов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 SREG — регистр состояния . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Сторожевой таймер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Спящий режим . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Остальные команды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Программа J. Частотомер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Глава 3. Знакомство с остальными моделями семейства. . . . . . . . . . . . . . . . . . . . . . .111 Глава 4. Дополнительные возможности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118 Прерывания. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Программа K. Измеритель скорости реакции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Случайное распределение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Аналоговый компаратор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Программа L. 4битный аналогоцифровой преобразователь . . . . . . . . . . . . . . . . . . . . . 129 Аналогоцифровой преобразователь (АЦП) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Программа M. Инвертор напряжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Таймер/счетчик 1 (16битный). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Функция захвата . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Функция сравнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Главная программа N. Музыкальный автомат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Глава 5. Продвинутые возможности. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152 ШИМ — широтноимпульсная модуляция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Программа O. Конвертер клавиатуры. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Оглавление — 7 — Последовательный интерфейс SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Нестандартный Таймер 1 модели Tiny15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Сокращение объема кода. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Обзор семейства Mega . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Заключительная программа P. Робот, управляемый компьютером. . . . . . . . . . . . . . . . . 172 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Приложение A. Основные параметры некоторых моделей AVR. . . . . . . . . . . . . . . . . . 180 Приложение B. Цоколевка некоторых моделей AVR . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Приложение C. Обзор системы команд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Приложение D. Справочник команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Приложение E. Таблица векторов прерываний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Приложение F. Преобразование шестнадцатеричных чисел . . . . . . . . . . . . . . . . . . . . 197 Приложение G. Таблица кодов символов ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Приложение H. Если ничего не получается, прочтите это . . . . . . . . . . . . . . . . . . . . . . 199 Приложение I. Контактная информация и дополнительная литература. . . . . . . . . . . 200 Приложение J. Полные тексты учебных программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Ответы к упражнениям. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Предметный указатель. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Предметный указатель. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
— 8 — Посвящается Таре
Благодарности — 9 — БЛАГОДАРНОСТИ Когда Роберт Жарнек познакомил меня с микроконтроллерами AVR, я очень быстро осознал их преимущества перед прочими микроконтроллерами. Единственным недостатком, впрочем, весьма относительным, была их неизвестность по сравнению, например, с микроконтроллерами PIC фирмы Microchip. Я прекрасно понимал, что быстрое распространение микроконтроллеров AVR всего лишь вопрос времени, и поэтому написал книгу, которую можно рассматривать как базовое руководство по их использованию. Эта книга предназначена для тех, кто совершенно незнаком с микроконтроллерами или имеет о них только смутное представление. Я хотел бы воспользоваться возможностью и поблагодарить всех, кто помогал мне в создании этой книги. Английское отделение компании Atmel любезно предоставило мне образцы своего оборудования, однако я вас уверяю — при написании книги я оставался беспристрастным и объективным! Я очень хочу поблагодарить Мэта Вебба за его квалифицированную и тщательную вычитку, в результате которой на страницах появлялась целая куча надписей «Что это?». Несмотря на то что у него было множество других, более полезных дел, вроде сдачи выпускных экзаменов, он умудрялся найти время для тщательного просмотра моей рукописи. Также я хочу выразить свою благодарность Ричарду Джорджу за предложенные им примеры программ и общие советы. Я благодарю Мэта Гаррисона за помощь в подготовке иллюстраций — впоследствии он начал учиться по этому направлению в Королевском художественном колледже. В заключение я должен поблагодарить Макса Хоси за его огромное великодушие, поддержку и консультации, а также руководство кафедры электронной техники колледжа Рэдли, Абингдон за предоставленную возможность работать в их великолепно оборудованной лаборатории. Джон Мортон
— 10 — ПРЕДИСЛОВИЕ Примите мои поздравления! Раз вы читаете эту книгу, значит, вас заинтересовало одно из наиболее производительных и универсальных семейств 8битных микроконтроллеров в мире — семейство AVR. Прочитав книгу, вы получите общее представление обо всех микроконтроллерах семейства и узнаете, каким образом с их помощью можно упростить разработку своих устройств, а также создавать более сложные изделия. Микроконтроллеры AVR, как и все другие, позволяют создавать нестандартные и вместе с тем достаточно гибкие решения. Однако микроконтроллеры AVR являются при этом эффективными, быстродействующими и простыми в использовании, благодаря чему идеально подходят для разработчиков электронных устройств. Сначала мы познакомимся с основными принципами программирования микроконтроллеров (в частности, с различными системами счисления) и подробно рассмотрим основные этапы создания программ. После этого вы приступите к изучению собственно микроконтроллеров AVR, причем все рассматриваемые вопросы будут сопровождаться примерами в виде реально работающих программ. Среди этих программ, в частности, имитатор светофора, музыкальный автомат, частотомер и даже робот, управляемый персональным компьютером. На первых порах мы в основном будем рассматривать готовые учебные программы. Однако по мере прочтения книги объем кода, самостоятельно написанного вами при выполнении упражнений, будет постоянно увеличиваться. Эти упражнения встречаются на протяжении всей книги, а ответы к ним приведены в самом конце. В приложениях собраны основные данные, относящиеся к наиболее популярным микроконтроллерам AVR, что позволяет быстро найти нужную информацию, не перерывая кучу документации. Короче говоря, в этой книге используется активная методика обучения программированию микроконтроллеров AVR. Кроме того, книга будет полезным источником информации для всех программистов, работающих с этими микроконтроллерами. Джон Мортон