- •Лабораторна робота № 1 Тема: структура учбової мікропроцесорної лабораторії, клавіатура керування, індикація
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Лабораторна робота № 2 Тема: пам’ять учбової мікропроцесорної лабораторії, дослідження виконання програм в покроковому I автоматичному режимах
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 3 Тема: дослідження програмно-доступних регістрів мікропроцесора кр580ик80
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 4 Тема: вивчення команд пересилання даних.
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 5 Тема: вивчення арифметичних команд
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 6 Тема: вивчення логічних команд
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 7 Тема: вивчення команд переходів
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 8 Тема: вивчення команд введення / виведення, керування і рестарту
- •Коротка інформація
- •Індивідуальне завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 9 Тема: вивчення зв’язків мікролабораторії із зовнішнім середовищем
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 10 Тема: керування клавіатурою і індикаторами мікро лабораторії
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 11 Тема: програмування тимчасових затримок
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 12 Тема: програмне керування пристроями введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 13 Тема: динамічне керування об’єктами введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 14 Тема: імітаційне моделювання передньої панелі вимірювального приладу з вбудованим мп
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 15 Тема: тестування пам’яті мікропроцесорної системи
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 16 5 Тема: макет мікропроцесорної системи охоронної сигналізації на автомобілі
- •Коротка інформація Постановка задачі
- •Інженерна інтерпретація
- •Оцінка системи
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Додаток. Система команд 8–розрядного однокристального мікропроцесора к580ик80а.
- •Література
Індивідуальне завдання на лабораторну роботу
Проаналізувати текст програми, визначити коди символів, що виводяться на ІАР і ІРД.
Підготувати нові коди для зміни цифрових і текстових повідомлень.
Порядок виконання лабораторної роботи
Ввести в пам'ять ЕОМ програми, що розглянуті в розділі короткої інформації.
Відлагодити і виконати програму.
Натискаючи кнопки «Ад +», «Ад –», «Ввод», «Вывод», домогтись появи на ІАР і ІРД повідомлень «СОПР», «НАПР», «0000», «FFFF».
Внести зміни для отримання нових повідомлень і виконати модифікацію програми.
Зробити висновки з роботи.
Контрольні питання
Які оператори в підпрограмі рис. 14.4 забезпечують виведення букви «О»?
Проаналізувати програми рис. 14.3 і 14.6 і вказати, як формуються коди цифр 0 і F.
Як виводяться чотири однакові цифри на ІРД?
Як виконати виведення букв «ПР», що використовуються при виведенні повідомлень «СОПР» і «НАПР», за допомогою спеціальної підпрограми?
Які зміни необхідно внести в програму, щоб перепризначити використовування кнопки і виконати ті ж дії за допомогою кнопок «0», «1», «2», «3»?
Для чого в програмі рис. 14.2 потрібно відновлювати вміст акумулятора?
Лабораторна робота № 15 Тема: тестування пам’яті мікропроцесорної системи
Мета: набути практичних навичок перевірки працездатності вузлів мікропроцесорної системи на прикладі тестування ОЗП
Коротка інформація
Сучасні інформаційно-обчислювальні системи і прилади з вбудованими МП – складні комплекси, до яких виставляють підвищені вимоги щодо забезпечення безвідмовної роботи. Працездатність мікропроцесорних систем треба перевіряти з мінімальними втратами часу і праці. В звичайних вимірювальних приладах і системах для різних перевірок використовують калібратори рівня і частоти, часових інтервалів, форми сигналів і т. ін. Функції контролю параметрів і їх регулювання реалізується через введення додаткових вузлів, а сам контроль здійснюється користувачем.
В мікропроцесорних системах функції контролю повинні виконуватись автоматично, для чого створюються спеціальне програмне забезпечення і комплекс тестових програм. Тести, що є обов’язковим елементом програмного забезпечення системи, виконуються при включенні приладу або, якщо необхідно, — при виконанні спеціальної команди, що задається з пульта керування. Як правило, це кнопка «Сарос», так, наприклад, в мікролабораторії. В ряді випадків при включенні приладу виконується мінімальний контроль працездатності, тому може бути передбачена можливість виконання більш повних тестів з метою виявлення не тільки несправного вузла системи з точністю до плати, а ще й виявлення дефектного вузла на самій платі. До числа обов’язкових тестів треба віднести програми, що забезпечують контроль працездатності процесора, ПЗП і ОЗП, інтерфейсів периферійних пристроїв і самих периферійних пристроїв.
Тест процесора перевіряє правильність виконання команд на прикладах їх виконання з заданими параметрами і порівнянні отриманого результату з заздалегідь визначеним. Більш повний тест виконує всі команди з всіма можливими значеннями параметрів. Для виконання такого тесту потрібно значно більше часу.
Тест ПЗП, як правило, передбачає контроль порозрядних сум всіх слів програми і порівнює отримані контрольні суми з дійсним значенням. Очевидно, що поява зайвої логічної одиниці в будь-якому розряді або її зникнення однозначно вказує на необхідність втручання спеціаліста для ремонту. Оскільки ПЗП реальних систем розміщується в кількох мікросхемах, то контроль може проводитись по кожній мікросхемі, що спрощує процедуру пошуку несправності, але збільшує час тестування.
Контроль інтерфейсів і власне зовнішніх пристроїв полягає в їх програмуванні і виконанні спеціальних процедур введення / виведення. Наприклад, для дисплеїв і друкуючих пристроїв (принтерів) здійснюється виведення спеціальних символьних послідовностей для контролю правильного виведення і відображення всіх можливих символів.
В цій лабораторній роботі докладно розглянутий контроль функціонування ОЗП, який є обов’язковим елементом будь-яких мікропроцесорних систем. Тест ОЗП використовується не тільки для контролю його працездатності в приладі, а і в процесі проектування і виготовлення. При виготовленні будь-яких вузлів мікропроцесорних систем складаються спеціальні тести, що дозволяють полегшити процес відлагодження, який є найбільш відповідальним і складним.
Контроль ОЗП можна виконати простою подачею "решітки" 0 і 1 по кожній з адрес. Для мікропроцесорної системи з процесором типу КР580ВМ80А це послідовності 0101 0101 і 1010 1010 або 55 і AA в 16-ковому коді. Послідовно записуючи за всіма адресами код 55 і перевіряючи правильність результату, виконуючи читання з порівнянням за всіма адресами спочатку 55, а потім AA, можна зробити висновок про те, що по всім розрядам всього масиву пам’яті можна виконувати запис 0 і 1. Такий тест не перевіряє можливість обриву або короткого замикання по адресним лініям. Для повної перевірки необхідний більш складний тест.
Адреса |
Код команди |
Мітка |
Мнемоніка команди |
Коментар |
|
8030 |
|
INCR: |
INX |
H |
; Збільшення HL на 1 |
8031 |
|
|
RET |
|
; Повернення |
Рис. 15.1. Модифікація адреси вічка пам’яті.
Розглянемо процедуру тестування ОЗП мікролабораторії. Передусім необхідно організувати підпрограму модифікації адреси INCR, для чого скористаємось програмою рис. 15.1.
Адреса |
Код команди |
Мітка |
Мнемоніка команди |
Коментар |
|
8035 |
|
BEG: |
LXI |
H, 8025 |
; Завантаження початкової адреси ділянки ОЗП, що тестується |
8038 |
|
|
MOV |
B, M |
; Пересилання вмісту вічка за |
8039 |
|
|
INX |
H |
; адресою 8025 в регістри H, L |
803A |
|
|
MOV |
C, M |
; – спочатку завантажується |
803B |
|
|
MOV |
L, B |
; молодший, а потім старший |
803C |
|
|
MOV |
H, C |
; байти |
803D |
|
|
RET |
|
|
Рис. 15.2. Підготовка початкової адреси в H, L.
Початкова і кінцева адреси ділянки пам’яті, що тестується вкажемо в спеціально виділених вічках пам’яті. Оскільки адреса складається з 16 двійкових розрядів, то для її позначення потрібно виділяти по два вічка пам’яті. Нехай початкова адреса зберігається за адресами 8025 і 8026, а кінцева – за адресами 8027 і 8028. За непарною адресою ОЗП будемо зберігати молодший байт адреси, а по парному – старший. Завантаження початкової адреси виконаємо за допомогою підпрограми BEG (рис. 15.2), а завантаження кінцевого – з перевіркою на збіг з вмістом пари регістрів H, L підпрограмою FІN (рис. 15.3).
Адреса |
Код команди |
Мітка |
Мнемоніка команди |
Коментар |
|
8040 |
|
FIN: |
XCHG |
|
; Обмін D, E, H, L |
8041 |
|
|
LXI |
H, 8020 |
; Завантаження кінцевої адреси ділянки ОЗП, що тестується |
8044 |
|
|
MOV |
A, M |
; Пересилання старшого байту |
8045 |
|
|
CMP |
D |
; Порівняння старших байтів |
8046 |
|
|
JNZ |
CONT |
; Тест не закінчений |
8049 |
|
|
DCX |
H |
; Зменшення HL на 1 |
804A |
|
|
MOV |
A, M |
; Пересилання молодшого байту |
804B |
|
|
CMP |
E |
; Порівняння молодших байтів |
804C |
|
|
JNZ |
CONT |
; Тест не закінчений |
804F |
|
|
CALL |
STOP |
; Тест закінчений |
8052 |
|
CONT: |
XCHG |
|
; Відновлення H, L |
8053 |
|
|
RET |
|
; Продовження тесту |
Рис. 15.3. Перевірка закінчення тесту.
Ця ж підпрограма забезпечує продовження або завершення тесту. Перевірка на продовження тесту починається з обміну вмісту H, L і D, E пар регістрів. Поточна адреса вічка, перевірка якого здійснюється, переноситься в регістри D, E, а на її місце заноситься адреса, за якою записана кінцева адреса тестування ОЗП. При цьому аналіз збігання адрес буде виконуватись починаючи з старшого байту адреси. Якщо старші байти не співпадають, відновлюється вміст регістрів H, L і тест продовжується. Якщо збігання є, то перевіряється на рівність молодші байти поточної і кінцевої адрес. Якщо вони співпадають, викликається підпрограма STOP (рис. 15.4), інакше, – як і в попередньому випадку, тест продовжується. Підпрограма STOP виводить на ІРД стилізований з урахуванням можливостей семисегментних індикаторів текст «StOP», якщо в усіх вічках ОЗП не було помилок.
Для цього використовуємо вічка пам’яті, які опитуються каналом ПДП (прямого доступу до пам’яті) для виводу на ІРД даних за адресами з 83FC по 83FF. Коди символів, що складають повідомлення:
Адреса |
Код команди |
Мітка |
Мнемоніка команди |
Коментар |
|
8055 |
|
STOP: |
LXI |
H, 83FC |
Завантаження регістрів H, L |
8058 |
|
|
MVI |
A, 6D |
адресою 83FC. Далі групи |
805A |
|
|
MOV |
M, A |
S по три команди послідовно |
805B |
|
|
INX |
H |
виводять текст “StOP” |
805C |
|
|
MVI |
A, 78 |
|
805E |
|
|
MOV |
M, A |
t |
805F |
|
|
INX |
H |
|
8060 |
|
|
MVI |
A, 3F |
|
8062 |
|
|
MOV |
M, A |
O |
8063 |
|
|
INX |
H |
|
8064 |
|
|
MVI |
A, 73 |
P |
8066 |
|
|
MOV |
M, A |
|
8067 |
|
|
HLT |
|
|
Рис. 15.4. Підпрограма виведення повідомлення StOP і зупинення.
Підпрограма STOP завершує програму тесту ОЗП і зупиняє мікролабораторію. Якщо в процесі тестування будуть виявлені помилки, тобто записане у вічко пам’яті повідомлення і повідомлення, яке зчитане по цій же адресі, не співпадають, то процес тестування припиняється і на індикатори виводиться стилізоване повідомлення Error, яке формується підпрограмою ERR (рис. 15.5). Підпрограма виконана по аналогії з підпрограмою STOP.
Коди символів, що виводяться на індикатор, завантажуються в ОЗП з адреси 83FB до 83FF і мають значення:
Вивчивши текст програми рис. 15.5, можна припустити, що три старших розряди ІАР не змінюють свого поточного значення, в чому і потрібно впевнитись при виконанні програми.
Адреса |
Код команди |
Мітка |
Мнемоніка команди |
Коментар |
|
8070 |
|
ERR: |
LXI |
H, 83FB |
Завантаження регістрів H, L |
8073 |
|
|
MVI |
A, 39 |
адресою 83FB. Далі групи |
8075 |
|
|
MOV |
M, A |
E по три команди послідовно |
8076 |
|
|
INX |
H |
виводять текст “ErrOr” |
8077 |
|
|
MVI |
A, 50 |
|
8079 |
|
|
MOV |
M, A |
r |
807A |
|
|
INX |
H |
|
807B |
|
|
MVI |
A,50 |
|
807D |
|
|
MOV |
M, A |
r |
807E |
|
|
INX |
H |
|
807F |
|
|
MVI |
A, 3F |
|
8081 |
|
|
MOV |
M, A |
O |
8082 |
|
|
INX |
H |
|
8083 |
|
|
MVI |
A,50 |
r |
8085 |
|
|
MOV |
M, A |
|
8086 |
|
|
HLT |
|
|
Рис. 15.5. Підпрограма виведення повідомлення “ErrOr” і зупинення.
Текст основної програми, яка викликає описані підпрограми, показана на рис. 15.6. Студенти повинні самостійно розібрати роботу програми і відобразити її у вигляді схеми.
Адреса |
Код команди |
Мітка |
Мнемоніка команди |
Коментар |
|
8000 |
|
|
CALL |
BEG |
; Пуск |
8003 |
|
|
LDA |
CONST |
; Завантаження константи |
8006 |
|
|
MOV |
B, A |
; для тестування ОЗП |
8007 |
|
COUNT: |
MOV |
M, B |
; Запис у вічко |
8008 |
|
|
MOV |
A, M |
; Читання вічка |
8009 |
|
|
CMP |
B |
; Порівняння |
800A |
|
|
CNZ |
ERR |
; Помилка |
800D |
|
|
CZ |
FIN |
; Перевірка закінчення |
8010 |
|
|
CALL |
INCR |
; Наступне вічко |
8013 |
|
|
JMP |
COUNT |
; Продовжити тест |
8016 |
|
|
HLT |
|
; Зупинення |
Рис. 15.6. Основна програма тесту ОЗП.
Для роботи програми необхідно попередньо занести в ОЗП додаткову інформацію за адресами.
Отже, пускова адреса програми – 8000. Програму рекомендується виконувати, завантажуючи у вічко 8020 послідовно 00, FF, 55, AA і працюючи з областю пам’яті з 8100 до 8200. Якщо мікролабораторія справна, то в усіх випадках буде виводитись повідомлення StOP. Якщо тепер виконати ті ж дії, але з фіктивною областю пам’яті, наприклад, з адреси 9000 до 9200, то при всіх значеннях тестуючого коду, крім FF, буде виводитись повідомлення ErrOr.
Цей приклад знайомить із структурою і організацією найпростішого тесту, на основі якого можна побудувати тестуючи програми для контролю будь-яких вузлів системи.