Содержание
Глава 1
Цифровая техника — это очень просто. . . . . . . . . 9
1.1. Сначала был микропроцессор . . . . . . . . . 9
Что же такое микропроцессор. . . .
. . . . . . . . . . 9
Виды памяти. . . . . . . . . . . .
. . . . . . . . . . . . . 13
Различия между микропроцессорами и
микроконтроллерами. . . . . . . . . . . 14
1.2. Считаем по-другому . . . . . . . . . . 15
Десятичная система исчисления. . .
15
Восьмиричная система исчисления. .
. 16
Шестнадцатиричная система исчисления.
. . 17
Двоичная система исчисления . . .
18
Способы обозначения чисел в разных
системах исчисления. . 18
Арифметическая операция сложения.
. . . . . . . . . . . . . . . . . . . . . 19
Арифметическая операция умножения
. . . . . . . . . . . . . . . . . . . . . . 20
1.3. Электронные цифры . . . . . . . . . . . . . . . . . .
. . . . . . 21
Педставление чисел на ПК. . . . .
. . . . . . . . . . . . . . . . . . . . . . 21
Двухуровневый сигнал. . . . . . .
. . . . . 22
1.4. Логические элементы. . . . . . . . . . . . . . . . .
. . . . . . . 24
Знакомство с логическими элементами.
. . . . 24
Простые логические элементы . . .
. . 25
Таблица истинности . . . . . . . .
. . 25
Составные логические элементы. . .
. . 26
1.5. Простейший триггер . . . 28
Что такое триггер . . . . . . . .
. . . . . . . 28
Устройство и работа RS-триггера. .
. . . . . . . . . . . . . . . . . 29
Борьба с дребезгом контактов . . .
31
1.6. Хранение информации . . . . . . . . . . . . . . . . .
. . . . . . . 33
Устройство и работа D-триггера . .
. . . . . . . . . . . . . . . . . . 33
Параллельный регистр . . . . . . .
. . . . . . . . . . . . . . . . . . . . 34
Параллельный регистр с расширенными
возможностями. . . . . . . . . . 35
Устройство и работа JK-триггера. .
. . . . . . . . . . . 36
1.7. Счетчики . . . . . 36
Работа делителя частоты. . . . . .
. . . . . . . . . . . . . 36
Счетчики прямого счета. . . . . .
. . . . . . . . . . . . . . . 38
Счетчики с обратным отсчетом. . .
. . 39
Делители с переменным коэфициентом
деления. . . . . . . . . . . 41
Таймеры . . . . . . . . . . . . .
. . . . . . . . . . .42
1.8. Дешифраторы . . . . . . . . . . . . . . . . . 43
Устройство и прицип действия дешифратора.
. 43
Селектор памяти ячеек ОЗУ. . . . .
. . . . . . . . . . . . . . . . . . . . . . 44
Каскадирование дешифраторов. . . .
. . . . . . . 46
1.9. Мультиплексоры. . . . . . . . . . . . . . . . .
. . . . . 47
Глава 2
Как работают микропроцессоры и микроконтроллеры. . . . . 49
2.1. Типовая схема микропроцессорной системы . . . . . .
. 49
Структурная схема типичной микропроцессорной
системы . . . . . . 49
Виды памяти . . . . . . . . . . .
. . 50
Порты ввода-вывода . . . . . . . .
. . . . . . . . 51
Процессор и цифровые шины . . . .
. . . . . . . . . . . . . . 52
Шина данных . . . . . . . . . . .
. . . . . . . . . . . 53
Шина адреса . . . . . . . . . . .
. 53
Шина управления. . . . . . . . . .
. . . . . . . . . . . . '355
Принцип действия микропроцессорной
системы. . . . . . . . . . . 55
2.2. Алгоритм работы микропроцессорной системы. . . 56
Возможности процессора. . . . . .
. . . . . . . . . . . . . . 56
Программа . . . . . . . . . . . .
. . 57
Процесс выполнения команды. . . .
. . . . . . . . . . . . . . . . . . . . . 58
Рабочие регистры. . . . . . . . .
. . . . . . . . . . . . . 59
Команды микропроцессора. . . . . .
. . . . . . . 60
Команды условного и безусловного перехода
. . . . . . . . . . . . 61
Команда организации цикла. . . . .
. . . . . . . . 62
Команды перехода к подпрограмме. .
. . . . . . . . . . . . . . . . . . . . 64
2.3. Механизм прерываний. . . . . . . . . . . . . . . . .
. . . . 65
2.4. Прямой доступ к памяти. . . . . . . . . . . . . . . .
. . . . . . . . . . . 67
2.5. Микроконтроллеры. . . . . . . . . . . . . . . . . . .
. . 69
Глава 3
Вперед, к практике: знакомтесь — микроконтроллеры AVR. . . . . . . . .
. . 71
3.1. Общие сведения. . . . . . . . . . . . . . . . . . .
. . . . . 71
Особенности новой серии микроконтроллеров.
. 71
Состав серии AVR. . . . . . . . .
. . . . . . . . . . . . . 72
Особенности серии AVR. . . 73
Внутренняя память. . . . . . . . .
. . . . . . . . . . . . 73
Способы программирования Flash- и
EEPROM-памяти. . . . . . . 74
Порты ввода-вывода. . . . . . . .
. . . . . . . . . . . . . 74
Периферийные устройства . . . . .
. . . . . . . . . . 75
Другие устройства. . . . . . . . .
. . . . . . . . . . . . 76
3.2. Регистры общего назначения (РОН ). . . . . 76
3.3. Регистры ввода-вывода . . . . . . . . . . . . . 77
3.4. Память. . . . . . . . . 78
Общие сведения. . . . . . . . . .
. . . . . . . . . . . . 78
Память программ. . . . 78
Оперативная память микроконтроллеров
AVR . . 80
Область памяти, совмещенная с набором
регистров общего назначения (РОН ). . . . . 81
Область памяти, совмещенная с регистрами
ввода-вывода (РВВ) . . . 81
Область внутреннего ОЗУ. . . . . .
. . . . . . . . . . . . . . 82
Область внешнего ОЗУ. . . . . . .
. . . . . . . . . . . 82
Энергонезависимая память данных (EEPROM)
. . 82
3.5. Счетчик команд и стековая память. . . . . . . . . . .
. . . . 83
3.6. Подсистема ввода-вывода. . . . . . . . . . . . . . .
. 86
3.7. Система прерываний. . . . . . . . . . . . . . . .88
Назначение системы прерываний. . .
. . 88
Управление системой прерываний . .
. 88
Алгоритм работы системы прерываний
. . . . . . . . 89
3.8. Таймеры-счетчики. . . . . . . . . . . . . . . . . . .
. . 90
Общие сведения. . . . . . . . . .
. . . . . . . . . . . . . 90
Режимы работы таймеров . . . . . .
. . . . . . . . . . 92
Режим Normal. . . . . . . . . . .
. . . . . . . . . . . 92
Режим «Захват» (Capture). . . . .
. . . . . . . . . . . . . . . 92
Режим «Сброс при совпадении» (CTC).
. . . . . 93
Режим «Быстродействующий ШИМ» (Fast
PWM) . . . 94
Режим «ШИМ с точной фазой» (Phase
Correct PWM). . 95
Асинхронный режим. . . . . . . . .
. . . . . . . . . . . 96
Предделители таймеров/счетчиков. .
. . . . . . . . . . . . 97
3.9. Другие встроенные периферийные устройства. . . . . .
. 98
Аналоговый компаратор. . . . . . .
. . . . . . 98
Аналого-цифровой преобразователь.
. . . . . . . . . . . . 99
Последовательный канал (UART/USART)
. . . . . . . . . . . . 100
Последовательный периферийный интерфейс
(SPI) . . . . . 101
Последовательный двухпроводный интерфейс
(TWI). . . . . . 102
3.10. Другие ячейки. . . . . . . . . . . . . . . . . . . .
. . 102
Конфигурационные ячейки . . . . .
. . . . . . 102
Ячейки защиты и идентификации . .
. . . . . . . . . . . . 103
Глава 4
Осваиваем программы отладки и транслирования. . . . . . . . . . . . .
104
4.1. Программная среда AVR Studio. . . . . . . . . . . . . . .
. . 104
Отладка программы. . . . . . . 104
Программный отладчик . . . . . . .
. . . . . . . . . . . . . 105
Аппаратный отладчик. . . . . . . .
. . 106
Полнофункциональные программные имитаторы
электронных устройств. . . . . 106
Внутренний отладчик микроконтроллеров
AVR . . . 107
Программная среда «AVR Studio» . .
. . . . . . 108
Главная панель программы «AVR Studio».
. . 109
Создание проекта. . . . . . . . .
. . . . . . . . . . . . . . 116
Трансляция программы. . . 118
Отладка программы. . . . . . . . .
. . . . . . . . . . . . 121
Исправление ошибок . . . . . . . .
. . . . . 128
Создание проектов на языке СИ. . .
. . . . . . . 128
4.2. Система программирования Code Vision AVR . . . 130
Общие сведения. . . . . . . . . .
. . . 130
Интерфейс системы Code Vision AVR.
. . . . . . . . . . . . 131
Создание проекта без использования
мастера. . . 133
Отладка программы . . . . . . . .
. . . 137
4.3. Программаторы . . . . . . . . . . . . . 138
Общие сведения. . . . . . . . . .
. . . . . . . . . . . . . . 138
Универсальные и специализированные
программаторы. . . 139
Способ подключения программатора к
компьютеру . . . . . . 140
Схема программатора для LPT порта
. . . 141
Схема программатора для COM порта.
. . . . 142
Схема программатора для USB порта
. . . 143
Внутрисхемное программирование . .
. . . . . 145
Питание программатора. . . . . . .
. . . . . . . . . 145
Программа управления программатором
PonyProg . . . . . . 146
Программирование микросхем . . . .
. 148
Режимы работы программатора. . . .
. . . . . . 154
Работа с управляющей программой USBasp
. . . . . . . 155
Глава 5
Полезные устройства на микроконтроллерах своими руками. . . 160
5.1. Общие положения. . . . . . . . . . . . . . . . . . . . .
160
5.2. Простейшая программа . . . . . . . . . . . . . . . .
163
Постановка задачи . . . . . . . .
. . . . . . . . . . . . . 163
Принципиальная электрическая схема
. . . 163
Алгоритм . . . . . . . . . . . . .
. . . . .165
Программа на Ассемблере. . . . . .
. . . . . . . . . 166
Директивы . . . . . . . . . . . .
. . . . 168
Операторы . . . . . . . . . . . .
. . . . 171
Описание программы (листинг 5.1) .
. . 172
Программа на языке СИ. . . . . . .
. . . . . . . . . . 175
Работа программы, написанной на языке
Си . . . . . . . . . 181
Комментарии. . . . 187
Описание программы (листинг 5.2) . . . .
. . . 187
5.3. Переключающийся светодиод . . . . . . . . 189
Постановка задачи . . . 189
Принципиальная схема . . . . . . .
. . . . . . 189
Алгоритм . . . . . . . . . . . . .
. . 190
Программа на Ассемблере. . . . . .
. . . . . . . . . 193
Описание программы (листинг 5.3) .
. . . . 194
Программа на языке СИ. . . . . . .
. . . . . . . . . . 195
Описание программы (листинг 5.4) .
. . . . . . . . . . . . 196
5.4. Боремся с дребезгом контактов. . . . . 198
Постановка задачи. . . . . . . . .
. . . . . . . . . . . . 198
Схема . . . . . . . . . . . . . .
. . . . . . . .198
Алгоритм . . . . . . . . . . . . .
. . . . . 198
Программа на Ассемблере. . . . . .
. . . . . . . . . . . . . . . . . . . . . 199
Описание программы (листинг 5.5) .
. . . . . . . . . . . . 202
Программа на языке СИ. . . . . . .
. . . . . . . . . . . . . 203
5.5. Мигающий светодиод . . . . . . . . . . . . . . . . 205
Постановка задачи. . . . . . . . .
. . . . . . . . . . . . . . . . . . 205
Схема . . . . . . . . . . . . . .
. 205
Алгоритм программы. . . . . . . .
. . 205
Программа на Ассемблере. . . . . .
. . . . . . . . . 206
Описание программы (листинг 5.7) .
. . . . . . . . . . . . . 207
Программа на языке СИ. . . . . . .
. . . . . . 209
5.6. Бегущие огни. . . . . . . . . . . . . . . . . . . . .
. . . . . 210
Постановка задачи. . . . . . . . .
. . . . . . . 210
Схема . . . . . . . . . . . . . .
. . . . .210
Алгоритм . . . . . . . . . . . . .
. . . . 211
Выполнение алгоритма сдвига. . . .
. . . . . . . . . 212
Программа на Ассемблере . . . . .
. . . . . . 212
Описание программы (листинг 5.9) .
. . . . . . 213
Программа на языке СИ. . . . . . .
. . . . . . 217
5.7. Использование таймера. . . . . . . . . . . . . . . .
. 220
Постановка задачи . . . . . . . .
. . . .220
Схема . . . . . . . . . . . . . .
. . . 220
Алгоритм . . . . . . . . . . . . .
. . . . . . . 220
Программа на Ассемблере . . . . .
. . . . . . . . . . 221
Описание программы (листинг 5.11).
. . . . . 222
Программа на языке СИ. . . . . . .
. . . . . . . . . . . . . . . . . . . . 226
5.8. Использование прерываний по таймеру. . . . . . . . .
. . . 228
Постановка задачи. . . . . . . . .
. . . . . . . . . . . . 228
Схема . . . . . . . . . . . . . .
. . . . . . . . 228
Алгоритм . . . . . . . . . . . . .
. . . . . 228
Программа на Ассемблере. . . . . .
. . . . . . 230
Описание программы (листинг 5.13)
. . . . . . . . . . . . . . 232
Программа на языке СИ . . . . . .
. . . . . . . . . . . 238
Описание программы (листинг 5.14)
. . . . . . . . . . . . . 241
5.9. Формирование звука . . . . . . . . . . . . . . . . .
. . . 244
Постановка задачи . . . . . . . .
. . . . . . . . . . . . . . 244
Схема . . . . . . . . . . . . . .
. . . . . . 245
Алгоритм . . . . . . . . . . . . .
. . . . . . 246
Программа на Ассемблере. . . . . .
. . . . . . . . . 247
Описание программы (листинг 5.15).
. . . . . . . . . . . . . 251
Программа на языке СИ. . . . . . .
. . . . . . 256
Описание программы (листинг 5.16)
. . . . . . . . . . . . . . 260
5.10. Музыкальная шкатулка . . . . . . . . . . . . . . . .
. . . . . . . . . . . 262
Постановка задачи . . . . . . . .
. . . . . 262
Схема . . . . . . . . . . . . . .
. . . . . . . . . . . . 262
Алгоритм . . . . . . . . . . . . .
. . . . . . . . . 262
Кодируем мелодии. . . . . . . . .
. . . . 264
Алгоритм работы музыкальной шкатулки.
. . . . . . . . . . 265
Программа на Ассемблере . . . . .
. . . . . . . . . . 266
Описание программы (листинг 5.17 ).
. . . . . . . 272
Процедура вычисления адреса. . . 273
Текст программы «шаг за шагом». .
. 273
Особенности программы. . . 274
Подпрограмма формирования задержки.
. . 277
Программа на языке СИ . . . . . .
. . . . . . . . . . . 279
Описание программы (листинг 5.18)
. . . . . . 281
5.11. Кодовый замок. . . . . . . . . . . . . 286
Постановка задачи. . . . . . . . .
. . . . . . . . . . . . 286
Алгоритм . . . . . . . . . . . . .
. . 287
Схема . . . . . . . . . . . . . .
. . . . 289
Программа на Ассемблере . . . . .
. . . . . . . . . . . . . . . . . . . . . . 290
Описание программы (листинг 5.19)
. . . . . . . . . . . 293
Процедура записи ключевой комбинации
в EEPROM. . . . . . . . . 307
Процедура проверки кода. . . . . .
. . . . . . . . . . . . . . . . . . . . . 308
Процедура открывания замка. . . .
. 309
Программа на языке СИ. . . . . . .
. . . . . . . . . . . . . . . . . . . . 309
Описание программы (листинг 5.20).
. . . . . . . . . . . 312
5.12. Кодовый замок с музыкальным звонком. . . . . . . . .
. . . 322
Постановка задачи. . . . . 322
Алгоритм . . . . . . . . . . . . .
. 322
Схема . . . . . . . . . . . . . .
. . . . 323
Программа на Ассемблере. . . . . .
. . . . . . . . . 324
Программа на языке СИ. . . . . . .
. . . . . . . . . 334
Приложение 1
Сводная таблица команд Ассемблера микроконтроллеров AVR. . . . . . 339
Группа команд логических операций. . . 339
Группа команд арифметических операций. . . . . . . . . . . . . . . . .
. . 339
Группа команд операций с разрядами . . . . . . . . . . . . . . . . . .
. . . . 339
Группа команд сравнения. . . . . . . . . . . . . . . . . . . . . 340
Группа команд операций сдвига . . . . . . . . . . . . . . . . . . . .
. . . . . 340
Группа команд пересылки данных . . . . . . . . . . . . . . . . . . . .
. . . 341
Группа команд управления системой . . . . . . . . . . . 341
Группа команд передачи управления (безусловная передача управления). .
. . . . 342
Группа команд передачи управления (пропуск команды по условию). . . .
. . . . . . . . 342
Группа команд передачи управления (передача управления по условию). .
. . . . . 342
Приложение 2
Как работать с виртуальным диском . . . . . . 343
Раздел «Примеры программ из книги». . . . 344
Раздел «Видеоуроки» . . . . . . . . . . . . . 345
Раздел «Инструментальные программы». . . 346
Раздел «Справочные материалы». . . . . . . . . . . . . 347
Список литературы. . . . . . . . . . . . . . . . . . . . . . . . 350
Список полезных ссылок на ресурсы Интернет. . . . . . . . . . 350
|