Программирование типовых процедур управления и контроля в МК с ОЭВМ ВЕ48: ожидания события, опрос двоичного датчика, формирование управляющего сигнала, формирование временных интервалов

Страницы работы

Содержание работы

Вопрос 37. Программирование типовых процедур управления и контроля в МК с ОЭВМ ВЕ48: ожидания события, опрос двоичного датчика, формирование управляющего сигнала, формирование временных интервалов

В  качестве датчиков используются бесконтактные и контактные датчики. При ожидании события появляется определенного уровня сигнал. Формирование управляющих сигналов вызывает срабатывание каких-либо устройств.

 1)Программирование процедур ожидания событий.

Ожидание перепада сигналов

1.1) Ожидание замыкания контакта или появление отрицательного перепада.

1.1.а) Входной сигнал подается на линию порта.

1.1.б) Входной сигнал подается на вход таймера-счетчика.

 1.2) Ожидание размыкания контакта или появление положительного перепада

1.3) Ожидание поступления импульсного сигнала

Защита от дребезга контактов: программная задержка или RS-триггер.

WAITC:JTO WAITC;    цикл ожидания

CALL DELAY;   задержка

EXIT:.............

2) Формирование управляющих сигналов

ON:MOV A,#00000010B            OFF:MOV A,#00H

OUTL P1,A                                   OUTL P1,A

IMP:ORL P1,#00000010B                     ON:0RL P1,#00000010B

CALL DELAY              ИЛИ                       CALL DELAY

ANL P1,#11111101B                                 0FF:ANL P1,#11111101B

3) Формирование временных задержек.

2 метода: программный и аппаратный

3.1) Программный метод формирования задержек

Формирование задержек малой длительности

CALL DELAY                    0<X1<255      CALL  2MЦ    MOV  2MЦ

DELAY: MOV R1,#X1                             DJNZ  2MЦ    RET   2МЦ

LOOP: DJNZ R2,LOOP                           fмц=fzq/15

RET

МЦ – машинный цикл

Формирование задержек большой длительности

Метод вложенных циклов

DELAY: MOV R2,#X1

LOOP2: MOV R3,#X2                   

LOOP1: NOP                               

NOP

DJNZ R3,LOOP1

DJNZ R2,LOOP2

RET

Использование многократного вызова задержки малой длительности

DELAY_100mks - tзд=100мкс   DELAY_1ms: MOV R7,#10

LOOP: CALL DELAY_100mks

DJNZ R7,LOOP

3.1) Аппаратный метод формирования задержек (с помощью таймера)

Таймер считает импульсы Fclk поступающие с частотой Fсч = Fzq / 480.

Fсч =Ffzq / 480    Nсч=0...255   tзд=80мкс...20мс

В таймере можно контролировать момент времени, когда происходит переполнение таймера TF=1.

Для получения нужного времени задержки нужно осуществить предустановку таймера. Пример:tзд=240мкс    X=255-240/80+1

DIS CTNTI;       запрещение прерывания таймера

DELAY: MOV A,#253;    программа задержки

MOV T,A;         предустановка таймера

CTRT  T;          запуск таймера

COUNT:            JTF EXIT;         если TF=1, то выход

JMP COUNT;     цикл счета

EXIT:           STOP TCNT;     остановка счетчика

Можно воспользоваться прерыванием по переполнению таймера. Перед запуском таймера нужно разрешить прерывание

EN TCNTI:        разрешение прерываний от таймера.

Вектор обработки прерывания находится в ячейке по адресу 007H.

Пример:          ORG 007H;       начало подпрограммы

STOP TCNT;       тело подпрограммы

RET;                  возврат из подпрограммы обработки прерываний

Похожие материалы

Информация о работе