Дата последнего обновления файла 8.11.2009

Структура программ PLM-51

PL/M-51 является блочно-структурированным языком, каждый оператор в программе является, частью, по крайней мере, одного блока.

Каждая программа на PL/M-51 состоит из одного или более модулей, записанных в отдельных файлах и компилируемых отдельно. Каждый модуль может состоять из одного или более блоков. В языке программирования PL/M-51 имеется два типа блоков: блоки DO и блоки подпрограмм.

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

Блок - это соответствующим образом записанная группа операторов, начинающихся оператором DO и заканчивающаяся оператором END.

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

Любая программа, написанная на языке программирования PLM-51, начинается с оператора do, при этом имя программы записывается перед этим оператором и оформляется как метка. Перед первым исполняемым оператором программы обязательно должны быть объявлены все переменные и константы, которые будут использоваться в программе. Программа, написанная на языке программирования PLM-51, заканчивается оператором end. Пример программы, написанной на языке программирования PLM-51 приведён ниже:

Primer:do;
  declare a byte;
  
  a=2+2;
end;

Эта программа выполняет простейшие действия и содержит только один исполняемый оператор. Так как микроконтроллер не содержит встроенных средств отображения информации, то в языке программирования нет встроенных средств отображения полученного результата. Результат приведённой в примере программы можно посмотреть только во внутренней памяти микроконтроллера. То есть проверить работоспособность этой программы можно только на отладчике.

Для того, чтобы получить более полное представление о структуре программ, написанных на языке программирования PLM-51, приведём пример программы с использованием подпрограмм.

PrimerSIN:do;
/*---------- Объявление переменных -------------------------*/
declare tabsin(180) byte const (0,                 /*sin(0)*/
                                0.01745*32767,     /*sin(1)*/
                                0.03490*32767);    /*sin(2)*/
declare a byte at(80h) register,/*переменная значения синуса*/
        i byte;/*переменная аргумента в градусах*/


/*---------- Объявление подпрограмм -----------------------*/
sin:procedure(x) byte;
declare x byte;
  return(tabsin(x));
end sin;

  
/*--------- Начало основной программы ----------------------*/
  do i=0 to 180;
    a=sin(i);  /*вычислить очередное значение синуса*/
  end;
end;

В этом примере используется подпрограмма вычисления синуса с использованием табличного способа. Как видно из исходного текста программы все объявления были сделаны до первого исполняемого оператора. Переменная a в этом примере совпадает с адресом порта P0, поэтому синус можно наблюдать на выходе этого порта.

Литература:

  1. Л.К. Гребенников А.А. Летник Программирование микропроцессорных систем на языке ПЛ/М, М, 1986

Вместе со статьей "Структура программ PLM-51" читают:

Языки программирования для микроконтроллеров
http://digteh.ru/Progr/progr.php

Язык программирования C-51
http://digteh.ru/MCS51/C51/op_c51.php

Язык программирования ASM-51
http://digteh.ru/MCS51/C51/op_c51.php

Язык программирования PLM-51
http://digteh.ru/MCS51/C51/op_c51.php


Автор Микушин А. В. All rights reserved. 2001 ... 2015

Предыдущие версии сайта:
http://neic.nsk.su/~mavr
http://digital.sibsutis.ru/

пЕИРХМЦ@Mail.ru


Rambler's Top100