33.Программирование типовых процедур управления и контроля в МП-системе с МП ВМ80: ожидание события, опрос двоичного датчика, формирование управляющего сигнала, формирование временных интервалов.
Ожидание события – это ожидание изменения сигнала от датчика. Программа зацикливается, пока не пройдёт изменение. Вариант 1: ожидание перехода сигнала, т.е. изменение из 0 в 1 или наоборот; вариант 2: ожидание импульсного сигнала, например в предыжущем примере происходит ожидание низкого уровня:
Wait_L: in port
Ani 00000010B
Jnz Wait_L
Ret
Рассмотрим ожидание размыкания контактов. Она аналогична предыдущей. Рассмотрим ожидание импульсного сигнала.
Ожидание положительного импульса:
Wait_H: in port
Ani 00000010B
Jz Wait_H
Wait_L: in port
Ani 00000010B
Jnz Wait_L
ret
Ожидание отрицательного импульса. Выполняется аналогично, Wait-ы меняются местами. В данной программе существует ограничение на длительность импульса >10 мс. Если короче – то ставят триггер. При опросе контактных датчиков возникает явление называемое дребезгом контактов. Чем легче контакт тем больше дребезг. Время дребезга зависит от контактов 2..5 мс. Бороться с дребезгом можно аппаратными методами. Для этого используют либо RS триггеры, либо триггеры Шмидта.
Программно: а) подсчет числа многократных переходов дребезга; б) При срабатывании контакта выполнение программы задерживается на время большее, чем время дребезга. tЗД> tДР. После задержки данные поступают от контакта датчика к МП. tЗД=10¸20 мс. для герконовых переключателей.
Опрос двоичного датчика. Программа опрашивает состояние датчика и в зависимости от сигнала происходит переход на одну из меток программы, т.е. происходит ветвление. Датчик необходимо подключить к порту ввода. Для подключения контактов датчика используют следующую схему.
Opros: in port
Ani 00000010b
Jnz met1
Met2: …..
Met1: …..
формирование управляющего сигнала. Для формирования управляющих воздействий необходимо иметь порт вывода, к которому подключено исполнительное устройство через преобразователь уровней.
VKL: mvi a,00000010b
Out port
….
OTKL: mvi a,00h
Out port
При выводе 00000010 мы установили в нули другие выводы, чтобы этого избежать в ячейке памяти сохраняют состояние выходов порта. Для изменения сигнала в линии используют логические команды.
Mvi a,02h
Out port вывод D1=1
Sta mem запоминание сост. порта в яч. mem
… вывод 1 в разряд D4
lda mem чтение состоян. выходов порта
ori 00010000b
out port вывод D4=1
sta mem запоминание сост-я выходов
… вывод D4 в 0
lda mem чтение сост. выходов
ani 11101111b
out port вывод D4=0
sta mem
… инвертирование D4
lda mem
xri 00010000b
out port инверсия D4
sta mem
Порт вывод. Посл. Порт. А
КР580ВВ55А
in p a чтение состоян.
выходов порта PA ori 00000010b
out PA вывод D1=1
Одиночные импульсы:
Impuls: mvi a,02h
Out port
Call delay задержка
Mvi a,00h
Out port
Периодические последовательности импульсов.
meandr: mve a,02h
out port
call delay
xra a
out port
call delay
jmp meandr.
Meandr: xri a,02h
Out port
Call delay
jmp meandr.
Формирование временных задержек осуществляется аппаратно (с помощью таймеров) и программно. Программный метод заключается в том, что определенные участки программы выполняются многократно. Недостаток программного метода при формировании временных задержек МП полностью отключается от управления и контроля. Поэтому этот метод эффективен при коротких задержках. Для формирования задержек большой длительности используют таймеры, в частности КР580ВИ53.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.