Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ ЦТ и МК для стенда 2013.doc
Скачиваний:
20
Добавлен:
01.05.2015
Размер:
3.21 Mб
Скачать

10.3 Выполнение задания

Варианты заданий принять из таблицы 10.2.

Т а б л и ц а 10.2 – Варианты заданий

Вариант

Биты подключения оборудования S1, D1, D2, L1, L2.

Вариант

Биты подключения оборудования S1, D1, D2, L1, L2.

1

1, 2, 3, 4, 5

6

6, 7, 0, 1, 2

2

2, 3, 4, 5, 6

7

7, 0, 1, 2, 3

3

3, 4, 5, 6, 7

8

0 ,1 ,2 ,3, 4

4

4, 5, 6, 7, 0

9

1, 3, 5, 7, 0

5

5, 6, 7, 0, 1

10

2, 4, 6, 0, 1

Рисунок 10.2 – Окно наблюдения

Отладка программы. При работе в пошаговом режиме ограничьте работу подпрограммыTimer, оставив только одну действующую команду как показано в тесте программы.

На рисунке 10.2 показано окно наблюдения.

Продемонстрируйте работу программы преподавателю.

10.4 Контрольные вопросы

  1. Что является аргументом при вызове подпрограммы Timer.

  2. Назначение символа «;» в тексте программы?

  3. Порядок отладки программы.

  4. Что имитируют кнопки клавиатуры?

  5. Как устраняется дребезг контактов?

  6. Что такое паразитные наводки?

  7. Почему нельзя поместить кнопку StopподпрограммуTimer?

  8. Как имитируется работа аварийных датчиков?

  9. Как определяется количество изоляторов равное двум?

  10. Как определяется количество изоляторов равное четырем?

  11. Как фиксируется заполнение коробки?

11 Программирование обработки аварийной ситуации

Цель работы: разработка и исследование программ обработки аварийных ситуаций с использованием системы прерываний микроконтроллера.

11.1 Теоретические сведения

Описание работы МК. При включении питания управление всегда передается на вектор сброса МК по адресу h’00’ электрически программируемого постоянного запоминающего устройства (ЭППЗУ). В случае срабатывания аварийного датчика, поступает импульс на клемму внешних прерыванийRB0/INTрегистраPORTB,основная программа прерывается и управление передается на вектор прерывания по адресуh’04’ ЭППЗУ. Здесь записывается командаGoto Avariyaперехода на подпрограмму «Обработчик прерываний», который выключает оборудование (D1 иD2) и включает аварийный сигналL3 [4].

Для работы с прерываниями существует регистр специального назначения INTCON, см. приложение Е. В нем необходимо установить «1» в битINTEдля разрешения внешних прерываний и в битGIEдля глобального разрешения любых прерываний в конкретный момент времени. При срабатывании аварийного датчика формируется флаг INTF, который заставляет микроконтроллер выполнить команду вектора прерываний по адресуh’04’, т.е. вызывается обработчик прерываний. В обработчике прерываний, в первую очередь сбрасываются бит разрешения внешнего прерыванияINTEи флаг внешнего прерыванияINTF,иначе непрерывно будет вызываться обработчик прерываний.

11.2 Задание на проектирование и выполнение программы

Продолжить проект лабораторной работы №10, создать выключение оборудования и обработку аварийной ситуации с помощью прерывания. Импульсы на прерывания имитировать кнопками. При аварии оборудование должно выключиться и на пульте должен загореться сигнал аварии L3.

Т а б л и ц а 11.1 – Назначение битов PORTCи контактов клавиатуры

Регистр PORTC

Кнопки клавиатуры

Действия кнопок

0 разряд - предупреждающая звуковая сигнализация S1

1 или 2

Аварийные датчики

(перегрев подшипников,

затор на конвейере)

1 разряд – двигатель конвейера D1

2 разряд – двигатель упаковочного механизма D2

3 разряд – световая сигнализация L1

3

Кнопка Stop

4 разряд – сигнал аварийного останова камеры L3

5 или 6

Фотодатчики

7 разряд – световая сигнализация работы L2 на пульт

Фрагменты программы 11.1. В программе выделены курсивом дополнительные строки, и строки, которые отличаются от строк программы «Автоматизация упаковки».

; Описание регистров не приведено.

; Инструкции по настройке микроконтроллера

; Вектор сброса.

ORG h'00'; указание адреса для записи следующей инструкции.

GOTO GLAV; инструкция будет записана по адресу h'00' ЭППЗУ.

; Вектор прерывания.

ORG h'04''; указание адреса для записи следующей инструкции.

GOTO Avariya; инструкция будет записана по адресу h'04' ЭППЗУ.

NOP; инструкция будет записана по адресу h'05' ЭППЗУ.

; Основная программа

GLAV ; метка главной программы.

NOP; установка курсора на команду CLRF STATUS в режиме F7.

NOP

CLRF STATUS; очищаем регистр Status от мусора.

; настройка микроконтроллера.

BSF STATUS, 5

BSF INTCON, INTE; разрешаем регистрацию внешних прерываний.

BSF INTCON, GIE; разрешаем работу прерываний.

CLRF TRISC

MOVLW b'00001111'

MOVWF TRISD; настраиваем биты 0-3 PORTD на ввод.

BCF STATUS, 5

Далее идет текст программы из лабораторной работы «Автоматизация упаковки» без изменений, но для отладки обработчика перед меткой M1 необходимо поместить его вызов командойCALL Avariya.

GOTO$

Timer; Подпрограмма Timer. Приведены только 3 строки.

MOVWF Sch3

; RETURN; эту команду включить при отладке программы в режиме F7.

M3 MOVLW D'150' . . .

Avariya; Подпрограмма - обработчик прерывания при аварии и останове.

BCF INTCON, INTE; запрещаем внешние прерывания.

BCF INTCON, INTF; сбрасываем флаг внешнего прерывания.

MOVLW b'10010000';

MOVWF PORTC; двигатели выключаем и включаем сигнал L3.

MOVLW D'20'; определяем время подачи сигнала L3.

CALL Timer;

GOTO Stop; переход на метку выключения оборудования.

RETFIE; оператор возврата в фоновую программу из обработчика.

Stop; метка останова упаковщика (микроконтроллер не выключается).

END; конец текста всей программы.

Внимание! Клемма клавиатуры K3 должна быть соединена с клеммой внешних прерываний RB0/NT, остальные клеммы с PORTD.

Рисунок 11.1 – Окно наблюдения

Отладка программы. При работе в пошаговом режиме ограничьте работу подпрограммыTimer. Включите вызов обработчика как подпрограммы, кнопка клавиатурыК1илиК2при его вызове должна быть нажата.

На рисунке 11.1 показано окно наблюдения.

Варианты заданий принять из лабораторной работы «Автоматизация упаковки».