Микроконтроллеры PIC24: архитектура и программирование
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Магда Юрий Степанович
Год издания: 2023
Кол-во страниц: 241
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-618-0
Артикул: 817113.01.99
В книге рассматривается широкий круг вопросов, связанных с практическим применением популярных 16-битных микроконтроллеров PIC24 в системах обработки данных и управления оборудованием. Приводятся многочисленные примеры программирования несложных аппаратно-программных систем обработки аналоговой и цифровой информации с применением периферийных модулей микроконтроллеров PIC24F. В контексте разработанных примеров приводятся необходимые сведения из теории, что способствует лучшему пониманию материала книги. Все приведенные в книге аппаратно-программные проекты разработаны и проверены на отладочном модуле Explorer16Development Board фирмы Microchip и могут служить основой для создания собственных проектов.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 11.03.04: Электроника и наноэлектроника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Ю. С. Магда Микроконтроллеры PIC24: архитектура и программирование Москва, 2023 2-е издание, электронное
УДК 621.396.6 ББК 32.872 М12 М12 Магда, Юрий Степанович. Микроконтроллеры PIC24: архитектура и программирование / Ю. С. Магда. — 2-е изд., эл. — 1 файл pdf : 241 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-618-0 В книге рассматривается широкий круг вопросов, связанных с практическим применением популярных 16-битных микроконтроллеров PIC24 в системах обработки данных и управления оборудованием. Приводятся многочисленные примеры программирования несложных аппаратно-программных систем обработки аналоговой и цифровой информации с применением периферийных модулей микроконтроллеров PIC24F. В контексте разработанных примеров приводятся необходимые сведения из теории, что способствует лучшему пониманию материала книги. Все приведенные в книге аппаратно-программные проекты разработаны и проверены на отладочном модуле Explorer16Development Board фирмы Microchip и могут служить основой для создания собственных проектов. УДК 621.396.6 ББК 32.872 Электронное издание на основе печатного издания: Микроконтроллеры PIC24: архитектура и программирование/ Ю. С. Магда. — Москва : ДМК Пресс, 2016. — 240 с. — ISBN 978-5-97060-347-5. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-618-0 © Магда Ю. С. © Оформление, ДМК Пресс
СОДЕРЖАНИЕ Введение................................................................................................................... 5 Структура книги ...................................................................................................... 6 1. Обзор 16битных PICмикроконтроллеров........................................................... 8 2. Архитектура микроконтроллеров PIC24F ............................................................10 3. Система команд и основы программирования микроконтроллеров PIC24F .........18 3.1. Программная модель микроконтроллеров PIC24F ........................................18 3.2. Режимы адресации и система команд ............................................................ 20 3.2.1. Команды перемещения и адресация данных ....................................... 23 3.2.2. Команды сравнения/выбора и условного перехода ............................. 28 3.2.3. Команды работы с битами .................................................................... 32 3.2.4. Команды сдвига и циклического сдвига .............................................. 35 3.2.5. Команды математических и логических операций ............................. 37 3.2.6. Команды условных/безусловных переходов ........................................ 44 3.3. Разработка и отладка программ на ассемблере в среде MPLAB IDE ............ 46 3.4. Особенности разработки и отладки программ на MPLAB C для PIC24 ...... 59 4. Программирование портов ввода/вывода ............................................................ 73 4.1. Аппаратнопрограммная архитектура портов ввода/вывода ......................... 73 4.2. Программирование портов ввода/вывода ...................................................... 77 4.3. Модуль регистрации событий .........................................................................81 5. Программирование прерываний .......................................................................... 89 6. Программирование таймеров .............................................................................100 6.1. Практическое использование 16битных таймеров...................................... 104 6.2. Работа таймеров в 32битном режиме ........................................................... 114 6.3. Часы реального времени ................................................................................ 118
Содержание 7. ИНТЕРФЕЙС SPI МИКРОКОНТРОЛЛЕРОВ PIC24F ................................120 7.1. Аппаратнопрограммная реализация SPI в микроконтроллерах PIC24F .... 121 7.2. Практическое программирование обмена данными по SPI .......................127 8. ИНТЕРФЕЙС I2C МИКРОКОНТРОЛЛЕРОВ PIC24F .................................140 8.1. Принципы функционирования интерфейса I2C .........................................140 8.2. Модуль интерфейса I2C микроконтроллеров PIC24F .................................143 8.3. Практическое использование интерфейса I2C.............................................147 9. ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙСА PMP ...........................................159 9.1. Режимы работы PMP .................................................................................... 161 9.2. Практические примеры программирования интерфейса PMP ..................164 10. ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС МИКРОКОНТРОЛЛЕРОВ PIC24F ..............................................................182 10.1. Аппаратнопрограммная архитектура UART ............................................183 10.2. Практическое использование последовательного порта...........................184 11. ОБРАБОТКА АНАЛОГОВЫХ СИГНАЛОВ В МИКРОКОНТРОЛЛЕРАХ PIC24F ............................................................198 11.1. Программная модель интегрированного АЦП ..........................................201 11.2. Практическое использование модуля АЦП ...............................................205 11.3. Использование внешнего АЦП ..................................................................217 12. ГЕНЕРАЦИЯ АНАЛОГОВЫХ И ЦИФРОВЫХ СИГНАЛОВ .....................221 12.1. Модуль генерации цифровых сигналов .....................................................221 12.2. Аналоговые компараторы в микроконтроллерах PIC24F .........................229 Заключение ...........................................................................................................239
ВВЕДЕНИЕ Системы управления и контроля на однокристальных микроконтроллерах в настоящее время используются практически во всех сферах человеческой деятельности, причем каждый день появляются все новые и новые области применения таких систем. В последнее время, в связи с бурным развитием электроники расширились возможности и самих микроконтроллеров, позволяющих выполнять многие задачи, ранее недоступные для реализации, такие, например, как обработка и синтез аналоговых аудиои видеосигналов. Одним из наиболее популярных семейств микроконтроллеров являются устройства, выпускаемые фирмой Microchip и известные под аббревиатурой PIC. В последние годы были разработаны и запущены в производство 16и 32битные модели, позволившие существенно расширить области применения систем на базе микроконтроллеров PIC. Для облегчения миграции от 8к 16битным устройствам фирма Microchip обеспечила максимальный уровень совместимости аппаратнопрограммных функций этих микроконтроллеров. Эта книга посвящена практическим аспектам разработки систем на базе 16битных микроконтроллеров PIC24F. В книге приводятся основные сведения по аппаратнопрограммной архитектуре микроконтроллеров PIC24F, а также многочисленные проекты систем обработки данных на базе микроконтроллеров этого семейства. Все примеры, приведенные в книге, разработаны и протестированы на плате «Explorer 16 Development Board» производства Microchip с установленным микроконтроллером PIC24FJ128GA010. Тем не менее, для тестирования приведенных примеров и разработки собственных проектов читатели могут использовать и более дешевую систему начального уровня «MPLAB Starter Kit for PIC24F» той же фирмы или отладочные платы других фирм. Для разработки программного обеспечения проектов, представленных в книге, использовалась интегрированная среда разработки MPLAB IDE версии 8.00 и бесплатная студенческая версия компилятора языка Си, известного под названием MPLAB C для PIC24. Кроме того, при изучении системы команд микроконтроллера PIC24F, а также при анализе процесса отладки некоторых программ на языке Си используется довольно эффективный симулятор/отладчик MPLAB SIM. Книга рассчитана на широкий круг читателей — от начинающих до опытных разработчиков – и может оказаться полезной для всех, кто желает самостоятельно изучить аппаратнопрограммную архитектуру 16битных микроконтроллеров PIC24F и применить эти знания на практике.
СТРУКТУРА КНИГИ Структура книги рассчитана на последовательное изучение материала, хотя опытные разработчики систем на базе микроконтроллеров PIC могут изучать материал выборочно. Теоретический материал большинства глав подкреплен практическими примерами, что позволяет существенно облегчить изучение. Книга состоит из 12 глав, краткие сведения о каждой из них приведены далее: • Глава 1. «Обзор 16битных PICмикроконтроллеров». В этой главе рассматриваются общие характеристики 16битных микроконтроллеров фирмы Microchip и дается краткий обзор инструментальных средств разработки программного обеспечения. • Глава 2. «Архитектура микроконтроллеров PIC24F». Материал этой главы посвящен обзору аппаратной архитектуры микроконтроллеров PIC24F, организации памяти и функционирования периферийных модулей устройства. • Глава 3. «Система команд и основы программирования микроконтроллеров PIC24F». В этой главе детально проанализированы принципы реализации системы команд микроконтроллеров PIC24F и приведены многочисленные примеры программного кода на языке ассемблера. Значительная часть главы посвящена вопросам разработки и отладки программного обеспечения в среде MPLAB IDE. • Глава 4. «Программирование портов ввода/вывода». Эта глава содержит материал по архитектуре и программированию цифровых портов ввода/ вывода микроконтроллеров PIC24F. Теоретический материал сопровождается примерами программ на языке Си с детальным анализом программного кода. • Глава 5. «Программирование прерываний». Материал главы посвящен аппаратнопрограммной реализации системы прерываний микроконтролле
Структура книги ров PIC24F. На многочисленных примерах программного кода проанализированы различные механизмы вызова и обработки пользовательских прерываний. • Глава 6. «Программирование таймеров». Глава содержит материал по аппаратнопрограммной архитектуре модулей таймеров микроконтроллеров PIC24F. Рассматриваются различные режимы работы таймеров и их настройка. Теоретический материал сопровождается примерами программ на языке Си с детальным анализом программного кода. • Глава 7. «Интерфейс SPI микроконтроллеров PIC24F». В главе рассмотрены принципы функционирования и аппаратнопрограммная реализация модуля интерфейса SPI, а также приведены примеры программирования систем ввода/вывода дискретных данных с использованием данного интерфейса. Все примеры сопровождаются детальным анализом программного кода. • Глава 8. «Интерфейс I2C микроконтроллеров PIC24F». Материал главы посвящен рассмотрению принципов функционирования и аппаратнопрограммной конфигурации модуля интерфейса I2C в микроконтроллерах PIC24F. Теоретический материал сопровождается примерами программирования обмена данными по шине I2C на языке Си с детальным анализом программного кода. • Глава 9. «Программирование интерфейса PMP». В главе рассматривается аппаратнопрограммная реализация 8битного параллельного интерфейса обмена данными PMP. Приводятся примеры разработки систем ввода/ вывода цифровых данных с использованием этого интерфейса. • Глава 10. «Последовательный интерфейс микроконтроллеров PIC24F». В этой главе рассматриваются принципы реализации и настройки модуля последовательного интерфейса микроконтроллеров PIC24F. Теоретический материал сопровождается примерами программирования обмена данными с использованием этого модуля, разработанными на языке Си, с детальным анализом программного кода. • Глава 11. «Обработка аналоговых сигналов в микроконтроллерах PIC24F». Эта глава посвящена методам обработки аналоговых сигналов в микроконтроллерах PIC24F. Здесь рассматривается широкий круг вопросов, связанных с настройкой и использованием модуля аналогоцифрового преобразователя, а также приводятся примеры программирования ввода данных посредством АЦП. • Глава 12. «Генерация аналоговых и цифровых сигналов». В этой главе рассматривается широкий круг вопросов, связанных с генерацией цифровых и аналоговых сигналов в микроконтроллерах PIC24F. Теоретические аспекты иллюстрируются примерами программного кода на языке Си. Автор благодарит коллектив издательства «ДМК Пресс» за помощь при подготовке книги к изданию. Особую признательность автор выражает своей жене Юлии за поддержку и помощь при написании книги.
ГЛАВА 1 ОБЗОР 16БИТНЫХ PICМИКРОКОНТРОЛЛЕРОВ Разработанные фирмой Microchip 16битные микроконтроллеры являются очередным шагом на пути повышения производительности и эффективности встроенных и мобильных приложений. Эта 16битная архитектура изначально разрабатывалась как альтернатива 8битным решениям и призвана заменить в ближайшее время 8битные микроконтроллеры в большинстве приложений. Разработанная фирмой Microchip 16битная платформа реализована в двух семействах 16битных микроконтроллеров и в двух семействах цифровых сигнальных контроллеров. Все эти семейства объединяет ряд общих характеристик: • совместимость по назначению выводов различных 16битных устройств; • возможность использования для всех устройств одних и тех же инструментальных средств разработки программного обеспечения; • аппаратнопрограммная совместимость всех одноименных периферийных модулей микроконтроллеров; • общая базовая система команд процессора, используемая во всех семействах. Выбор той или иной модели микроконтроллера или сигнального контроллера зависит от требований к разрабатываемому приложению. Для большинства недорогих устройств средней производительности подходят микроконтроллеры PIC24F, максимальная производительность которых составляет 16 MIPS. Для устройств, требующих высокой производительности, можно использовать микроконтроллеры PIC24H с максимальным быстродействием 40 MIPS. Микроконтроллеры семейств PIC24F и PIC24H работают с одним и тем же набором инструкций процессора, включают одни и те же периферийные модули, имеют одну и ту же цоколевку, и для работы с ними используются одни и те же инструментальные средства для разработки программного обеспечения. Если требуются дополнительные возможности по обработке сигналов, то вместо микроконтроллеров семейств PIC24F/H можно применить цифровые сигнальные контроллеры семейства dsPIC30F, которые могут помимо всего прочего работать при напряжении питания 5 В, или высокопроизводительные (40 MIPS) контроллеры dsPIC33F, которые имеют большой объем памяти и используют низковольтное (3.3 В) питание. В качестве инструментального
Глава 1. Обзор 16битных PICмикроконтроллеров средства разработки программного обеспечения 16битных микроконтроллеров и цифровых сигнальных контроллеров используется свободно распространяемая интегрированная среда разработки (ИСР) MPLAB IDE фирмы Microchip, которая позволяет разрабатывать и отлаживать 8, 16и 32битные приложения. Программа MPLAB IDE работает под управлением операционных систем Windows 2000/XP/Vista и позволяет выполнить все этапы разработки и отладки программного обеспечения для целевой системы. Среда MPLAB IDE позволяет выполнять тестирование и отладку программ с использованием мощного программного симулятора MPLAB SIM. Кроме того, для разработки программного обеспечения для 16битных систем в среде MPLAB IDE можно использовать следующие инструментальные средства: • ассемблер ASM30 — полнофункциональный макроассемблер, в котором можно создавать пользовательские макросы и использовать условное ассемблирование. Многочисленные директивы языка делают макроассемблер очень мощным средством разработки программ; • компилятор программ, написанных на языке Си, который называется MPLAB C для PIC24. Этот компилятор используется для компиляции и оптимизации программ, написанных для 16битных микроконтроллеров PIC24F/H и цифровых сигнальных контроллеров dsPIC30/33. Он совместим со стандартом ANSI C и включает полную библиотеку стандартных функций ANSI C, в числе которых функции манипулирования строками, функции работы с динамической памятью, функции преобразования даты/времени и математические функции. В компиляторе MPLAB C для PIC24 имеется мощный оптимизатор, позволяющий почти в 1,5 раза уменьшить размер программного кода по сравнению с компиляторами других фирмпроизводителей; • визуальный генератор кода инициализации MPLAB VDI, позволяющий значительно упростить процесс создания инициализационного кода программы. С помощью VDI можно в графическом виде сконфигурировать устройство и по завершении вставить сгенерированный программный код инициализации в программу на языке Си или ассемблере; • библиотеку периферийных модулей, включающую более чем 270 функций для работы с различными периферийными модулями; • библиотеку математических функций, совместимую со стандартом IEEE754, которая включает ряд функций для выполнения операций над обычными вещественными числами и вещественными числами с двойной точностью. Функции этой библиотеки могут использоваться как в программах на языке Си, так и на ассемблере. Кроме инструментальных средств разработки и отладки программного обеспечения фирмыпроизводителя на рынке присутствуют и программные средства, выпускаемые многими известными фирмами (HiTech, CCS и т.д.). Из аппаратных средств разработки наиболее известна и популярна отладочная плата «Explorer 16 Development Board» фирмы Microchip, хотя другие фирмы также приступили к выпуску отладочных плат на базе 16битных микроконтроллеров.
ГЛАВА 2 АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРОВ PIC24F Микроконтроллеры PIC24F были разработаны как недорогое аппаратнопрограммное решение для перехода от 8битных микроконтроллеров семейства PIC18 к 16битной архитектуре, призванное обеспечить максимальную преемственность как уже разработанных приложений для PIC18, так и вновь создаваемых, более эффективных и недорогих 16битных решений. Выбор микроконтроллеров PIC24F оправдан в тех случаях, когда необходимо обеспечить среднюю производительность системы при относительно невысокой стоимости конечного продукта. Для приложений, требующих более высокой производительности (выше, чем 16 MIPS), можно использовать более дорогие микроконтроллеры семейства PIC24H. Микроконтроллеры PIC24F обладают следующими характеристиками: • высокая производительность (до 16 MIPS); • векторная система прерываний с 16 уровнями приоритетов; • наличие 16 рабочих регистров; • возможность выполнения 16битных математических операций; • возможность выполнения операций умножения с разрядностью 17 ґ 17 бит за один машинный цикл; • возможность выполнения сдвига на произвольное количество бит (до 16) за один машинный цикл; • аппаратнопрограммная архитектура, оптимизированная для разработки программ на языке Си; • мощная система команд, которая включает инструкцию повторения repeat для циклического выполнения команд, что особенно полезно при использовании команд пересылки данных. По сравнению с микроконтроллерами PIC18 микроконтроллеры PIC24F обладают многими кардинальными улучшениями. Вопервых, в микроконтроллерах PIC24F расширен объем оперативной и флэшпамяти, что при прочих равных условиях позволяет оптимизировать обработку больших объемов данных и создавать более высокопроизводительные системы управления и обработки данных. Еще одним существенным улучшением стало включение в состав микроконтроллера дополнительных периферийных модулей.