Простейшим способом измерения длительности импульса является программный. Для обнаружения событий (фронт и спад импульсного сигнала) в этом случае используются типовые процедуры WAIT, а отсчёт времени ведется программным способом. Для "положительного" импульсного сигнала, поступающего на вход Т0, программа измерения его длительности будет иметь вид:
MSCONT: MOV R7, #0 ;сброс счётчика
WAIT0: JNT0 WAIT0 ;ожидание фронта сигнала
COUNT: INC R7 ;инкремент счётчика
JT0 COUNT ;ожидание спада сигнала
EXIT: ... ;выход из процедуры
WAITC: JB P1.4, WAITC ;ожидание замыкания контакта датчика
Ожидание импульсного сигнала.
WAITC: JB P1.3, WAITC ;ожидание Р1.3=0
WAIT0: JNB P1.3, WAIT0 ;ожидание Р1.3=1
|