Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kharakhnin / ПОСОБИЕ_Харахнин.doc
Скачиваний:
278
Добавлен:
08.03.2016
Размер:
17.89 Mб
Скачать

Глава 4. Взаимодействие однокристального мк с объектом управления

При управлении технологическим оборудованием МК получает информацию о параметрах объекта посредством позиционных, импульсных и аналоговых датчиков.

4.1. Программный опрос и ожидание срабатывания позиционных датчиков

Одна из самых распространенных задач, встречающихся при автоматизации оборудования - это опрос и ожидание срабатывания позиционных датчиков. Такие датчики имеют два состояния: “ включен ” или “ выключен ”. Это могут быть различные конечные выключатели, герконы, контакты реле и другие переключающие устройства, установленные на технологическом оборудовании.

Изучение вопроса начнем с конкретного примера. На объекте установлены 3 позиционных датчика D1, D2 и D3. Имеются также 3 исполнительных элемента: светодиод VD1, электромагнит К1 и звонок ЗВ (рис.17). Работа устройства (алгоритм управления) характеризуется табл.16 состояния объекта.

Таблица 16

Разр.

Р1.2

Р1.1

Р1.0

Р2.0

Р2.5

Р2.7

D3

D2

D1

VD

К

ЗВ

Порт Р1

Порт Р2

1

1

1

1

1

0

0

FFH

01H

2

1

1

0

0

0

1

FEH

80H

3

1

0

1

0

1

0

FDH

20H

4

0

1

1

1

1

1

FBH

A1H

5

1

0

0

0

1

1

FCH

A0H

6

0

0

1

1

0

1

F9H

81H

7

0

1

0

1

1

0

FAH

21H

8

0

0

0

0

0

0

F8H

00H

Рис. 17. Электрическая принципиальная схема подключения

позиционных датчиков и исполнительных элементов

Из рис.17 видно, что если позиционный датчик разомкнут, то в разряде порта установлен единичный уровень, если же датчик замкнут, то в разряде порта нулевой уровень.

Рис. 18. Алгоритм решения задачи по первому варианту

Исполнительные элементы подключены к МК через ключи, выполненные на транзисторах. Поставленную задачу можно решить двумя способами.

Рис. 19. Алгоритм решения задачи с использованием табличного метода

Алгоритмы решения задачи представлены на рис. 18 и 19. Первый вариант основан на сканировании состояния порта датчиков и перебора возможных комбинаций согласно таблице и выбору соответствующих состояний исполнительных элементов. Другой вариант использует табличный метод, согласно которому комбинации состояний исполнительных элементов записаны в ПЗУ.

Рассмотрим первый вариант программы.

<1> ORG 0000H

<2> MOV P2,#00H ; Обнуление порта ИМ

<3>SCAN: MOV A,P1 ; Опрос состояния порта датчиков

<4> CJNE A,#0FFH,M1;Проверка состояния 1 таблицы

<5> MOV P2,#01H ; Если "ДА", то включить VD

<6> JMP SCAN ; Переход на сканирование порта датчиков

<7>M1: CJNE A,#0FEH,M2; Проверка состояния 2 таблицы

<8> MOV P2,#80H ; Если "ДА", то включить ЗВ

<9> JMP SCAN ; Переход на сканирование порта датчиков

<10>M2: CJNE A,#0FDH,M3; Проверка состояния 3 таблицы

<11> MOV P2,#20H ; Если "ДА", то включить К

<12> JMP SCAN ; Переход на сканирование порта датчиков

<13>M3: CJNE A,#0FBH,M4 ; Проверка состояния 4 таблицы

<14> MOV P2,#0A1H ;Если "ДА", то включить VD,K,ЗВ

<15> JMP SCAN ; Переход на сканирование порта датчиков

<16>M4: CJNE A,#0FCH,M5 ; Проверка состояния 5 таблицы

<17> MOV P2,#0A0H ;Если "ДА", то включить ЗВ и К

<18> JMP SCAN ;Переход на сканирование порта датчиков

<19>M5: CJNE A,#0F9H,M6 ; Проверка состояния 6 таблицы

<20> MOV P2,#81H ;Если "ДА", то включить VD и ЗВ

