Рабочая БСА придставленна на рис.4.2.1.2 В начале программы происходит инициализация, блок 1, в котором происходит инициализация портов ввода-вывода, АЦП и таймера. После чего в блоке 2 обнуляются все переменные, задействованные в данной программе. Как только, это всё выполнится, происходит запуск АЦП(блок 4), у которого аналоговым входом является линия РТВ0.
Первый результат преобразования аналогового сигнала, заносится в ячейку памяти CONST, и означает значение кода при нулевом давлении. После этого на индикатор выводятся символы как показано на рис.4.2.1.1., и в младшем разряде “сис:” зажигается 0. После чего, идёт процедура ожидания окончания накачки манжеты.
сис х х 0
диа х х х пул х х х
рис.4.2.1.1. Расположение символов на индикаторе.
Она заключается в следующем. В ячейку памяти del заносится число соответствующее задержке 0,75 секунды( бл.12). В блоках 16 и 15 организован цикл, после выполнения которого, происходит индикация текущего давления (бл. 17 – 21). После чего делается декремент ячейки памяти del. Если del0 то, программа переходит к выполнению бл.13. и все происходит заново. Если del=0, то в бл.25. происходит сравнение давления до задержки и после задержки. Если давление после задержки больше давления до задержки, то программа переходит к выполнению бл.12. и данная процедура повторяется. Если же давление после задержки меньше давления до задержки, то это означает, что пользователь прекратил накачку манжеты, и программа переходит на процедуру определения амплитуды.
В начале процедуры, в блоке 30 происходит сравнение напряжения снимаемого с активного фильтра (вход РТВ1) с заданным порогом напряжения (1,75V). Если пороговое напряжение больше напряжения снимаемого с АФ, то программа зациклевается и ожидает когда напряжение с АФ будет больше порогового. Причём, если в течении 5 секунд программа находится в цикле, то измерение прекращается и выводится сообщение об ошибки. Если Upress1>Пор, то происходит сброс ячейки памяти OVSEC, и далее происходит определение значения амплитуды (бл. 33 – 37).
Как только, амплитуда будет определенна, происходит сброс и перезапуск таймера, а также обнуление SEC10 и SEC (бл. 38). После чего значение амплитуды заносится в ячейку памяти АМР2 (бл. 39). Далее АЦП переключается на вход РТВ0 (бл. 40), и результат второго преобразования заносится в UDAV (этот результат показывает давление в манжете), после чего АЦП обратно переключается на вход РТВ1. Как только АЦП переключится на вход РТВ1, ячейка памяти PULSE, в которой находится кол-во пульсаций, инкрементируется. А далее идет процедура вычисления производной амплитуды.
Производная вычисляется по формуле:
,
где, AMP1 и AMP2 – амплитуды;
time – время между амплитудами.
При первом входе в процедуру SB=0 (бл.50), вычисляется время импульса и заносится в ячейку памяти time1 (бл.52 – 55). После чего проверяется (бл.56), если первая амплитуда находится в АМР2, а вторая в АМР1, то они меняются местами (бл.57 – 59) и программа переходит на выполнение бл.29, т.е. определение амплитуды начинается сначала. Если первая амплитуда находится в АМР1, а вторая в АМР2, то ничего не происходит, и определение амплитуды начинается заново. Перейти на страницу: 1 2 3 4 5 6
Советуем почитать:
Волоконно-оптические кабели ...
Основные положения регламента любительской радиосвязи Украины Регламент любительской радиосвязи Украины разработан в соответствии с Регламентом Радиосвязи Международного Союза Электросвязи, законом Украины "Про связь", рекомендациями Межд ...
Микроконтроллеры для начинающих. И не только Микроконтро́ллер (англ. Micro Controller Unit, MCU) – микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции пр ...