Однопроцессорная система на основе микропроцессора (МП) К1810ВМ86 (далее ВМ86) состоит из следующих блоков: блока центрального процессора (ЦП) и блоков памяти. — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Однопроцессорная система на основе микропроцессора (МП) К1810ВМ86 (далее ВМ86) состоит из следующих блоков: блока центрального процессора (ЦП) и блоков памяти.

2020-10-20 227
Однопроцессорная система на основе микропроцессора (МП) К1810ВМ86 (далее ВМ86) состоит из следующих блоков: блока центрального процессора (ЦП) и блоков памяти. 0.00 из 5.00 0 оценок
Заказать работу

Однопроцессорная система на основе микропроцессора (МП) К1810ВМ86 (далее ВМ86) состоит из следующих блоков: блока центрального процессора (ЦП) и блоков памяти.

 

           Блок ЦП строится на основе микросхем микропроцессорного комплекта К1810, его структурная схема приведена на рисунке 3.19. МП ВМ86 является аналогом МП i8086 фирмы INTEL, поэтому ни построение однопроцессорной системы, ни программирование этих процессоров не имеют различий. Сигналы D0 – D15 образуют шину данных (ШД), а сигналы A0 – A19 – шину адреса (ША). Сигнал BHE совместно с сигналом A0 определяют следующие варианты пересылок по ШД:

       A0 = 0,       BHE = 0 – пересылается слово (по D0 – D15);

       A0 = 0,       BHE = 1 – пересылается только младший байт (D0 – D7);

       A0 = 1,       BHE = 0 – пересылается только старший байт (D8 – D15);

       A0 = 1,       BHE = 1 – устройство не выбрано.

       Для справки: слово – совокупность 16-ти битов (или 2-х байтов); байт – совокупность 8-ми битов; бит - двоичный разряд, принимает значения 0 или 1. Биты в слове или байте нумеруются справа налево начиная с нуля.

       Сигнал BUSEN формируется внешним устройством (контроллером прямого доступа в память - ПДП) и служит для захвата ША этим устройством.

       Сигналы MEMR и MEMW формируются блоком ЦП вовремя чтения и записи из запоминающего устройства (ЗУ) соответственно, при этом на ША формируется адрес ячейки ЗУ, и оно в свою очередь должно выставить или принять данные по ШД.

       Сигналы IOR и IOW формируются аналогично, но при обращении к внешнему устройству.

       Черта над аббревиатурой сигнала обозначает, что он активен при нулевом (низком) уровне.

 

       Блоки памяти (рис 3.20.) состоят из блоков постоянного ЗУ (ПЗУ) и оперативного ЗУ (ОЗУ). ЗУ разбивается на две части: младший и старший банки. Младший банк содержит данные четных адресов и подключен к D0 – D7, а старший содержит данные нечетных адресов и подключен к D8 – D15. Входы ЗУ CS (chip select), CSH и CSL выбирают соответствующее устройство (H – high – старший, L – low – младший). Такая организация ЗУ позволяет передавать как байты, так и отдельные слова.

Язык ассемблера МП ВМ86.

Регистры.

 

Программисту доступны следующие регистры (особые ячейки памяти МП):

1. AX, BX, CX, DX – регистры, с помощью которых выполняются различные арифметические, битовые операции, операции ВВ и др. Эти регистры допускают раздельную адресацию младших (L)  и старших (H) половин (например, AX состоит из AH и AL).

2. Указательные (BP и SP) и индексные (SI и DI) регистры.

3. Сегментные регистры ES, DS, CS, SS.

4. Регистр флагов F.

5. Указатель команд IP.

Регистры 1 и 2 группы называются регистрами общего назначения.

 

