Язык высокого уровня PLM-51 предназначен для программирования контроллеров серии MCS-51. Он удовлетворяет требованиям разработки программного обеспечения микроконтроллеров для систем различного назначения, в том числе разработку программ методом структурного программирования.
Компилятор plm51.exe - это программное средство, которое транслирует исходный текст, написанный на языке программирования PL/M-51 в перемещаемые объектные модули. Эти модули затем могут объединяться с другими модулями, написанными на языкax программирования PLM-51 или ASM-51. Компилятор выводит на экран дисплея или в файлы листингов сообщения об ошибках и вспомогательную информацию, которая может быть использована при отладке и разработке программ.
Компилятор plm51.exe может быть установлен на компьютерах серии IBM или совместимых с ними в операционной системе DOS 3.Х и выше и использоваться для генерации команд микроконтроллеров семейства MCS-51.
Необходимо отметить, что язык программирования PLM-51 предназначен для написания управляющих программ, поэтому не поддерживает знаковую арифметику и вычисления с плавающей запятой. Это является одновременно и преимуществом и недостатком этого языка программирования. Из-за указанной особенности загрузочные модули, созданные на этом языке программирования получаются практически такими же компактными, как и написанные на языке программирования ассемблер, но если в процессе реализуемого алгоритма управления каким либо объектом требуется достаточно сложные вычисления, то приходится использовать отдельно написанные библиотеки математической поддержки (или писать их самим).
Пожалуй в настоящее время, если требуются достаточно сложные математические вычисления, то стоит использовать язык программирования С-51. К настоящему времени появились трансляторы с этого языка программирования, создающие загрузочный модуль, лишь немногим уступающие компактностью загрузочному модулю, создаваемому языком программирования PLM-51 (естественно при правильном объявлении переменных и соответствующем стиле программирования).
Применение языка программирования PL/M-51
Язык программирования PL/M-51 и его библиотеки являются частью интегрированного набора средств разработки программного обеспечения для микроконтроллеров семейства MCS-51. Язык программирования PLМ51 поддерживает модульное написание программ. Процесс разработки программ на языке программирования PLM-51 показан на рисунке 1.
Рисунок 1. Процесс написания программы на языке программирования PLM-51
При разработке программного обеспечения выполняются следующие этапы:
- постановка задачи (полное определение решаемой проблемы);
- разработка принципиальной схемы и выбор необходимого программного обеспечения;
- разработка системного программного обеспечения. Этот важный шаг состоит из нескольких этапов, включающих: описание последовательности выполняемых каждым блоком задач, выбор языка программирования и используемых алгоритмов;
- написание текста программы и подготовка к трансляции при помощи любого текстового редактора;
- компиляция программы;
- исправление синтаксических ошибок, выявленных компилятором, в текстовом редакторе с последующей перетрансляцией;
- создание и сохранение библиотек часто используемых объектных модулей при помощи программы lib51.ехе;
- связывание полученных перемещаемых объектных модулей в абсолютный модуль и размещение переменных в памяти микроконтроллера при помощи редактора связей rl51.exe;
- создание программы, записываемой в ПЗУ микроконтроллера (загружаемый модуль) в hex формате, при помощи программы oh.exe;
- проверка полученной программы при помощи символьного отладчика или других программных или аппаратных средств.
Файл, в котором хранится программа, написанная на языке PLМ51 (исходный текст программы), называется исходным модулем. Для исходного текста программы принято использовать расширения файла: plm или p51. Исходный текст программы можно написать, используя любой текстовый редактор.
Получить объектный модуль можно, указав имя исходного модуля программы в качестве параметра программы-транслятора в DOS строке или строке командного файла:
plm51.exe modul.plm
В этом примере в результате трансляции исходного текста программы, содержащегося в файле modul.plm будет получен объектный модуль, который будет записан в файл с именем modul.obj. Как показано на рисунке 1, объектный модуль не может быть загружен в память программ микроконтроллера. В память микроконтроллера загружается исполняемый модуль.
Получить исполняемый модуль программы можно, указав все имена объектных модулей программы в качестве параметров программы редактора связей в DOS строке или строке командного файла:
rl51.exe main.obj, modul1.obj, modul2.obj
Имя исполняемого модуля программы по умолчанию совпадает с именем первого объектного файла в списке параметров строки запуска редактора связей. Исполняемый модуль программы записывается в файл без расширения. При выполнении приведённой выше в качестве примера командной строки будет получен исполняемый модуль, который будет записан в файл с именем main.
Большинство программаторов, предназначенных для записи информации в память программ микроконтроллеров, не может работать с объектным форматом исполняемого модуля программы, поэтому для загрузки машинного кода в процессор необходимо преобразовать объектный формат исполняемого модуля в общепринятый для программаторов гексадецимальный формат. При преобразовании форматов вся отладочная информация теряется. Машинный код процессора в гексадецимальном формате называется загрузочным модулем.
Загрузочный модуль программы можно получить при помощи программы-преобразователя программы oh.exe, передав ей в качестве параметра имя файла исполняемого модуля программы, например:
oh.exe main
В результате выполнения этой командной строки будет получен загрузочный модуль программы, который будет записан в файл с именем main.obj.