Расчётно-пояснительная записка к курсовой работе по ОМПТ

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

Министерство общего и профессионального образования РФ.

Сибирский Государственный Индустриальный Университет.

 

Кафедра АЭП и ПЭ.

 

 

 

 

 

 

 

 

Расчётно-пояснительная записка к курсовой работе по ОМПТ.

 

Номер зачётной книжки: 94051

 

 

 

 

Выполнил студент г. ЗЭПА-95

Лавриненко Д.В.

 

Руководитель:

Мурышкин А.П.

 

 

 

Оглавление

 

Условие задания ……………………………………………. 3

Блок-схема устройства ……………………………………... 4

Структурная схема программы ……………………………. 5

Программа в мнемокодах …………………..………………. 6

Список используемой литературы …………………….….. 10

 

Имеется технологический процесс, управляемый с помощью МПС. Контролируемыми являются шесть координат, представленных в непрерывной (аналоговой) форме:

X1, X2, X3, X4, X5, X6.

 

Алгоритм формирования управляющей функции Y состоит в определении отклонения каждой координаты X, от предыдущего значения и вычисления выражения:

 

 

Если Y не превышает по абсолютной величине значение , то вмешательство в технологический процесс не требуется. В противном случае Y преобразуется в аналоговую форму и подаётся на управляющий вход объекта технологического процесса, а значение Y документируется.

 

Требуется:

  1. составить блок-схему управляющего устройства;
  2. выбрать необходимые устройства;
  3. составить структурную схему программы и написать текст программы в мнемокодах.

 

Блок-схема устройства.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбираем 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 бит

Программа в мнемокодах

адресМнемокодкомментарийПримечание8051SUB AA = 08052LXI D,518A518Ah DEЗанесение 518Ah8055MVI H,0101h HСчётчик цикла8057MOV A,BB AПересылка8058OUT FCA (FC)Вывод в порт8059IN FDA (FD)Ввод из порта805ASTAX DA (Loc.(DE))По адресу (DE)805BINR HH = H + 1805CMOV A,HH AПересылка805DSUI 07A = A 07h805FINZ 5780 Если A 0 то (8057h)Условный переход по флагу нуля8062MVI H,0101h HСчётчик цикла8064LXI D,518A8A51h DEНачало массива данных X8067LXI B,588A8A58h BCНачало массива данных X806ALDAX D(Loc.(DE)) AПо адресу (DE)806BMOV L,AA LПересылка806CMOV A,HH AВыбор логического сигнала по счётчику циклов806DOUT FCA (FC)Выбор логического сигнала806EIN FDA (FD)Чтение преобразованного логического сигнала806FSUB LA = A LНахождение X8070STAX BA (Loc.(BC))По адресу (BC)8071JNC 7C80если C = 0 то (807Ch)Условный переход по флагу переноса8072CMAКодирование X в дополнительный код8073INRAA = A + 18074STAX BA (Loc.(BC))По адресу (BC)8075DCR CC = C 18076SUB AA = 08077INR AA = A + 1Занесение в аккумулятор 18078STAX BA (Loc.(BC))По адресу (BC)8079INR CC = C + 1Выставление следующего адреса807AINR CC = C + 1807BINR EE = E + 1807CINR HH = H + 1Определение следующего X807DMOV A,HH A807ESUI 07A = A 07h8080INZ 6A80если A 0 то (806Ah)Условный переход по флагу нуля

 

Кодирование X2 в дополнительном коде8083LXI D,5A8A8A5Ah DEЗанесение X2 в регистр DE8086LDAX D(Loc.(DE)) A По адресу (DE)8087CMA8088INR AA = A + 18089STAX DA (Loc.(DE))По адресу (DE)808ADCR EE = E 1Выбор знакового бита808BSUB AA = 0808CRARфлаг C = 0Обнуление флага C808FLDAX D(Loc.(DE)) AПо адресу (DE)8090RAR; С A7; A0 CC флаг переноса; сдвиг вправо8093JNC 9880если C = 0 то (8098h)Условный переход по флагу переноса8096SUB AA = 0

