Расчётно-пояснительная записка к курсовой работе по ОМПТ
Министерство общего и профессионального образования
РФ.
Сибирский Государственный Индустриальный Университет.
Кафедра АЭП и ПЭ.
Расчётно-пояснительная записка к курсовой работе по
ОМПТ.
Номер зачётной книжки: 94051
Выполнил студент г. ЗЭПА-95
Лавриненко Д.В.
Руководитель:
Мурышкин А.П.
Оглавление
Условие задания
……………………………………………. 3
Блок-схема устройства ……………………………………... 4
Структурная схема программы ……………………………. 5
Программа в мнемокодах …………………..………………. 6
Список используемой литературы …………………….….. 10
Имеется технологический процесс, управляемый с помощью
МПС. Контролируемыми являются шесть координат, представленных в непрерывной
(аналоговой) форме:
X1, X2, X3, X4,
X5, X6.
Алгоритм формирования управляющей функции DY состоит в определении отклонения каждой координаты DX, от предыдущего значения и вычисления выражения:
Если DY не превышает по абсолютной величине значение
d, то вмешательство в технологический процесс
не требуется. В противном случае DY
преобразуется в аналоговую форму и подаётся на управляющий вход объекта
технологического процесса, а значение DY
документируется.
Требуется:
n
составить блок-схему
управляющего устройства;
n
выбрать необходимые
устройства;
n
составить структурную
схему программы и написать текст программы в мнемокодах.
Блок-схема устройства.
Выбираем X1, X2, X3, X4,
X5, X6. : 8 бит;
DX1, DX2, DX3, DX4, DX5, DX6 :
8+1 бит;
DY : 15+1 бит.
В качестве порта ввода/вывода используем БИС КР580ВВ55А
В качестве АЦП ВИС
КР572ПВ3
В качестве ЦАП ВИС
КР572ПА2
d – находится в ячейке памяти 8А6Аh 16 бит
Программа в мнемокодах
адрес
|
Мнемокод
|
комментарий
|
Примечание
|
8051
|
SUB A
|
A = 0
|
|
8052
|
LXI D,518A
|
518Ah Þ DE
|
Занесение 518Ah
|
8055
|
MVI H,01
|
01h Þ H
|
Счётчик цикла
|
8057
|
MOV A,B
|
B Þ A
|
Пересылка
|
8058
|
OUT FC
|
A Þ (FC)
|
Вывод в порт
|
8059
|
IN FD
|
A Þ (FD)
|
Ввод из порта
|
805A
|
STAX D
|
A Þ (Loc.(DE))
|
По адресу (DE)
|
805B
|
INR H
|
H = H + 1
|
|
805C
|
MOV A,H
|
H Þ A
|
Пересылка
|
805D
|
SUI 07
|
A = A – 07h
|
|
805F
|
INZ 5780
|
Если A ¹ 0 то (8057h)
|
Условный переход по флагу нуля
|
8062
|
MVI H,01
|
01h Þ H
|
Счётчик цикла
|
8064
|
LXI D,518A
|
8A51h Þ DE
|
Начало массива данных X
|
8067
|
LXI B,588A
|
8A58h Þ BC
|
Начало массива данных DX
|
806A
|
LDAX D
|
(Loc.(DE)) Þ A
|
По адресу (DE)
|
806B
|
MOV L,A
|
A Þ L
|
Пересылка
|
806C
|
MOV A,H
|
H Þ A
|
Выбор логического сигнала по счётчику циклов
|
806D
|
OUT FC
|
A Þ (FC)
|
Выбор логического сигнала
|
806E
|
IN FD
|
A Þ (FD)
|
Чтение преобразованного логического сигнала
|
806F
|
SUB L
|
A = A – L
|
Нахождение DX
|
8070
|
STAX B
|
A Þ (Loc.(BC))
|
По адресу (BC)
|
8071
|
JNC 7C80
|
если C =
0 то (807Ch)
|
Условный переход по флагу переноса
|
8072
|
CMA
|
|
Кодирование DX в дополнительный код
|
8073
|
INRA
|
A = A + 1
|
|
8074
|
STAX B
|
A Þ (Loc.(BC))
|
По адресу (BC)
|
8075
|
DCR C
|
C = C – 1
|
|
8076
|
SUB A
|
A = 0
|
|
8077
|
INR A
|
A = A + 1
|
Занесение в аккумулятор 1
|
8078
|
STAX B
|
A Þ (Loc.(BC))
|
По адресу (BC)
|
8079
|
INR C
|
C = C + 1
|
Выставление следующего адреса
|
807A
|
INR C
|
C = C + 1
|
|
807B
|
INR E
|
E = E + 1
|
|
807C
|
INR H
|
H = H + 1
|
Определение следующего DX
|
807D
|
MOV A,H
|
H Þ A
|
|
807E
|
SUI 07
|
A = A – 07h
|
|
8080
|
INZ 6A80
|
если A ¹ 0 то (806Ah)
|
Условный переход по флагу нуля
|
|
Кодирование DX2 в дополнительном коде
|
|
8083
|
LXI D,5A8A
|
8A5Ah Þ DE
|
Занесение DX2 в регистр DE
|
8086
|
LDAX D
|
(Loc.(DE)) Þ
A
|
По адресу (DE)
|
8087
|
CMA
|
|
|
8088
|
INR A
|
A = A + 1
|
|
8089
|
STAX D
|
A Þ (Loc.(DE))
|
По адресу (DE)
|
808A
|
DCR E
|
E = E – 1
|
Выбор знакового бита
|
808B
|
SUB A
|
A = 0
|
|
808C
|
RAR
|
флаг C = 0
|
Обнуление флага C
|
808F
|
LDAX D
|
(Loc.(DE)) Þ
A
|
По адресу (DE)
|
8090
|
RAR
|
; С Þ A7; A0 Þ C
|
C – флаг переноса; сдвиг вправо
|
8093
|
JNC 9880
|
если C =
0 то (8098h)
|
Условный переход по флагу переноса
|
8096
|
SUB A
|
A = 0
|
Замена на
противоположный знак
|
8097
|
STAX D
|
A Þ (Loc.(DE))
|
8098
|
MVI A,01
|
01h Þ A
|
809A
|
STAX D
|
A Þ (Loc.(DE))
|
|
Кодирование DX4 в дополнительном коде
|
|
809B
|
LXI D,5E8A
|
8A5Eh Þ DE
|
Занесение DX4 в регистр DE
|
809E
|
LDAX D
|
(Loc.(DE)) Þ
A
|
По адресу (DE)
|
809F
|
CMA
|
|
|
80A0
|
INR A
|
A = A + 1
|
|
80A1
|
STAX D
|
A Þ (Loc.(DE))
|
По адресу (DE)
|
80A2
|
DCR E
|
E = E – 1
|
Выбор знакового бита
|
80A3
|
SUB A
|
A = 0
|
|
80A4
|
RAR
|
Флаг C = 0
|
Обнуление флага C
|
80A7
|
LDAX D
|
(Loc.(DE)) Þ
A
|
По адресу (DE)
|
80A8
|
RAR
|
; C Þ A7; A0 Þ C
|
C – флаг переноса; сдвиг вправо
|
80AB
|
JNC AE80
|
Если C =
0 то (80AEh)
|
Условный переход по флагу переноса
|
80AV
|
SUB A
|
A = 0
|
Замена на противоположный знак
|
80AD
|
STAX D
|
A Þ (Loc.(DE))
|
80AE
|
MVI A,01
|
01h Þ A
|
80B0
|
STAX D
|
A Þ (Loc.(DE))
|
|
Кодирование DX5 в дополнительном коде
|
|
80B1
|
LXI D,608A
|
8A60h Þ DE
|
Занесение DX4 в регистр DE
|
80B4
|
LDAX D
|
(Loc.(DE)) Þ
A
|
По адресу (DE)
|
80B5
|
CMA
|
|
|
80B6
|
INR A
|
A = A + 1
|
|
80B7
|
STAX D
|
A Þ (Loc.(DE))
|
По адресу (DE)
|
80B8
|
DCR E
|
E = E – 1
|
Выбор знакового бита
|
80B9
|
SUB A
|
A = 0
|
|
80BA
|
RAR
|
Флаг C = 0
|
Обнуление флага C
|
80BD
|
LDAX D
|
(Loc.(DE)) Þ
A
|
По адресу (DE)
|
80BE
|
RAR
|
; C Þ A7; A0 Þ C
|
C – флаг переноса; сдвиг вправо
|
80C1
|
JNC C580
|
Если C =
0 то (80C5h)
|
Условный переход по флагу переноса
|
80C4
|
SUB A
|
A = 0
|
Замена на противоположный знак
|
80C5
|
STAX D
|
A Þ (Loc.(DE))
|
80C6
|
MVI A,01
|
01h Þ A
|
80C7
|
STAX D
|
|
|
|
|
|
|
Вычисление
DY
|
80C8
|
LXI D,578A
|
8A57h Þ DE
|
Адрес знакового бита первого DX
|
80CB
|
LDAX D
|
(Loc.(DE)) Þ A
|
|
80CD
|
ADD 598A
|
A = A + (Loc.(8A59h))
|
Сложение знаковых битов для
DY
|
80D0
|
ADD 5B8A
|
A = A + (Loc.(8A5Bh))
|
80D3
|
ADD 5D8A
|
A = A + (Loc.(8A5Dh))
|
80D6
|
ADD 5F8A
|
A = A + (Loc.(8A5Fh))
|
80D9
|
ADD 618A
|
A = A + (Loc.(8A61h))
|
80DC
|
RAR
|
; C Þ A7; A0 Þ C
|
C – флаг переноса; сдвиг вправо
|
80E0
|
JNC E880
|
Если C = 0 то
(80E8h)
|
Условный переход по флагу переноса; если
знак +
|
80E3
|
MVI B,01
|
01h Þ B
|
Создание знакового + бита в рег. B
|
80E5
|
JMP EA80
|
Goto 80EAh
|
|
80E8
|
MVI B,00
|
00h Þ B
|
Создание знакового – бита в рег. B
|
80EA
|
MVI 00,578A
|
00h Þ 8A57
|
Сброс
Знакового
вита для DX
|
80EF
|
MVI 00,598A
|
00h Þ 8A59
|
80F4
|
MVI 00,5B8A
|
00h Þ 8A5B
|
80F8
|
MVI 00,5D8A
|
00h Þ 8A5D
|
80FC
|
MVI 00,5F8A
|
00h Þ 8A5F
|
8100
|
MVI 00,618A
|
00h Þ 8A61
|
8104
|
LHLD 578A
|
HL = (Loc.(8A57h))
|
Занесение в HL первого DX
|
8107
|
XCHG
|
H Û D, L Û E
|
Пересылка первого DX в DE
|
8108
|
LHLD 598A
|
HL = (Loc.(8A59h))
|
|
810B
|
DAD D
|
HL = HL + DE
|
Сложение со вторым DX
|
810C
|
XCHG
|
H Û D, L Û E
|
|
810D
|
LHLD 5B8A
|
HL = (Loc.(8A5Bh))
|
|
8110
|
DAD D
|
HL = HL + DE
|
Сложение с третьим DX
|
8111
|
XCHG
|
H Û D, L Û E
|
|
8112
|
LHLD 5D8A
|
HL = (Loc.(8A5Dh))
|
|
8115
|
DAD D
|
HL = HL + DE
|
Сложение с четвёртым DX
|
8116
|
XCHG
|
H Û D, L Û E
|
|
8116
|
LHLD 5F8A
|
HL = (Loc.(8A5Fh))
|
|
811A
|
DAD D
|
HL = HL + DE
|
Сложение с пятым DX
|
811B
|
XCHG
|
H Û D, L Û E
|
|
811C
|
LHLD 618A
|
HL = (Loc.(8A561))
|
|
811F
|
DAD D
|
HL = HL + DE
|
Сложение с шестым DX; HL = |DY|
|
8121
|
SUB A
|
A = 0
|
|
8122
|
RAR
|
C = 0
|
Зануление флага переноса
|
8125
|
MOV A,H
|
H Þ A
|
Занесение старшего бита DY в А
|
8126
|
SUB 6A8A
|
A = A – (Loc.(8A6A))
|
Сравнение со старшим битом d
|
8129
|
JZ 3281
|
Если Z = 1 то
(8132h)
|
Если равны, то сравнение младших
|
812C
|
CNC 3E81
|
Если C = 0 то
(813Eh)
|
Если DY > d, то переход по флагу переноса
|
812F
|
JMP 6A80
|
Goto 806Ah
|
Запуск сначала программы
|
8132
|
MOV A,L
|
L Þ A
|
Занесение младшего бита DY в А
|
8133
|
SUB 6B8A
|
A = A – (Loc.(8A6B))
|
Сравнение с младшим битом d
|
8136
|
JZ 3B81
|
Если Z = 1 то
(812Fh)
|
Если равны, то запуск сначала
|
8138
|
CNC 3E81
|
Если C = 0 то
(813Eh)
|
Если DY > d, то переход по флагу переноса
|
813B
|
MOV A,B
|
B Þ
A
|
Знаковый бит DY
|
813C
|
RAR
|
; C Þ A7; A0 Þ C
|
C – флаг переноса; сдвиг вправо
|
813F
|
JNC 4981
|
Если C =
0 то (8149h)
|
Условный переход по флагу переноса; если
знак +
|
8143
|
MOV A,L
|
H Þ
A
|
Занесение старшего бита DY в А
|
8144
|
CMA
|
|
Рас кодирование дополнительного кода
|
8145
|
INR A
|
A = A + 1
|
|
8146
|
MOV A,L
|
L Þ
A
|
Занесение младшего бита DY в А
|
8147
|
CMA
|
|
Рас кодирование дополнительного кода
|
8148
|
INR A
|
A = A + 1
|
|
8149
|
OUT FB
|
A Þ
FB
|
Вывод в порт FB младшего бита DY
|
814B
|
OUT FE
|
A Þ
FE
|
Документирование младшего бита DY на внешнем
носителе порт FE
|
814D
|
MOV A,H
|
H Þ
A
|
|
814E
|
OUT FA
|
Вывод в порта FA
|
Вывод в порт FA старшего бита DY
|
8150
|
OUT FE
|
A Þ
FE
|
Документирование старшего бита DY на внешнем
носителе порт FE
|
|
|
|
|
8152
|
MVI A,07
|
07h Þ
A
|
Управляющее слово для порта В/В КР580ВВ55А
|
8154
|
OUT F0
|
|
вит 4 канала С порта В/В выставлен в 1, DY преобразован в
аналоговую форму
|
8156
|
JMP 6A80
|
Goto 806Ah
|
перезапуск
|
Список используемой
литературы
1. Криницкий Н.А., Миронов Г.А.,
Программирование и алгоритмические языки – М, Наука 1979
2. Хилбурн Дж., Джулич П.,
Микро-ЭВМ и микропроцессоры, пер. с анг. С.Ш. Пашкеева, – М, Мир, 1979
3. Алексеенко А.Г., Основы
микросхемотехники: Элементы морфологии микроэлектронной аппаратуры. – М, Сов.
Радио, 1978
4. Аналоговые и цифровые
интегральные схемы. Под ред. Якубовского – М, Сов. Радио, 1980
5. Калабеков Б.А. Цифровые
устройства и МПС. – М, Р. и С. 1987
6. Балашов Е.П. Григорьев В.Л.
Мокро и мини ЭВМ – М, Энергия 84г.