Организация памяти.

     МП ВМ86 имеет 20-разрядную ША, что позволяет адресовать 220 (1 М) ячеек памяти. Поскольку регистры МП 16-разрядные, адрес ячейки памяти хранится в двух регистрах. Причем младшие 16 битов адреса называются смещением относительно базы. База – это абсолютный 20-ти битовый адрес, кратный числу 16, т.е. 4 его младших бита равны нулю, а старшие 16 битов (номер сегмента) заносятся в сегментный регистр. Для получения текущего абсолютного адреса необходимо к номеру сегмента, умноженному на 16, прибавить смещение. Смещение еще называют 16-разрядным адресом, или исполнительным адресом.

       Команды в памяти располагаются друг за другом. Адрес, хранящийся в регистрах CS:IP, указывает на выполняемую команду. Что бы обратиться из программы к произвольной ячейке памяти, необходимо поместить в регистр ES, DS или SS номер сегмента и указать этот регистр в команде ассемблера. Если конкретный регистр в команде не указан, МП использует данные из регистра DS.

 

Представление данных в МП.

       МП работает с целыми числами размерами в байт (8 бит), слово (16) и в некоторых командах в двойное слово (32). Целые числа без знака записываются в ячейки памяти и в регистры в двоичной системе счисления, занимая все разряды при данном размере (т.е. в байте, хранящем число 7 будет записано: 00000111b).

       Целые числа со знаком представляются в дополнительном коде. При этом положительные числа записываются как и обычные целые числа, а отрицательные вычисляются так:

 b = 2к-|x|,

где x – отрицательное число, к – число разрядов в ячейке, b – двоичный код отрицательного числа.

       Таким образом, в ячейке размером в байт можно хранить отрицательные числа от –128 до +127 (соответствующий код 10000000b и 01111111b). Старший бит кода является знаковым: 1 – отрицательное число, а 0 – положительное).

       С другими представлениями данных можно ознакомиться в [3].

 

Команды пересылки.

       Команда MOV:     MOV op1,op2

где допустимы следующие комбинации операндов:

op1 r8 m8 r16 sr (кроме CS) m16
op2 i8, r8, m8 i8, r8 i16,r16,sr,m16 r16, m16 i16, r16,sr

       По команде MOV содержимое op2 пересылается в op1.

       Команда XCHG:  xchg op1,op2

где допустимы следующие комбинации операндов:

op1 r8 m8 r16 m16
op2 r8, m8 r8 r16, m16 r16

       По команде XCHG содержимое операндов меняется местами.

 

Команды перехода.

       Безусловный переход:     jmp op

где оp может быть меткой команды, на которую осуществляется переход; регистром или ячейкой памяти, в которых хранится адрес команды, на которую осуществляется переход.

       По команде JMP выполнение программы осуществляется с команды, адресуемой в операнде.

       Условный переход:        jxx op

где xx – условие перехода, op – метка команды.

       По команде Jxx выполнение программы продолжается с команды, адресуемой в операнде, если выполняется условие xx, или с команды, следующей за командой Jxx, если условие xx не выполняется.

       xx может содержать название флага, тогда переход будет осуществлен, если соответствующий флаг равен 1 (например jz op – переход при ZF=1); букву n и название флага, тогда переход будет осуществлен, если соответствующий флаг равен 0 (например jnz op – переход при ZF=0); аббревиатуру условия перехода, тогда переход осуществится при выполнении этого условия. Аббревиатуру составляют буквы, символизирующие следующие условия:

       E – equal (равно);

       N – not (не);

       G – greater (больше) – для чисел со знаком;

       L – less (меньше) – для чисел со знаком;

       A – above (больше) – для чисел без знака;

       B – below (меньше) – для чисел без знака.

       Например: NE – не равно; NGE – не больше и не равно, т.е. L – меньше.

       Условие перехода формируется набором флагов, которые устанавливаются в соответствии с результатом работы команды, предшествующей инструкции Jxx.

       Флаг – это бит в регистре флагов F. Регистр F является 16-ти разрядным, но только 9 разрядов отводятся под флаги, значение остальных разрядов документацией не определено.

       CF (carry flag) – флаг переноса.

       OF (overflow flag) – флаг переполнения.

       ZF (zero flag) – флаг нуля.

       SF (sign flag) – флаг знака.

       PF (parity flag) – флаг четности.

       AF (auxiliary carry flag) – флаг дополнительного переноса.

       DF (direction flag) – флаг направления.

       IF (interrupt flag) – флаг прерываний.

       ТF (trap flag) – флаг трассировки.

 

