- •Лабораторна робота № 1 Тема: структура учбової мікропроцесорної лабораторії, клавіатура керування, індикація
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Лабораторна робота № 2 Тема: пам’ять учбової мікропроцесорної лабораторії, дослідження виконання програм в покроковому I автоматичному режимах
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 3 Тема: дослідження програмно-доступних регістрів мікропроцесора кр580ик80
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 4 Тема: вивчення команд пересилання даних.
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 5 Тема: вивчення арифметичних команд
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 6 Тема: вивчення логічних команд
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 7 Тема: вивчення команд переходів
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 8 Тема: вивчення команд введення / виведення, керування і рестарту
- •Коротка інформація
- •Індивідуальне завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 9 Тема: вивчення зв’язків мікролабораторії із зовнішнім середовищем
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 10 Тема: керування клавіатурою і індикаторами мікро лабораторії
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 11 Тема: програмування тимчасових затримок
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 12 Тема: програмне керування пристроями введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 13 Тема: динамічне керування об’єктами введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 14 Тема: імітаційне моделювання передньої панелі вимірювального приладу з вбудованим мп
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 15 Тема: тестування пам’яті мікропроцесорної системи
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 16 5 Тема: макет мікропроцесорної системи охоронної сигналізації на автомобілі
- •Коротка інформація Постановка задачі
- •Інженерна інтерпретація
- •Оцінка системи
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Додаток. Система команд 8–розрядного однокристального мікропроцесора к580ик80а.
- •Література
Індивідуальне завдання на лабораторну роботу
1. Перевести програму рис. 9.4 і 9.5 в коди МП КР580ИК80.
2. Скласти алгоритми цих програм.
3. Скласти індивідуальну програму, що забезпечує безперервне послідовне виведення двох тональних сигналів.
Порядок виконання лабораторної роботи
1. Завантажити в пам’ять програму рис. 9.4 і виконати її.
2. Завантажити в пам’ять програму рис. 9.5 і виконати її.
3. Завантажити в пам’ять індивідуальну програму і виконати її.
4. Скласти висновки з роботи.
Контрольні питання
1. Як запрограмувати порти А і С на введення, а порт В – на виведення ?
2. Що визначає біт D7 в керуючому слові ?
3. Призначення порту С в режимах 1 і 2.
4. Чи можна запрограмувати розряди 0 ... З порту С на виведення, а розряди 4 ... 7 – на введення ? Який формат керуючого слова при цьому ?
5. Чи можна прочитати вміст РКС ?
6. Пояснити послідовність сканування клавіатури.
Лабораторна робота № 10 Тема: керування клавіатурою і індикаторами мікро лабораторії
Мета: вивчити програмування клавіатури і режим прямого доступу до пам'яті для обслуговування семисегментних індикаторів
Коротка інформація
Клавіатура уявляє собою набір кнопок (ключів), організованих у вигляді матриці 3 8. Кожний ряд з восьми кнопок опитується окремо (див. лаб. роб. № 9). Зчитані дані перетворюються в код, відповідний натиснутій кнопці, за допомогою програми монітору KEYIN (адреса 0216). Звертання до цієї програми здійснюється за допомогою команди CALL KEYIN. Після повернення в акумуляторі процесора буде міститись код натиснутої кнопки (рис. 10.1). Цю програму монітору користувач може використовувати для читання клавіатури. Вона забезпечує ряд додаткових функцій, однак в конкретних програмах користувача може виявитись надмірною.
Кнопка |
Код |
Кнопка |
Код |
Кнопка |
Код |
0 |
00 |
8 |
08 |
ПУСК |
10 |
1 |
01 |
9 |
09 |
ВОЗВР |
11 |
2 |
02 |
A |
0A |
УСТ.АД |
12 |
3 |
03 |
B |
0B |
АД+ |
13 |
4 |
04 |
C |
0C |
АД– |
14 |
5 |
05 |
D |
0D |
ЗАПИСЬ |
15 |
6 |
06 |
E |
0E |
ВЫВОД |
16 |
7 |
07 |
F |
0F |
ВВОД |
17 |
Рис. 10.1. Коди кнопок мікролабораторії.
Розглянемо програму (рис. 10.2), яка викликає звуковий сигнал, якщо натиснута кнопка 7. Клавіатура читається за допомогою описаної раніше програми KEYIN, яка заносить код натиснутої клавіші в акумулятор. Команда CPI 07 встановлює прапорець Z, якщо вміст акумулятора дорівнює 07. Якщо прапорець Z встановлений, буде звертання до підпрограми BEEP (адреса 0350). Потім процес повторюється. Отже, звуковий сигнал буде генеруватись при натисканні кнопки 7.
Адреса |
Код команди |
Мітка |
Мнемоніка |
Коментар |
|
8000 |
|
READ: |
CALL |
KEYIN |
Читання клавіатури |
8003 |
|
|
CPI |
07 |
Порівняння з кодом «7» |
8005 |
|
|
JNZ |
READ |
Повернення |
8008 |
|
|
CALL |
BEEP |
Звуковий сигнал |
800B |
|
|
JMP |
READ |
Повернення |
Рис. 10.2. Програма виклику звукового сигналу.
На рис. 10.3 показана спрощена схема клавіатури. За один цикл зчитуються дані одного рядка з восьми кнопок. Для прикладу розглянемо тільки один ряд, тобто кнопки 0 ... 7. Читання рядка ключів уявляє собою двокрокову операцію: запис даних в скануючий порт для вибору кнопок і читання байта даних читаючим портом.
Рис. 10.3. Спрощена схема клавіатури.
Для вибору певного рядка кнопок відповідний біт скануючого порту (C4, C5 або C6) встановлюється в стан логічної одиниці, а інші біти залишаються рівними логічному нулю. Отже, щоб вибрати ряд кнопок 0 ... 7, потрібно послати в порт з адресою FA код 10011111 (9F), щоб вибрати ряд кнопок 8 ... F — код 10101111 (AF) і щоб вибрати одну з керуючих кнопок — код 11001111 (CF). Біти 0 ... 3 і 7 порту C не використовуються при скануванні клавіатури і встановлюються рівними логічній одиниці.
Щоб зчитати дані з рядку 0 ... 7, в порт з адресою FA надсилається байт 9F, а вхідний порт з адресою F8 сприймає інформацію з відповідних кнопок. При натисканні певної кнопки відповідний біт читаючого порту буде встановлений в нуль, а інші біти залишаться в одиничному стані (рис. 10.4).
Для здійснення цієї послідовності дій необхідно виконати програму
MVI |
A, 9F |
; вибір рядка кнопок |
OUT |
FA |
; 0…7 |
IN |
F8 |
; читання кнопок 0…7 |
Кнопка |
Коди, що читаються (двійкові) |
Коди, що читаються (16-кові) |
|||
Нема натиснутих кнопок |
1111 |
1111 |
FF |
||
0, |
8, |
Пуск |
1111 |
1110 |
FE |
1, |
9, |
Возвр |
1111 |
1101 |
FD |
2, |
A, |
Уст.ад |
1111 |
1011 |
FB |
3, |
B, |
АД– |
1111 |
0111 |
F7 |
4, |
C, |
АД+ |
1110 |
1111 |
EF |
5, |
D, |
Запись |
1101 |
1111 |
DF |
6, |
E, |
Вывод |
1011 |
1111 |
BF |
7, |
F, |
Ввод |
0111 |
1111 |
7F |
Рис. 10.4. Коди, що читаються з клавіатури.
Програма KEYIN, що описана раніше, не тільки сканує клавіатуру, а й перетворює коди, що читаються з колонок (в залежності від вибраного рядка), в коди, що показані на рис. 10.1.
На рис. 10.6 показана програма для перевірки стану кнопки 6, яка використовує описаний раніше спосіб читання клавіатури. Якщо вона натиснута, то генерується звуковий сигнал.
Програма RESET розміщена в ПЗП, починаючи з адреси 0269.
Фактор, який необхідно враховувати при читанні з клавіатури, – виникнення так званого ефекту «бряжчання» (рис. 10.5), який утворюється при переключенні контактів з одного фіксованого стану в інший. Явище бряжчання може бути виключене апаратно або за допомогою спеціальної підпрограми. В мікро лабораторії використовуються обидва способи: використовуються кнопки з вбудованим тригером, що не створює бряжчання, і підпрограма KEYIN, яка, визначивши натискання кнопки, відключається від клавіатури на 50 мс, щоб не читати під час бряжчання. Потім клавіатура сканується до моменту, поки ключ не відпущений, і знову зводиться 50 мс затримки, щоб виключити бряжчання при відпусканні кнопки.
Рис. 10.5. “Бряжчання” кнопки.
Адреса |
Код команди |
Мітка |
Мнемоніка |
Коментар |
|
8000 |
|
ABC: |
CALL |
RESET |
Вибір рядка кнопок, в |
8003 |
|
|
MVI |
A, 9F |
якому знаходиться кноп- |
8005 |
|
|
OUT |
FA |
ка «6» |
8007 |
|
RE: |
IN |
FB |
Читання коду з обраного рядка кнопок |
8009 |
|
|
CPI |
BF |
Порівняння з кодом «6» |
800B |
|
|
JNZ |
RE |
Якщо коди не співпадають, – перехід на повтор читання |
800E |
|
|
CALL |
BEEP |
Якщо співпадають, – звуковий сигнал |
8011 |
|
|
JMP |
ABC |
Повторення програми |
Рис. 10.6. Програма перевірки стану кнопки "6".
Індикатори, як і кнопки, програміст може використовувати для своїх цілей. Кожному індикатору відповідає вічко пам’яті, де зберігається семисегментний код, який керує засвіченням сегментів індикатора. Інформація з цих вічок надсилається на індикатори за допомогою спеціальної схеми, що забезпечує динамічний режим індикації, який здійснюється в режимі прямого доступу до пам’яті (ПДП4) за допомогою спеціального генератора, що опитує вічка з інтервалом 2 мс. Генератор виставляє сигнал «Захоплення» (HOLD), сприйнявши який, МП завершує поточний машинний цикл, і призупиняє подальше виконання команди програми. На підтвердження прийому і обробки сигналу HOLD МП виставляє сигнал підтвердження захоплення (HOLDA), вказуючи каналу ПДП про те, що його виходи до шин переведені в третій стан і шини вільні. Із спеціального лічильника виставляється адреса вічка пам’яті, яке містить інформацію про код, що індиціюється на певному сегменті, і вміст цього вічка виводиться на індикатор. Лічильник збільшує адресу на одиницю, і вміст наступного вічка передається на сусідній індикатор. Після завершення сканування всіх восьми вічок ОЗП схема знімає сигнал HOLD, процесор прибирає сигнал підтвердження HOLDA і продовжує виконання призупиненої програми. Отже, для виводу відповідної інформації на ІАР і ІРД необхідно підготувати потрібні коди за адресами 83F8 ... 83FF. Вічко з адресою 83F8 відповідає лівому індикатору, а з адресою 83FF – правому. Аналогічне сканування можна здійснити за допомогою власної програми.
Монітор мікролабораторії містить програму SEGGG (адреса початку програми 01C0), яка перетворює 16-річні коди в семисегментні і переносить їх у вказані вічка. Вихідні дані для програми SEGCG повинні знаходитись у вічках 83F4 ... 83F7. Кожний байт з цих вічок відповідає парі індикаторів: вміст вічка 83F4 після перетворення висвітлиться на двох лівих індикаторах, вміст вічка 83F7 – на двох правих. На рис. 10.7 зображена програма, яка забезпечує за допомогою підпрограми SEGCG вивід групи цифр 1 2 3 4 A B C D.
Адреса |
Код команди |
Мнемоніка команди |
Коментар |
|
8000 |
|
MVI |
A, 12 |
Завантаження за адре- |
8002 |
|
STA |
83F4 |
сою 83F4 цифр “12” |
8005 |
|
MVI |
A, 34 |
Завантаження за адре- |
8007 |
|
STA |
83F5 |
сою 83F5 цифр “34” |
800A |
|
MVI |
A, AB |
Завантаження за адре- |
800C |
|
STA |
83F6 |
сою 83F6 цифр “AB” |
800F |
|
MVI |
A, CD |
Завантаження за адре- |
8011 |
|
STA |
83F7 |
сою 83F7 цифр “CD” |
8014 |
|
CALL |
SEGGG |
Індикація |
8017 |
|
HLT |
|
Зупинення |
Рис. 10.7. Демонстраційна програма індикатора.
Біт |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Сегмент |
H |
G |
F |
E |
D |
C |
B |
A |
Рис. 10.8. Відповідність розрядів і сегментів.
