- •Лабораторная работа №1
- •Справочные данные.
- •Задание на выполнение лабораторной работы.
- •Лабораторная работа №2
- •Справочные данные
- •Система ветвления
- •Арифметические операции
- •Лабораторная работа №3
- •Справочные данные
- •Лабораторная работа №4
- •Справочные данные Описание модуля интерфейса mdpif1-0 (midicontrol)
- •Аппаратное квитирование
- •Программное квитирование
- •Структура посылки
- •Возможные сообщения об ошибках
- •Ошибка кадровой синхронизации
- •Ошибка превышения темпа
- •Программные операции
- •Инициализация
- •Пример инициализации
- •Регистр состояния
- •Замечание: Для tty биты 5и 6 не определены. Регистр данных
- •Передача символа
- •Прием символа
- •Лабораторная работа №5
- •Справочные данные
- •Команды для работы с индексным регистром
- •Лабораторная работа №6
- •Справочные данные
Система ветвления
Для организации системы ветвления в STL существуют следующие команды:
Табл.2.2
|
Команды перехода |
|
BEQ |
|
Переход, если результат последней операции = 0, т.е. Z=1. |
BNE |
|
Переход, если результат последней операции 0, т.е. Z=0. |
BCS |
|
Переход, если выполняется условие <, т.е. С=1. |
BCC |
|
Переход, если C=0. |
BHI |
|
Переход, если выполняется условие >, т.е. СÚZ=0. |
BLS |
|
Переход, если выполняется условие <=, т.е. СÚZ=1. |
BMI |
|
Переход, если результат последней операции – отрицательный, т.е. N=1. |
BPL |
|
Переход, если результат последней операции – положительный, т.е. N=0. |
JMP |
|
Безусловный переход |
SK0 |
|
Пропустить следующую команду, если Z=1. |
SK1 |
|
Пропустить следующую команду, если Z=0. |
|
Команды тестирования и сравнения |
|
CBA |
A-B |
Сравнивается содержимое аккумуляторов |
CMPA |
A-(M) |
Сравнивается аккумулятор А и содержимое ячейки памяти |
CMPB |
B-(M) |
Сравнивается аккумулятор В и содержимое ячейки памяти |
BITA |
AÙ(M) |
Побитовое маскирование |
BITB |
BÙ(M) |
Побитовое маскирование |
Арифметические операции
В STL используются следующие арифметические операции:
Табл.2.3.
|
Математические команды |
|
ADDA |
A+(M) ÞA |
Арифметическое сложение |
ADCA |
A+(M)+C ÞA |
Ариф. сложение с переносом |
ADDB |
B+(M) ÞB |
Арифметическое сложение |
ADCB |
B+(M)+C ÞB |
Ариф. сложение с переносом |
ADDD |
D+(M:M+1) ÞD |
Арифметическое сложение |
ABA |
A+B ÞA |
Арифметическое сложение |
SUBA |
A-(M) ÞA |
Арифметическое вычитание |
SBCA |
A-(M)-C ÞA |
Ариф. вычитание с переносом |
SUBB |
B-(M) ÞB |
Арифметическое вычитание |
SBCB |
B-(M)-C ÞB |
Ариф. вычитание с переносом |
SUBD |
D-(M:M+1) ÞD |
Арифметическое вычитание |
SBA |
A-B ÞA |
Арифметическое вычитание |
ABX |
B+X ÞX |
Увеличение индексного регистра на величину, хранящуюся в аккумуляторе B |
MUL |
A*B ÞD |
Арифметическое умножение |
Табл.2.4.
|
Команды сдвига |
ASL |
Сдвиг содерж. ячейки памяти на 1 бит влево. C=d7...d0=0 |
ASLA |
Сдвиг содерж. аккумулятора А на 1 бит влево. C=d7...d0=0 |
ASLB |
Сдвиг содерж. аккумулятора В на 1 бит влево. C=d7...d0=0 |
ASLD |
Сдвиг содерж. аккумулятора D на 1 бит влево. С=d15...d0=0 |
LSR |
Сдвиг содерж. ячейки памяти на 1 бит вправо. d7=0...C=d0 |
LSRA |
Сдвиг содерж. аккумулятора А на 1 бит вправо. d7=0...C=d0 |
LSRB |
Сдвиг содерж. аккумулятора В на 1 бит вправо. d7=0...C=d0 |
LSRD |
Сдвиг содерж. аккумулятора D на 1 бит вправо. d15=0..C=d0 |
ROL |
Циклич. сдвиг содерж. ячейки памяти на 1 бит влево. d7=C...C=d0 |
ROLA |
Циклич. сдвиг аккумулятора А на 1 бит влево. d7=C...C=d0 |
ROLB |
Циклич. сдвиг аккумулятора В на 1 бит влево. d7=C...C=d0 |
ROR |
Циклич. сдвиг содерж. ячейки памяти на 1 бит вправо. d7=C...C=d0 |
RORA |
Циклич. сдвиг аккумулятора А на 1 бит вправо. d7=C...C=d0 |
RORB |
Циклич. сдвиг аккумулятора А на 1 бит вправо. d7=C...C=d0 |
Табл.2.5.
|
Команды инкремента/декремента |
INC |
Инкремент содержимого ячейки памяти |
INCA |
Инкремент содержимого аккумулятора А |
INCB |
Инкремент содержимого аккумулятора В |
DEC |
Декремент содержимого ячейки памяти |
DECA |
Декремент содержимого аккумулятора А |
DECB |
Декремент содержимого аккумулятора В |
Задание на выполнение лабораторной работы
1. Реализовать систему адаптивного управления электродвигателем. На вход двигателя подается управляющее воздействие с ПЛК. В нормальном режиме значение управляющего воздействия равно:
Y= 4*X+3, где Y – управляющее воздействие, а
Х – номинальное воздействие, подаваемое на вход ПЛК.
При повышенной нагрузке срабатывает цифровой датчик, и управляющее воздействие должно вычисляться по формуле:
Y=X*X+3.
Номинальное воздействие Х выбирается из диапазона 4<X<22 и хранится в регистре R 2024. Управляющее воздействие хранится в паре регистров R 2025, R 2026. Цифровой датчик – любой канал модуля ввода дискретных сигналов.
2. С использованием отладчика STL продемонстрировать преподавателю работу программы.
Содержание отчета
Цель работы.
Текст программы с комментариями.
Выводы по работе.