Логические команды.

       Логические команды влияют на все флаги.

       Отрицание: not op

       По этой команде каждый бит операнда меняет своё значение на противоположное. Операнд может быть следующим: r8, m8, r16, m16.

       Конъюнкция: and op1,op2

       Сочетание операндов такое же, как и в команде ADD.

       Команда AND производит поразрядное логическое умножение операндов, результат записывается на место первого операнда.

       Проверка:  test op1,op2

       Команда TEST аналогична команде AND, но результат никуда не записывается. Помещая в оp2 маску, можно проверить, установлены ли в ноль соответствующие биты op1.

       Дизъюнкция: or op1,op2

       Допустимые сочетания операндов – как и в команде AND.

       Команда OR производит побитовое логическое сложение операндов.

                   Исключающее ИЛИ: xor op1,op2

       Допустимые сочетания операндов – как и в команде AND.

       Команда XOR производит побитно операцию XOR. Команду XOR удобно использовать для инвертирования конкретных битов оp1.

 

Команды сдвига.

       Команды сдвига влияют на все флаги.

       Логический сдвиг влево на 1 разряд:    shl op,1

       Логический сдвиг влево на k разрядов: shl op,cl

       Логический сдвиг вправо на 1 разряд:  shr op,1

       Логический сдвиг вправо на k разрядов: shr op,cl

       При логическом сдвиге влево или вправо биты операнда сдвигаются на один разряд влево или вправо соответственно. При этом бит, уходящий за пределы размеров операнда, заносится в CF, а освобождающийся разряд принимает значение 0. При сдвиге на k разрядов, число k заносится в регистр CL.

Перечисленных выше команд достаточно для понимания управляющих программ (УП), рассмотренных в этом пособии. Более подробную информацию о командах МП ВМ86 можно найти в [1] и [3].

 

Требования к аппаратной реализации устройства.

1. Информация, поступающая из вне в УП представляется в цифровом (дискретном) виде. Контроллер технологического оборудования (ТО) должен позаботиться о преобразовании информации с ТО в цифровой вид. Если сигнал аналоговый (например сигнал с датчика, измеряющего температуру в зоне резания), должен быть предусмотрен аналогово-цифровой преобразователь (АЦП). Если сигнал поступает с путевого выключателя, необходимо предусмотреть схему, сопоставляющую значение 1 сработавшему выключателю и значение 0 отключенному.

2. Аналогично нужно преобразовать информацию, поступающую из УП на ТО в тот вид, в котором ТО её ожидает получить, либо, если ТО ещё не спроектировано, предъявить соответствующие требования к ТО.

3. Определить, каким образом будет реализовано взаимодействие микропроцессорной системы и контроллера. Подробно об этом рассказано в части 2 данного пособия. Конкретно необходимо определить, через какие порты, при помощи каких прерываний будет осуществлено взаимодействие. Также определить, какие биты конкретного порта соответствуют определенным сигналам с ТО; в каких пределах варьируются оцифрованные аналоговые сигналы с ТО и т.п.

4. Оговорить, способы ввода УП в память микропроцессорной системы; осуществить аппаратную реализацию устройства ввода УП и разработать программное обеспечение данного устройства (задача, аналогичная построению СУ, поскольку и ТО, и устройство ввода УП являются внешними устройствами и взаимодействуют с микропроцессорной системой одинаково).

 

Аппаратная реализация.

При проектировании контроллера возможно два подхода. Первый общепринят среди радиолюбителей: на основе входной и выходной информации интуитивно синтезируется устройство. При наличии опыта, полученное таким образом схемотехническое решение не нуждается в упрощении и прекрасно работает. Однако для начинающих конструкторов этот подход не годится. На основе метода, изложенного в [2], предлагается второй подход:

