Память данных в симуляторе
Комбинации входных сигналов (Х3,Х2,Х1) хранятся, начиная с 20 ячейки РПД;
Выходные сигналы У формируются в РПД, начиная с 30 ячейки.
Пример: у = х1 х2 V /х3
R0 – регистр адреса памяти данных (входные Х), R0 = 20H
R1 - регистр адреса памяти данных (выходных Y), R1 = 30H
R2 – Cч. количества комбинаций переменных Х, R2 = 08H
;Программа
$Mod812
; начальная установка регистров
START: MOV R0, #20H
MOV R2, #08H
; формирование массива таблицы истинности
CLR A
M1: MOV @R0, A
INC A
INC R0
DJNZ R2, M1
; установка регистров
MOV R0, #20H
MOV R1, #30H
MOV R2, #08H
M5: MOV A, @R0 ; Ввод {X}
; вычисление функции У=Х1Х2 V /Х3
JNB acc.0, M3
JNB acc.1, M3
M2: MOV A, #01H ; y =1
JMP M4
M3: JNB acc.2, M2
MOV A, #00H ; y=0
M4: MOV @R1, A ; вывод y в память данных
; формирование адресов R0, R1
INC R0
INC R1
DJNZ R2, M5
JMP $ ; останов программы
END
Управление пуском – остановом электродвигателя
На рис. показана упрощенная схема подключения датчиков к МКС управления, контроля напряжения силовой сети и выдачи сигнала для включения или выключения двигателя.
Датчик напряжения (Дн) выполнен на оптронном транзисторе, что обеспечивает гальваническую развязку между силовой цепью и цепями управления на вводе сигналов . Для гальванической развязки и для усиления сигнала управления двигателем на выходе используется контактор К (катушка и силовые контакты) .
Для проверки и отладки программы на модели будем предполагать, что кнопка «Пуск» имитируется разрядом Р1.0 порта контроллера, кнопка останова «Ост» имитируется разрядом Р1.1 , датчик наличия напряжения сети имитируется разрядом Р1.2, а сигнал управления на включение электродвигателя формируется через порт Р2.5. Алгоритм работы пускателя электродвигателя представлен на рис.8.
Рис. Структурная схема МКС управления пуском двигателя
Если напряжение в сети отсутствует (Дн=0), то двигатель останавливается, а если напряжение есть (Дн=1), то проверяется состояние управляющих кнопок «Ост» и «Пуск». Кнопка «Ост» имеет более высокий приоритет и поэтому проверяется раньше. Если кнопка «Ост» нажата («Ост»=1) , то двигатель останавливается, иначе переходим к проверке кнопки «Пуск». Если кнопка «Пуск» нажата («Пуск=1» , то двигатель включается , иначе состояние двига
теля не изменяется.
Для подключения датчиков будем использовать порт Р1, а для двигателя – порт Р2 . Таблица истинности, отражающая алгоритм управления двигателем, имеет следующий вид:
Дн (Р1.2) | Ост (Р1.1) | Пуск (Р1.0) | Дв (Р2.5) |
х | х | ||
Для подключения датчиков будем использовать порт Р1, а для двигателя – порт Р2 . Таблица истинности, отражающая алгоритм управления двигателем, имеет следующий вид:
Дн (Р1.2) | Ост (Р1.1) | Пуск (Р1.0) | Дв (Р2.5) |
х | х | ||
В таблице символ «х» отражает, что при значении Дн =0 значение кнопок «Пуск» и «Ост» не имеет значения. Подключение датчика Дн , кнопок Пуск, Ост, а также двигателя Дв к портам контроллера показаны в таблице истинности.
Текст программы имеет следующий вид :
$mod812
M1: CLR P2.5
М2: JNB P1.2 , M1; проверка датчика напряжения
JB P1.1 , M1 ; проверка кнопки останов
JNB P1.0 , M1; проверка кнопки пуск
SETB P2.5 ; пуск двигателя
JMP M2
END
Время выполнения: 11 мкс.
Размер программы: 18 Байт
Дата добавления: 2016-03-22; просмотров: 564;