Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
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.05.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.
Кроме того, книга будет полезным источником информации
для всех программистов, работающих с этими микроконтроллерами.

Джон Мортон
Предисловие

— 11 —

Микроконтроллеры AVR — это одни из самых быстродействующих
микроконтроллеров в мире. Лично я представляю себе микроконтроллер в
виде бесполезного куска кремния, обладающего тем не менее огромным
потенциалом. Пока в нем нет программы, он ничего не будет делать, однако при ее наличии он сможет выполнять практически любые функции.
Достаточно большая принципиальная схема в ваших руках может превратиться в обычную программу, уменьшив таким образом целое устройство
до одной единственной микросхемы. Микроконтроллеры ликвидируют
разрыв между аппаратным и программным обеспечением — они выполняют программу как обычный компьютер, являясь в то же время дискретными элементами, которые могут взаимодействовать с другими компонентами схемы. За несколько лет микроконтроллеры стали неотъемлемой частью инструментария радиоинженеров и огромного числа радиолюбителей,
поскольку они великолепно подходят для экспериментирования, мелкосерийного производства и реализации проектов, требующих определенной
гибкости выполняемых функций.
Этапы разработки программного обеспечения микроконтроллеров
AVR приведены на Рис. 1.1.
Среди микроконтроллеров AVR имеется огромное количество различных моделей, начиная от небольших устройств в 8выводных корпусах (семейство Tiny) и заканчивая микросхемами в 40выводных корпусах (семейство Mega) 1). Однако самое потрясающее заключается в том, что можно спокойно писать программу для одной модели, а затем передумать и
переделать эту программу под другую модель микроконтроллера, внеся
всего лишь незначительные изменения. Более того, изучая один из микроконтроллеров AVR, вы научитесь работать со всеми моделями семейства.
Разумеется, каждый из микроконтроллеров имеет свои особенности, однако в основе всех моделей лежит общее ядро.

1) В настоящее время наиболее развитые микроконтроллеры AVR выпускаются в 64выводных корпусах. — Примеч. пер.

Глава 1. ВВЕДЕНИЕ
Глава 1. Введение

— 12 —

Вообще говоря, программирование микроконтроллеров AVR заключается в различных манипуляциях числами. Соответственно, задача программирования состоит в том, чтобы заставить микроконтроллер выполнять поставленную задачу путем простых перемещений чисел и осуществления операций над ними. Существует ограниченный набор операций,
которые можно выполнять над числами, — эти операции называются командами. В программах используются как простые команды (общего назначения), так и более сложные, выполняющие различные специфические
функции. Микроконтроллер будет последовательно перебирать эти команды, выполняя миллионы их каждую секунду (это зависит от частоты
подключенного к нему генератора), и, таким образом, выполнять поставленную задачу. В микроконтроллерах AVR числа можно:
1. Принимать с входов (например, используя входной «порт»).
2. Сохранять в определенных ячейках микросхемы.
3. Обрабатывать (например, складывать, вычитать, умножать и т.п.).
4. Передавать через выходы (например, используя выходной «порт»).
Вот, в принципе, и все, что касается программирования — вы, наверное, уже думаете: «Класс!» К счастью, в микроконтроллерах AVR имеется
много других полезных функций, которые сильно облегчают нам жизнь.
Сюда относятся различные модули, такие как встроенные таймеры, последовательные интерфейсы, аналоговые компараторы, а также куча так наРис. 1.1. Этапы разработки программного обеспечения микроконтроллеров AVR

1. Чистый AVR ничего не делает
2. Пишем программу 
на компьютере

6. Проверяем программу 
в реальном устройстве
5. Программируем 
реальный AVR
4. Проверяем программу
 на компьютере

3. Программируем 
виртуальный 
AVR в компьютере
Краткое замечание для пользователей PIC

— 13 —

зываемых «флагов», благодаря которым мы можем определить, произошло
ли какоелибо определенное событие или нет.
Мы начнем обучение с рассмотрения основных концепций, общих для
всех микроконтроллеров, и сразу же после этого приступим к изучению
нескольких учебных проектов на микроконтроллерах AT90S1200 (которые
будем для краткости называть 1200) и Tiny. Затем мы познакомимся с более
сложными операциями, воспользовавшись для этого более развитыми моделями (такими, как AT90S2313). В заключение мы изучим наиболее продвинутые возможности микроконтроллеров AVR и выполним заключительный проект на базе микроконтроллера 2313. Большинство рассматриваемых нами проектов можно легко адаптировать под любую модель AVR,
поэтому вам совершенно не требуется бежать в магазин и скупать все имеющиеся там микроконтроллеры.

Краткое замечание для пользователей PIC

Я полагаю, что многие читатели уже знакомы с популярными микроконтроллерами PIC фирмы Microchip. Поэтому я вкратце упомяну о преимуществах микроконтроллеров AVR по сравнению с PIC. Тем, кто не
имеет о микроконтроллерах PIC никакого понятия, не стоит особо беспокоиться, если чтото окажется непонятным, — чуть позже вы все поймете!
Прежде всего, микроконтроллеры AVR имеют более совершенную архитектуру и могут выполнять команды в каждом такте (в отличие от PIC,
которым для выполнения команды требуется четыре такта). Поэтому при
той же тактовой частоте микроконтроллеры AVR работают в 4 раза быстрее. Кроме того, они имеют 32 рабочих регистра (в отличие от одного
единственного, имеющегося в PIC) и почти в 3 раза больше команд. Благодаря этому программы для AVR практически всегда будут короче аналогичных программ для PIC. Однако, несмотря на то что в документации
указывается от 90 до 120 команд (в зависимости от модели), многие из них
дублируют друг друга, и, по моим подсчетам, из всех команд действительно уникальными является не более 50.
А вот к так называемым регистрам специальных функций микроконтроллеров PIC (которые в AVR называются регистрами ввода/вывода) разрешен прямой доступ (можно писать непосредственно в порты), что в микроконтроллерах AVR не допускается. Однако это не такой уж большой недостаток, и в целом программы для AVR являются более эффективными. Все
микроконтроллеры AVR имеют FLASHпамять программ, что позволяет
осуществлять их многократное перепрограммирование. И наконец, в связи
с тем, что различные модели микроконтроллеров PIC разрабатывались на
протяжении многих лет, у них имеется ряд досадных проблем с совместимостью, которых в микроконтроллерах AVR до сих пор удавалось избегать.
Доступ онлайн
240 ₽
В корзину