<21> JMP SCAN ; Переход на сканирование порта датчиков

<22>M6: CJNE A,#0FAH,M7 ;Проверка состояния 7 таблицы

<23> MOV P2,#21H ;Если "ДА", то включить VD и К

<24> JMP SCAN ; Переход на сканирование порта датчиков

<25>M7: CJNE A,#0F8H,M8 ; Проверка состояния 8 таблицы

<26> MOV P2,#00H ;Если "ДА", то выключить все ИМ

<27>M8: JMP SCAN ; Переход на сканирование порта датчиков

С использованием команд “Сравнить и перейти, если не равно” проверяются все возможные комбинации срабатывания датчиков (шаги 4, 7, 10, 13, 16, 19, 22, 25). Этот вариант программы занимает 69 байт в ПЗУ.

Рассмотрим второй вариант программы более подробно. Для лучшего понимания показаны адреса расположения команд и табличных кодов управления исполнительными элементами.

LOC OBJ LINE SOURCE

0000 1 ORG 0000H

0000 75A000 2 MOV P2,#00; Обнулить порт ИМ - ов

0003 90000F 3 MOV DPTR,#TABLE ;Указание на начало таблицы

0006 E590 4 SCAN: MOV A,P1 ; Опрос порта датчиков

0008 5407 5 ANL A,#07H ; Выделение разрядов датчиков

000A 93 6 MOVC A,@A+DPTR ;Выборка кода из таблицы

000B F5A0 7 MOV P2,A ; Включение соответствующих ИМ

000D 80F7 8 JMP SCAN ; Переход на новое сканирование

000F 00 9 TABLE: DB 00H

0010 81 10 DB 81H

0011 21 11 DB 21H

0012 A1 12 DB 0A1H

0013 A0 13 DB 0A0H

0014 20 14 DB 20H

0015 80 15 DB 80H

0016 01 16 DB 01H

Шаг 4 опрашивает состояние порта датчиков. На 5-м шаге происходит выделение разрядов, к котором подключены датчики. Все остальные биты обнуляются. Напомню, что порт при включении питания настраивается на ввод информации, а следовательно, при его чтении в разрядах будут зафиксированы единицы (если датчики не замкнуты). На шестом шаге происходит выбор кода из таблицы. Адрес кода вычисляется как сумма содержимого аккумулятора и содержимого регистра DPTR. Например, если датчики не замкнуты, то после выполнения 5-го шага А = 07Н. Адрес начала таблицы, указанный в DPTR, равен 000FH. Таким образом, при сложении @A + DPTR получается адрес 0016Н, по которому находится код 01Н для управления исполнительными элементами, то есть включится светодиод. Проанализируйте самостоятельно другие комбинации. Второй вариант программы является предпочтительным и занимает всего лишь 23 байта в памяти программ.

В рассмотренных задачах мы не учли неприятный эффект “дребезг контакта” при замыкании датчиков. Он может быть устранен аппаратно при использовании RS триггера либо с помощью программной задержки на время переходного процесса.

З а д а н и е д л я с а м о с т о я т е л ь н о й р а б о т ы

Разработайте программы для управления объектом, используя второй вариант, если табл.17 и 18 состояний имеют вид:

Таблица 17

Разр.

Р1.4

Р1.3

Р1.2

Р2.0

Р2.1

Р2.2

D3

D2

D1

VD

К

ЗВ

Порт1

Порт2

1

1

1

1

1

0

1

2

1

1

0

1

0

0

3

1

0

1

0

1

0

4

0

1

1

0

0

0

5

1

0

0

0

1

1

6

0

0

1

0

0

1

7

0

1

0

1

1

0

8

0

0

0

1

1

1

Таблица 18

Разр.

Р1.7

Р1.6

Р1.5

Р2.2

Р2.3

Р2.4

D3

D2

D1

VD

К

ЗВ

Порт Р1

Порт Р2

1

1

1

1

0

0

0

2

1

1

0

0

0

1

3

1

0

1

0

1

0

4

0

1

1

1

1

0

5

1

0

0

0

1

1

6

0

0

1

1

0

1

7

0

1

0

1

0

0

8

0

0

0

1

1

1