- •Шина керування (Control bus)
- •1.Організація однокристальних еом
- •1.3 Організація вводу/виводу інформації
- •1.4. Блок керування
- •1.5. Логічна схема умовних переходів
- •1.6.Режим преривання
- •1.7.Таймер/лічильник
- •2.Повноекраний налагоджувач ассемблерних програм для однокристальних еом кр1816ве48
- •2.2.Команди налагоджувача.
- •2.3.Повноекранне редагування.
- •2.4.Режим Ассемблера.
- •2.5. Робота з точками преривання.
- •3.Система команд оеом кр1816
- •3.1.Група команд пересилки данних
- •Рпзп Програм і
- •Порт р1
- •Порт р2
- •3.2.Група команд арифметичних та логічних операцій
- •3.3.Група команд вводу-виводу інформації.
- •3.4.Група команд передачі керування.
- •3.5.Група команд операцій з таймером
- •3.6.Група команд керування режимом роботи оеом
- •4.Приклади написання програм для оеом кр1816 ве48
- •4.1. Приклади використання команд передачі данних
- •4.2. Приклади використання команд арифметичних операцій.
- •4.3. Приклади використання команд логічних операцій
- •4.4. Приклади використання команд передачі керування і команд керування режимом оеом
3.3.Група команд вводу-виводу інформації.
Порти Р1 і Р2 представлють собою квазідвонаправлені управляємі статичні буферні регістри. При виводі інформації байт данних фіксується в буферному регістрі порта, а при вводі- не фіксується і повинен бути прочитаним контрол-лером на протязі періоду присутності байта на входах порта.
Оріентація ОЕОМ на використання в пристроях керування обєктами привела до появи в його системі таких команд, які дозволяють виконувати операції вво-ду-виводу інформації з використанням маскування, що дає розробнику удобні засоби організації обміну не тільки байтами, але й окремими бітами та їх до-вільними комбінаціями. Схемотехніка портів Р1 і Р2 така, що ввод данних в деяку лінію можливий тільки в тому випадку, якщо попередньо в данний біт порта програмою була занесена 1. Вивод інформації через порти може викону-ватись з використанням маскування (І,АБО) і фіксацією результата операції в буферному регістрі, що дозволяє виборочно змінювати окремі біти портів виво-ду інформації. Така властивість дуже важлива в тому випадку, якщо ОЕОМ ге-нерує та видає керуючі слова (набори керуючих двійкових сигналів) для керу-вання режимами роботи різних виконавчих механізмів і агрегатів обєкту керування.
Порт BUS може виконувати всі функції, що і порти Р! та Р2, але на відміну від них він не може визначати окремі лінії на ввод або вивод. Всі лінії порта DUS повинні одночасно бути або вхідними або вихідними лініями. По командах MOVX порт BUS використовується в якості двонаправленного синхронного каналу для доступу до зовнішньої оперативної памяті.
Три вказані порти можуть бути розширені в випадку необхідності забезпе-чення зв’язку ОЕОМ з об’єктом керування, що має велику кількість датчиків та виконавчих механізмів. В тому випадку, якщо розширення виконується через молодшу тетраду порту Р2 (порт-розширювач), то допоміжні порти мають адре-си 4-7. В тому випадку, якщо в якості порта-розширювача використовується порт BUS, то всі допоміжні порти входять в адресуємий простір памяті і адре-сується ( як зовнішня память данних) через регістри побічної адреси R0 i R1.
IN A,P
Вивести данні з порту в аккумулятор
Код: [09] для порту Р1, і [0A]для Р2.
0 0 0 0 1 0 р р
Алгоритм: (A)(Pp); p=1-2
INS A,BUS
Стробуємий ввод данних з порту BUS в аккумулятор
Код:[08]
0 0 0 0 1 0 0 0
Алгоритм: (А) (BUS).
Ця команда виконується за два машинних цикла. Ввод данних з порту BUSв аккумулятор виконується по спаду керуючого сигналу ЧТ.
OUTL Pp,A
Вивод з аккумулятора в порт Р1 або Р2.
Код:[39] для порта Р1 і [3A] для Р2.
0 0 1 1 1 0 р р
Алгоритм: (Рр) (А); р=1-2.
Команда виконується за два машинних цикла. Виводимий байт фіксується в буферному регістрі порту.
Приклад. Вивести вміст регістрів R3 та R4в порти Р1 та Р2 відповідно.
OUTPR : MOV A,R3 ; пересилка R3 в аккумулятор
OUTL P1,A ; вивод в порт Р1
MOV A,R4 ; пересилка R4 в аккумулятор
OUTL P2,A ; вивод в порт Р2
OUTL BUS,A
Вивод з аккумулятора в порт BUS
Код:[02]
0 0 0 0 0 0 1 0
(BUS) (A).
Команда виконується за два машинних цикли. Байт данних з аккумулятора передається та фіксується в буферному регістрі порта BUS до тих пір, пока він не змінюється черговою командою OUTL або любою командою (наприклад, MOVX при роботі з зовнішньою памяттю), яка вимагає використання порта BUS. Виключенням являється тільки команда INS, по якій виконується через порт BUS стробуємий ввод байта, але в регістрі порта BUS раніше виведений по команді OUTL байт данних зберігається. Ця особливість двонаправленних схем порта BUS може еффективно використовуватись розробником.
ANL Pp,#d.
Виконання логічної операції І порту Р1 або Р2 та маски, що задається безпосереднім операндом.
Код:[99] для порта Р1 та [9A] для порта Р2. (Двійковий код в подальшому не приводиться, так як він завжди може бути одержаний з коду команди).
Алгоритм: (Рр) (Рр)d; p=1-2.
Приклад: з поступаючого в порт Р2 байта виділити тільки старшу тетраду.
ANDP2; ANL P2,#0F0H ; наложення маски F016 очистки бітів 0-3 порта Р2
ANL BUS,#d.
Виконання логічної операції І порту BUS та маски , що задається безпосереднім операндом.
Код: [98].
Алгоритм: (BUS) (BUS)d.
ORL Pp,#d
Виконання операції логічне АБО порта Р1 або Р2 та маски, що задається безпосереднім операндом.
Код: [89] для порту Р1 та [8A] для порта Р2.
Алгоритм: (Рр) (Рр)d.
Приклад: встановити код “всі одиниці” в порту Р1.
SETP: ORL P1,#0FFH ; логічне АБО порат Р1 з маскою FF16.
ORL BUS,#d.
Операція логічне АБО порту BUS з маскою, заданою безпосереднім операндом.
Код: [88].
Алгоритм: (BUS) (BUS)d.
MOVD A,Pp
Ввести з порта 4-7 в аккумулятор.
Код: [0%]
Алгоритм: (A0-3) (Pp). (A4-7) 0; p=4-7.
Команда виконується за два машинних цикли. З зовнішнього порту в акку-мулятор приймається тільки молодша тетрада, а старші біти 4-7 обнуляються. Кодування команд вводу-виводу в залежності від номера порта приводиться в таблиці 2.
Табл.2
PORT |
IN |
OUT |
AND |
OR |
BUS |
08 |
02 |
98 |
88 |
P1 |
09 |
39 |
99 |
89 |
P2 |
0A |
3A |
9A |
8A |
P4 |
0C |
3C |
9C |
8C |
P5 |
0D |
3D |
9D |
8D |
P6 |
0E |
3E |
9E |
8E |
P7 |
0F |
3F |
9F |
8F |
MOVD Pp<A
Вивести з аккумулятора в порт 4-7
Код:[3%]
Алгоритм: (Рр) (А0-3): p=4-7.
Команда виконується за два машинних цикли. Молодша тетрада аккумулятора передається в зовнішній порт.
Приклад: вивести вміст аккумулятора в порти 6 та 7.
OUTP: MOVD P6,A ; видати біти 0-3 в порт 6.
SWAP A ; поміняти місцями тетради
MOVD Р7,A ; видати біти 4-7 в порт 7.
ANLD Pp,A
Логічна операція І з маскою з аккумулятора.
Код: [9%]
Алгоритм: (Рр) (Рр)(А0-3); р=4-7.
Команда виконується за два машинних цикли. Вмістом аккумулятора маскуються тільки біти 0-3 порту. Біти 4-7 залишаються незмінними.
ORLD Pp,A.
Логічна операція АБО порта 4-7 з маскою з аккумулятора.
Код: [8%]
Алгоритм: (Рр) (Рр)(А0-3); р=4-7.
Команда виконує операцію, аналогічну попередній.