
- •Isbn 5-230-06778-7 Кубанский государственный технологический университет
- •Оглавление
- •Предисловие
- •Введение
- •Глава 1
- •Классификация и виды счпу
- •Глава 2
- •2.1 Задачи управления на уровне станка, гибкого производственного модуля, гибкой производственной системы
- •2.1.1 Геометрическая задача чпу
- •2.1.2 Логическая задача чпу
- •2.1.3 Технологическая задача чпу
- •2.1.4 Терминальная задача чпу
- •2.2 Технические средства управления в автоматизированном производстве
- •Глава 3
- •3.1 Устройства ввода программ
- •3.2 Системы чпу на основе мп
- •3.3. Перспективы развития и применения микропроцессорных систем управления
- •Глава 4
- •4.1 Системы счисления, архитектура и принцип действия микропроцессоров и микроЭвм
- •Принцип действия микроэвм
- •4.2 Система программирования микропроцессора серии кр580
- •4.2.1 Способы адресации
- •4.2.2 Система команд
- •(А) (Данные)
- •4.2.3 Составление программ
- •4.3 Архитектура, система программирования микроЭвм «Электроника-60»
- •4.3.1 Алфавит языка Ассемблера, данные, адресное пространство
- •4.3.2 Система команд
- •4.3.3 Способы адресации
- •4.4 Система автоматизированной подготовки управляющих программ сап-см4
- •4.4.1 Структура и элементы программы
- •4.4.2 Раздел данных
- •4.4.3 Раздел процедур
- •Глава 5
- •5.1 Программируемые контроллеры
- •5.2 Программирование контроллеров
- •5.2.1 Азбука алгоритмизации прикладных программ
- •5.2.2 Основное правило записи программ применительно к мпк 580
- •5.2.3 Процедуры и подпрограммы
- •5.2.4 Основы формализованного подхода к разработке прикладных программ мп-контроллеров
- •5.2.5 Типовые процедуры ввода. Данных
- •5.2.6 Типовые процедуры вывода данных
- •5.2.7 Масштабирование
- •5.2.8 Программная реализация функций времени
- •5.2.9 Измерение временного интервала
- •5.2.10 Ввод символов с клавиатуры. Опрос группы упорядоченных двоичных датчиков
- •5.2.11 Процедура ввода цифры с клавиатуры. Опрос матрицы двоичных датчиков
- •5.2.12 Определение веса нажатой клавиши
- •Заключение
- •Приложение а
- •1 Микропроцессорные чпу металлорежущих станков фирмы fanuc
- •2 Мпс управления промышленным роботом
- •3 Мпс позиционно-контурного управления промышленными роботами
- •4 Счпу для управления по трем координатам
- •5.Система группового числового программного управления
- •6.Программируемый контроллер для плоскошлифовальных станков
- •Приложение б
- •1 Курсовой проект
- •1.1 Задание на курсовой проект
- •1.2 Объем и содержание курсового проекта
- •1.3 Методические указания к выполнению курсового проекта
- •1.4 Формализация и преобразование связей между логическими переменными
- •1.5 Общая характеристика микроЭвм
- •1.6 Общая характеристика микропроцессора
- •1.7 Технология изготовления микропроцессоров
- •1.8 Программная реализация систем цикловой электроавтоматики
- •1.9 Анализ объекта управления и построение модели циклического процесса
- •1.10 Методические указания к выполнению курсового проекта на примере автоматизированного комплекса
- •1.11 Пример разработки алгоритма работы ртк
- •1.12 Словесное описание алгоритма работы автоматизированного комплекса в автоматическом режиме
- •1.13 Описание аварийной ситуации автоматизированного комплекса
- •1.14 Методические указания по установлению соответствия датчиков и приводов адресам контролера
- •1.15 Разработка сети Петри
- •1.16 Краткие сведения о сети Петри
- •1.17 Представление алгоритма работы автоматизированного
- •1.18 Декомпозиция системы и построение сложной сети Петри
- •1.19 Язык программирования контроллера № s – 915
- •1.20 Составление управляющей программы
- •В ключение автоматического режима
- •П роверка исходного состояния ртк
- •П ереключение электромагнитов приводов Проверка срабатывания выходных переходов позиции р
- •Заключение
- •Глоссарии
- •Задание принял студент____________ _____________________________
- •Список литературы:
- •350072 Г. Краснодар, ул. Московская, 2
4.2.2 Система команд
По функциональному признаку все команды могут быть разбиты на пять групп: команды пересылки данных, логические команды, арифметические команды, команды переходов, команды работы со стеком, ввода-вывода и управления МП.
Список основных команд приведен в таблице 7. Полный список команд можно найти в специальной литературе.
Таблица 7 – Список основных команд
Группа команд |
Мнемокод команд |
Восьмеричный код команды |
Содержание команды |
Число байт |
Признаки результата операций |
||||
Z |
S |
P |
C |
AC |
|||||
Команды пересылки |
MOV D,S |
1DS |
(D)(S) |
1 |
- |
- |
- |
- |
- |
MVI D,d |
0D6 |
(D1)d |
2 |
- |
- |
- |
- |
- |
|
LXI rp, d |
0D11 |
(D1)D |
3 |
- |
- |
- |
- |
- |
|
LDA a |
072 |
(A) (a) |
3 |
- |
- |
- |
- |
- |
|
STA a |
062 |
(a) (A) |
3 |
- |
- |
- |
- |
- |
|
LHLD a |
052 |
L(a), H(a+1) |
3 |
- |
- |
- |
- |
- |
|
SHLD a |
042 |
(a)L, (a+1) (H) |
3 |
- |
- |
- |
- |
- |
|
LDAX rp |
0D22 |
A(rp) |
1 |
- |
- |
- |
- |
- |
|
STAX rp |
0D23 |
((rp))A |
1 |
- |
- |
- |
- |
- |
|
XCHG |
353 |
(H)<->(D), (L)<->(E) |
1 |
- |
- |
- |
- |
- |
|
Арифметические команды |
ADD S |
20S |
(A) (A)+(S) |
1 |
+ |
+ |
+ |
+ |
+ |
ADI d |
306 |
(A) (A)+d |
2 |
+ |
+ |
+ |
+ |
+ |
|
ADC S |
21S |
(A) (A)+(S)+(C) |
1 |
+ |
+ |
+ |
+ |
+ |
|
ACI d |
316 |
(A) (A)+d+(C) |
2 |
+ |
+ |
+ |
+ |
+ |
|
DAD rp |
0D41 |
(HL) (HL)+(rp) |
1 |
- |
- |
- |
+ |
- |
|
SUB S |
22S |
(A) (A)-(S) |
1 |
+ |
+ |
+ |
+ |
+ |
|
SUI d |
326 |
(A) (A)-d |
2 |
+ |
+ |
+ |
+ |
+ |
|
SBB S |
23S |
(A) (A)-(S)-(C) |
1 |
+ |
+ |
+ |
+ |
+ |
|
SBI d |
336 |
(A) (A)-d-(C) |
2 |
+ |
+ |
+ |
+ |
+ |
|
INR D |
0S4 |
(D) (D)+1 |
1 |
+ |
+ |
+ |
+ |
+ |
|
INX rp |
0D53 |
(rp) (rp)+1 |
1 |
- |
- |
- |
- |
- |
|
DRC D |
0D5 |
(D) (D)-1 |
1 |
+ |
+ |
+ |
- |
+ |
|
DRC rp |
0D25 |
(rp) (rp)-1 |
1 |
- |
- |
- |
- |
- |
|
DAA |
047 |
Десятичная коррекция |
1 |
+ |
+ |
+ |
+ |
+ |
Продолжение таблицы 7
Группа команд |
Мнемокод команд |
Восьмеричный код команды |
Содержание команды |
Число байт |
Признаки результата операций |
||||
Z |
S |
P |
C |
AC |
|||||
Логические команды |
ANA S |
24S |
(A)(A)^(S) |
1 |
+ |
+ |
+ |
0 |
+ |
ANI d |
346 |
(A)(A)^d |
2 |
+ |
+ |
+ |
0 |
+ |
|
XRA S |
25S |
(A)(A)(S) |
1 |
+ |
+ |
+ |
0 |
0 |
|
XRI d |
356 |
(A)(A) d |
2 |
+ |
+ |
+ |
0 |
0 |
|
ORA S |
26S |
(A)(A)V(S) |
1 |
+ |
+ |
+ |
0 |
0 |
|
ORI d |
366 |
(A)(A)Vd |
2 |
+ |
+ |
+ |
0 |
0 |
|
CMP s |
27S |
(A)-(S) |
1 |
+ |
+ |
+ |
+ |
+ |
|
CMI d |
376 |
(A)-d |
2 |
+ |
+ |
+ |
+ |
+ |
|
RLC |
007 |
(An+1) (An), (A0) (A7), (C) (A7) |
1 |
- |
- |
- |
+ |
- |
|
RRC |
017 |
(An+1) (An), (AT) (A0) |
1 |
- |
- |
- |
+ |
- |
|
RAL |
027 |
(An) (An+1), (C) (A7), (A0) (C), |
1 |
- |
- |
- |
+ |
- |
|
RAR |
037 |
(An+1) (An), (C) (A0), (A7) (C), |
1 |
- |
- |
- |
+ |
- |
|
STC |
067 |
(C) 1 |
1 |
- |
- |
- |
1 |
- |
|
CMC |
077 |
(C) (OC) |
1 |
- |
- |
- |
+ |
- |
|
CMA |
057 |
(A) (OA) |
1 |
- |
- |
- |
- |
- |
|
Команды переходов |
JMP a |
303 |
(PC) a |
3 |
- |
- |
- |
- |
- |
Jc a |
332 |
(PC) a, если условие ССС в поле С истинно |
3 |
- |
- |
- |
- |
- |
|
CALL a |
315 |
(РС) а |
3 |
- |
- |
- |
- |
- |
|
Cc a |
334 |
(РС) а, если условие ССС в поле С истинно |
3 |
- |
- |
- |
- |
- |
|
RET |
311 |
Возврат из подпрограммы |
1 |
- |
- |
- |
- |
- |
|
Rc |
330 |
Возврат из одпрограммы, если условие ССС в поле С истинно |
1 |
- |
- |
- |
- |
- |
|
PCHL |
351 |
(PC) (H,L) |
1 |
- |
- |
- |
- |
- |
|
RST n |
3n7 |
Команда повторного старта |
1 |
- |
- |
- |
- |
- |
|
Команды ввода-вывода |
IN P |
333 |
(A) (P) |
2 |
- |
- |
- |
- |
- |
OUT P |
323 |
(P) (A) |
2 |
- |
- |
- |
- |
- |
|
PUSH rp |
3D65 |
((SP)) (rp) |
1 |
- |
- |
- |
- |
- |
|
PUSH PSW |
365 |
((SP)) (A) u (Z,S,P,C,AC) |
1 |
- |
- |
- |
- |
- |
|
POP rp |
3D61 |
(rp) ((SP)) |
1 |
- |
- |
- |
- |
- |
|
POP PSW |
361 |
(Z,S,P,C,AC) u (A) ((SP)) |
1 |
+ |
+ |
+ |
+ |
+ |
|
XTHL |
343 |
(HL)<->((SP)) |
1 |
- |
- |
- |
- |
- |
|
SPHL |
371 |
(SP)<->(HL) |
1 |
- |
- |
- |
- |
- |
|
E1 |
373 |
Разрешение прерывания |
1 |
- |
- |
- |
- |
- |
|
D1 |
363 |
Запрещение прерывания |
1 |
- |
- |
- |
- |
- |
|
HLT |
166 |
Остановка |
1 |
- |
- |
- |
- |
- |
|
NOP |
000 |
Нет операции |
1 |
- |
- |
- |
- |
- |
В таблице 7 приняты следующие обозначения:
rp – регистровая пара;
S – регистр-источник (source);
D – регистр-приемник (destination). Если на позиции S или D стоит 0,1,2,3,4, 5,6,7, то регистрами являются РОН В, С, D, Е, Н, L и М, А соответственно, где М – регистр в памяти (memory), A – аккумулятор;
d – (data) - восьми или шестнадцатибитное данное;
а – (address) - шестнадцатибитный адрес памяти;
(...) – содержимое ячейки памяти РОН МП;
(SP) – содержимое указателя стековой памяти;
((SP)) – содержимое ячейки стековой памяти;
D1 = 0, 2, 4, 6 для соответственных регистров РОН В, D, Н, SP;
D2 = 1, 3 для пар регистров ВС, DE;
D3 = 0, 2 для пар регистров ВС, DE;
D4 = 1, 3, 5, 7 для пар регистров ВС, DE, HL, SP;
D5 = 0, 2, 4, 6 для регистров В, D, Н, HL;
D6 = 0, 2, 4 для пар регистров ВС, DE, HL;
n – номер команды повторного старта, n равно от 0 до 7;
р – (port) - 8-битный адрес ПУ;
С – (condition) - условие;
ССС – трехбитный код признака, используемого в командах передачи (табл.8). Цифры в графе 3, записанные в восьмеричном коде, в программе должны представляться в двоичном коде, т.е. 1=001, 2=010, З=011,…,7=111. Символы V, ^, О, - логические операции И, ИЛИ, НЕ, исключающее ИЛИ, AC - перенос 1 из младшей тетрады при сложении, «+» - формируется по результату операции, «-» - не изменяется, «О» -очищается, «1» - устанавливается.
Таблица 8
Код |
Признак С |
Значение признаков |
ССС |
||
000 |
NZ |
Z=0, результат не равен 0 |
001 |
Z |
Z=1, результат равен 0 |
010 |
NC |
С=0, нет переноса |
Oil |
С |
С=1, есть перенос |
100 |
РО |
Р=0, результат четный |
101 |
РЕ |
Р=1, результат нечетный |
110 |
Р |
S=0, результат положительный |
111 |
М |
S=1, результат отрицательный |
Команды пересылки обеспечивают пересылку данных между регистрами или памятью и регистрами, признаков результата не формируют.
Пример 1.
MOV D,S - команда пересылает данные из регистра S - источника в регистр D - приемника.
В качестве S могут выступать следующие РОН: В, С, D, Н, L или аккумулятор А. Формат команды приведен на рисунке 12.
<B1> |
0 |
1 |
D |
D |
D |
S |
S |
S |
MOV D,S |
а)
<B1> |
0 |
1 |
1 |
1 |
0 |
S |
S |
S |
MOV M,S |
KO (M) (S)
в)
Рисунок 14 – Форматы команд MOV D,S, и MOV M,S
Если D и S поставить коды РОН из таблицы 6, получится, например, команда 01 010 001, где 01 – код команды из таблицы 7. (IDS) – 1 в двоичном коде соответствует 01, 010 – код регистра-приемника D, соответствующий РОН D (см. табл. 6), 001 – код регистра источника S, соответствующий РОН С, т.е. восьмеричный код команды 121. Таким образом, по данной команде произойдет пересылка данных из регистра С в регистр D, при этом содержимое С сохраняется.
Пример 2.
MOV MS – команда пересылает данные из регистра S (которым могут быть А, В, С, D, H, L) в ячейку памяти М (код в таблице 6), указанной в регистровой паре HL (рис. 14).
Пример 3.
MOV D,M – команда пересылает данные из ячейки памяти М адрес которой указан в HL, в регистр D, т.е. А и РОН В, С, D, H, L (рисунок 15).
<B1> |
0 |
1 |
D |
D |
D |
1 |
1 |
0 |
MOV D,M |
KO (D) (M)
Рисунок 15 – Формат команды MOV D,M
Арифметические команды служат для выполнения арифметических операций над данными, хранящимися в РОН и ячейках памяти М, при этом она оказывает влияние на состояние признаков ССС (таблица 8), появляющихся в регистрах специального флагового регистра ФР – регистра состояний. Признаки ССС формируются АЛУ.
Пример 1.
ADD S – команда выполняет сложение содержимого регистра S с содержимым регистра-аккумулятора А, результат помещается в А.
В кодах команда записывается как, например, 10 000 001, где 10 000 – код ADD из таблицы 7 (20S) – 2 в двоичной системе соответствует 10, 0 соответствует 000, вместо S стоит 001, т.е. регистр С (рис. 16). Следовательно, при выполнении команды ADD С содержимое С прибавляется к содержимому А. Восьмеричный код команды – 201.
<B1> |
1 |
0 |
0 |
0 |
0 |
S |
S |
S |
ADD S |
KO (S)
(A)+(S)(A)
Рисунок 16 – Формат команды ADD S
Пример. 2.
SUB S – вычитание (S) из (А) с записью результата в А (рисунок 17).
Команда 10 010 01l в соответствии с кодом из табл. 7 (22S) содержит 10 0102 = 22 – код вычитания, 011г = 3 (РОН Е), т.е. по команде SUB Е из (А) вычитается (Е). Восьмеричный код 223.
<B1> |
1 |
0 |
0 |
1 |
0 |
S |
S |
S |
SUB S |
KO (S)
(A)-(S)(A)
Рисунок 17 – Формат команды SUB S Пример 3.
SUI2 – вычитание содержимого второго байта В2 из А и помещение результата в А (рис. 18). Команда двухбайтовая.
<B1> |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
SUI a |
KO
(A)-(<B2>)(A)
<B2> 0 0 1 |
Данные S |
|
Рисунок 18 – Формат команды SUI а
Логические команды реализуют операции И, ИЛИ, НЕ, исключающее ИЛИ, сдвиги влево и вправо и другие команды с формированием признаков ССС.
Операнды хранятся в РОН или ячейках ОЗУ, результат помещается в аккумулятор.
Пример 1.
ANA S – команда выполняет операцию поразрядного логического И над (S) и (А). Например, команда 10 100 100 поразрядно логически умножает (А) и (H), восьмеричный код для команды ANA H -244(рис. 19).
<B1> |
1 |
0 |
1 |
0 |
0 |
S |
S |
S |
ANA S |
KO (S)
(A) (S)(A)
Рисунок 19 – Формат команды ANA S
Пример 2.
ANI2 выполняет поразрядно операцию И над содержимым второго байта В2 и (А). Команда двухбайтовая, ее код 346, т.е. в двоичной форме 11 100 110(см. рис. 20)
<B1> |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
ANI a |
KO
(A) (<B2>)(A)
<B2> 0 0 1 |
Данные S |
|
Рисунок 20 – Формат команды ANI а
Пример 3.
ORA S аналогична команде ANA S, но выполняет операцию поразрядного логического ИЛИ, т.е. (A)V(S) (A), код 26S.
Команды переходов служат для организации правильной последовательности выполнения программы, включают команды условного и безусловного переходов, вызова подпрограммы, возвращения в основную программу и др. Все команды на признаки ССС не влияют. Команды безусловного перехода выполняют специальные операции над содержимым СК. Команды условного перехода обеспечивают ветвления по анализу признаков ССС (табл. 8).
Пример 1.
JMP 2 3 – трехбайтовая команда передачи управления по адресу, содержащемуся в В2 и ВЗ путем записи содержимого В2 и ВЗ в PC (PC - шестнадцатиразрядный регистр). Код команды 303 (рис. 21).
-
<B1>
1
1
0
0
0
0
1
1
КО
<B2> 0 0 1 |
Младшие разряды адреса S |
JMP a |
<B3> 0 0 1 |
Старшие разряды адреса S |
|
(ВЗ) (В2) -> (PC), где PC - счетчик команд
Рисунок 21 – Формат команды JMP a
Пример 2.
CALL a – команда безусловного перехода к подпрограмме, трехбайтовая (рис. 22). Восемь старших разрядов адреса следующей команды пересылаются в ячейку памяти, адрес которой на один меньше содержимого указателя стека SP. Восемь младших разрядов адреса следующей команды пересылаются в ячейку памяти, адрес которой на два меньше (SP). Содержимое SP уменьшается на два. Управление передается команде, адрес которой расположен в В2 и ВЗ команды CALL:
((SP) - 1) (РСН);
((SP) - 2) (PCL);
(SP) ((SP) - 2);
(PC) (ВЗ) (В2).
Код команды – 315.
<B1> |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
|
<B2> 0 0 1 |
Младшие разряды адреса S |
|
<B3> 0 0 1 |
Старшие разряды адреса S |
|
Рисунок 22 – Формат команды CALL a
Пример 3.
RET – однобайтовая команда с кодом 311, по ней содержимое указателя стека увеличивается на два, содержимое ячейки памяти по адресу, хранящемуся в SP, пересылается в СК на место младших восьми разрядов, содержимое ячейки памяти, по адресу на один большему, чем содержимое SP, пересылается в СК на место старших восьми разрядов.
(PCL) (SP);
(РСН) ((SP) + 1);
(SP) ((SP) + 2).
Таким образом, возврат в основную программу происходит при обращении к байту команды, следующему за байтом, используемым командой CALL.
Команды управления, ввода-вывода и работы со стеком служат для управления работой МП, портами ввода-вывода и стеком; на флаги ССС влияния не оказывают.
Пример 1.
XTHL меняет содержимое регистра L на содержимое ячейки памяти по адресу, содержащемуся в указателе стека SP, и наоборот. Содержимое РОН Н меняется на содержимое ячейки памяти по адресу, на один большему, чем (SP) и наоборот. Команда однобайтовая, код -343.
(L) (SP);
(Н) ((SP) + 1).
Пример 2.
IN <B2>, OUT <B2> - двухбайтовые команды, служат для ввода данных от входного порта в А и вывода данных из А в выходной порт, соответственно, имеют коды 333 и 323. Второй байт обеих команд отведен под адрес соответствующего входного и выходного портов (рисунок 23).
<B1> |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
|
IN p
<B2> 0 0 1 |
Адреса порта S |
|