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

Достаточно часто требуется обработка прерываний от нескольких источников. В результате подпрограмма обработки прерываний не может уместиться между векторами прерываний на участке памяти длиной 8 байтов, поэтому подпрограммы выносятся из области векторов прерывания. Для перехода на эти подпрограммы используются команды безусловного перехода. В листинге 8.17 директива ORG использована для того, чтобы поместить команду перехода на подпрограмму обработки прерывания точно на вектор прерывания таймера 0.

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

Если подпрограмма обработки прерывания использует несколько регистров, то на сохранение регистров в стеке и на восстановление их из стека тратится достаточно много времени. Микроконтроллеры семейства MCS-51 предлагают возможность использовать для подпрограмм прерываний отдельный банк регистров. Переключение банков регистров производится при помощи регистра psw. В языке программирования ASM-51 то, что программа использует не нулевой банк регистров, указывается при помощи директивы using. Переключение банков регистров в подпрограмме обработки прерывания от таймера Т0, а также резервирование первого банка регистров при помощи директивы using показано в листинге 8.18.

Структурное программирование на языке ASM-51

Применение структурного программирования позволяет увеличить скорость написания программ и облегчить их отладку. Языки программирования С, PASCAL, PL/M разрабатывались на основе принципов структурного программирования, поэтому в состав этих языков входят структурные операторы. Ассемблер не относится к структурированным языкам программирования. Тем не менее, структурное программирование возможно и на языках программирования низкого уровня, в том числе и на языке программирования ASM-51, где не предусмотрено структурных операторов.

При разработке программы с использованием методов структурного программирования она может быть оттранслирована и выполнена на любом этапе написания, при этом можно отследить все алгоритмические действия программы, реализованные к этому времени. При использовании методов структурного программирования процесс написания программы не отличается от процесса создания алгоритма. Более того! Эти этапы создания программы можно объединить!

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

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

— применять специальные символы-разделители;

— начинать каждое новое слово внутри метки с буквы верхнего регистра.

В качестве разделителей внутри метки можно использовать символы подчеркивания (_) и вопроса (?). Примеры назначения «говорящих» меток:

Priem_Comandy            ;Использование символов-разделителей

ProveritBitGotovnosti    ;Использование букв верхнего регистра

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

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

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

ProchitatPort          ;Прочитать порт

Vklychitlndikator     ;Включить индикатор

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

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

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

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

Чарльз Платт

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

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

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

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

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

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

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