1. Для проектируемого устройства (или его части) составляется таблица истинности. В качестве входной и выходной информации могут быть как отдельные сигналы, так и совокупность сигналов, а также целые процессы (например преобразования сигнал-цифра или цифра-сигнал).

2. Для каждого выходного сигнала составляется СовДНФ [2]. Процессы могут представлены также двумя состояниями – есть процесс или нет процесса (1 или 0).

3. Полученные структурные формулы упрощаются как методами логики, так и заменой очевидных комбинаций входных сигналов на более простые.

4. На основе структурной формулы строится устройство.

 

Примеры построения СУ.

В данном разделе рассмотрена реализация систем управления сверлильным автоматом и манипулятором, которые были подробно рассмотрены в главе[2, стр.53, табл. 3.3 и 3.6].

 

Разработка УП.

Для управляющих сигналов сверлильного автомата в [2] были получены следующие структурные формулы:

 

                   БВ = А×ПВ2×ПВ3×ПВ1

                   РП = ПВ2×ПВ3×ПВ1

                   БН = ПВ2×ПВ3×ПВ1.

 

       Разрабатываемая УП будет циклически читать состояние порта 0FFh, производить вычисления по приведённым формулам и отправлять результат в тот же порт. Вычисление управляющих сигналов по логическим формулам делает программу громоздкой, прямолинейной, но наглядной. Вообще логические команды ассемблера редко используются для вычисления логических выражений, так как с помощью инструкций проверок, сравнений и условных переходов результата можно добиться проще.

Итак, первоначальный вариант программы:

cikl:                                               ;Метка для зацикливания вычислений.

in al,0ffh                           ;Чтение из порта 0FFh.

                                          ;Теперь      al = (x x x x ПВ3 ПВ2 ПВ1 А)b

                                          ;номера битов   7 6 5 4 3 2  1 0

                                          ;где x – значение не определено.

mov ah,al                           ;Содержимое регистра аl заносится в ah.

and ah,1                            ;ah=ah and 00000001b = (x x x x ПВ3 ПВ2 ПВ1 А) and

;00000001b = (0 0 0 0 0 0 0 A)b = A

       mov bl,al

       and bl,2                             ;bl=bl and 00000010b = (x x x x ПВ3 ПВ2 ПВ1 А) and

;00000010b = (0 0 0 0 0 0 ПВ1 0)b

shr bl,1                  ;bl = (0 0 0 0 0 0 0 ПВ1)b = ПВ1

       mov bh,al

       and bh,4                            ;bh = (0 0 0 0 0 ПВ2 0 0)b

       mov cl,2

       shr bh,cl                             ;bh = (0 0 0 0 0 0 0 ПВ2)b = ПВ2

       mov ch,al

       and ch,8

       mov cl,3

       shr ch,cl                             ;ch = (0 0 0 0 0 0 0 ПВ3)b = ПВ3

      ;Вычисление сигнала БВ

       mov al,ah                           ;al = ah = A

       mov dl,bh                          ;dl = bh = ПВ2

xor dl,1                              ;dl = ПВ2

       and al,dl                            ;al = A×ПВ2

       mov dh,ch                         ;dh = ch = ПВ3

xor dh,1                             ;dh = ПВ3

       and al,dh                           ;al = A×ПВ2×ПВ3

and al,bl                            ;al = A×ПВ2×ПВ3×ПВ1 = БВ

      ;Вычисление сигнала РП

       mov ah,bh                         ;ah = bh = ПВ2

       and ah,dh                          ;ah = ПВ2×ПВ3

       mov dh,bl                          ;dh = bl = ПВ1

       xor dh,1                             ;dh = ПВ1

       and ah,dh                          ;ah = ПВ2×ПВ3×ПВ1 = РП

       shl ah,1                              ;ah = (0 0 0 0 0 0 РП 0)b

       or al,ah                              ;al = (0 0 0 0 0 0 0 БВ)b or (0 0 0 0 0 0 РП 0)b =

; = (0 0 0 0 0 0 РП БВ)b

;Вычисление сигнала БН

