Измерение временного интервала

Задача. Требуется измерить с заданной точностью временный интервал между двумя событиями в объекте управления. Предполагается, что в устройстве сопряжения МП с объектом имеются датчики, которые вырабатывают импульсные сигналы начала t0 и окончания t1 процесса, время которого необходимо измерить. Для упрощения примем, что в качестве датчиков применяются концевые переключатели, а измеряемый параметр есть время перемещения подвижного органа объекта управления от места расположения датчика 1 к датчику 2 (рис. 59,а). Требуется также отобразить время процесса в десятичной системе счисления на четырехпозиционном линейном дисплее, а кроме того, сравнить реальное время перемещения объекта с эталонной установкой и отобразить на пульте оператора результат сравнения. Допустим, что реальный процесс в объекте управления может превышать по времени 99 с, а требуемая точность измерения равна 0,01 с.

На рисунке 59.б представлена схема интерфейса МП, предназначенного для решения поставленной задачи.

Порт 1 по линии D0 через промежуточный триггер со счетным входом использован для ввода в МП информации о начале t0 и окончании t1 процесса.

Если триггер Q в исходном состоянии имел сигнал 0, то под воздействием входного сигнала t0 он придет в состояние Q=1 и будет находиться в этом состоянии до момента прихода второго подсчитываемого сигнала t1. Порты 2, 3, и 4 используются для вывода информации.

Каждый байт в портах 2 и 3 предназначен для вывода информации, а также для представления двух десятичных двоичнокодированных знаков так, что через порт 2 осуществляется вывод на дисплей десятков и единиц секунд, а через порт 3 – десятых и сотых долей секунд. К выходам D0 и D1 порта 4 через усилители мощности подключены светоиндикаторы и источники звукового сигнала для сигнализации об отклонениях времени процесса от требуемого значения. По окончании процесса разработки интерфейса МП-контроллера необходимо определить области адресов памяти МП-контроллера для размещения программы, данных и специфицировать рабочие регистры МП, а затем разработать БСА. Допустим, рабочая программа начинается с адреса 0000Х и объем ее не должен превышать емкости одного корпуса БИС ПЗУ со структурой 256 х 8.

Контроллер имеет и ОЗУ (64 х 8), используемое в качестве памяти данных и для реализации стека. Загрузка программного стека в МП К580 осуществляется в порядке убывания адресов.

 

Рисунок 59 – Схема интерфейса МП контроллера

Регистровой паре ВС присвоим функции счетчика для подсчета длительности временного интервала. В паре DE будем представлять величину установки для сравнения фактического времени с эталонным.

Но так как сравнение времен должно выполняться только после окончания процесса измерения, то эту же регистровую пару можно использовать и для программной реализации временной задержки, равной заданной точности измерений временного интервала длитель­ностью 0,01 с.

Допустим, что эталонное время перемещения подвижного орга­на от позиции датчика 1 до 2 в регулируемом устройстве равно 7,70 с Д2 и хранится в ячейках ОЗУ с адресами 0400Н и 0401Н.

Рисунок 60 – Схема алгоритма измерения и индикации временного интервала

 

На рисунке 60 представлена БСА работы МП-контроллера, предна­значенного для измерения и индикации временного интервала. После включения системы, т.е. после нажатия кнопки «сброс», счетчик ко­манд (и триггер Q) обнуляются и МП выполняет обращение к ПЗУ по адресу ООООН, который является начальным адресом программы. Программа начинается с процедуры инициализации контроллера, ко­торая содержит команды загрузки регистра - указателя стека и запи­си в ОЗУ кода эталонной установки. После этого МП-контроллер пе­реходит в состояние ожидания события, постоянно опрашивая вход­ной порт 1 и анализируя состояние входного сигнала Q на линии DO. После того, как 0=1, содержимое регистра-аккумулятора увеличива­ется на 1 через каждые 0,01 с до тех пор, пока на выходе триггера Q сигнал не приобретает нулевое значение. Число X, загружаемое в регистровую пару DE, имеет значение, обеспечивающее временную задержку 0,01 с при выполнении соответствующей подпрограммы (DELAY).

