Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Микроконтроллеры AVR : вводный курс

Вводный курс
Покупка
Артикул: 640555.02.99
Доступ онлайн
240 ₽
В корзину
Данное издание представляет собой практическое руководство, с помощью которого вы сможете изучить, а впоследствии и использовать микроконтроллеры AVR компании Atmel. Неважно, студент ли вы, собирающийся использовать микроконтроллер AVR в своем проекте или же опытный разработчик встраиваемых систем, впервые столкнувшийся с AVR, — если вам нужно быстро разобраться в этих популярных микроконтроллерах, то эта книга для вас. Для демонстрации различных возможностей AVR Джон Мортон использует простые устройства и программы. В отличие от книг, в которых излагается голая теория либо просто воспроизводится фирменная техническая документация, такой подход (обучение в процессе использования) предлагает быстрое и интуитивное изучение возможностей микроконтроллеров AVR. В общей сложности, в книге рассмотрены 16 проектов, охватывающих все наиболее популярные микроконтроллеры AVR, включая модели семейства Tiny. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов и радиолюбителей.
Мортон, Д. Микроконтроллеры AVR : вводный курс : практическое руководство / Д. Мортон ; пер. с англ. А. В. Евстифеева. - 2-е изд. - Москва : ДМК Пресс, Додэка-XXI, 2023. - 272 с. - (Мировая электроника). - ISBN 978-5-89818-429-2. - Текст : электронный. - URL: https://znanium.com/catalog/product/2104735 (дата обращения: 01.12.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Микроконтроллеры 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.
Кроме того, книга будет полезным источником информации
для всех программистов, работающих с этими микроконтроллерами.

Джон Мортон

Доступ онлайн
240 ₽
В корзину