- •Лабораторна робота № 1 Тема: структура учбової мікропроцесорної лабораторії, клавіатура керування, індикація
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Лабораторна робота № 2 Тема: пам’ять учбової мікропроцесорної лабораторії, дослідження виконання програм в покроковому I автоматичному режимах
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 3 Тема: дослідження програмно-доступних регістрів мікропроцесора кр580ик80
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 4 Тема: вивчення команд пересилання даних.
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 5 Тема: вивчення арифметичних команд
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 6 Тема: вивчення логічних команд
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 7 Тема: вивчення команд переходів
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 8 Тема: вивчення команд введення / виведення, керування і рестарту
- •Коротка інформація
- •Індивідуальне завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 9 Тема: вивчення зв’язків мікролабораторії із зовнішнім середовищем
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 10 Тема: керування клавіатурою і індикаторами мікро лабораторії
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 11 Тема: програмування тимчасових затримок
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 12 Тема: програмне керування пристроями введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 13 Тема: динамічне керування об’єктами введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 14 Тема: імітаційне моделювання передньої панелі вимірювального приладу з вбудованим мп
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 15 Тема: тестування пам’яті мікропроцесорної системи
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 16 5 Тема: макет мікропроцесорної системи охоронної сигналізації на автомобілі
- •Коротка інформація Постановка задачі
- •Інженерна інтерпретація
- •Оцінка системи
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Додаток. Система команд 8–розрядного однокристального мікропроцесора к580ик80а.
- •Література
Інженерна інтерпретація
На рис. 16.1 показаний граф автомата ПОС, в якому є вісім станів, і дуги якого відмічені умовами переходів.
Р1 – дверцята водія. 1 / 0 – закриті/відкриті;
Р2 – всі інші дверцята та кришки. 1 / 0 – закриті/відкрита хоча б одна;
Р3 – потаємний вимикач системи охорони. 1 / 0 – система вкл./викл.
«Ввод» – потаємна кнопка введення коду. 1 / 0 – була натиснута/ненатиснута
Рис. 16.1. Граф автомата ПОС.
У стан ЧЕКАННЯ автомат переводиться тумблером РЗ і введенням секретного коду. В цьому стані ПОС буде знаходитись доки не будуть закриті всі дверцята, капот і багажник автомобіля. Після закриття автомобіля автомат переходить у стан ОХОРОНА. З цього стану автомат може перейти або в стан ТРИВОГА у разі появи сигналу Р2 = 0 або РЗ = 0 (відкрилось одне з дверцят, крім дверцят водія або була спроба відключити ПОС), або, у разі появи сигналу Р1 = 0, в стан РАХУНОК ЧАСУ, в якому запускається програмний таймер на 10 секунд. При цьому МП постійно сканує клавіатуру і контролює надходження сигналу від кнопки «Ввод». Подальші переходи автомату в стан ТРИВОГА або СИГНАЛ «ВИМКНУТИ» визначаються умовами, якими відмічені дуги графа.
Оцінка системи
Програма роботи пристрою охоронної сигналізації автомобіля займає трохи більше за 200 байт пам’яті МП-системи. Це означає, що, по-перше, є можливість значно ускладнити логіку і алгоритм захисту автомобіля від несанкціонованого доступу, а по-друге, крім розглянутої задачі, на МП можна покладати додатково інші задачі керування агрегатами автомобіля, такими, наприклад, як карбюратор, система запалювання, система гальмування і т.п.
ПРОГРАМА РОБОТИ МАКЕТУ МП-СИСТЕМИ ОХОРОННОЇ СИГНАЛІЗАЦІЇ НА БАЗІ “МІКРОЛАБ КР580ИК80”
Адреса |
Команда |
Мітка |
Мнемокод |
Коментар |
|
|
|||||
8000 |
CD C2 80 |
BEGIN: |
CALL BEG |
програмування інтерфейсу: |
|
8003 |
F3 |
|
DI |
заборона переривань |
|
Підготовлення (включення системи — включити тумблер Р3 та введення пароля) |
|||||
8004 |
21 CA 80 |
START: |
LXI H 80CA |
форм. кода адреси 1-ї цифри пароля |
|
8007 |
22 C8 80 |
|
SHLD 80C8 |
завант адр. в ОЗП за адресою 80C0 |
|
800A |
DB FA |
ST1: |
IN FA |
ввод інф. про стан тумбл. в Рг A |
|
800C |
E6 08 |
|
ANI 08 |
виділення стану Р3 (3-й розряд байту) |
|
800E |
FE 08 |
|
CPI 08 |
порівняння вмісу Рг A з кодом 00001000 (08) |
|
8010 |
C2 0A 80 |
|
JNZ ST1 |
якщо Р3=0, перехід на ST1: |
|
8013 |
2A C8 80 |
|
LHLD 80C8 |
читання в Рг HL адреси 1-ї цифри еталонного коду |
|
8016 |
CD 16 02 |
PW: |
CALL KEYIN |
звертання до п/п читання клавіатури |
|
8019 |
47 |
|
MOV B, A |
копіювання повернутого коду в Рг В |
|
801A |
FE FF |
|
CPI FF |
порівняння з кодом FF |
|
801C |
CA 16 80 |
|
JZ PW |
повер. до PW, якщо кл. не натиснута |
|
801F |
70 |
|
MOV M, B |
завант в ОЗП цифри пароля |
|
8020 |
78 |
|
MOV A, B |
копіюван. коду цифри пароля в Рг А |
|
8021 |
FE 17 |
|
CPI 17 |
порівняння з кодом 17 — кл “Ввод” |
|
8023 |
CA 2A 80 |
|
JZ WAIT1 |
перехід на WAIT1, якщо ввод паролю закінчений |
|
8026 |
23 |
|
INX H |
збільшення адреси зчитаного коду |
|
8027 |
C3 16 80 |
|
JMP PW |
продовж. введеня пароля |
|
Очікування (зачинити всі двері і кришки — включити тумблери Р2 та Р1) |
|||||
802A |
CD 50 03 |
WAIT1: |
CALL BEEP |
звуковий сигнал ! |
|
802D |
CD C2 80 |
|
CALL BEG |
відновлення інтерфейсу |
|
8030 |
DB FA |
WAIT: |
IN FA |
ввод інф. про стан тумбл. в Рг A |
|
8032 |
D3 F9 |
|
OUT F9 |
вивод індикації про стан тумблерів |
|
8034 |
E6 0E |
|
ANI 0E |
виділення стану P1,P2,Р3 (1,2,3-й розряд байту) |
|
8036 |
FE 0E |
|
CPI 0E |
порівняння вмісу Рг A з кодом 00001110 (0E) |
|
8038 |
C2 30 80 |
|
JNZ WAIT |
якщо Р1 або Р2 або Р3 1, перехід на WAIT |
|
Охорона (всі двері і кришки повинні бути закритими – тумблери Р1,Р2,Р3 включені) |
|||||
803B |
DB FA |
GUARD: |
IN FA |
ввод інф. про стан тумбл. в Рг A |
|
803D |
E6 0E |
|
ANI 0E |
виділення стану P1,P2,Р3 (1,2,3-й розряд байту) |
|
803F |
FE 0E |
|
CPI 0E |
порівняння вмісу Рг A з кодом 00001110 (0E) |
|
8041 |
CA 3B 80 |
|
JZ GUARD |
якщо стан тмбл =1 - повтор. опиту |
|
Аналіз збудження (який з тумблерів виключений) |
|||||
8044 |
DB FA |
|
IN FA |
ввод інф. про стан тумбл. в Рг A |
|
8046 |
FE 0C |
|
CPI 0C |
порівняння вмісу Рг A з кодом 00001100 (0C) |
|
8048 |
C2 62 80 |
|
JNZ ALARM |
якщо Р2 або Р3 1, перехід на ALARM |
|
10-ти секундна затримка та введення парольного коду |
|||||
804B |
16 01 |
|
MVI D, 01 |
завантаж. в Рг D “1”, що циклічно зсувається |
|
804D |
CD 6D 02 |
|
CALL RESET |
встановлення початкового стану портів інтерфейсу |
|
8050 |
01 11 11 |
DELAY: |
LXI B, 1111 |
завантаж. в Рг В “1111” — const циклу утворення тимчас. затримки |
|
8053 |
0B |
LOOP: |
DCX B |
початок циклу тимчасової затримки |
|
8054 |
7A |
|
MOV A, D |
завантаж. “1”, що циклічно зсувається в Рг А |
|
8055 |
07 |
|
RLC |
зсув “1” для вибору лінійки клавіш |
|
8056 |
57 |
|
MOV D, A |
завантаж. в Рг D нового положення “1”, що циклічно зсувається |
|
8057 |
CD 9B 80 |
|
CALL READ |
читання клавіатури |
|
805A |
78 |
|
MOV A, B |
копіювання 1-го байту Рг ВС в Рг А |
|
805B |
B1 |
|
ORA C |
порівняння Рг-ів А та В з “0” |
|
805C |
C2 53 80 |
|
JNZ LOOP |
якщо лічильник 0, продовження внутрішнього циклу |
|
805F |
00 00 00 |
|
|
|
|
Формування сигналу “Тривога” |
|||||
8062 |
31 C7 37 |
ALARM: |
LXI SP 37C7 |
відновл. початк. знач. вказів-ка стеку |
|
8065 |
DB FA |
|
IN FA |
ввод інф. про стан тумбл. в Рг A |
|
8067 |
E6 08 |
|
ANI 08 |
виділення знач-я 3-го біту (стан Р3) |
|
8069 |
32 C7 80 |
|
STA 80C7 |
копіювання стану тмбл. в 80C7 |
|
806C |
CD 50 03 |
CONT1: |
CALL BEEP |
звуковий сигнал |
|
806F |
CD C2 80 |
|
CALL BEG |
відновлення інтерфейсу |
|
8072 |
DB FA |
|
IN FA |
ввод інф. про стан тумбл. в Рг A |
|
8074 |
E6 08 |
|
ANI 08 |
виділення знач-я 3-го біту (стан Р3) |
|
8076 |
47 |
|
MOV B,A |
копіювання стану тмбл. в Рг B |
|
8077 |
3A C7 80 |
|
LDA 80C7 |
копіювання вих. стану тмбл. з 80BC |
|
807A |
90 |
|
SUB B |
порівняння стану тмбл. з їх вих. станом |
|
807B |
CA 6C 80 |
|
JZ CONT1 |
якщо стан Р3 незмінено - повтор циклу “Тривога” |
|
807E |
C3 04 80 |
|
JMP START |
повернення до нового циклу роботи |
|
Формування сигналу “Вимкнути охорону” |
|||||
8081 |
31 C7 37 |
OFF: |
LXI SP 37C7 |
відновл. початк. знач. вказів-ка стеку |
|
8084 |
CD C2 80 |
|
CALL BEG |
відновлення інтерфейсу |
|
8087 |
DB FA |
|
IN FA |
ввод інф. про стан тумбл. в Рг A |
|
8089 |
E6 08 |
|
ANI 08 |
виділення знач-я 3-го біту (стан Р3) |
|
808B |
47 |
|
MOV B, A |
копіювання стану тмбл. в Рг В |
|
808C |
3E 01 |
CONT2: |
MVI A, 01 |
форм. коду для вкл 8-го світлодіода |
|
808E |
D3 F9 |
|
OUT F9 |
вивод коду на світлодіоди |
|
8090 |
DB FA |
|
IN FA |
ввод інф. про стан тумбл. в Рг A |
|
8092 |
E6 08 |
|
ANI 08 |
виділення знач-я 3-го біту (стан Р3) |
|
8094 |
B8 |
|
CMP B |
порівн. стану тумбл. Р3 з вих. станом |
|
8095 |
CA 90 80 |
|
JZ CONT2 |
якщо стан Р3 незмінено, перехід на CONT2: |
|
8097 |
C3 04 80 |
|
JMP START |
повернення до нового циклу роботи |
|
П/п опиту клавіатури та введення пароля |
|||||
809B |
OF |
READ: |
RRC |
зсув “1” вправо в Рг-і А |
|
809C |
OF |
|
RRC |
зсув “1” вправо в Рг-і А |
|
809D |
E6 18 |
|
ANI 18 |
виділення 3, 4 бітів в Рг-і А |
|
809F |
67 |
|
MOV H, A |
копіювання вмісту Рг А в Рг-і Н |
|
80A0 |
7A |
|
MOV A, D |
завантаж. в Рг А “1”, що пересува-ся |
|
80A1 |
F6 8F |
|
ORI 8F |
поєднання “1”, що пересува-ся з кодом 1000 1111 (8F) |
|
80A3 |
D3 FA |
|
OUT FA |
вивод в порт С |
|
80A5 |
CD 62 02 |
|
CALL WAT |
звертання до вбудов. п/п тимчас. затримки |
|
80A8 |
DB F8 |
|
IN F8 |
ввод з порту А |
|
80AA |
FE FF |
|
CPI FF |
порівняння з кодом ненатис. кл.—FF |
|
80AC |
C8 |
|
RZ |
вихід, якщо клавіша ненатиснута |
|
80AD |
2E 08 |
|
MVI L, 08 |
завантаження в Рг L “8” |
|
80AF |
2D |
M1: |
DCR L |
зменшення вмісту Рг L |
|
80B0 |
17 |
|
RAL |
зсув вліво через Тг С |
|
80B1 |
DA AF 80 |
|
JC M1 |
повтор зсуву та зменш. якщо Тг С 0 |
|
80B4 |
CD 6D 02 |
|
CALL RESET |
встановлення початкового стану портів інтерфейсу |
|
80B7 |
7C |
|
MOV A, H |
відновл. в Рг А вмісту, що зберіг Рг Н |
|
80B8 |
B5 |
|
ORA L |
поєднання в Рг-і А вмісту Рг-ів А і L |
|
80B9 |
2A D8 80 |
|
LHLD 80D8 |
завантаж. в Рг HL адреси поточ. цифри паролю |
|
80BC |
5E |
|
MOV E, M |
копіюван. в Рг Е коду поточ. цифри паролю |
|
80BD |
BB |
|
CMP E |
порівн. оригіналу та зформов. коду |
|
80BE |
C2 62 80 |
|
JNZ ALARM: |
якщо неспівпадання - перехід на ALARM: |
|
80C1 |
7B |
|
MOV A, E |
відновл. в Рг А коду поточ. цифри паролю |
|
80C2 |
FE 17 |
|
CPI 17 |
порівн. зформов. коду з кодом клавіши “Ввод” - 17 |
|
80C4 |
CA 81 80 |
|
JZ OFF: |
якщо співпадання - перехід на OFF: |
|
80C7 |
23 |
|
INX H |
збільш. в Рг HL адреси поточ. цифри паролю - перехід до наступної цифри |
|
80C8 |
22 D8 80 |
|
SHLD 80D8 |
завантаж. в ОЗП адреси поточ. цифри паролю |
|
80CB |
C9 |
|
RET |
вихід |
|
П/п програмування інтерфейсу |
|||||
80D2 |
3E 91 |
BEG: |
MVI A, 91 |
програмування інтерфейсу: |
|
80D4 |
D3 FB |
|
OUT FB |
завантаження в РКС коду 1001 0001 |
|
80D6 |
C9 |
|
RET |
|
|
80D7 |
|
вічко тимчасового зберігання |
|||
80D8 |
|
2-й байт адреси 1-ї цифри пароля |
|||
80D9 |
|
1-й байт адреси 1-ї цифри пароля |
|||
80DA |
|
1-а цифра пароля |
|||
80DB |
|
2-а цифра пароля |
|||
80DC |
|
|
|||
80DD |
|
|
|||
80DE |
|
|
|||