Замена на противоположный знак8097STAX DA (Loc.(DE))8098MVI A,0101h A809ASTAX DA (Loc.(DE))Кодирование X4 в дополнительном коде809BLXI D,5E8A8A5Eh DEЗанесение X4 в регистр DE809ELDAX D(Loc.(DE)) A По адресу (DE)809FCMA80A0INR AA = A + 180A1STAX DA (Loc.(DE))По адресу (DE)80A2DCR EE = E 1Выбор знакового бита80A3SUB AA = 080A4RARФлаг C = 0Обнуление флага C80A7LDAX D(Loc.(DE)) AПо адресу (DE)80A8RAR; C A7; A0 CC флаг переноса; сдвиг вправо80ABJNC AE80Если C = 0 то (80AEh)Условный переход по флагу переноса80AVSUB AA = 0

Замена на противоположный знак80ADSTAX DA (Loc.(DE))80AEMVI A,0101h A80B0STAX DA (Loc.(DE))Кодирование X5 в дополнительном коде80B1LXI D,608A8A60h DEЗанесение X4 в регистр DE80B4LDAX D(Loc.(DE)) A По адресу (DE)80B5CMA80B6INR AA = A + 180B7STAX DA (Loc.(DE))По адресу (DE)80B8DCR EE = E 1Выбор знакового бита80B9SUB AA = 080BARARФлаг C = 0Обнуление флага C80BDLDAX D(Loc.(DE)) AПо адресу (DE)80BERAR; C A7; A0 CC флаг переноса; сдвиг вправо80C1JNC C580Если C = 0 то (80C5h)Условный переход по флагу переноса80C4SUB AA = 0

Замена на противоположный знак80C5STAX DA (Loc.(DE))80C6MVI A,0101h A80C7STAX DA (Loc.(DE))

 

Вычисление Y80C8LXI D,578A8A57h DEАдрес знакового бита первого X 80CBLDAX D(Loc.(DE)) A80CDADD 598AA = A + (Loc.(8A59h))

 

Сложение знаковых битов для

Y80D0ADD 5B8AA = A + (Loc.(8A5Bh))80D3ADD 5D8AA = A + (Loc.(8A5Dh))80D6ADD 5F8AA = A + (Loc.(8A5Fh))80D9ADD 618AA = A + (Loc.(8A61h))80DCRAR; C A7; A0 CC флаг переноса; сдвиг вправо80E0JNC E880Если C = 0 то (80E8h)Условный переход по флагу переноса; если знак +80E3MVI B,0101h BСоздание знакового + бита в рег. B80E5JMP EA80Goto 80EAh80E8MVI B,0000h BСоздание знакового бита в рег. B80EAMVI 00,578A00h 8A57

Сброс

Знакового

вита для X80EFMVI 00,598A00h 8A59 80F4MVI 00,5B8A00h 8A5B 80F8MVI 00,5D8A00h 8A5D 80FCMVI 00,5F8A00h 8A5F 8100MVI 00,618A00h 8A61 8104LHLD 578AHL = (Loc.(8A57h))Занесение в HL первого X8107XCHGH D, L EПересылка первого X в DE8108LHLD 598AHL = (Loc.(8A59h))810BDAD DHL = HL + DEСложение со вторым X810CXCHGH D, L E810DLHLD 5B8AHL = (Loc.(8A5Bh))8110DAD DHL = HL + DEСложение с третьим X8111XCHGH D, L E8112LHLD 5D8AHL = (Loc.(8A5Dh))8115DAD DHL = HL + DEСложение с четвёртым X8116XCHGH D, L E8116LHLD 5F8AHL = (Loc.(8A5Fh))811ADAD DHL = HL + DEСложение с пятым X811BXCHGH D, L E811CLHLD 618AHL = (Loc.(8A561))811FDAD DHL = HL + DE Сложение с шестым X; HL = |Y|8121SUB AA = 08122RARC = 0Зануление флага переноса8125MOV A,HH AЗанесение старшего бита Y в А8126SUB 6A8AA = A (Loc.(8A6A))Сравнение со старшим битом 8129JZ 3281Если Z