Шпак Ю.А. - Программирование на языке С для AVR и PIC микроконтроллеров (2 издание)

Шпак Ю.А. - Программирование на языке С для AVR и PIC микроконтроллеров (2 издание)
Название:
Шпак Ю.А. - Программирование на языке С для AVR и PIC микроконтроллеров (2 издание)
Размер:
41 MB
44
Скачать
Программирование на языке С для AVR и PIC микроконтроллеров 2 издание
Год: 2011
Автор: Шпак Ю.А.
Жанр: Программирование, микроконтроллеры
Издательство: Корона-Век, МК-Пресс
ISBN: 978-5-7931-0842-3, 978-966-8806-67-4
Язык: Русский
Формат: DjVu
Качество: Отсканированные страницы
Количество страниц: 546
Описание: В книге рассмотрено программирование на языке С микроконтроллеров AVR с использованием компиляторов WinAVR и CodeVisionAVR, а также микроконтроллеров PIC с использованием компиляторов CCS-PICC, mikroC и СЗО/32. Кратко рассмотрена архитектура и аппаратное обеспечение как традиционных восьмиразрядных микроконтроллеров AVR и PIC, так и новых семейств ATxmega, PIC24 и PIC32. Дано описание средств программной разработки, включая эмуляцию программ с помощью AVR Studio и MPLAB. Кратко рассмотрен стандартный синтаксис языка С и директивы препроцессора, а также особенности программирования на этом языке для микроконтроллеров. Книга содержит программные примеры на С, а также — справочник с описанием системы ассемблерных команд микроконтроллеров AVR (включая ATxmega) и PIC (включая PIC24).
Примеры страниц
Оглавление
Предисловие ко 2-му изданию..........................................................................13
Введение...............................................................................................................14
ЧАСТЬ I. АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРОВ AVR 15
Глава 1. Восьмиразрядные микроконтроллеры AVR....................................16
Семейства восьмиразрядных микроконтроллеров AVR..............................18
Отладочная плата..............................................................................................19
Платы STK500 и STK600.................................................................................. 19
Схема базового монтажа..................................................................................21
Структура микроконтроллеров AVR................................................................22
Организация памяти........................................................................................22
Память SRAM..........................................................................................................23
Память программ.....................................................................................................33
Память данных типа EEPROM................................................................................34
Порты...............................................................................................................36
Подтягивающее сопротивление..............................................................................37
Регистры управления портом..................................................................................39
Таймеры/счетчики............................................................................................39
Т/СО..........................................................................................................................40
Т/С1..........................................................................................................................41
Т/С2.........................................................................................................................47
Сторожевой таймер........................................................................................48
Обработка прерываний....................................................................................49
Управление прерываниями.....................................................................................52
Сброс.................................................................................................................54
"Спящие"режимы процессора........................................................................55
Последовательный ввод/вывод.........................................................................56
Приемопередатчик UART.......................................................................................57
Приемопередатчик USART.....................................................................................60
Синхронная передача данных по интерфейсу SPI..................................................65
Работа приемопередатчика US ART в режиме SPI..................................................69
Синхронная передача данных по интерфейсу I2C (TWI)........................................70
Универсальный последовательный интерфейс USI................................................75
Модули последовательного ввода/вывода в семействах AT90S, ATtiny
и ATmega.................................................................................................................79
Аналого-цифровое преобразование..................................................................80
Встроенный аналоговый компаратор.............................................................86
Программирование памяти..............................................................................87
Разряды предохранения....................................................................................89
Параллельное программирование......................................................................89
Переход в режим параллельного программирования.............................................91
Очистка кристалла...................................................................................................91
Программирование и чтение памяти программ......................................................92
Программирование разрядов блокировки и предохранения..................................93
Последовательное программирование.............................................................93
технология PICOPOWER.......................................................................................96
Глава 2. Семейство AVR ATxmega.....................................................................97
Обзор возможностей микроконтроллеров ATxmega а.................................97
Организация памяти семейства ATxmega.....................................................99
Область ввода/вывода семейства ATxmega..................................................100
Арбитраж шины данных................................................................................100
Память программ,..........................................................................................101
контроллер прямого доступа к памяти........................................................ 102
Система обработки событий...........................................................................109
Генерирование событий вручную.................................................................../14
Фильтрация....................................................................................................114
Квадратурный дешифратор..........................................................................115
Система синхронизации.................................................................................117
Выбор источника тактового сигнала системной синхронизации................120
Счетчики реального времени..........................................................................122
Счетчик RTC....................................................................................:..............123
Счетчик RTC32...............................................................................................123
Модуль питания от батареи............................................................................123
Обработка прерываний.....................................................................................124
Немаскируемые прерывания...........................................................................125
Регистр управления контроллером прерываний............................................125
Аналого-цифровое преобразование..............................................................126
Конфигурирование АЦП.................................................................................127
Выбор разрешения преобразования......................................................................127
Выбор очередности преобразований в каналах....................................................127
Выбор режима измерения.....................................................................................127
Выбор опорного напряжения................................................................................129
Выбор коэффициента деления частоты тактирования..........................................130
Результаты измерения...................................................................................130
Прерывание от АЦП.......................................................................................130
цифро-аналоговое преобразование............................................................... 131
Начало преобразования..................................................................................132
Ограничения на время преобразования..........................................................133
аналоговый компаратор................................................................................. 134
Режимы работы компаратора.....................................................................135
Средства шифрования......................................................................................136
Модуль шифрования AES................................................................................137
Модуль обмена данными по инфракрасному каналу................................138
ЧАСТЬ II. КОМПИЛЯТОРЫ И СРЕДСТВА РАЗРАБОТКИ ДЛЯ
МИКРОКОНТРОЛЛЕРОВ AVR 140
Глава 3. Компилятор WinAVR.........................................................................141
Глава 4. Среда разработки AVR Studio............................................................146
Эмуляция............................................................................................................148
Окно Memory.....................................................................................................151
окно register....................................................................................................152
Окно Watch........................................................................................................152
Отладка программы.........................................................................................152
настройка параметров имитатора................................................................153
Создание проекта и компиляция программы..............................................153
Компиляция проекта......................................................................................156
Глава 5. Среда разработки CodeVisionAVR....................................................158
компиляция и построение проекта............................................................... 159
Создание проекта с помощью мастера CodeWizardAVR.........................164
Сохранение и открытие проекта CodeWizardAVR.......................................171
Создание новых файлов с исходным кодом...............................................172
Отладка программы.........................................................................................173
Использование терминала..............................................................................174
Глава 6. Программаторы для микроконтроллеров AVR............................175
Программные средства для программирования микроконтроллеров.....179
Программирование устройства в среде A VR Studio 4...................................179
Программирование устройства в среде CodeVisionA VR..............................181
ЧАСТЬ III. АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРОВ PIC 184
Гдава 7. Восьмиразрядные микроконтроллеры PIC...................................185
Общие аспекты архитектуры восьмиразрядных
микроконтроллеров pic....................,.............................................................. 186
Организация памяти......................................................................................186
Организация тактирования...........................................................................188
Порты.............................................................................................................190
Таймеры..........................................................................................................192
TMR0 и сторожевой таймер..................................................................................192
TMR1.....................................................................................................................194
TMR2.....................................................................................................................195
Модуль ССР...........................................................................................................197
Обработка прерываний..................................................................................198
Микроконтроллеры серии Р1С17Сх......................................................................199
Микроконтроллеры серии Р1С18Сх......................................................................200
Сброс...............................................................................................................202
Последовательный обмен данными...............................................................202
Приемопередатчик USART...................................................................................203
Синхронная передача данных по интерфейсу SP1................................................204
Синхронная передача данных по интерфейсу 12С................................................206
Аналого-цифровое преобразование................................................................207
Встроенный аналоговый компаратор................................*...................................209
Семейство микроконтроллеров PIC16...........................................................210
Микроконтроллер 16F84A..............................................................................211
Регистр состояния.................................................................................................212
Организация памяти..............................................................................................213
Слово конфигурации.............................................................................................215
Память eeprom.................................................................................................................215
микроконтроллеры серии 12F50X...................................................................216
Глава 8. Семейство PIC18F................................................................................219
Организация памяти........................................................................................221
Конфигурационные регистры........................................................................222
организация тактирования............................................................................225
Внутренний осциллятор.................................................................................226
Переключение источника тактирования......................................................226
таймеры..............................................................................................................227
TMR0...............................................................................................................227
TMR1...............................................................................................................228
TMR3...............................................................................................................228
АЦП:.....................................................................................................................229
Обработка прерываний.....................................................................................229
Глава 9. Семейство PIC24...................................................................................231
Порты..................................................................................................................234
Таймеры..............................................................................................................236
Прерывания........................................................................................................236
Вложение прерываний....................................................................................238
Системные прерывания..................................................................................239
Окно program Space visibility.......................................................................239
Интерфейс SPI....................................................................................................240
ПортРМР.............................................................................................................241
АЦП......................................................................................................................241
модуль CTMU....................................................................................................244
Измерение заряда конденсатора...................................................................245
Измерение времени.........................................................................................245
Формирование импульсных последовательностей и задержек....................246
Глава 10. Семейство PIC32.................................................................................248
Порты..................................................................................................................250
Таймеры..............................................................................................................251
Системная шина...............................................................................................251
Организация памяти........................................................................................252
Прерывания и исключения..............................................................................254
Система тактирования....................................................................................258
Интерфейс SPI....................................................................................................258
ПортРМР............................................................................................................258
АЦП......................................................................................................................259
Модуль сравнения на выходе.........................................................................259
ЧАСТЬ IV. КОМПИЛЯТОРЫ И СРЕДСТВА РАЗРАБОТКИ ДЛЯ
МИКРОКОНТРОЛЛЕРОВ PIC 260
Глава 11. Компилятор CCS-PICC......................................................................261
Создание проектов CCS-PICC вручную.........................................................261
Создание проектов CCS-PICC с помощью PIC Wizard................................265
Создание проектов CCS-PICC с помощью PIC24 Wizard............................271
Открытие и добавление в проект файлов с исходным кодом...................272
Компиляция проекта........................................................................................272
Меню tools........................................................................................................274
Глава 12. Эмуляция и отладка программ в среде MPLAB.........................275
Рабочая область и проект mplab..................................................................276
компиляция под управлением mplab.........................................................277
Настройка режима отладки/эмуляции.........................................................277
Работа в режиме отладки/эмуляции.............................................................279
Окна отладчика................................................................................................280
Глава 13. Компилятор mikroC.......................................................................... 282
Создание проекта mikroC................................................................................283
Компиляция проекта........................................................................................285
Добавление в проект файлов с исходным кодом........................................287
Эмуляция выполнения программы...............................................................288
Вспомогательные инструменты среды mikroC...........................................290
Глава 14. Компиляторы СЗО и С32....................................................................294
Компилятор СЗО.................................................................................................294
Компилятор С32.................................................................................................296
Глава 15. Программаторы для микроконтроллеров PIC............................297
Программные средства для программирования микроконтроллеров.....298
Программирование устройства в среде mikroC............................................300
ЧАСТЬ У. ЯЗЫК С И ДИРЕКТИВЫ ПРЕПРОЦЕССОРА 302
Глава 16. Основы языка С..................................................................................303
Вводные понятия..............................................................................................303
Структура программы на С..............................................................................304
типы данных, переменные, константы.........................................................306
Правила преобразований из одной системы счисления в другую..................308
Тип char...........................................................................................................309
Пользовательские типы.................................................................................309
Переменные.....................................................................................................310
Область видимости переменных...........................................................................310
Константы.....................................................................................................311
Перечислимые типы.......................................................................................311
Приведение типов...........................................................................................312
Оператор sizeof...............................................................................................312
Функции..............................................................................................................312
Возвращаемые значения.................................................................................313
Прототипы функций......................................................................................314
Классы памяти при объявлении локальных переменных...............................314
Рекурсия..........................................................................................................315
Структуры...........................................................................................................316
Указатели и адреса переменных....................................................................318
Передача в функции параметров по ссылке..................................................318
Указатели на структуры...............................................................................319
массивы и строки.............................................................,...............................320
Строки............................................................................................................321
Многомерные массивы...................................................................:.........-......321
Операторы ветвления.......................................................................................321
Оператор if-else..............................................................................................322
Условные выражения.....................................................................................322
Оператор switch-case.....................................................................................322
Циклические конструкции..............................................................................323
Конструкция while..........................................................................................323
Конструкция for.......................................................................................:......324
Конструкция do-while.....................................................................................324
Организация бесконечных циклов...................................................................325
Операторы break и continue...........................................................................325
Стандартные функции ввода/вывода...........................................................325
Ввод/вывод символов с помощью функций getcharQ и putcharQ...................326
Функции вывода строк puts 0 и printfO..........................................................327
Функции ввода строк gets 0 и scanfO..............................................................328
Директивы препроцессора...............................................................................329
Директива ^include.........................................................................................329
Директива ttdefine...........................................................................................329
Директивы условной компиляции........................................................,..........331
Директива terror............................................................................................333
Директива ^pragma компилятора CodeVisionA VR........................................333
Директивы, характерные для компилятора CCS-PICC................................333
Директива #bit.......................................................................................................334
Директива #byte.....................................................................................................334
Директива #case.....................................................................................................334
Директива #device.................................................................................................334
Директива #fiise.....................................................................................................335
Директива #locate..................................................................................................336
Директива #org......................................................................................................336
Директива #opt.......................................................................................................337
Директива #priority................................................................................................337
Директива #reserve................................................................................................338
Директива #r6m.....................................................................................................338
Директива #type.....................................................................................................338
Директива #use delay.............................................................................................'338
Директива #use xxxjo...........................................................................................338
Директива #use i2c.................................................................................................339
Директива #use rs232.............................................................................................340
Директива #zero_ram.............................................................................................341
Обработка прерываний.....................................................................................341
Обработка прерываний в среде WinA VR.......................................................341
Обработка прерываний в среде CodeVisionAVR............................................343
Обработка прерываний в среде CCS-PICC....................................................343
Обработка прерываний в среде mikroC.........................................................345
Обработка прерываний в среде С30.............................................................. 345
Обработка прерываний в среде С32.............................................................. 347
Исполнение ассемблерного кода..................................................................353
Использование ассемблера в компиляторе WinAVR......................................353
Ассемблерный код.................................................................................................354
Входные и выходные операнды............................................................>...............355
Резервирование регистров.....................................................................................356
Использование ассемблера в компиляторе CodeVisionAVR..........................358
Использование ассемблера в компиляторе CCS-PICC..................................358
Использование ассемблера в компиляторе mikroC........................................359
Использование ассемблера в компиляторах СЗО и С32.................................360
Глава 17. Функции и макросы языка С для различных компиляторов. 361
Стандартные функции языка С.......................................................................361
Функции для работы со строками.................................................................363
Функции для работы с символами.......................... .......................................365
Функции для работы со случайными числами...............................................367
Функции для работы с памятью........................... .........................................367
Функции и макросы компилятора winAVR.................................................368
Математические макросы и функции...........................................................368
Функции для работы со строками.................................................................369
Функции для работы с символами.......................... ........................................373
Макросы и функции для организации ввода/вывода......................................373
Функции управления микроконтроллером.....................................................378
Макросы для работы со сторожевым таймером........................................379
Функции для работы со случайными числами...............................................380
Функции для работы с памятью....................................................................380
Макросы для обработки прерываний.............................................................381
Макросы и функции для работы с памятью EEPROM.................................382
Функции и макросы комдилятора CodeVisionAVR....................................383
Математические макросы и функции...........................................................383
Функции для работы со строками.................................................................384
Функции для работы с символами.......................... .......................................387
Функции управления микроконтроллером.....................................................387
Функции для организации ввода/вывода.........................................................387
Функции для работы с памятью....................................................................388
Функции для работы с интерфейсом fC......................................................389
Функции и макросы компилятора CCS-PICC...............................................389
Математические макросы.............................................................................389
Функции для работы со строками.................................................................390
Функции для организации ввода/вывода.........................................................391
Функции управления микроконтроллером.....................................................394
Функции для работы с таймерами и модулем ССР......................................396
Функции для работы с разрядами и памятью...............................................398
Функции для работы с памятью EEPROM...................................................400
Функции для работы с интерфейсом SPI......................................................401
Функции для работы с интерфейсом PSP.....................................................402
Функции для работы с интерфейсом fC......................................................402
Функции для работы с аналоговыми сигналами............................................403
Функции компилятора mikroC.......................................................................405
Математические функции.............................................................................405
Функции для работы со строками.................................................................405
Функции преобразований................................................................................407
Функции управления микроконтроллером.....................................................407
Функции для работы с периферийными устройствами...............................408
Функции для работы с памятью EEPROMu Flash.......................................409
Функции для работы с интерфейсом fC......................................................410
Функции для работы с интерфейсом SPI......................................................410
ЧАСТЬ VI. ПРОГРАММНЫЕ ПРИМЕРЫ ДЛЯ
МИКРОКОНТРОЛЛЕРОВ AVR 412
Глава 18. Примеры для компилятора WinAVR.............................................413
Управление ЖК-дисплеем...............................................................................413
GPS-навигатор...................................................................................................418
Глава 19. Примеры для компилятора CodeVisionavr................................430
Управление аналого-цифровым преобразованием....................................430
Измерение температуры...................................................................................433
ЧАСТЬ VII. ПРОГРАММНЫЕ ПРИМЕРЫ ДЛЯ
МИКРОКОНТРОЛЛЕРОВ PIC 435
Глава 20. Примеры для компилятора CCS-PICC...........................................436
Отображение состояния выводов порта......................................................436
Управление частотой мерцания светодиодов с помощью различных
таймеров............................................................................................................437
Управление светофорами на перекрестке....................................................438
Обмен данными в режиме PSP.........................................................................442
Контроль предельной скорости вращения двигателя................................444
Глава 21. Примеры для компилятора mikroC...............................................446
Игральные "кости"............................................................................................446
Вольтметр с ЖК-дисплеем...............................................................................448
Калькулятор.......................................................................................................450
Глава 22. Примеры для компилятора C30......................................................453
Использование порта РМР..............................................................................453
Небольшая библиотека функций для доступа к ЖК-модулю.......................453
Расширенное управление ЖК-дисплеем.........................................................456
работа с АЦП.....................................................................................................460
Считывание уровня напряжения с потенциометра.....................................461
Измерение температуры...............................................................................465
Глава 23. Примеры для компилятора С32......................................................470
Работа с интерфейсом SPI................................................................................470
Работа с модулем UART..................................................................................473
ЧАСТЬ VIII. ПРИЛОЖЕНИЯ 477
Приложение А. Таблица символов ASCII......................................................478
Приложение Б. Преобразование из одной системы счисления
в другую.....................................................................................479
Приложение В. Система команд микроконтроллеров AVR.....................482
Наличие команд в различных микроконтроллерах AVR...........................495
Команды по категориям............................................................................,.....497
Приложение Г. Система команд микроконтроллеров Р1С.......................,498
Команды восьмиразрядных микроконтроллеров........................................498
Команды по категориям1................................. ...............................................509
Система команд микроконтроллеров PIC24................................................510
Приложение д. Область ввода/вывода микроконтроллеров
AVR ATXMEGA А........................................................................519
Список литературы...........................................................................................532
Содержимое прилагаемого к книге компакт-диска..................................533
Диск к книге - http://rutracker.org/forum/viewtopic.php?t=3465205