Программа, реализующая алгоритм для МП-контроллера, имеющего интерфейс, представленный на рис. 59, и БИС ПЗУ и ОЗУ, подключенные к шине адреса в соответствии с оговоренной ранее таблицей адресов, имеет следующий вид:

 

 

INIT: LXI SP,0438H ; установка начального адреса стека
  LXI H,0400H ; загрузка в HL адреса ОЗУ
  MVI A.07H ; загрузка в А старшего байта установки
  MOV M,A ; запоминание в ЗУ старшего байта
  INR L ; инкремент указателя памяти HL
  MVI A.69H ; загрузка в А младшего байта установки
  MOV M,A ; запоминание в ОЗУ
SPEED: LXI B,0000H ; гашение счетчика ВС
WAIT: IN 01H ; ввод из порта 1
  ANI 01H ; маскирование линии D
  JZ WAIT ; цикл ожидания начала процесса
COUNT: CALL DELAY ; временная задержка 0,01 с
  MOV A.C ; инкремент С
  ADY 01H ; через каждую 0,01 с
  DAA ; десятичная коррекция
  MOV C,A ; фиксация нового значения в С
  MOV A,B ;  
  ACI ООН ; (АЖВ)+(С)
  DAA ;  
  MOV B,A ; фиксация нового значения в С
  IN 01H ; ввод из порта 1
  ANI 01H ; проверка Q
  JNZ COUNT ; переход, если Q=/Q
  MOV A,B  
  OUT 02H ; вывод старшего байта на дисплей
  MOV A,C  
  OUT 03H ; вывод младшего байта на дисплей
  MOV E,M ; загрузка в Е младшего байта установки
  DCR L ; модификация указателя
  MOV D,M ; ОЗУ загрузка в D старшего байта установки
  MOV A,B ;  
  CMP D ; сравнение старших байтов
  JNC MORE ; переход, если (B)>(D)
  MOV A,C ;  
  CMP E ; сравнение младших байтов
  JNC MORE ; переход, если (С)>(Е)
  MVI A.01H ;  
  OUT 04H ; вывод сигнала МЕНЬШЕ УСТАНОВКИ
  JMP SPEED ; ; вывод сигнала БОЛЬШЕ УСТАНОВКИ
MORE: MVI A.01H  
  OUT 04H  
  JMP SPEED ; переход в исходное состояние
DELAY: MVI D0.3H ; ; подпрограмма задержки 0,01 с.
LOOP2: MVI E.OFFH  
LOOP1: NOP    
  NOP    
  NOP    
  NOP    
  DCR E  
  JNZ LOOP1  
  DCR D  
  JNZ LOOP2  
  RET    

 

Выводы и пояснения:

1. Регистровая пара HL применяется как регистр адреса уста­новки в ОЗУ, запись в которое производится, начиная со старшего байта, а считывание в регистровую пару DE - с младшего. Это позво­ляет исключить одну операцию модификации содержимого HL.

2. В качестве установки используется не заданное значение (7,70 с), а уменьшенное на 1 заданной точности измерения, а именно 7,69 с. Это вызвано тем, что в соответствии с БСА программа построена таким образом,

 

что она сначала выполняет операцию инкрементирования счетчика сотых долей секунды, а вслед за этим - про­верку окончания процедуры измерения временного интервала.

3. Использование команды суммирования содержимого аккуму­лятора с содержимым признака переноса АС1 необходимо для учета переноса из младшего байта счетчика в старший.

4. Анализ написанной программы показывает, что процедура сравнения фактически измеренного времени и установки начинается со сравнения старших байтов, и только в этом случае, если содержи­мое регистра В окажется равно содержимому регистра D, то выпол­няется сравнение и младших байтов, расположенных в регистрах С и Е.

 

 








Дата добавления: 2019-02-07; просмотров: 407;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.