Микроконтроллеры
Информация\Микроконтроллеры\Микроконтроллеры фирмы Microchip\Разработка встроенных систем
Здесь представлена информация по микроконтроллерам фирмы Microchip, иначе именуемым PIC-микроконтроллерам. Представлены для свободного скачивания книги и справочники. Вы можете здесь же заказать бумажный вариант книги.
Разработка встроенных систем с помощью микроконтроллеров PIC - Тим Уилмсхерст. 2008г. (14372 Кб)
Благодаря полезным примерам и иллюстрациям, эта книга дает глубокие познания в сфере проектирования систем с помощью микроконтроллеров PIC, а также - программирования этих устройств на ассемблере и С. Подробно рассмотрены микроконтроллеры 16F84A, 16F873A и 18F242. Даны примеры реальных проектов, включая модель робота, выполненного в виде транспортного средства с автономным управлением. Дополнительно рассматриваются такие вопросы повышенной сложности, как применение устройств в сетевой среде и построение операционных систем реального времени.
Издательство: МК-Пресс, Корона-Век
Год: 2008
Страниц: 544
Формат: djvu
СОДЕРЖАНИЕ
ЧАСТЬ 1. ВВЕДЕНИЕ В ПОНЯТИЕ ""ВСТРОЕННЫЕ СИСТЕМЫ""..21
Глава 1. Миниатюрные компьютеры, невидимый контроль..22
1.1. Встроенные системы в сегодняшнем мире22
1.1.1. Что такое встроенная система?.22
1.2. Несколько примеров встроенных систем..23
1.2.1. Холодильник.23
1.2.2. Механизм автомобильной дверцы..24
1.2.3. Электронный ""пинг-понг""24
1.2.4. Робокар Derbot.25
1.3. Основы компьютеров27
1.3.1. Элементы компьютера27
1.3.2. Системы команд - CISC и RISC.28
1.3.3. Типы памяти.28
1.3.4. Организация памяти.28
1.4. Микропроцессоры и микроконтроллеры..29
1.4.1. Микропроцессоры.29
1.4.2. Микроконтроллеры..30
1.4.3. Семейства микроконтроллеров.30
1.4.4. Корпуса и внешний вид микроконтроллеров32
1.5. Компания Microchip и микроконтроллер PIC33
1.5.1. История33
1.5.2. Микроконтроллеры PIC сегодня..33
1.6. Знакомство с микроконтроллерами PIC на примере семейства 1235
1.6.1. Архитектура микроконтроллера 12F508.36
1.7. Микроконтроллер Freescale.38
Резюме38
ЧАСТЬ 2. СИСТЕМЫ С МИНИМАЛЬНОЙ
ФУНКЦИОНАЛЬНОСТЬЮ И PIC® 16F84A..40
Глава 2. Знакомство с семейством РГС® 16 и микроконтроллером 16F84A..41
2.1. Семейство PIC 16 - общее представление41
2.1.1. Обзор семейства.41
2.1.2. Микроконтроллер 16F84A43
2.1.3. Предостережение об обновлениях..43
2.2. Обзор архитектуры микроконтроллера 16F84A43
2.2.1. Регистр состояния.45
2.3. Обзор технологий памяти..46
2.3.1. Статическая память RAM (SRAM).46
2.3.2. Память EPROM46
2.3.3. Память EEPROM47
2.3.4. Флэш-память.47
2.4. Память микроконтроллера 16F84A47
2.4.1. Память программ микроконтроллера 16F84A.48
2.4.2. Память данных и регистры специального назначения микроконтроллера 16F84A.48
2.4.3. Слово конфигурации50
2.4.4. Память KEPROM50
2.5. Некоторые вопросы синхронизации..52
2.5.1. Тактовый генератор и командный цикл..52
2.5.2. Конвейеризация..53
2.6. Подача питания и сброс..53
2.7. Микроконтроллер Atmel AT89C2051.55
2.8. Встроенная схема сброса микроконтроллера 16F84A..56
Резюме58
Глава 3. Параллельные порты, электропитание
и генераторы синхроимпульсов.59
3.1. Основная идея - параллельный ввод-вывод.60
3.2. Технические вызовы, связанные с параллельным вводом-выводом60
3.2.1. Формирование параллельного интерфейса60
3.2.2. Электрические характеристики порта..63
3.2.3. Некоторые специальные случаи64
3.3. Подключение к параллельному порту.66
3.3.1. Переключатели66
3.3.2. Светодиоды67
3.4. Параллельные порты PIC 16F84A..68
3.4.1. Порт В микроконтроллера 16F84A.69
3.4.2. Порт А микроконтроллера 16F84A.70
3.4.3. Выходные характеристики порта.71
3.5. Генератор синхроимпульсов71
3.5.1. Типы синхрогенераторов..73
3.5.2. Практические соображения в отношении генераторов синхросигналов.74
3.5.3. Генератор синхроимпульсов в 16F84A.74
3.6. Электропитание.75
3.6.1. Потребность в электроэнергии и ее источниках.75
3.6.2. Эксплуатационные условия 16F84A..76
3.7. Аппаратный проект электронной игры в пинг-понг.78
Резюме78
Глава 4. Начнем программировать - введение в Ассемблер.79
4.1. Основная идея - что программы делают, и как мы их создаем.80
4.1.1. Проблема программирования и компромисс, связанный
с использованием языка Ассемблера.80
4.1.2. Процесс написания программы на Ассемблере..81
4.1.3. Процесс разработки программы82
4.2. Набор команд семейства PIC 16 и немного больше
об арифметико-логическом устройстве (АЛУ)83
4.2.1. Подробнее об АЛУ семейства PIC 1683
4.2.2. Набор команд семейства PIC 16 - введение84
4.3. Ассемблеры и формат программы на Ассемблере..85
4.3.1. Введение в Ассемблеры, а также знакомство с Ассемблером Microchip MPASMTM..85
4.3.2. Формат программы на языке Ассемблера..85
4.3.3. Директивы Ассемблера..86
4.3.4. Представление чисел86
4.4. Создание простых программ87
4.4.1. Простая программа перемещения данных.87
4.5. Настройка среды разработки..90
4.5.1. Введение в MPLAB..90
4.5.2. Элементы MPLAB.90
4.5.3. Структура файла MPLAB.91
4.6. Вводное занятие по MPLAB..91
4.6.1. Создание проекта92
4.6.2. Ввод исходного текста программы.93
4.6.3. Ассемблирование проекта94
4.7. Введение в имитацию95
4.7.1. Приступаем к занятию95
4.7.2. Генерирование входных сигналов порта.95
4.7.3. Контроль параметров микроконтроллера..96
4.7.4. Сброс и выполнение программы..96
4.8. Загрузка программы в микроконтроллер.98
4.9. Что делают другие - краткое сравнение наборов команд CISC и RISC100
4.10. Двигаемся дальше - формат набора команд семейства PIC 16101
Резюме.102
Глава 5. Компоновка программ, написанных на языке Ассемблера..103
5.1. Основная идея - построение структурированных программ.103
5.1.1. Блок-схемы..103
5.1.2. Диаграммы состояния..105
5.2. Управление последовательностью выполнения команд -
переходы и подпрограммы.106
5.2.1. Условные переходы и работа с битами.106
5.2.2. Подпрограммы и стек..108
5.3. Генерирование временных задержек и интервалов.109
5.4. Работа с данными..111
5.4.1. Косвенная адресация и регистр выбора файла.111
5.4.2. Поисковые таблицы..112
5.4.3. Пример программы с временной задержкой и поисковой таблицей..113
5.5. Введение в логические команды115
5.6. Введение в арифметические команды и флаг переноса116
5.6.1. Использование команд сложения..116
5.6.2. Использование команд вычитания116
5.6.3. Пример арифметической программы.117
5.6.4. Использование косвенной адресации для сохранения ряда Фибоначчи..119
5.7. Приручение сложности Ассемблера.120
5.7.1. Включение файлов.121
5.7.2. Макроопределения.121
5.7.3. Специальные команды MPLAB.123
5.8. Дополнительные возможности использования имитатора MPLAB123
5.8.1. Контрольные точки124
5.8.2. Таймер с остановом124
5.8.3. Трассирование..126
5.9. Программа электронного пинг-понга.127
5.9.1. Структура программы для электронного пинг-понга..127
5.9.2. Более подробное рассмотрение программы электронного пинг-понга.129
5.10. Выполнение программы электронного пинг-понга
на имитаторе - учебное упражнение..130
5.10.1. Установка входных стимулирующих сигналов.130
5.10.2. Настройка окна Watch (Наблюдение)..131
5.10.3. Пошаговое выполнение программы.131
5.10.4. Анимация..131
5.10.5. Пуск..131
5.10.6. Контрольные точки.132
5.10.7. Таймер с остановом.132
5.10.8. Трассирование132
5.10.9. Отладка программы в целом.132
5.11. Что делают другие - графические имитаторы132
Резюме.133
Глава 6. Работа со временем: прерывания, счетчики и таймеры..135
6.1. Основная идея - прерывания..,136
6.1.1. Структуры прерываний136
6.1.2. Структура прерываний 16F84A..137
6.1.3. Реакция ЦП на прерывание..137
6.2. Работа с прерываниями139
6.2.1. Программирование одного прерывания139
6.2.2. Двигаемся к множественным прерываниям - идентификация источника141
6.2.3. Не допускайте, чтобы прерывания разрушили вашу программу -
правило № 1: сохраняйте контекст..141
6.2.4. Не допускайте, чтобы прерывания разрушили вашу программу -
правило № 2: определите критические области и используйте маскирование.144
6.3. Основная идея - счетчики и таймеры.146
6.3.1. Цифровые счетчики146
6.3.2. Счетчик в роли таймера..146
6.3.3. Модуль таймера 0 в 16F84A.148
6.4. Применение таймера 0 в 16F84A на примере электронного пинг-понга.150
6.4.1. Подсчет объектов или событий..150
6.4.2. Временные задержки, сгенерированные аппаратными средствами151
6.5. Сторожевой таймер..153
6.6. Режим бездействия153
6.7. Что делают другие.154
6.8. Двигаемся дальше - время ожидания прерывания..155
Резюме.156
ЧАСТЬ 3. БОЛЬШИЕ СИСТЕМЫ И PIC® 16F873A..157
Глава 7. Большие системы и PIC® 16F873A158
7.1. Основная идея - PIC 16F87XA..159
7.2. Блок-схема 16F873A и его ЦП..159
7.2.1. Обзор ЦП и ядра..159
7.2.2. Краткий обзор памяти..160
7.2.3. Краткий обзор периферийных устройств.162
7.3. Память 16F873A и карты памяти..163
7.3.1. Память программ 16F873A163
7.3.2. Память данных 16F873AH специальные функциональные регистры165
7.3.3. Слово конфигурации.165
7.4. ""Специальные"" операции с памятью.165
7.4.1. Осуществление доступа к ЭСППЗУ и памяти программ167
7.4.2. Внутрисхемное последовательное программирование (ICSP м)..168
7.5. Прерывания в 16F873A.170
7.5.1. Структура прерываний.170
7.5.2. Регистры прерываний..170
7.5.3. Идентификация прерываний сохранение контекста.172
7.6. Генератор в 16F873A, сброс и электропитание172
7.6.1. Генератор синхроимпульсов172
7.6.2. Сброс и электропитание.172
7.7. Параллельные порты в 16F873A173
7.7.1. Порт А в 16F873A..173
7.7.2. Порт В в 16F873A..175
7.7.3. Порт С в 16F873A175
7.8. Инструментальные средства тестирования, диагностики и ввода в эксплуатацию.. 176
7.8.1. Вызов, связанный с тестированием встроенной системы..177
7.8.2. Осциллографы и логические анализаторы..179
7.8.3. Внутрисхемные эмуляторы..181
7.8.4. Встроенные отладчики.181
7.9. Внутрисхемный отладчик Microchip (ICD 2)182
7.10. Применение 16F873A: АУСМ Derbot183
7.10.1. Источник электропитания, генератор и сброс183
7.10.2. Использование параллельных портов..184
7.10.3. Сборка аппаратных средств186
7.11. Выгрузка, тестирование и выполнение простой программы
с использованием ICD 2..186
7.11.1. Первая программа для Derbot186
7.11.2. Применение ICD 2189
7.11.3. Установка битов конфигурации внутри программы..190
7.12. Двигаемся дальше-16F874A/16F877A: порты D и Е..192
Резюме.194
Глава 8. Человеко-машинные и физические интерфейсы..195
8.1. Основная идея человеко-машинного интерфейса.196
8.2. От ключей к малым клавиатурам197
8.2.1. Малая клавиатура198
8.2.2. Пример проектной разработки: использование малой
клавиатуры в ПУ АУСМ Derbot.199
8.3. Светодиодные индикаторы204
8.3.1. Светодиодные матрицы: семисегментный светодиодный индикатор204
8.3.2. Пример разработки: семисегментный индикатор ПУ АУСМ Derbot.205
8.4. ЖК-индикаторы.209
8.4.1. Микросхема управления ЖК-индикатором HD44780 и ее производные.210
8.4.2. Пример разработки: использование ЖК-индикатора в ПУ АУСМ Derbot.212
8.5. Основная идея - формирование интерфейса с физическим миром..214
8.6. Некоторые простые датчики.214
8.6.1. Микропереключатель214
8.6.2. Фотосопротивления215
8.6.3. Оптическое обнаружение объектов.215
8.6.4. Использование оптического датчика в качестве датчика поворота.217
8.6.5. Ультразвуковой датчик объектов..217
8.7. Больше о дискретных входах218
8.7.1. Входные характеристики 16F873A..218
8.7.2. Обеспечение корректных логических уровней и защиты входных цепей..219
8.7.3. Устранение дребезга контактов переключателя..222
8.8. Исполнительные механизмы: электромоторы и сервоприводы224
8.8.1. Электродвигатели постоянного тока и шаговые электродвигатели224
8.8.2. Угловое позиционирование: сервопривод..225
8.9. Организация интерфейса с исполнительными механизмами..226
8.9.1. Простое переключение постоянного тока226
8.9.2. Простое выполнение переключений в АУСМ Derbot..228
8.9.3. Реверсируемое переключение: Н-образный мост229
8.9.4. Переключение электромоторов в АУСМ Derbot.230
8.10. Сборка АУСМ Derbot..231
8.11. Применение датчиков и исполнительных механизмов -
программа ""слепой"" навигации АУСМ Derbot231
Резюме.234
Глава 9. Дальнейшее исследование вопросов синхронизации.235
9.1. Основная идея - углубленное исследование вопросов,
связанных со счетом и временной привязкой..236
9.2. Таймер 0 и таймер 1 в 16F87XA.:236
9.2.1. Таймер 0236
9.2.2. Таймер 1236
9.2.3. Применение таймеров 0 и 1 в качестве счетчиков
для замера пройденного расстояния в АУСМ Derbot..238
9.2.4. Использование таймеров 0 и 1 для генерирования повторяющихся прерываний..241
9.3. Таймер 2 в 16F87XA, компаратор и регистр PR2..243
9.3.1. Таймер 2243
9.3.2. Регистр PR2, компаратор и постделитель244
9.4. Модули сбора данных/сравнения/ШИМ (ССР-модули)245
9.4.1. Краткий обзор вопросов сбора данных/сравнения/ШИМ.245
9.4.2. Режим сбора данных.245
9.4.3. Режим сравнения.246
9.5. Широтно-импульсная модуляция (ШИМ).247
9.5.1. Принцип ШИМ.247
9.5.2. Генерирование ШИМ-сигналов аппаратными средствами - 16F87XA ШИМ..249
9.5.3. Применение ШИМ для управления электромоторами в АУСМ Derbot251
9.6. Программная генерация сигналов ШИМ254
9.6.1. Пример программного генерирования ШИМ254
9.6.2. Дополнительные директивы Ассемблера
для распределения памяти и осуществления ветвления программ..258
9.7. Использование ШИМ для цифро-аналогового преобразования259
9.7.1. Пример использования ШИМ для цифро-аналогового преобразования..259
9.8. Измерение частоты..262
9.8.1. Принцип измерения частоты262
9.8.2. Измерения частоты (скорости) в АУСМ Derbot..262
9.9. Управление скоростью в применении к АУСМ Derbot265
9.10. Когда нет таймера..268
9.11. Режим бездействия.270
9.12. Куда двигаться дальше?271
9.13. Сборка АУСМ Derbot..271
Резюме.271
Глава 10. Начинаем изучать последовательный информационный обмен273
10.1. Введение в последовательный информационный обмен: основная идея.274
10.2. Простые последовательные каналы связи -
синхронный информационный обмен.275
10.2.1. Основы синхронной связи..275
10.2.2. Реализация синхронного последовательного ввода-вывода в микроконтроллере ..276
10.2.3. Microwire и SPI (Последовательный периферийный интерфейс)..276
10.2.4. Введение множественных узлов.277
10.3. Модуль главного синхронного последовательного
порта (MSSP) 16F87XA в режиме SPI278
10.3.1. Краткий обзор порта..278
10.3.2. Конфигурация порта..279
10.3.3. Установка тактовой частоты.281
10.3.4. Управление передачей данных.282
10.4. Простой пример использования SPI.282
10.5. Ограничения, характерные для Microwire, SPI
и простой синхронной последовательной передачи данных..284
10.6. Расширение возможностей синхронного последовательного
канала связи, шина 12С285
10.6.1. Основные характеристики ГС и физические соединения..285
10.6.2. Нагрузочный резистор..286
10.6.3. Характеристики сигналов 12С286
10.7. MSSP, сконфигурированный для 12С..287
10.7.1. Регистры MSSP для режима I С и их первичное использование287
10.7.2. MSSP в режиме подчиненного устройства 12С..290
10.7.3. MSSP в режиме ведущего устройства ГС.292
10.8. Применение 12С в АУСМ Derbot.294
10.8.1. Ручной ПУ Derbot как узел последовательной линии связи..294
10.8.2. АУСМ в качестве ведущего устройства 12С.295
10.8.3. Ручной ПУ как подчиненное устройство 12С..299
10.8.4. Практическая оценка программ информационного
обмена через 12С для АУСМ Derbot..301
10.9. Оценка синхронного последовательного информационного
обмена и введение в асинхронный информационный обмен.302
10.9.1. Принципы асинхронного информационного обмена.302
10.9.2. Синхронизация последовательных данных без приходящей тактовой частоты303
10.10. Адресуемый универсальный синхронно-асинхронный
приемопередатчик (USART) в 16F87XA..304
10.10.1. Обзор порта304
10.10.2. Асинхронный передатчик US ART..305
10.10.3. Генератор-контроллер скорости информационного обмена USART307
10.10.4. Асинхронный приемник USART.307
10.10.5. Пример асинхронного информационного обмена.309
10.10.6. Использование распознавания адреса в режиме приема USART..311
10.10.7. USART в синхронном режиме..311
10.11. Реализация последовательной связи без использования последовательного порта - ""битовые серии""311
10.12. Сборка АУСМ Derbot312
Резюме.312
Глава 11. Сбор и манипулирование данными..313
11.1. Основная идея - аналоговые и дискретные величины, их сбир и использование.. 313
11.2. Система сбора данных.314
11.2.1. Аналого-цифровой преобразователь315
11.2.2. Кондиционирование сигналов - усиление и фильтрация.317
11.2.3. Аналоговый мультиплексор..317
11.2.4. Выборка и удержание сигнала, а также время отбора сигнала318
11.2.5. Синхронизация и управление от микропроцессора319
11.2.6. Сбор данных в микроконтроллерной среде.320
11.3. Модуль АЦП в PIC® 16F87XA320
11.3.1. Краткий обзор и блок-схема..320
11.3.2. Управление АЦП..321
11.3.3. Аналоговая модель входа325
11.3.4. Расчет времени отбора сигнала326
11.3.5. Повторные преобразования327
11.3.6. Компромисс между скоростью преобразования и разрешением327
Содержание
11.4. Использование АЦП в программе замера освещенности АУСМ Derbot..328
11.4.1. Конфигурирование АЦП.329
11.4.2. Время отбора сигнала329
11.4.3. Преобразование данных330
11.5. Некоторые простые методы манипулирования данными330
11.5.1. Арифметика с фиксированной и плавающей точкой.330
11.5.2. Преобразование из двоичного представления
в двоично-кодированное десятичное представление.331
11.5.3. Умножение332
11.5.4. Масштабирование и пример программы замера освещенности для АУСМ Derbot.. 333
11.5.5. Использование для масштабирования опорного напряжения..334
11.6. Программа поиска источника света для АУСМ Derbot.335
11.7. Модуль компаратора337
11.7.1. Обзор работы компаратора.337
11.7.2. Компаратор в 16F87XA и опорное напряжение337
11.8. Применение схем Derbot для измерительных целей.338
11.8.1. Электронная измерительная рулетка338
11.8.2. Измеритель освещенности..340
11.8.3. Вольтметр..340
11.8.4. Другие измерительные системы.340
11.9. Конфигурирование АУСМ Derbot в качестве светопоискового робота.341
Резюме.341
ЧАСТЬ 4. БОЛЕЕ СЛОЖНЫЕ СИСТЕМЫ И PIC® 18FXX2 342
Глава 12. Более сложные системы и PIC® 18FXX2 343
12.1. Основная идея устройств семейства PIC 18 и 18FXX2344
12.2. Блок-схема 18F2X2 и регистр состояния345
12.3. Набор команд семейства PIC 18348
12.3.1. Команды, которые не изменились.353
12.3.2. Команды, которые были доработаны..353
12.3.3. Новые варианты команд..353
12.3.4. Новые команды..353
12.4. Память данных и специальные функциональные регистры.354
12.4.1. Карта памяти данных.354
12.4.2. ОЗУ доступа.354
12.4.3. Косвенная адресация и доступ к таблицам, расположенным в памяти данных355
12.5. Память программ356
12.5.1. Карта памяти программ357
12.5.2. Счетчик команд.357
12.5.3. Переход от устройств семейства 16 к устройствам семейства 18
и команда вычисляемого безусловного перехода goto..357
12.5.4. Регистры конфигурации358
12.6. Стеки.360
12.6.1. Автоматическая работа стека360
12.6.2. Программный доступ к стеку360
12.6.3. Быстрый регистровый стек.360
12.7. Прерывания.361
12.7.1. Обзор структуры прерываний..361
12.7.2. Источники прерываний, их разрешение и установка приоритетов..361
12.7.3. Общее разрешение установки приоритетов прерываний363
12.7.4. Глобальное разрешение363
12.7.5. Другие аспекты логики прерываний.364
12.7.6. Регистры прерываний364
12.7.7. Сохранение контекста при использовании прерываний..364
12.8. Электропитание и приведение в исходное состояние..365
12.8.1. Электропитание.365
12.8.2. Подача электропитания и сброс..367
12.9. Источники тактовой частоты368
12.9.1. Режимы работы тактового генератора: LP, XT, HS и RC370
12.9.2. Режимы работы тактового генератора: ЕС, ЕС1О и RCIO..370
12.9.3. Режим HS + PLL работы тактового генератора.370
12.9.4. Переключение источника тактовой частоты370
12.10. Введение в программирование 18F242.371
12.10.1. Использование MPLAB IDE для семейства 18371
12.10.2. Программа расчета ряда Фибоначчи.371
Резюме.374
Глава 13. Периферийные устройства в PIC® 18FXX2.375
13.1. Основная идея периферийных устройств 18FXX2.375
13.2. Параллельные порты..376
13.2.1. Порт А в 18FXX2..376
13.2.2. Порт В в 18FXX2..377
13.2.3. Порт С в 18FXX2..378
13.2.4. Параллельный подчиненный порт.378
13.3. Таймеры.378
13.3.1. Таймер 0'.378
13.3.2. Таймер 1.380
13.3.3. Таймер 2.380
13.3.4. Таймер 3.380
13.3.5. Сторожевой таймер.382
13.4. Модуль сбора дапных/сравпения/ШИМ (ССР)382
13.4.1. Регистры управления.382
13.4.2. Режим сбора данных..383
13.4.3. Режим сравнения..383
13.4.4. Широтно-импульсная модуляция (ШИМ)385
13.5. Последовательные порты.385
13.5.1. MSSP в режиме SPI.385
13.5.2. MSSP в режиме 12С..385
13.5.3. USART.385
13.6. Аналого-цифровой преобразователь (АЦП)386
13.7. Обнаружение падения напряжения..386
13.8. Применение устройств семейства 18 в АУСМ Derbot-18..387
13.9.18F2420 и расширенный набор команд..388
13.9.1. Нановаттная технология..389
13.9.2. Расширенный набор команд..389
13.9.3. Расширенные периферийные устройства..390
Резюме.390
Глава 14. Введение в язык С..391
14.1. Основная идея - почему С?..391
14.2. Введение в С392
14.2.1. Немного истории..392
14.2.2. Первая программа392
14.2.3. Трассировка программы - объявления, инструкции, комментарии и пространство .. 393
14.2.4. Зарезервированные слова языка С.395
14.2.5. Функции С.395
14.2.6. Типы и хранение данных.396
14.2.7. Операции С..397
14.2.8. Контроль за ходом выполнения программы, зарезервированное слово while397
14.2.9. Препроцессор С и его директивы..398
14.2.10. Использование библиотек, Стандартная библиотека..398
14.3. Компиляция программ на С398
14.4. Компилятор MPLAB C18..399
14.4.1. Основы400
14.4.2. Арифметические операции.400
14.5. Учебник по С18.400
14.5.1. Компоновщик И его сценарии..400
14.5.2. Заголовок для компоновки и библиотечные файлы401
14.5.3. Компоновка проекта402
14.5.4. Файлы проекта403
14.6. Моделирование программы па С403
14.7. Второй пример программы на языке С - программа Фибоначчи..404
14.7.1. Предварительные сведения о программе - больше об объявлении переменных ..406
14.7.2. Конструкция do-while..406
14.7.3. Метки и зарезервированное слово goto406
14.7.4. Моделирование программы Фибоначчи407
14.8. Библиотеки MPLABC18407
14.8.1. Функции, предоставляющие технические средства для внешних устройств.407
14.8.2. Функции, предоставляющие программные средства для внешних устройств..407
14.8.3. Библиотека общих функций для программного обеспечения..408
14.8.4. Математическая библиотека.409
14.9. Дальнейшее чтение410
Резюме.410
Глава 15. Язык С и встроенная среда..411
15.1. Главная идея - перенос С во встроенную среду411
15.2. Настройка и управление значениями разрядов..411
15.2.1. Управление отдельными разрядами.413
15.2.2. Конструкции условного перехода if и if-else..413
15.2.3. Установка разрядов конфигурации414
15.2.4. Моделирование и запуск примера программы..414
15.3. Больше о функциях415
15.3.1. Прототип функции..415
15.3.2. Определение функции416
15.3.3. Вызовы функции и передача данных416
15.3.4. Библиотечные функции задержки и DelaylOKTCYx () 416
15.4. Больше о переходах и циклах.417
15.4.1. Использование зарезервированного слова break..417
15.4.2. Использование зарезервированного слова for.418
15.5. Использование таймера и периферийных устройств ШИМ..418
15.5.1. Использование периферийных таймеров..421
15.5.2. Использование ШИМ.422
15.5.3. Цикл главной программы423
Резюме.423
Глава 16. Получение и использование данных с помощью С 424
16.1. Главная идея - использование С для манипуляции данными..424
16.2. Использование АЦП в 18FXX2.424
16.2.1. Структура программы поиска света.429
16.2.2. Использование АЦП..429
16.2.3. Дальнейшее использование if-else431
16.2.4. Моделирование программы поиска света.431
16.3. Указатели, массивы и строки432
16.3.1. Указатели..432
16.3.2. Массивы.433
16.3.3. Использование указателей вместе с массивами.433
16.3.4. Строки.434
16.3.5. Пример программы: использование указателей, массивов и строк..434
16.3.6. Несколько слов об использовании условия while.435
16.3.7. Моделирование примера программы..436
16.4. Использование внешних устройств 12С..437
16.4.1. Пример программы 12С.438
16.4.2. Использование операторов i?+ и --.440
16.5. Форматирование данных для вывода на дисплей..440
16.5.1. Обзор примера программы.440
16.5.2. Использование библиотечных функций для форматирования данных..442
16.5.3. Характеристика программы..443
Резюме.443
Глава 17. Более глубокие знания языка С и его среды окружения..444
17.1. Основная идея - более глубокие знания С и его среды444
17.2. Ассемблерные вставки445
17.3. Контроль за выделением памяти446
17.3.1. Директивы распределения памяти.446
17.3.2. Установка машинных слов конфигурации447
17.4. Прерывания.448
17.4.1. Программа обслуживания прерываний..448
17.4.2. Расположение и обозначение программ обслуживания прерываний..448
17.5. Пример прерывания на переполнение - мигание светодиодов на Derbot.449
17.5.1. Использование таймера 0450
17.5.2. Использование прерываний и работа программы обслуживания прерываний.451
17.5.3. Моделирование программы мигания светодиодов..451
17.6. Классы памяти и их применение.453
17.6.1. Классы памяти453
17.6.2. Область действия..453
17.6.3. Срок действия.454
17.6.4. Связь.454
17.6.5. Работа с памятью семейства 18455
17.6.6. Примеры классов памяти.455
17.7. Код начальной загрузки: cO18i . с456
17.7.1. Файлы начальной загрузки С18..456
МП2. Структура программы c018i . с456
17.7.3. Моделирование cO18i . с..457
17.8. Структуры, объединения и битовые поля459
17.9. Заголовочные файлы, специфичные для процессора..459
17.9.1. SFR определения..459
17.9.2. Утилиты ассемблера в заголовочном файле460
17.10. Идем дальше - компоновщик MPLAB и .map-файл..461
17.10.1. Что делает компоновщик..461
17.10.2. Сценарий компоновщика..461
17.10.3. Файл .тар.463
Резюме.464
Содержание
Глава 18. Многозадачность и операционная система реального времени..465
18.1. Основные идеи - вызовы, связанные с многозадачностью
и режимом реального времени..465
18.1.1. Многозадачный режим - задачи, приоритеты и сроки выполнения..466
18.1.2. Итак, что же такое ""режим реального времени""?.467
18.2. Обеспечение мультизадачпости при использовании
последовательного программирования.467
18.2.1. Оценка основного цикла..468
18.2.2. Время-ориентированные и событийно-ориентированные задачи..468
18.2.3. Использование прерываний с приоритетами - структура ""передний план/фон""..469
18.2.4. Введение тактирующих сигналов времени
с целью синхронизации программной активности..469
18.2.5. Универсальная операционная система470
18.2.6. Пределы возможностей последовательного программирования
в случае организации многозадачного режима.471
18.3. Операционная система реального времени (ОСРВ).471
18.4. Диспетчеризация и диспетчер472
18.4.1. Циклическая диспетчеризация.472
18.4.2. Карусельная диспетчеризация и переключение контекста.472
18.4.3. Состояния задач.473
18.4.4. Диспетчеризация с предварительной выгрузкой, использующая приоритеты..474
18.4.5. Коллективная диспетчеризация..475
18.4.6. Роль прерываний в диспетчеризации..476
18.5. Разработка задач..476
18.5.1. Определение задач..476
18.5.2. Программирование задач и установка приоритетов..477
18.6. Защита данных и ресурсов - семафор477
18.7. Куда мы будем двигаться дальше?478
Резюме.478
Глава 19. Операционная система реального времени SalvoTM.479
19.1. Основная идея: Salvo - пример ОСРВ..479
19.1.1. Основные свойства Salvo.480
19.1.2. Версии Salvo и ссылки на источники..480
19.2. Конфигурирование и использование ОСРВ Salvo..481
19.2.1. Компоновка приложения Salvo - библиотечная компоновка.481
19.2.2. Библиотеки Salvo..481
19.2.3. Использование Salvo с компилятором С18..482
19.3. Написание программ для Salvo.482
19.3.1. Инициализация и диспетчеризация..483
19.3.2. Написание задач для Salvo.484
19.4. Первый пример программы для Salvo484
19.4.1. Обзор программы и функция main..486
19.4.2. Задачи и диспетчеризация..486
19.4.3. Создание проекта Salvo/C18..487
19.4.4. Настройка файла конфигурации.487
19.4.5. Компоновка примера Salvo.488
19.4.6. Имитация выполнения программы Salvo..490
19.5. Использование прерываний, задержек и семафоров при работе с Salvo..490
19.5.1. Пример программы, использующей тактирующие
сигналы времени, основанные на прерываниях.490
19.5.2. Выбор библиотеки и конфигурирование493
19.5.3. Использование прерываний и формирование тактирующих сигналов времени..493
19.5.4. Использование временных задержек495
19.5.5. Использование двухпозиционного семафора.495
19.5.6. Имитация выполнения программы497
19.5.7. Выполнение программы..498
19.6. Использование сообщений Salvo и повышение сложности ОСРВ.498
19.7. Пример программы с сообщениями.500
19.7.1. Выбор библиотеки и конфигурации.504
19.7.2. Задача USndLTask.505
19.7.3. Задача Motor_Task..505
19.7.4. Использование сообщений.505
19.7.5. Использование прерываний и подпрограмм обслуживания прерываний.506
19.7.6. Имитация или запуск программы..508
19.8. Накладные издержки ОСРВ508
Резюме.509
ЧАСТЬ 5. ВЗАИМНЫЕ СВЯЗИ И СЕТИ.510
Глава 20. Взаимные связи и сети.511
20.1. Основная идея: сети и связь511
20.1.1. Мир протоколов.512
20.2. Инфракрасная связь.513
20.2.1. IrDA и микроконтроллеры PIC.514
20.3. Радиосвязь514
20.3.1. Блутус (Bluetooth).514
20.3.2. Стандарт Zigbee.515
20.3.3. Zigbee и микроконтроллеры PIC.516
20.4. Локальная управляющая сеть (CAN) и локальная сеть взаимосоединений (LIN)516
20.4.1. Локальная управляющая сеть (CAN)516
20.4.2. CAN и микроконтроллер PIC517
20.4.3. Локальная сеть взаимосоединений (LIN)..518
20.4.4. LIN и микроконтроллер PIC..520
20.5. Встроенные системы и Internet.521
20.5.1. Подключение к Internet при помощи микроконтроллера PIC..521
20.6. Заключение..521
Резюме.522
Приложение 1. Набор команд микроконтроллеров PIC 16..523
Приложение 2. Электронный настольный теннис.524
Приложение 3. Подробности аппаратной реализации АУСМ Derbot.529
Приложение 4. Основные сведения об АУСМ Derbot.533
Приложение 5. Набор команд (не расширенный) микроконтроллеров PIC® 18.537
Приложение 6. Основы языка С..54
Комментарии