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

Для обмена данными с основной программой используется глобальная переменная буфера команд cmd и флаг завершения приема команды cmPrinjata. Выберем длину буфера команд равной максимальной длине команды — шесть байтов.

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

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

Флаг завершения приема команды cmPrinjata устанавливается при обнаружении символа возврата каретки. Теперь необходимо подготовиться к приему следующей команды. Для этого в указатель ptr записывается адрес начального байта буфера обмена.

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

Итак, подведем итоги

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

Особое внимание было уделено методу создания программ сверху вниз. Для этого был рассмотрен пример развития программы от построения программы-прототипа до детализации, достаточной для реализации устройства.

В главе были использованы некоторые интуитивно понятные конструкции языков программирования С и ASM-51. Однако для написания серьезных программ требуются более глубокие знания по этим языкам программирования, поэтому в последующих главах мы остановимся на этих языках подробнее.

<p>Глава 8</p><p>Язык программирования <strong>ASM-51</strong></p>

Язык программирования ASM-51 поддерживает модульное написание программ. Графическое изображение процесса разработки программы на языке программирования ASM-51 приведено на рис. 8.1.

Рис. 8.1.Схема процесса написания программы на языке программирования ASM-51

Файл, в котором хранится программа, написанная на языке ASM-51 (исходный текст программы), называется исходным модулем. Его можно создать, используя любой текстовый редактор. Для файла исходного текста программы принято использовать следующие расширения: asm, а51, srs, s51.

Получить объектный модуль можно, указав имя исходного модуля программы в качестве параметра вызова программы-транслятора в DOS-строке или строке командного файла: asm51.exe modul.asm

Получить исполняемый модуль программы можно, указав все имена объектных модулей программы в качестве параметров вызова программы-редактора связей в DOS-строке или строке командного файла: bl51.exe main.obj, modull.obj, modul2.obj

Имя исполняемого модуля программы по умолчанию совпадает с именем первого объектного файла в списке параметров командной строки, используемой для запуска редактора связей. Исполняемый модуль программы записывается в файл с именем, но без расширения.

Большинство программаторов не может работать с объектным форматом исполняемого модуля программы, поэтому для загрузки машинного кода в микроконтроллер необходимо преобразовать объектный формат исполняемого модуля в общепринятый для программаторов НЕХ-формат. При таком преобразовании вся отладочная информация, содержащаяся в исполняемом модуле, теряется. Машинный код процессора, записанный в НЕХ-формате, называется загрузочным модулем.

Загрузочный модуль программы можно получить при помощи программы-преобразователя oh.exe, передав ей при вызове в качестве параметра имя файла исполняемого модуля, например: oh.exe main

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

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

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

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

Чарльз Платт

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

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

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

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

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

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

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