and dl,ch                           ;dl = ПВ2×ПВ3

and dl,dh                           ;dl = ПВ2×ПВ3×ПВ1 = БН

shl dl,1

shl dl,1                              ;dl = (0 0 0 0 0 БН 0 0)b

or al,dl                               ;al = (0 0 0 0 0 0 РП БВ)b or (0 0 0 0 0 БН 0 0)b =

                                          ; = (0 0 0 0 0 БН РП БВ)b

out 0ffh,al                         ;запись вычисленных значений в порт 255

jmp cikl                             ;переход в самое начало.

Аппаратная реализация СУ.

       Структура микропроцессорной системы, описанная в 1 и 2 частях данного руководства, изменений не претерпевает. Поэтому необходимо разработать лишь контроллер ВУ (см. рис. 2.1.). В соответствии с методикой, описанной в 4.3., потоки информации разбиваются на две группы: входные сигналы (А, ПВ1, ПВ2 и ПВ3 со сверлильного автомата и сигналы ШД, ША, IOR и IOW с микропроцессорной системы) и выходные сигналы (БВ, РП, и БН на ТО и сигналы на ШД).

I. Составляется таблица истинности (табл. 5.1.), при этом сразу отбрасываются не осуществимые комбинации входных сигналов (например, сигналы запроса на чтение и на запись IOW и IOR не могут быть активны одновременно). В данной таблице введены следующие обозначения: X – состояние сигнала может быть любым; Z – сигнал находится в 3-м состоянии (отключен); CS – сигнал с дешифратора адреса.

II. Из таблицы видно, что при сочетании входных сигналов в последнем столбце происходит передача управляющих сигналов на ТО. Тогда структурные формулы для этих сигналов следующие:

                 
   
     


БВ = IOW×IOR×CS×D0 = З×D0

РП = IOW×IOR×CS×D1 = З×D1

БН = IOW×IOR×CS×D2 = З×D2,

     


где 3 = IOW×IOR×CS. Как уже было отмечено в I., когда сигнал IOW = 0, сигнал IOR = 1, а когда IOR = 0, IOW = 1. Очевидно, что выражение IOW×IOR = IOW. Таким образом 3 = IOW×CS = IOW+CS.

 

Таблица истинности контроллера сверлильного автомата. Табл. 3.6.

Входы IOW   1   0   1   1   0
IOR 1 1 0 0 1
ША (CS) X (X) не 0FFh (1) не 0FFh (1) 0FFh (0) 0FFh (0)
ШД X X X Z D0, D1, D2
Выходы ШД   Z   Z   Z   D0 = А D1 = ПВ1 D2 = ПВ2 D3 = ПВ3 D4…D7 = X   Z
БВ 0 0 0 0 D0
РП 0 0 0 0 D1
БН 0 0 0 0 D2

 

При сочетании входных сигналов в предпоследнем столбце таблицы, контроллер должен выставить на ШД состояние путевых выключателей. Это можно осуществить при помощи регистра, который соединяет сигналы А, ПВ1, ПВ2 и ПВ3 с соответствующими линиями ШД при наличии разрешающего сигнала Ч. При Ч = 0 выходы регистра должны перейти в Z-состояние:

                     
   
   


       Ч = IOW×IOR×CS = IOR×CS = IOR + CS.

 

III. Таким образом, получены следующие структурные формулы:

       
   


3 = IOW + CS

БВ = 3×D0

РП = 3×D1

БН = 3×D2

Ч = IOR + CS.

IV.
 

Контроллер (рис 5.1.) конструктивно состоит из трех частей: I – дешифратор адреса (когда адрес равен 0FFh, дешифратор выдает CS = 0, когда адрес не равен 0FFh, дешифратор выдает CS = 1); II – блок чтения и записи на ТО; III – преобразователь ШД (16 бит) в ШД’ (8 бит). Последний необходим, так как в таблице истинности подразумевалась 8-разрядная ШД, и в УП использовались 8-разрядные команды ВВ.

     


