Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

<p>Глава 6</p><p>Подпрограммы и модули</p>

Хорошо написанное программное обеспечение должно представлять собой совокупность взаимодействующих модулей, а не одну большую программу, выполняющую все задачи от начала и до конца. У модульного принципа программирования имеется множество достоинств, без использования которых практически нельзя обойтись, когда размер кода становится больше нескольких сот строк или когда проект разрабатывается командой программистов.

Что же должны представлять собой эти модули? Чтобы ответить на этот вопрос, рассмотрим применение программных структур, которые предназначены для упрощения использования такого модульного подхода, и команды процессора, связанные с этими структурами.

Прочитав эту главу, вы:

• Убедитесь в необходимости применения модульного принципа программирования.

• Поймете структуру стека и его использование в механизме вызова подпрограмм и возврата из них.•

• Поймете термин «вложенная подпрограмма».

• Узнаете, как можно передать параметры в подпрограмму и возвратить результат в вызывающую программу.

• Сможете писать подпрограммы, оказывающие минимальное влияние на свое окружение.

• Сможете создавать программный стек для открытия и закрытия кадра в памяти данных, служащего для передачи параметров и обеспечения временной рабочей области.

Давайте заглянем внутрь вашего персонального компьютера. Скорее всего он будет похож на тот, фотография которого приведена на Рис. 6.1. На материнской плате типичного компьютера размещаются микропроцессор, различного рода память и другие сопутствующие ИС, а также некоторое количество слотов расширения. К этим слотам можно подключить плату дискового контроллера и видеокарту. Существуют и другие платы, например звуковая плата, модем, сетевой контроллер. Каждая из этих плат выполняет собственные и совершенно независимые задачи, но все они взаимодействуют через сервисы, предоставляемые главной платой — материнской.

Рис. 6.1.Модульная конструкция на примере ПК

Преимущества такой модульной конструкции очевидны:

Гибкость, т. е. относительная легкость модернизации или изменения конфигурации путем добавления или смены карт расширения.

• Возможность повторного использования компонентов от предыдущей системы.

• Возможность покупки стандартных плат или разработки собственных специализированных плат.

• Легкость обслуживания.

Разумеется, у такого подхода есть и некоторые недостатки. Материнская плата, в которую интегрированы все устройства, имеет меньший размер и, теоретически, меньшую стоимость, чем эквивалентная совокупность простой материнской платы и карт расширения. Скорее всего она даже будет более надежной, поскольку входные и выходные сигналы не проходят через разъемы. Однако, если в такой плате возникнут какие-либо неполадки, их, как правило, гораздо труднее отследить и исправить.

В модульном программировании используется тот же самый принцип построения «программных узлов», т. е. программ. Вот формальное определение принципа модульного программирования, которое дается в научно-технической литературе:

Способ разработки программ, при котором программа разбивается на логически завершенные единицы — модули. При этом каждый модуль может разрабатываться, программироваться, транслироваться и тестироваться независимо от других[89].

Таким образом, для написания программы в соответствии с принципом модульного программирования нам необходимо разбить общую задачу на несколько отдельных процедур, каждая из которых будет выполнять четко очерченную задачу. Такого рода модуль должен быть достаточно маленького размера, хорошо документирован и легок для понимания, причем не только для написавшего его программиста.

Преимущества модульного программирования аналогичны преимуществам модульного проектирования, но еще более убедительны:

• Модули можно тестировать, отлаживать и поддерживать по отдельности; это обеспечивает общую надежность.

• Можно повторно использовать модули из других проектов или купить их у сторонних производителей.

• Легче модернизировать программу (простой заменой модулей).

Решение о том, каким образом следует разбить программу на отдельные независимые задачи, принимается на основе опыта. Собственно кодирование этих задач в виде подпрограмм ничем не отличается от написания примеров, которые мы рассматривали в предыдущих главах (см., например, Программу 5.9 на стр. 162). Для реализации указанных подпрограмм имеется несколько дополнительных команд, которые перечислены в Табл. 6.1. Далее в настоящей главе мы рассмотрим эти команды, а также некоторые методики, применяемые при разработке программного обеспечения.

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника