
- •Лабораторна робота № 1 Тема: структура учбової мікропроцесорної лабораторії, клавіатура керування, індикація
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Лабораторна робота № 2 Тема: пам’ять учбової мікропроцесорної лабораторії, дослідження виконання програм в покроковому I автоматичному режимах
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 3 Тема: дослідження програмно-доступних регістрів мікропроцесора кр580ик80
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 4 Тема: вивчення команд пересилання даних.
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 5 Тема: вивчення арифметичних команд
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 6 Тема: вивчення логічних команд
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 7 Тема: вивчення команд переходів
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 8 Тема: вивчення команд введення / виведення, керування і рестарту
- •Коротка інформація
- •Індивідуальне завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 9 Тема: вивчення зв’язків мікролабораторії із зовнішнім середовищем
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 10 Тема: керування клавіатурою і індикаторами мікро лабораторії
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 11 Тема: програмування тимчасових затримок
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 12 Тема: програмне керування пристроями введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 13 Тема: динамічне керування об’єктами введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 14 Тема: імітаційне моделювання передньої панелі вимірювального приладу з вбудованим мп
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 15 Тема: тестування пам’яті мікропроцесорної системи
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 16 5 Тема: макет мікропроцесорної системи охоронної сигналізації на автомобілі
- •Коротка інформація Постановка задачі
- •Інженерна інтерпретація
- •Оцінка системи
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Додаток. Система команд 8–розрядного однокристального мікропроцесора к580ик80а.
- •Література
Порядок виконання лабораторної роботи
1. Занести в пам'ять мікролабораторії програму
2. Перевірити правильність введення.
3. Відпрацювати в автоматичному режимі всі стани автомата системи охоронної сигналізації згідно графу (рис. 16.1).
Контрольні питання
1. Пояснити програмну реалізацію процедури введення секретного коду.
2. Пояснити взаємодію елементів МП-системи при реалізації стану ЧЕКАННЯ та ОХОРОНА.
3. Де зберігаються коди введених водієм цифр секретного коду при постановці на. охорону?
4. Пояснити алгоритм утворення коду натиснутої клавіші при введенні секретного коду водієм після відкривання дверей.
5. Які програми «Монітору» використані в макеті?
6. Для чого потрібні команди, що розташовані за адресами 8002–8006?
Додаток. Система команд 8–розрядного однокристального мікропроцесора к580ик80а.
Мнемокод |
Операція |
Ознаки |
Коментар |
Група команд пересилання |
|||
MOV R1, R2 |
(R2) R1 |
Не змінюються |
Вміст R2 копіюється в R1 |
MOV R, M |
(M(HL)) R |
Не змінюються |
Вміст вічка пам’яті за адресою, що є вмістом регістрів H, L, копіюється в R |
MOV M, R |
(R) M(HL) |
Не змінюються |
Вміст регістра R копіюється у вічко пам’яті за адресою, що є вмістом регістрів H, L |
XCHG |
(HL) (DE) |
Не змінюються |
Обмін вмістом двох пар регістрів (H, L) і (D, E) |
SPHL |
(HL) SP |
Не змінюються |
Вміст пари регістрів H, L копіюється в укажчик стеку SP |
LDAX RhRl |
(M(RhRl)) A |
Не змінюються |
Вміст вічка пам’яті за адресою, що є вмістом пари регістрів RhRl, копіюється в регістр А |
STAX RhRl |
(A) M(RhRl) |
Не змінюються |
Вміст регістра А копіюється у вічко пам’яті за адресою, що є вмістом пари регістрів RhRl |
LDA ** |
(M(**)) A |
Не змінюються |
Вміст вічка пам’яті за адресою, що безпосередньо вказана в команді, копіюється в регістр А |
STA ** |
(A) M(**) |
Не змінюються |
Вміст регістра А копіюється у вічко пам’яті за адресою, що безпосередньо вказана в команді |
LHLD ** |
(M(**)) L (M(**+1)) H |
Не змінюються |
Вміст вічка пам’яті за адресою, що безпосередньо вказана в команді, копіюється в регістр L і вміст вічка пам’яті за адресою, що на одиницю більша безпосередньо вказаної в команді — в регістр H |
SHLD ** |
(L) M(**) (H) M(**+1) |
Не змінюються |
Вміст регістра L копіюється у вічко пам’яті за адресою, що безпосередньо вказана в команді, і вміст регістр H копіюється у вічко пам’яті за адресою, що на одиницю більша безпосередньо вказаної в команді |
MVI R, # |
# R |
Не змінюються |
Другий байт команди завантажується в регістр R |
MVI M, # |
# M(HL) |
Не змінюються |
Другий байт команди завантажується у вічко пам’яті за адресою, що є вмістом регістрів H, L |
LXI RhRl, ## |
## RhRl |
Не змінюються |
Другий байт команди завантажується в старший регістр Rh, а третій байт команди — в молодший регістр Rl регістрової пари RhRl |
PUSH RhRl |
(Rh) M(SP–1) (Rl) M(SP–2) (SP) – 2 SP |
Не змінюються |
Вміст регістрової пари RhRl копіюється в стек (занесення в стек) |
POP RhRl |
(M(SP)) Rl (M(SP+1)) Rh (SP) + 2 SP |
Не змінюються |
Вміст двох вічок стекової області пам’яті копіюються в регістри регістрової пари RhRl (видобування із стека) |
XTHL |
(H) (M(SP)) (L) (M(SP–1)) |
Не змінюються |
Обмін вмістом регістрів H, L і двох вічок стекової області пам’яті |
IN port |
(port) A |
Не змінюються |
Введення інформації з порту вводу/виводу в регістр А |
OUT port |
(A) port |
Не змінюються |
Виведення інформації з регістра А в порту вводу/виводу |
Група команд арифметичних операцій |
|||
ADD R |
(A) + (R) A |
Визначаються ознаки S, Z, AC, P, CY |
До вмісту регістра А додається вміст регістра R. Результат утворюється в регістрі А |
ADD M |
(A) + (M(HL)) A |
Визначаються ознаки S, Z, AC, P, CY |
До вмісту регістра А додається вміст вічка пам’яті за адресою, що є вмістом регістрів H, L. Результат — в регістрі А |
ADC R |
(A) + (R) + (Тг СY) A |
Визначаються ознаки S, Z, AC, P, CY |
До вмісту регістра А додається вміст регістра R і до молодшого розряду утвореної суми додається значення ознаки СY. Результат — в регістрі А |
ADC M |
(A) + (M(HL)) + (Тг СY) A |
Визначаються ознаки S, Z, AC, P, CY |
До вмісту регістра А додається вміст вічка пам’яті за адресою, що є вмістом регістрів H, L, і до молодшого розряду утвореної суми додається значення ознаки СY. Результат — в регістрі А |
DAD RhRl |
(HL) + (RhRl) HL |
Визначається ознака C |
До вмісту регістрової пари H, L (як до двобайтного числа) додається вміст регістрової пари RhRl. Результат — в регістровій парі HL |
SUB R |
(A) – (R) A |
Визначаються ознаки S, Z, AC, P, CY |
Від вмісту регістра А віднімається вміст регістра R. Результат —в регістрі А |
SUB M |
(A) – (M(HL)) A |
Визначаються ознаки S, Z, AC, P, CY |
Від вмісту регістра А віднімається вміст вічка пам’яті за адресою, що є вмістом регістрів H, L. Результат — в регістрі А |
SBB R |
(A) – (R) – (Тг СY) A |
Визначаються ознаки S, Z, AC, P, CY |
Від вмісту регістра А віднімається вміст регістра R і від молодшого розряду утвореної різниці віднімається значення ознаки СY. Результат — в регістрі А |
SBB M |
(A) – (M(HL)) – (Тг СY) A |
Визначаються ознаки S, Z, AC, P, CY |
Від вмісту регістра А віднімається вміст вміст вічка пам’яті за адресою, що є вмістом регістрів H, L, і від молодшого розряду утвореної різниці віднімається значення ознаки СY. Результат — в регістрі А |
INR R |
(R) + 1 R |
Визначаються ознаки S, Z, AC, P |
Збільшення на одиницю вмісту регістра R (інкрементування) |
INR M |
(M(HL)) + 1 M(HL) |
Визначаються ознаки S, Z, AC, P |
Збільшення на одиницю вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L (інкрементування) |
DCR R |
(R) – 1 R |
Визначаються ознаки S, Z, AC, P |
Зменшення на одиницю вмісту регістра R (декрементування) |
DCR M |
(M(HL)) – 1 M(HL) |
Визначаються ознаки S, Z, AC, P |
Зменшення на одиницю вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L (декрементування) |
INX RhRl |
(RhRl) + 1 RhRl |
Не змінюються |
До вмісту регістрової пари RhRl (як до двобайтного числа) додається одиниця. Результат — в регістровій парі RhRl |
DCX RhRl |
(RhRl) – 1 RhRl |
Не змінюються |
Від вмісту регістрової пари RhRl (як від двобайтного числа) віднімається одиниця. Результат — в регістровій парі RhRl |
ADI # |
(A) + # A |
Визначаються ознаки S, Z, AC, P, CY |
До вмісту регістра А додається другий байт команди. Результат утворюється в регістрі А |
ACI # |
(A) + # + (Тг СY) A |
Визначаються ознаки S, Z, AC, P, CY |
До вмісту регістра А додається другий байт команди і до молодшого розряду утвореної суми додається значення ознаки СY. Результат — в регістрі А |
SUI # |
(A) – # A |
Визначаються ознаки S, Z, AC, P, CY |
Від вмісту регістра А віднімається другий байт команди. Результат утворюється в регістрі А |
SBI # |
(A) – # – (Тг СY) A |
Визначаються ознаки S, Z, AC, P, CY |
Від вмісту регістра А віднімається другий байт команди і від молодшого розряду утвореної різниці віднімається значення ознаки СY. Результат — в регістрі А |
DAA |
(A)2–10 (A)2 |
Визначаються ознаки S, Z, AC, P, CY |
Вміст регістра А трансформується з двійкової форми в двійково–десяткову |
|
|
|
|
Група команд логічних операцій |
|||
ANA R |
(Ai) (Ri) Ai (i = 07) |
Визначаються ознаки S, Z, P. CY = 0; AC = A3. |
Операція порозрядного логічного множення вмісту регістра А і вмісту регістра R. Результат — в регістрі А |
XRA R |
(Ai) (Ri) Ai (i = 07) |
Визначаються ознаки S, Z, P. CY = AC = 0. |
Операція порозрядного логічного додавання за mod 2 вмісту регістра А і вмісту регістра R. Результат — в регістрі А |
ORA R |
(Ai) V (Ri) Ai (i = 07) |
Визначаються ознаки S, Z, P. CY = AC = 0. |
Операція порозрядного логічного додавання вмісту регістра А і вмісту регістра R. Результат — в регістрі А |
CMP R |
(A) – (R) |
Визначаються ознаки S, Z, AC, P, CY |
Порівняння вмісту регістрів A і R. Якщо (A) = (R), то (Z) = 1. Якщо (A) < (R), то (CY) = 1 і (Z) = 0 |
ANA M |
(Ai) (M(HL)i) Ai (i = 07) |
Визначаються ознаки S, Z, P. CY = 0; AC = A3. |
Операція порозрядного логічного множення вмісту регістра А і вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L. Результат — в регістрі А |
XRA M |
(Ai) (M(HL)i) Ai (i = 07) |
Визначаються ознаки S, Z, P. CY = AC = 0. |
Операція порозрядного логічного додавання за mod 2 вмісту регістра А і вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L. Результат — в регістрі А |
ORA M |
(Ai) V (M(HL)i) Ai (i = 07) |
Визначаються ознаки S, Z, P. CY = AC = 0. |
Операція порозрядного логічного додавання вмісту регістра А і вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L. Результат — в регістрі А |
CMP M |
(A) – (M(HL)) |
Визначаються ознаки S, Z, AC, P, CY |
Порівняння вмісту регістра A і вмісту вічка пам’яті за адресою, що є вмістом регістрів H, L. Якщо (A) = (M(HL)), то (Z) = 1. Якщо (A) < (M(HL)), то (CY) = 1 і (Z) = 0 |
ANI # |
(Ai) #i Ai (i = 07) |
Визначаються ознаки S, Z, P. CY = 0; AC = A3. |
Операція порозрядного логічного множення вмісту регістра А і другого байту команди. Результат — в регістрі А |
XRI # |
(Ai) #i Ai (i = 07) |
Визначаються ознаки S, Z, P. CY = AC = 0. |
Операція порозрядного логічного додавання за mod 2 вмісту регістра А і другого байту команди. Результат — в регістрі А |
ORI # |
(Ai) V #i Ai (i = 07) |
Визначаються ознаки S, Z, P. CY = AC = 0. |
Операція порозрядного логічного додавання вмісту регістра А і другого байту команди. Результат — в регістрі А |
CPI # |
(A) – # |
Визначаються ознаки S, Z, AC, P, CY |
Порівняння вмісту регістра A і другого байту команди. Якщо (A) = (M(HL)), то (Z) = 1. Якщо (A) < (M(HL)), то (CY) = 1 і (Z) = 0 |
RLC |
Зсув вліво |
(A7) CY, AC = 0 |
Циклічний зсув вліво на один розряд. Значення 7–го розряду копіюється в тригер ознаки СY |
RRC |
Зсув вправо |
(A0) CY, AC = 0 |
Циклічний зсув вправо на один розряд. Значення 0–го розряду копіюється в тригер ознаки СY |
RAL |
Зсув вліво через тригер ознаки СY |
(A7) CY, AC = 0 |
Циклічний зсув вліво на один розряд. В кільце зсуву включений тригер ознаки СY |
RAR |
Зсув вправо через тригер ознаки СY |
(A0) CY, AC = 0 |
Циклічний зсув вправо на один розряд. В кільце зсуву включений тригер ознаки СY |
CMA |
(A) A |
Не змінюються |
Інвертування розрядів регістра А |
CMC |
(ТгСY) Тг СY |
СY |
Інвертування ознаки СY |
STC |
1 Тг СY |
СY = 1 |
Встановлення в “1” ознаки СY |
Група команд передачі керування |
|||
PCHL |
(HL) PС |
Не змінюються |
Безумовна передача керування за вказаною в регістрах HL адресою |
JMP ** |
** PС |
Не змінюються |
Безумовна передача керування за вказаною в команді адресою |
J(умова) ** |
Якщо умова виконується, то ** PС, інакше PC+1 PС
|
Не змінюються |
Передача керування при виконанні вказаної в команді умови. Якщо умова не виконується — перехід до наступної за програмою команди |
CALL ** |
(PC)h M(SP – 1) (PC)l M(SP – 2) SP – 2SP ** PC |
Не змінюються |
Передача керування (звертання) до підпрограми за адресою, що вказана в команді, і зберігання адреси повернення з підпрограми в стеку |
С(умова) ** |
Якщо умова виконується, то див. попередню команду, інакше PC+1 PС |
Не змінюються |
Умовна передача керування (звертання) до підпрограми за адресою, що вказана в команді, і зберігання адреси повернення з підпрограми в стеку |
RET |
(M(SP)) PC l (M(SP+1)) PC h (SP) + 2 SP |
Не змінюються |
Повернення з підпрограми до місця звертання за адресою, що видобувається зі стеку |
R(умова) |
Якщо умова виконується, то див. попередню команду, інакше PC+1 PС |
Не змінюються |
Умовне повернення з підпрограми до місця звертання за адресою, що видобувається зі стеку |
RST n |
(PC)h M(SP – 1) (PC)l M(SP – 2) SP – 2SP n8 PC |
Не змінюються |
Звертання до підпрограми обробки переривання за адресою, що відповідає номеру переривання n |
Група спеціальних команд |
|||
EI |
1 Тгдозв пере-вань |
Не змінюються |
Дозвіл переривань |
DI |
0 Тгдозв пере-вань |
Не змінюються |
Заборона переривань |
HTL |
Зупинка |
Не змінюються |
Зупинка роботи МП до появи сигналу “запит на переривання” |
NOP |
|
Не змінюються |
Пуста операція |