Упрощение СУ.

       Разработанное схемотехническое решение совместно с УП является законченной полноценной СУ. Кроме того, разработанный контроллер автомата может как непосредственно припаиваться к соответствующим выводам микропроцессорной системы, так и вставляться в разъём расширения ЕISA любого IBM-совместимого компьютера. Если последнее не требуется (т.е. СУ разрабатывается как самостоятельное устройство), то контроллер и микропроцессорная система могут быть значительно упрощены:

1. В разработанной УП отсутствуют обращения к ячейкам памяти, следовательно из микропроцессорной системы можно удалить ОЗУ. По той же причине не нужны логические элементы формирующие сигнал записи MEMW в ОЗУ.

2. Не используются контроллер прерываний и контроллер ПДП – их тоже можно исключить.

3. Если данные (байты) посылать в порты только с чётными адресами (например 0FEh), то эти данные будут передаваться только по младшей части ШД (D7 – D0). Следовательно преобразователь III (рис. 5.1.) из контроллера может быть исключен. Подсоединение производится непосредственно к ШД.

4. УП обращается только к одному порту ВВ, значит необходимость в дешифрации адреса отпадает (блок I рис. 5.1.). В этом случае сигнал CS всегда равен нулю.

 

Упрощенная структурная схема контроллера представлена на рис. 5.2.

       Так как аппаратное решение изменилось, необходимо изменить УП. Итак, новая программа, в которой, кроме выше сказанного, отражён другой подход к программированию:

cikl:                                               ;Метка для зацикливания.

       in al,0FEh                          ;Чтение из чётного порта (254).

                                     ;Теперь      al = (x x x x ПВ3 ПВ2 ПВ1 А)b

                                          ;номера битов   7 6 5 4 3 2  1 0.

and al,00001111b             ;Сбросить биты 4-7 регистра al.

mov ah,00000001b           ;Поместить в ah комбинацию БВ=1, РП=0, БН=0.

cmp al,00000011b             ;Сравнить с комбинацией ПВ3=0, ПВ2=0, ПВ1=1, А=1.

jz exit                                ;Если в регистре al проверяемая комбинация, перейти к

;метке exit. В этом случае после команды CMP флаг ZF=1.

       and al,11111110b             ;Сбросить бит 0, соответствующий сигналу А.

       mov ah,00000010b           ;Поместить в ah комбинацию БВ=0, РП=1, БН=0.

       cmp al,00000100b             ;Сравнить с комбинацией ПВ3=0, ПВ2=1, ПВ1=0.

       jz exit                                ;Перейти к метке exit, если в al проверяемая комбинация.

       mov ah,00000100b           ;Поместить в ah комбинацию БВ=0, РП=0, БН=1.

       cmp al,00001000b             ;Сравнить с комбинацией ПВ3=1, ПВ2=0, ПВ1=0.

       jz exit                                ;Перейти к метке exit, если в al проверяемая комбинация.

       mov ah,00000000b           ;Поместить в ah комбинацию БВ=0, РП=0, БН=0.          

exit:                                               ;Метка выхода после проверок.

       mov al,ah                           ;Поместить в al комбинацию управляющих сигналов.

       out 0FEh,al                       ;Записать управляющий сигнал в порт 0FEh

       jmp cikl                             ;Повторить всё сначала.

 

       Новая УП содержит лишь 16 команд, а делает то же, что и старая УП, состоящая из 36 команд.

 

Разработка УП.

       После старта программы происходит инициализация переменной Z. Из [2] видно, что Z=1, когда манипулятор держит деталь, и Z=0, когда в руке манипулятора деталь отсутствует. УП работает согласно таблице истинности решений с элементами памяти [2, табл. 3.6.].

       Текст программы:

       mov ah,0                           ;В регистр ah заносится значение Z=0.

