Министерство общего и профессионального образования РФ.
Сибирский Государственный Индустриальный Университет.
Кафедра АЭП и ПЭ.
Расчётно-пояснительная записка к курсовой работе по ОМПТ.
Номер зачётной книжки: 94051
Выполнил студент г. ЗЭПА-95
Лавриненко Д.В.
Руководитель:
Мурышкин А.П.
Оглавление
Условие задания ……………………………………………. 3
Блок-схема устройства ……………………………………... 4
Структурная схема программы ……………………………. 5
Программа в мнемокодах …………………..………………. 6
Список используемой литературы …………………….….. 10
Имеется технологический процесс, управляемый с помощью МПС. Контролируемыми являются шесть координат, представленных в непрерывной (аналоговой) форме:
X1, X2, X3, X4, X5, X6.
Алгоритм формирования управляющей функции Y состоит в определении отклонения каждой координаты X, от предыдущего значения и вычисления выражения:
Если Y не превышает по абсолютной величине значение , то вмешательство в технологический процесс не требуется. В противном случае Y преобразуется в аналоговую форму и подаётся на управляющий вход объекта технологического процесса, а значение Y документируется.
Требуется:
составить блок-схему управляющего устройства;
выбрать необходимые устройства;
составить структурную схему программы и написать текст программы в мнемокодах.
Блок-схема устройства.
Выбираем X1, X2, X3, X4, X5, X6. : 8 бит;
X1, X2, X3, X4, X5, X6 : 8+1 бит;
Y : 15+1 бит.
В качестве порта ввода/вывода используем БИС КР580ВВ55А
В качестве АЦП ВИС КР572ПВ3
В качестве ЦАП ВИС КР572ПА2
– находится в ячейке памяти 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 |
Начало массива данных X |
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 |
Нахождение X |
8070 |
STAX B |
A (Loc.(BC)) |
По адресу (BC) |
8071 |
JNC 7C80 |
если C = 0 то (807Ch) |
Условный переход по флагу переноса |
8072 |
CMA |
|
Кодирование X в дополнительный код |
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 |
Определение следующего X |
807D |
MOV A,H |
H A |
|
807E |
SUI 07 |
A = A – 07h |
|
8080 |
INZ 6A80 |
если A 0 то (806Ah) |
Условный переход по флагу нуля |
|
Кодирование X2 в дополнительном коде |
|
|
8083 |
LXI D,5A8A |
8A5Ah DE |
Занесение X2 в регистр 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)) |
|
|
Кодирование X4 в дополнительном коде |
|
|
809B |
LXI D,5E8A |
8A5Eh DE |
Занесение X4 в регистр 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)) |
|
|
Кодирование X5 в дополнительном коде |
|
|
80B1 |
LXI D,608A |
8A60h DE |
Занесение X4 в регистр 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 |
A (Loc.(DE)) |
Вычисление Y |
|||
80C8 |
LXI D,578A |
8A57h DE |
Адрес знакового бита первого X |
80CB |
LDAX D |
(Loc.(DE)) A |
|
80CD |
ADD 598A |
A = A + (Loc.(8A59h)) |
Сложение знаковых битов для Y |
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 |
Сброс Знакового вита для X |
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 первого X |
8107 |
XCHG |
H D, L E |
Пересылка первого X в DE |
8108 |
LHLD 598A |
HL = (Loc.(8A59h)) |
|
810B |
DAD D |
HL = HL + DE |
Сложение со вторым X |
810C |
XCHG |
H D, L E |
|
810D |
LHLD 5B8A |
HL = (Loc.(8A5Bh)) |
|
8110 |
DAD D |
HL = HL + DE |
Сложение с третьим X |
8111 |
XCHG |
H D, L E |
|
8112 |
LHLD 5D8A |
HL = (Loc.(8A5Dh)) |
|
8115 |
DAD D |
HL = HL + DE |
Сложение с четвёртым X |
8116 |
XCHG |
H D, L E |
|
8116 |
LHLD 5F8A |
HL = (Loc.(8A5Fh)) |
|
811A |
DAD D |
HL = HL + DE |
Сложение с пятым X |
811B |
XCHG |
H D, L E |
|
811C |
LHLD 618A |
HL = (Loc.(8A561)) |
|
811F |
DAD D |
HL = HL + DE |
Сложение с шестым X; HL = |Y| |
8121 |
SUB A |
A = 0 |
|
8122 |
RAR |
C = 0 |
Зануление флага переноса |
8125 |
MOV A,H |
H A |
Занесение старшего бита Y в А |
8126 |
SUB 6A8A |
A = A – (Loc.(8A6A)) |
Сравнение со старшим битом |
8129 |
JZ 3281 |
Если Z = 1 то (8132h) |
Если равны, то сравнение младших |
812C |
CNC 3E81 |
Если C = 0 то (813Eh) |
Если Y > , то переход по флагу переноса |
812F |
JMP 6A80 |
Goto 806Ah |
Запуск сначала программы |
8132 |
MOV A,L |
L A |
Занесение младшего бита Y в А |
8133 |
SUB 6B8A |
A = A – (Loc.(8A6B)) |
Сравнение с младшим битом |
8136 |
JZ 3B81 |
Если Z = 1 то (812Fh) |
Если равны, то запуск сначала |
8138 |
CNC 3E81 |
Если C = 0 то (813Eh) |
Если Y > , то переход по флагу переноса |
813B |
MOV A,B |
B A |
Знаковый бит Y |
813C |
RAR |
; C A7; A0 C |
C – флаг переноса; сдвиг вправо |
813F |
JNC 4981 |
Если C = 0 то (8149h) |
Условный переход по флагу переноса; если знак + |
8143 |
MOV A,L |
H A |
Занесение старшего бита Y в А |
8144 |
CMA |
|
Рас кодирование дополнительного кода |
8145 |
INR A |
A = A + 1 |
|
8146 |
MOV A,L |
L A |
Занесение младшего бита Y в А |
8147 |
CMA |
|
Рас кодирование дополнительного кода |
8148 |
INR A |
A = A + 1 |
|
8149 |
OUT FB |
A FB |
Вывод в порт FB младшего бита Y |
814B |
OUT FE |
A FE |
Документирование младшего бита Y на внешнем носителе порт FE |
814D |
MOV A,H |
H A |
|
814E |
OUT FA |
Вывод в порта FA |
Вывод в порт FA старшего бита Y |
8150 |
OUT FE |
A FE |
Документирование старшего бита Y на внешнем носителе порт FE |
|
|
|
|
8152 |
MVI A,07 |
07h A |
Управляющее слово для порта В/В КР580ВВ55А |
8154 |
OUT F0 |
|
вит 4 канала С порта В/В выставлен в 1, Y преобразован в аналоговую форму |
8156 |
JMP 6A80 |
Goto 806Ah |
перезапуск |
Список используемой литературы
Криницкий Н.А., Миронов Г.А., Программирование и алгоритмические языки – М, Наука 1979
Хилбурн Дж., Джулич П., Микро-ЭВМ и микропроцессоры, пер. с анг. С.Ш. Пашкеева, – М, Мир, 1979
Алексеенко А.Г., Основы микросхемотехники: Элементы морфологии микроэлектронной аппаратуры. – М, Сов. Радио, 1978
Аналоговые и цифровые интегральные схемы. Под ред. Якубовского – М, Сов. Радио, 1980
Калабеков Б.А. Цифровые устройства и МПС. – М, Р. и С. 1987
Балашов Е.П. Григорьев В.Л. Мокро и мини ЭВМ – М, Энергия 84г.
Новокузнецк
1998 г.