В задачах управления часто необходимо измерения промежутка времени между двумя событиями. Схема метода типовой процедуры измерения (MEASURE) приведена на рис. 6.10. В большинстве случаев события в объекте управления представляются сигналами от бинарных датчиков. Полагая событиями спад и фронт импульса, возможно определять временные характеристики импульсных сигналов: продолжительность, скважность и период. Помимо этого, посредством процедуры MEASURE возможно определять скорость перемещения подвижного органа объекта по эталонному (заданной длины) участку. конец и Начало участка должны быть снабжены датчиками (концевыми выключателями).
Несложным методом измерения длительности импульса есть программный. Для обнаружения событий (спад и фронт импульсного сигнала) в этом случае употребляются типовые процедуры WAIT, а отсчет времени ведется программным методом. Для хорошего импульсного сигнала, поступающего на вход ТО, программа измерения его длительности будет иметь вид
;ВЕРСИЯ ДЛЯ МК48
MSCONT: MOV R7,#0 ;CБPOC СЧЕТЧИКА
WAITO: JNTO WAITO ;ОЖИДАНИЕ ФРОНТА СИГНАЛА
COUNT: INC R7 ;ИНКРЕМЕНТ СЧЕТЧИКА
JTO COUNT ;ОЖИДАНИЕ СПАДА СИГНАЛА
EXIT: …. ;ВЫХОД ИЗ ПРОЦЕДУРЫ
По окончании выхода из процедуры содержимое счетчика (R7) пропорционально длительности импульса.
Для обычной работы данной программы нужно, дабы обращение к ней производилось в моменты, в то время, когда на входе ТО присутствует сигнал нулевого уровня. Верхний предел измеряемой длительности ‘хорошего импульса составит 255(1 + 2)2,5 мкс = 8,925 мс. Данный предел возможно увеличен включением в цикл COUNT дополнительных команд NOP. Большая погрешность измерений 7,5 мкс.
Для измерения длительности сигнала возможно использован таймер. Особенно действенно применение для данной цепи таймера в МК51, имеющего вход разрешения счета (другая функция входа ЗПР). Измеряемый сигнал возможно, к примеру, подавать на вход ЗПРО, измерение длительности наряду с этим будет выполняться в Т/СО. Программа измерения длительности хорошего импульса будет смотреться так:
;ВЕРСИЯ ДЛЯ МК51
MOV TMOD,#00001001B ;НАСТРОЙКА T/C0
MOV TH0,#0 ;СБРОС ТАЙМЕРА
MOV TLO,#0
SETB TCON,4 ;СТАРТ T/C0
WAITO: JMB P3.2,WAITO ;ОЖИДАНИЕ 1
WAITC: JB P3.2,WAITC ;ОЖИДАНИЕ 0
CLR TCON.4 ;СТОП T/C0
EXIT: … ;ВЫХОД ИЗ ПРОЦЕДУРЫ
Управление программе должно быть передано при условии, что на входе ЗПРО присутствует низкий уровень. Прерывания от Т/СО и внешнее прерывание по входу ЗПРО должны быть запрещены. По завершению программы в Т/СО будет пребывать число, пропорциональное длительности хорошего импульса на входе ЗПРО. Верхний предел измерения равен 65 536 мкс, а большая погрешность 1 мкс.
При необходимости измерения временных промежутков большей длительности возможно программным методом подсчитывать число переполнений от таймера, т.е. расширять его разрядность за счет рабочего регистра либо ячейки РПД.
6.5. Преобразование кодов
В задачах управления может появиться необходимость преобразования информации из одной формы представления в другую. Это связано с тем, что обработка данных в МК осуществляется в параллельном бинарном коде, а поступать в МК и выводиться из него информация может в другой форме представления.
Самый распространены в задачах логического управления следующие преобразования: из унитарного кода в бинарный (при вводе информации с клавиатуры либо от оцифрованных тумблеров) и из бинарного в унитарный; из одной совокупности счисления в другую (при работе со особыми клавиатурами); особые преобразования (для организации индикации и при выводе информации на периферийные устройства); из последовательного кода в параллельный (при вводе) и из параллельного в последовательный (при выводе); из аналоговой формы представления в цифровую и напротив (для связи с исполнительными механизмами и аналоговыми датчиками).
Китайский вариант часов КОМАНДИРСКИЕ