cikl:                                               ;Метка для зацикливания вычислений.

       in al,0FCh                         ;Чтение из порта с адресом 252.

                                                      ;Теперь al=(x x x x ПВ4 ПВ3 ПВ2 ПВ1)b

       and al,00001111b             ;Обнуление битов с 4-го по 7-й.

       mov dl,00000001b            ;Поместить в dl комбинацию Y=0,X=0,Y=0,X=1.

       cmp ax,0000000000000101b;Проверить комбинацию Z=0,ПВ4=0,ПВ3=1,ПВ2=0,ПВ1=1.

                                                      ;Регистр AX в битах 0-7 хранит содержимое AL, а в

                                                 ;битах 8-15 – AH.

       jz exit1                              ;Если в AX проверяемая комбинация, перейти к метке exit1.

       cmp ax,0000000100000110b;Проверить комбинацию Z=1,ПВ4=0,ПВ3=1,ПВ2=1,ПВ1=0.

       jz exit1                              ;Если в AX проверяемая комбинация, перейти к метке exit1.

       mov dl,00000010b            ;Поместить в dl комбинацию Y=0,X=0,Y=1,X=0.

       cmp ax,0000000100000101b;Проверить комбинацию Z=1,ПВ4=0,ПВ3=1,ПВ2=0,ПВ1=1.

       jz exit1                              ;Если в AX проверяемая комбинация, перейти к метке exit1.

       mov dl,00001000b            ;Поместить в dl комбинацию Y=1,X=0,Y=0,X=0.

       cmp ax,0000000000000110b;Проверить комбинацию Z=0,ПВ4=0,ПВ3=1,ПВ2=1,ПВ1=0.

       jz exit1                              ;Если в AX проверяемая комбинация, перейти к метке exit1.

       mov dl,00000100b            ;Поместить в dl комбинацию Y=0,X=1,Y=0,X=0.

       cmp al,00001001b             ;Проверить комбинацию ПВ4=1,ПВ3=0,ПВ2=0,ПВ1=1.

       jz exit2                              ;Если в AL проверяемая комбинация, перейти к метке exit2.

       cmp al,00001010b             ;Проверить комбинацию ПВ4=1,ПВ3=0,ПВ2=1,ПВ1=0.

       jz exit2                              ;Если в AL проверяемая комбинация, перейти к метке exit2.

       mov dl,00000000b            ;Поместить в dl комбинацию Y=0,X=0,Y=0,X=0.

       jmp exit1                           ;Перейти к метке exit1.

exit2:                                             ;Метка для выхода из проверок.

       xor ah,1                             ;Инвертировать значение Z.

exit1:                                             ;Метка для выхода из проверок.

       mov al,dl                           ;Поместить в AL комбинацию выходных сигналов.

       out 0FCh,al                       ;Отправить эту комбинацию в порт 252.

       jmp cikl                             ;Повторить вычисления.

 

Аппаратная реализация СУ.

I. Для контроллера манипулятора составляется таблица истинности (табл. 3.8.). Поскольку УП обращается только к одному чётному порту, необходимости в дешифрации адреса нет. Тогда входными сигналами для контроллера будут сигналы IOR, IOW, ШД (D0, D1, D2, D3)  от микропроцессорной системы и ПВ1, ПВ2, ПВ3, ПВ4 от манипулятора, а выходными – ШД (D0, D1, D2, D3) к микропроцессорной системе и X, Y, X, Y к манипулятору.

Таблица истинности решений контроллера манипулятора. Табл. 3.8.

Входы IOW   1   0   1
IOR 1 1 0
D0 XX XX ZZ
D1 XX XX ZZ
D2 XX XX ZZ
D3 XX XX ZZ
ПВ1 XX XX XX
ПВ2 XX XX XX
ПВ3 XX XX XX
ПВ4 XX XX XX
Выходы D0   ZZ   ZZ   ПВ1
D1 ZZ ZZ ПВ2
D2 ZZ ZZ ПВ3
D3 ZZ ZZ ПВ4
X 0 D0 0
Y 0 D1 0
X 0 D2 0
Y 0 D3 0

       Примечание: XX – значение может быть любым; ZZ – 3-е (отключенное) состояние.

 

II. Для вых<


Поделиться с друзьями:

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.162 с.