logo
МУ ЦТ и МК для стенда 2013

8.1 Теоретические сведения

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

Рассмотрим сначала работу внутреннего цикла подпрограммы Timer. Сначала счетчику внутреннего циклаSch_inзадаем какое-то значениеN. Затем значение счетчикаSch_inуменьшается на 1 и проверяется: не стало ли оно нулевым. Если значение счетчика не равно нулю, то выполняется инструкция переходаGOTO M_in, повторяющая цикл. Если счетчик обнулился, программа выходит из цикла. Длительность задержки времени определяется начальной величиной счетчикаSch_inи временем выполнения инструкций подпрограммы в МК. Поскольку микропроцессор работает с высокой частотой, то часто приходится создавать внешний цикл со счетчикомSch_outдля увеличения времени задержки. Его работа аналогична. Сначала задаем значениеSch_out=W.На каждый цикл уменьшенияSch_outна единицу, внутренний цикл сработаетNраз. Время задержки будет определяться произведениемSch_outSch_inи частой работы генератора МК.

Подпрограммы пишут после инструкции GOTO$основной программы. Подпрограмма всегда начинается с имени, которое должно быть написано без пробела. Заканчивается подпрограмма инструкцией возврата в основную программуRETURN. Подпрограмма из основной программы вызывается по имени инструкцией CALL ИМЯ, например CALL Timer.Значение аккумулятораWявляется аргументом для подпрограммыTimer, определяющим длительность её работы. После завершения ее работы управление передается в главную программу на следующую инструкцию после инструкцииCALL Timer.

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4