УДК 621.316.544.1(075)
ББК 31.264.5я7
Ф93
Ф93
Фрунзе, А. В.
Микроконтроллеры? Это же просто! Т. 1 / А. В. Фрунзе. — 2-е изд., эл. —
ISBN 978-5-89818-590-9
Первая в отечественной литературе книга, написанная на доступном вплоть до
1 файл pdf : 312 с. — Москва : ДМК Пресс, Додэка-XXI, 2023. — Систем.
требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". —
Текст : электронный.
начинающих уровне, охватывающая абсолютно все аспекты использования микроконтроллеров.
На примере ставшего «де-факто» промышленным стандартом микроконтроллерного
семейства х51 рассмотрены внутреннее устройство микроконтроллера,
его система команд, схемы его сопряжения с периферийными устройствами и
программы, осуществляющие это сопряжение, техника написания и трансляции
ассемблера программ, анализ сообщений компилятора об ошибках, техника занесения
программы в микроконтроллер и последующей отладки занесенных программ.
Рассмотрен ряд полезных программ (многобайтного умножения, деления, преобразования
из одного представления в другое и т. д.). Отдельно даны примеры полностью
законченных разработок. Приведено большое количество обзорных и справочных
материалов, охватывающих практически все микроконтроллеры, программно и аппаратно
совместимые с семейством х51, существующие на момент выпуска книги.
Книга адресована специалистам в области микроконтроллерной техники, стуУДК
621.316.544.1(075)
ББК 31.264.5я7
Электронное издание на основе печатного издания: Микроконтроллеры? Это же просто! Т. 1 /
А. В. Фрунзе. — Москва : ДМК Пресс, Додэка-XXI, 2015. — 312 с. — ISBN 978-5-97060-263-8. —
Текст : непосредственный.
дентам, ее изучающим, а также тем, кто желает самостоятельно разобраться в этой
области.
В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами
защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.
ISBN
978-5-89818-590-9
© Издательский дом «Додэка-XXI»
© Издание, ДМК Пресс, 2015
® Серия «Программируемые системы»
Стр.3
Оглавление
Оглавление
Вступительная статья . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Предисловие к второму изданию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Глава 1. Первое знакомство . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1. Память микроконтроллера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2. Особенности включения микроконтроллера и назначение выводов . . . . . . . . . . . . 15
1.3. Двоичные и шестнадцатеричные числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4. Краткие выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Глава 2. Сопряжение МК с программноуправляемыми ИС . . . . . . . . . . . . . . . . . . . 24
2.1. Сопряжение с параллельным АЦП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2. Программа работы с параллельным АЦП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3. Ассемблер: основные понятия и приемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4. Ассемблер: особенности трансляции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5. Ассемблер: ошибки трансляции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.6. Сопряжение с последовательным АЦП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.7. Краткие выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Глава 3. Регистры микроконтроллера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.1. Регистры общего назначения и слово состояния программы . . . . . . . . . . . . . . . . . . . 61
3.2. Аккумулятор, расширитель аккумулятора, указатель стека и подпрограммы . . . . . 65
3.3. Работа МК с внешней памятью данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.4. Региструказатель данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.5. Пример: подпрограмма, использующая регистры МК . . . . . . . . . . . . . . . . . . . . . . . . 80
3.6. Краткие выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Глава 4. Сопряжение МК с индикаторами различных типов . . . . . . . . . . . . . . . . . . . 94
4.1. Сопряжение с ЖКИ на основе контроллера НТ1611 фирмы HOLTEK . . . . . . . . . . 95
4.2. Сопряжение со светодиодными индикаторами типа АЛС318 . . . . . . . . . . . . . . . . . 104
— 3 —
Стр.4
Оглавление
4.3. Сопряжение с ЖКИ на основе контроллера НD44780 фирмы HITACHI . . . . . . . 115
4.4. Сопряжение с 4разрядными светодиодными матричными индикаторами . . . . . 136
4.5. Краткие выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Глава 5. Система команд микроконтроллеров х51 . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
5.1. Общие сведения о системе команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5.2. Группа команд передачи данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
5.3. Группа команд арифметических операций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
5.4. Группа команд логических операций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
5.5. Группа команд операций с битами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
5.6. Флаги результата . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
5.7. Группа команд передачи управления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5.8. Краткие выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Глава 6. Таймерысчетчики и система прерываний МК х51 . . . . . . . . . . . . . . . . . . 202
6.1. Таймерысчетчики микроконтроллеров семейства х51 . . . . . . . . . . . . . . . . . . . . . . . 202
6.2. Система прерываний микроконтроллеров семейства х51 . . . . . . . . . . . . . . . . . . . . . 209
6.3. Программа, использующая таймерсчетчик и прерывание . . . . . . . . . . . . . . . . . . . 216
6.4. Краткие выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Глава 7. Практические примеры разработки устройств на МК х51 . . . . . . . . . . . 225
7.1. Противоугонное устройство на микроконтроллере семейства х51 . . . . . . . . . . . . . 225
7.2. Простой термостабилизатор на микроконтроллере АТ89С2051 . . . . . . . . . . . . . . . 234
7.3. Подпрограммы целочисленного многобайтного умножения и деления . . . . . . . . 240
7.4. Милливольтметр постоянного тока на АЦП AD7894 иМК семейства х51 . . . . . . 253
7.5. Милливольтметр постоянного тока на АЦП AD7714 и МК семейства х51 . . . . . . 264
7.6. Краткие выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Глава 8. Использование приемопередатчика для связи с ПК . . . . . . . . . . . . . . . . . .286
8.1. Как связывать микроконтроллер и компьютер по каналу RS232 . . . . . . . . . . . . . . 287
8.2. Описание микросхем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
8.3. Режим работы микроконтроллера
с последовательным каналом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
8.4. Основные подпрограммы для микроконтроллера . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
8.5. Общая программа для микроконтроллера. Диаграмма состояний устройства . . . 293
8.6. Общая программа для ПК. Диаграмма состояний ПК . . . . . . . . . . . . . . . . . . . . . . . 299
8.7. Основные подпрограммы для ПК . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
8.8. Пользовательское описание программы для ПК . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
8.9. Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310
— 4 —
Стр.5