Курс лекций - Микропроцессоры

Подпрограммы-функции


Пример подпрограммы из предыдущего параграфа - это . Для нее в операторе PROCEDURE не задается тип, и такая процедура не возвращает никакого значения. Подпрограмма-процедура вызывается по ее имени оператором CALL. Тем не менее иногда удобно присваивать вычисленное значение сразу переменной. Примером является вычисление математических функций таких как синус или косинус. Запись математической операции была бы удобнее в следующем виде:

Y=sin(x);

Именно такую форму записи позволяет использовать подпрограмма-функция. В языке программирования PLM-51 подпрограмма-функция может иметь тип: bit, byte или word который указывается в операторе Procedure. Такая подпрограмма возвращает значение объявленного типа, которое может быть использовано в выражении или присвоено переменной.

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

Подобно подпрограмме-процедуре, подпрограмма-функция может иметь параметры. Тело подпрограммы-функции должно обязательно содержать оператор . Заметим, что подпрограмма-функция подобно подпрограмме-процедуре может изменять содержимое глобальных переменных.

Рассмотрим пример использования подпрограммы- функции для обнаружения нажатия на кнопку. Если к портам P0 и P1 подключена , то при нажатии на кнопку на входах P0 на одном из выводов порта появится логический 0. Подпрограмма может обнаружить это состояние и в основной программе оператор обнаружения нажатия на кнопку будет совпадать с записью алгоритма.

SostKnIzm: Procedure bit; Declare tmp bit; bit=0; if (P0 <> 0ffh) then bit=1; return bit end SostKnIzm; /* Основная программа */ ... if SostKnIzm then Call DecodSostKn;

[] [] []



Содержание раздела