Читаем Занимательно о микроконтроллерах полностью

Для улучшения восприятия текста программы, кроме «говорящих» названий подпрограмм широко используются «говорящие» имена переменных. Особенно улучшается читаемость программы в том случае, если имена этих переменных связаны с аппаратурой микроконтроллерного устройства.

Например, для микроконтроллера at89c5l можно назначить флагу завершения приема по последовательному порту R1 имя BytePeredan. Тогда участок программы на языке программирования С-51, соответствующий ожиданию завершения приема байта последовательным портом, будет выглядеть следующим образом:

if (BytePeredan) SBUF = SledujushchiyByte;

При таком выборе имени переменной исходный текст программы практически совпадает с фрагментом алгоритма, который этот участок программы реализует! В этом случае можно даже отказаться от применения комментария для пояснения фрагмента программы.

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

Основная идея структурного программирования заключаются в том, что существует только четыре структурных оператора. При использовании этих структурных операторов можно построить сколь угодно сложную программу.

Линейная цепочка операторов

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

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

Блок-схема стандартной структурной конструкции управления «линейная цепочка операторов» приведена на рис. 7.4. Поясним процесс преобразования этой блок-схемы в исходный текст программы.

Рис. 7.4.Блок-схема конструкции управления «линейная цепочка операторов»

На момент написания алгоритма (и программы) верхнего уровня нам не известны детали их реализации, поэтому вместо настоящих подпрограмм, соответствующих элементам блок-схемы «Действие 1» и «Действие 2», поставим подпрограммы-заглушки, которые ничего не делают! Однако в именах подпрограмм отразим те алгоритмические действия, которые они должны осуществлять в дальнейшем. Для отладки программы (и алгоритма) того уровня, который пишется в данный момент, неважно, что подпрограммы ничего не делают. Главное, что мы можем проверить, каков порядок вызовов подпрограмм, и соответствует ли он ожидаемому. На этом же этапе можно отладить взаимодействие между программами.

Для этого мы можем произвести трансляцию программы и на отладчике проследить все действия программы. Возможность производить трансляцию и отладку программы на любом этапе ее написания позволяет находить ошибки сразу же после написания оператора! Ведь если мы написали только один оператор, то и совершить ошибку мы могли только в этом месте! То есть процесс поиска ошибки существенно упрощается. А ведь процесс написания программы на 90 % состоит из поиска ошибок.

После завершения отладки программы (и алгоритма!) текущего уровня можно перейти к написанию и отладке любой из подпрограмм, т. е. к превращению подпрограммы-заглушки в нормальную отлаженную программу. При этом очень важно заметить, что подпрограммы отлаживаются независимо друг от друга, что значительно облегчает написание программы (да и чтение этой программы в дальнейшем).

Пример использования подпрограмм-заглушек для реализации конструкции управления «линейная цепочка операторов» на языке программирования С-51 приведен в листинге 7.7, а на языке программирования ASM-51 — в листинге 7.8.

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

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

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

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

Чарльз Платт

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

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

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

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

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

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

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