Методы диагностики и лечения по параметрам БАТУпрощенный алгоритм программной части приведен на рис. 3.11. Работа программы по приведенному алгоритму осуществляется следующим образом.
После блока начало (блок 1) запоминается в переменную b текущие значения порта (блок 3). Затем запускается цикл (блок 4) чтение порта 201h до тех пор, пока не произойдет смена кода. Опрашиваемое значение запоминается в переменной b1. Как только произошла смена кода, через цикл if (блок 5) производится сравнение начального значения b и текущего b1, запускается измерительная часть программы. Эти действия необходимы для того, чтобы при нажатии клавиш начала измерения (при отсутствии ударов пульса), не получился бы слишком длинный период следования пульса. Так как время измерения уже было запущено, а последующего удара не последовало или же он последовал с задержкой, то получилось бы очень малое значение пульса, что повлияло бы на выборку измеренных значений и занизило бы среднее значение. А самое главное был бы измерен не период от удара до удара, а период от начала измерения до первого удара, не несущий ни какой информации.
Далее запоминается значение порта (блок 6), запоминается время в переменную Т1, т.е. время первого удара пульса (блок 7) и запускается аналогичный цикл, проверяющий изменение кода на порте джойстика (блок 8), считывая значение с порта в переменную b (блок 9) и сравнивая с предыдущим значением (блок 10). Следует отметить, что в данном цикле вставляется задержка в 200 мс для того, чтобы не произошло ложного фиксирования изменения кода.
Ключ на транзисторе VT (рис. 3. 10) в устройстве сопряжения срабатывает от переднего фронта импульса строба в 200 мс, а программа должна измерять период
от переднего фронта импульса до следующего переднего фронта, не реагируя на закрытие строба задним фронтом.
Как только происходит смена кода на порте 201h запоминается время последующего удара в переменную Т2 (блок 11) и находится разница DТ=Т2-Т1. Далее следует проверка равенства 0 этой разницы (блок 13). Если “ да”, то присваивается DТ (блок 14), соответствующее максимальному пределу измерения (199 ударов). Затем вычисляется мгновенное значение пульса по формуле 60/ DТ. Именно для этого осуществлялась проверка DТ на равенство 0, т.к. в случае деления но “0” программа выдавала бы ошибку и вернулась в операционную систему. В блоке 16 и 18 производится проверка по нижнему и верхнему значению предела измерения. В случае превышения пределов программа присваивает им реальные значения (блоки 17 и 19).
Далее осуществляется процедура вывода на экран (блок 20) полученного результата в графическом режиме в специальном окне для мгновенных значений и построение графика ритмограммы. Одновременно с этим осуществляется присвоение значения переменной Т2 и переменной Т1, то есть Т2, как бы стало “устаревшей” и от нее ведут отсчет следующего периода следования пульса. В этом случае обращения к порту (блок 8) вставлен программный счетчик (блок 21) N=N+1. Он считает число измеренных ударов пульса и по нему значения записываются в массив данных, для дальнейшей обработки (для построения скаттерограммы: измерения, вариационной пульсограммой, среднего и мгновенного значения пульса и др.). Массив содержит в себе выборку из 300 значений мгновенного значения пульса в порядке их поступления в порт 201h.
Если значения выборки превышают 300, то программа автоматически выводит содержание экрана на печать (блок 22) при помощи стандартной процедуры ассемблера INT5h (печать активного экрана). После этого программа ожидает нажатия пользователем любой клавиши (блок 23) и в случае нажатия выходит из процедуры измерения (блок 24).
Программа написана на алгоритмическом языке высокого уровня Borland Paskal 7.0.