УДК 621.3.049.77
ББК 32.852
П71
Предко М.
П71 PICмикроконтроллеры: архитектура и программирование
Пер. с англ. – М.: ДМК Пресс, 2016. – 512 с.: ил.
ISBN 978-5-97060-222-5
Книга посвящена PICмикроконтроллерам – одному из самых по
пулярных семейств современных микроконтроллеров. В справочни
ке имеются все необходимые сведения, аппаратные и программные
решения. По широте охвата и объему рассматриваемого материала
книга претендует на статус малой энциклопедии. Здесь представле
ны классификация и архитектура различных подсемейств PICкон
троллеров, сравнительные характеристики типов, разводка вы
водов, системы команд, подробная спецификация управляющих
регистров. Рассказывается о принципах работы основных узлов,
приведены таблицы временных и электрических характеристик, ал
горитмы программирования. Дано описание языков программиро
вания и средств разработки приложений.
Издание предназначено для широкого круга читателей – от начи
нающих радиолюбителей до специалистов, работа которых связана
с использованием PICмикроконтроллеров.
Все права защищены. Любая часть этой книги не может быть воспроизве
дена в какой бы то ни было форме и какими бы то ни было средствами без
письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, по
скольку вероятность технических ошибок все равно существует, издательство
не может гарантировать абсолютную точность и правильность приводимых
сведений. В связи с этим издательство не несет ответственности за возмож
ные ошибки, связанные с использованием книги.
ISBN 978 0071361750 (англ.)
ISBN 9785970602225 (рус.)
© McGrawHill Companies, Inc.
© Перевод на русский язык,
оформление. ДМК Пресс
Стр.5
СОДЕРЖАНИЕ
Глава 1
Принятые обозначения и сокращения ...................................... 13
Глава 2
Основные характеристики микроконтроллеров
PICmicro® ........................................................................................................ 15
Глава 3
Корпуса PICмикроконтроллеров
и назначение выводов ........................................................................... 19
Микроконтроллеры младшего подсемейства ....................................... 20
Микроконтроллеры среднего подсемейства ......................................... 22
Микроконтроллеры PIC 17Cxx .................................................................... 25
Микроконтроллеры PIC 18Cxx .................................................................... 26
Глава 4
Система команд микроконтроллеров PICmicro® ............... 37
Параметры ......................................................................................................... 38
Системы команд PICмикроконтроллеров
младшего и среднего подсемейств ............................................................ 38
Система команд микроконтроллеров подсемейства PIC 17Cxx .... 46
Система команд микроконтроллеров подсемейства PIC 18Cxx .... 56
Мнемоника специальных команд .............................................................. 69
Ассемблер фирмы Parallax Inc. для PICмикроконтроллеров ......... 72
Глава 5
Архитектура процессора микроконтроллеров
PICmicro® ........................................................................................................ 79
Арифметикологическое устройство PICмикроконтроллеров ...... 80
Микроконтроллеры PICmicro®
младшего подсемейства ................... 80
Доступ к регистрам .......................................................................................... 83
Регистр состояния ............................................................................................ 84
Счетчик команд ................................................................................................ 84
Микроконтроллеры среднего подсемейства ......................................... 86
Стр.6
6
СОДЕРЖАНИЕ
Доступ к регистрам .......................................................................................... 87
Регистр состояния ............................................................................................ 88
Счетчик команд ................................................................................................ 88
Управление прерываниями .............................................................................. 88
Основные компоненты программы обработки прерываний ............................ 90
Микроконтроллеры PIC 17Cxx .................................................................... 90
Доступ к регистрам .......................................................................................... 92
Регистр состояния ............................................................................................ 93
Счетчик команд ................................................................................................ 93
Выполнение прерываний ................................................................................. 94
Основные компоненты программы обработки прерываний ............................ 95
Микроконтроллеры PIC 18Схх .................................................................... 96
Доступ к регистрам .......................................................................................... 97
Регистры состояния .......................................................................................... 99
Счетчик команд ................................................................................................ 99
Выполнение прерываний .............................................................................. 102
Общий вид программы обработки прерываний ........................................... 102
Глава 6
Управляющие регистры PICмикроконтроллеров .......... 103
Микроконтроллеры младшего подсемейства .................................... 104
Микроконтроллеры среднего подсемейства ...................................... 106
Микроконтроллеры PIC 17Схх ................................................................. 121
Микроконтроллеры PIC 18Схх ................................................................. 135
Глава 7
Функциональные узлы ........................................................................ 149
РРегистры конфигурацииегистры конфигурации .............................................................................. 150
Генераторы тактовых импульсов ............................................................ 151
Режим ожидания ............................................................................................ 155
Регистр OPTION ............................................................................................ 156
Порты ввода/вывода и регистры TRIS ................................................... 158
Сторожевой таймер ..................................................................................... 161
Таймер TMR0 .................................................................................................. 162
Прескалер ....................................................................................................... 164
Таймер TMR1 .................................................................................................. 164
Таймер TMR2 .................................................................................................. 167
Стр.7
СОДЕРЖАНИЕ
77
Модуль ССР .................................................................................................... 168
Модуль универсального синхронноасинхронного
приемопередатчика ..................................................................................... 172
Модуль SSP ...................................................................................................... 178
Интерфейс SPI .............................................................................................. 178
Интерфейс I2
С .............................................................................................. 182
Встроенный аналогоцифровой преобразователь .......................... 188
Встроенные компараторы напряжения ................................................ 194
Управляемый параллельный порт ........................................................... 197
Доступ к EEPROM данных .......................................................................... 199
Доступ к программной памяти EPROM ................................................. 204
Доступ к программной флэшпамяти ..................................................... 205
Внешняя память ............................................................................................ 207
Глава 8
Взаимодействие PICмикроконтроллеров
с внешними устройствами ................................................................ 211
Схема для подключения микроконтроллеров
к источнику питания ..................................................................................... 212
Схема перезапуска микроконтроллеров ............................................. 215
Цифровые уровни ......................................................................................... 215
Использование параллельной шины ..................................................... 216
Взаимодействие с кнопками ..................................................................... 217
Взаимодействие с матричной клавиатурой ......................................... 219
Объединение входов и выходов ............................................................. 222
Схема эмуляции вывода
с открытым коллектором/открытым стоком ........................................ 223
Управление светодиодными индикаторами ........................................ 224
Многосегментные светодиодные индикаторы ............................................... 224
Управление жидкокристаллическим дисплеем ................................... 227
Интерфейс I2
C в режиме MASTER ........................................................... 258
Интерфейс RS232 ........................................................................................ 262
Интерфейсы RS485/RS422 ..................................................................... 267
Подпрограммы для последовательного
асинхронного обмена ................................................................................. 269
Однопроводный интерфейс фирмы Dallas Semiconductor ............. 276
Стр.8
8
СОДЕРЖАНИЕ
Измерение сопротивлений
с помощью цифровых входов/выходов ................................................. 281
Схемы для управления двигателями ....................................................... 283
Управление серводвигателями ................................................................ 287
Схема формирования звуковых сигналов ............................................ 288
Управление мощностью нагрузки переменного тока ..................... 289
Схемы датчиков на основе эффекта Холла ......................................... 290
Дистанционное управление телевизионными
приемниками фирмы Sony ......................................................................... 290
Глава 9
Программирование PICмикроконтроллеров .................. 295
Hexфайлы ....................................................................................................... 296
Программирование PICмикроконтроллера
младшего подсемейства ............................................................................. 297
Последовательное программирование микроконтроллеров
среднего подсемейства .............................................................................. 300
Программирование PIC 17Cxx ................................................................ 308
Внутрисхемное программирование PIC 17Схх ................................. 311
Программирование PIC 18Схх ................................................................ 314
Разъем для внутрисхемного программирования ............................... 316
Глава 10
Интерфейсы ПК ....................................................................................... 319
Распределение оперативной памяти ..................................................... 320
Пространство ввода/вывода ................................................................... 320
Функции прерываний ................................................................................... 332
Шина ISA .......................................................................................................... 332
Контакты и линии шины ISA ........................................................................... 334
Прерывания .................................................................................................. 337
Порты клавиатуры и мыши ......................................................................... 338
Разъемы ........................................................................................................ 338
Временные диаграммы интерфейса клавиатуры ........................................... 339
Сканкоды клавиатуры .................................................................................. 340
Команды контроллера клавиатуры ............................................................... 343
Интерфейсы BIOS ......................................................................................... 344
Команды клавиатуры .................................................................................... 344
Стр.9
СОДЕРЖАНИЕ
99
Последовательный порт ............................................................................. 346
Выводы разъема ........................................................................................... 346
Блоксхема УАПП 8250 ................................................................................ 347
Базовые адреса последовательного порта .................................................. 348
Регистры УАПП 8250 .................................................................................... 348
Прерывания .................................................................................................. 351
Функции прерывания 14h BIOS интерфейса RS232 ..................................... 352
Параллельный порт ..................................................................................... 354
Блоксхема и разъем параллельного порта .................................................. 354
Базовые регистры ......................................................................................... 356
Регистры ....................................................................................................... 356
Функции BIOS параллельного порта ............................................................ 358
Глава 11
Полезные подпрограммы ................................................................. 359
Переход за пределы текущей страницы ............................................... 360
Таблицы ............................................................................................................ 360
Ветвление по условию ................................................................................. 362
Временные задержки ................................................................................... 362
Получение дополнительного кода
содержимого регистра (изменение знака) ........................................... 364
Инкрементирование/декрементирование
содержимого регистра w ........................................................................... 365
«Вращение на месте» .................................................................................. 365
Копирование битов из одного регистра в другой ............................. 366
Преобразование полубайта в код ASCII ............................................. 366
Преобразование байта кода ASCII
в шестнадцатеричный полубайт .............................................................. 366
Использование входа T0CKI в качестве
источника прерывания ................................................................................ 367
Деление на три .............................................................................................. 367
Измерение длительности импульса с 16разрядной точностью ..... 368
Регистрация изменений .............................................................................. 368
Проверка диапазона .................................................................................. 369
Преобразование символов ASCII в верхний регистр ...................... 369
Перестановка содержимого регистра и рабочего регистра w .... 369
Перестановка содержимого двух регистров ...................................... 370
Стр.10
10
СОДЕРЖАНИЕ
Сравнение и перестановка, если Y < X ................................................. 370
Подсчет числа 1 в байте ............................................................................. 370
Генерация бита четности для байта ....................................................... 371
Удержание переменной внутри диапазона ........................................ 371
Перестановка четных и нечетных битов ............................................... 371
Побитовые операции .................................................................................. 371
Умножение на константу ............................................................................ 372
Деление на константу ................................................................................. 373
Глава 12
16разрядные числа ............................................................................. 375
Определение 16разрядных чисел ......................................................... 376
Инкрементирование и декрементирование ....................................... 376
Сложение/вычитание .................................................................................. 377
Побитовые операции с константами и переменными ..................... 379
Сравнение 16разрядных переменных ................................................. 380
Умножение ...................................................................................................... 382
Деление ............................................................................................................ 384
Глава 13
Рабочие характеристики PICмикроконтроллеров ..... 387
Токи нагрузок выходов и портов ............................................................. 388
Значения компонентов RCгенератора ................................................ 388
Рабочие характеристики в режиме LPгенератора .......................... 391
Рабочие характеристики в режиме ХТгенератора .......................... 391
Рабочие характеристики в режиме HSгенератора ......................... 392
Глава 14
Возможные неисправности устройств
с PICмикроконтроллерами .......................................................... 393
Глава 15
Средства разработки приложений ........................................... 399
Функции клавиш текстового редактора ............................................... 400
Файл MPSIM.INI ............................................................................................ 400
Стр.11
СОДЕРЖАНИЕ
11
11
Среда разработки MPLAB ......................................................................... 401
Файлы стимулов ............................................................................................ 406
Директивы ассемблера ................................................................................. 406
Включаемые файлы ...................................................................................... 406
Компоновка приложений ........................................................................... 414
Шаблон программы приложения ............................................................ 416
Язык Basic ......................................................................................................... 416
Расширенная версия Basic ........................................................................ 418
PicBasic ............................................................................................................. 418
Visual Basic ...................................................................................................... 442
Управление вводом/выводом с помощью MSComm ....................... 444
Язык С ................................................................................................................ 449
Объявления ................................................................................................... 449
Операторы ................................................................................................... 451
Операции ..................................................................................................... 453
Директивы ..................................................................................................... 453
Управляющие последовательности .............................................................. 456
Функции С .................................................................................................... 457
Функции C для PICмикроконтроллеров ....................................................... 460
Глава 16
Постоянные и таблицы данных ..................................................... 461
Математические и физические постоянные ........................................ 462
Код ASCII .......................................................................................................... 462
Управляющие символы кода ASCII ......................................................... 462
Управляющие ANSIпоследовательности ........................................... 465
Расширенный набор символов кода ASCII .......................................... 467
Символы кода ASCII для Windows ........................................................... 467
Код EBCDIC ..................................................................................................... 470
Ноты ................................................................................................................... 470
Частоты телефонов с тональным набором ......................................... 470
АТкоманды модема ..................................................................................... 471
Регистры модема .......................................................................................... 471
Код Морзе ....................................................................................................... 477
Стр.12
12
СОДЕРЖАНИЕ
Фонетический алфавит ............................................................................... 478
Tenрадиокод .................................................................................................. 478
Глава 17
Справочная информация по электронике ........................... 481
Цветовое кодирование резисторов ....................................................... 482
Электромагнитный спектр ......................................................................... 482
Диапазоны радара ....................................................................................... 482
Цифровая логика .......................................................................................... 484
Вентили ......................................................................................................... 484
Триггеры ........................................................................................................ 484
Глава 18
Формулы ....................................................................................................... 487
Формулы постоянного тока ...................................................................... 488
Формулы переменного тока ..................................................................... 489
Физические формулы .................................................................................. 490
Булева алгебра .............................................................................................. 490
Соответствия единиц измерения ............................................................. 491
Глава 19
Библиография ........................................................................................... 493
Информация о компании Microchip ....................................................... 494
Webсайты, посвященные PICмикроконтроллерам ........................ 494
Периодические издания ............................................................................. 496
Полезные Webсайты .................................................................................. 496
Seattle Robotics Society ................................................................................. 496
List of Stamp Applications (L.O.S.A.) ................................................................ 496
Adobe PDF Viewers ........................................................................................ 497
PKZip и PKUnZip ............................................................................................ 497
Часто задаваемые вопросы по аппаратному обеспечению ........ 497
Поставщики комплектующих .................................................................... 497
Предметный указатель ....................................................................... 500
Стр.13