- •Архітектура комп’ютерів методичний посібник для проведення лабораторних робіт
- •Лабораторна робота № 1 перетворення чисел в машинних кодах
- •Теоретичні відомості
- •1. Формати даних
- •1.1 Природна форма числа
- •1.2 Нормальна форма числа
- •2. Машинні коди чисел
- •2.1 Дії над числами в природній формі
- •2.2 Дії над числами в нормальній формі
- •Методичні вказівки
- •Література
- •Завдання
- •Лабораторна робота № 2 цеом нейманівської архітектури
- •Теоретичні відомості
- •1. Структура еом
- •2. Елементарні машинні операції
- •3. Формати команд та кодування операцій еом
- •Методичні вказівки
- •Література
- •Завдання
- •1. Схема алгоритма розв’язку задачі
- •2. Програма в змістовній формі
- •3. Система операцій еом
- •4. Кодування операцій еом
- •5. Адресна інформація в 16-й системі числення
- •6. Розподіл пам’яті
- •7. Програма в машинних кодах
- •1. Загальні відомості про системи прямого доступу до пам’яті
- •2. Прямий доступ до пам’яті в пеом
- •3. Призначення та формати регістрів кпдп
- •3.1 Регістр станів (stat)
- •3.2 Регістр команд (cr)
- •3.3 Регістр режиму (mod)
- •3.4 Регістр маски (mask)
- •3.5 Регістр запиту (req)
- •3.6 Регістр поточної адреси
- •3.7 Регістр поточного лічильника слів (ccr)
- •3.8 Базові регістри адрес та лічильника (bar та car)
- •3.9 Тимчасовий регістр (tr)
- •3.10 Канали системи пдп пеом
- •4. Ініціалізація кпдп
- •Методичні вказівки
- •Література
- •Завдання
- •Текст програми
- •Контрольні запитання
- •1. Принципи організації системи переривань
- •2. Стани програмованого контролера переривань.
- •3. Призначення та формати операційних слів пкп
- •3.1 Операційне слово ocw1
- •3.2 Операційне слово ocw2
- •3.3 Операційне слово ocw3
- •Методичні вказівки
- •Література
- •Завдання
- •Текст програми
- •Контрольні запитання
- •Лабораторна робота № 5
- •Генерації звуку та випадкових чисел
- •Теоретичні відомості
- •1. Призначення таймера
- •2. Архітектура та принципи функціонування таймера
- •3. Програмування таймера
- •4. Засоби bios для роботи з таймером
- •5. Генерація звукових сигналів
- •6. Генерація випадкових чисел
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 6 вивчення та дослідження методів програмного керування годинником реального часу
- •Теоретичні відомості
- •1. Призначення годинника реального часу
- •2. Призначення та формати регістрів кмон-пам’яті
- •3. Засоби bios для роботи з годинником реального часу
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 7 дослідження режимів роботи послідовних інтерфейсів пеом
- •Теоретичні відомості
- •1. Загальні відомості про інтерфейс
- •2. Використання порту rs232c
- •3. Функції апаратних засобів інтерфейса rs232c
- •4. Формати портів уапп
- •5. Ініціалізація уапп
- •6. Підтримка асинхронного адаптера в bios
- •7. Підтримка асинхронного адаптера в dos
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •1. Призначення та характеристики інтерфейса Centronics
- •2. Опис портів інтерфейса Centronics
- •3. Засоби bios для роботи з принтером
- •Методичні вказівки
- •Література
- •5. Гук м. Аппаратные средства ibm pc. Энциклопедия. – сПб.: “Издательс-тво
- •Завдання
- •Тексти програм
- •Лабораторна робота № 9 дослідження методів програмного керування контролером клавіатури
- •Теоретичні відомості
- •1. Контролер клавіатури pc/at i8042
- •2. Порти контролера клавіатури
- •3. Методи програмного керування клавіатурою
- •4. Коди відповідей клавіатури
- •5. Засоби bios та ms dos для роботи з клавіатурою
- •5.1 Засоби bios
- •5.2 Засоби ms dos
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 10 дослідження методів програмного керування контролером нгмд
- •Теоретичні відомості
- •1. Основні відомості про контролер нгмд
- •2. Програмування контролера нгмд
- •Методичні вказівки
- •Література
- •Завдання
- •2) Записати введений користувачем рядок у сектор s на доріжку t;
- •Контрольні запитання
- •Література
- •1. Гук м. Аппаратные средства ibm pc. – сПб.: “Питер”, 1999. – 816 с.
Контрольні запитання
1. Таблиця адрес векторів переривань ПЕОМ IBM PC/AT, її призначення.
2. Які функціональні вузли входять до складу i8259A? Призначення, харак-
теристики.
3. В яких станах може знаходитися ПКП?
4. Яку структуру переривань підтримує режим фіксованих пріоритетів?
5. Для яких цілей використовується режим маскування переривань?
32
Лабораторна робота № 5
ВИКОРИСТАННЯ ФУНКЦІОНАЛЬНИХ МОЖЛИВОСТЕЙ ТАЙМЕРА ДЛЯ ФОРМУВАННЯ ЧАСОВИХ ІНТЕРВАЛІВ,
Генерації звуку та випадкових чисел
Мета роботи:
навчитись розробляти основні компоненти програми, що формує часові затримки з використанням таймера;
навчитись розробляти програми, що відтворюють звукові сигнали;
навчитись розробляти програми, що формують послідовності випадкових чисел.
Теоретичні відомості
1. Призначення таймера
Програмований таймер призначений для отримання програмно керованих
часових затримок та генерації функцій, що задають час. Програмовані інтервальні таймери дозволяють формувати задані інтервали часу незалежно від швидкодії обчислювальної системи та є одним із засобів забезпечення роботи ПЕОМ у реальному масштабі та виконують:
вимір часових затримок між подіями;
підрахунок числа зовнішніх подій, переривання процесора при досягненні їх запрограмованого числа;
керування процедурою ввімкнення/вимкнення мотора пристрою;
програмування швидкостей передачі даних між пристроями;
розділення часу між програмами.
2. Архітектура та принципи функціонування таймера
Архітектура ПЕОМ PC AT використовує підсистему триканального 16-
розрядного таймера i8254 в якості системного таймера. Таймер містить три незалежні канали, кожний з яких може бути запрограмований на роботу в одному з шести режимів для двійкового або двійково-десяткового рахунку. На кожний канал можуть подаватись вхідні синхросигнали, а на виході буде отримано сигнал, частота якого дорвнює частоті вхідного сигналу, поділеної на довільне 16- розрядне число. В ПЕОМ PC AT вхідні синхросигнали для всіх трьох каналів надходять від єдиного джерела з частотою 1,19 МГц.
3. Програмування таймера
Для роботи в системі таймер повинен бути запрограмований. Порти, що
використовуються для програмування таймера, наведені в таблиці 1. Після ввімкнення живлення стан таймера невизначений.
Режим роботи кожного лічильника визначається при його програмуванні. Кожний лічильник повинен бути запрограмований, перш ніж він буде використо-
вуватись. Не використовувані лічильники не потребують програмування. При
33
програмуванні лічильника спочатку записується керуюче слово, а далі константа рахунку.
Таблиця 1 – Порти, що використовуються для програмування таймера
Адреса порту |
Функція |
040h |
Читання або запис рахунку для лічильника 0 (системний годинник) |
041h |
Читання або запис рахунку для лічильника 1 (запит реге- нерації) |
042h |
Читання або запис рахунку для лічильника 2 (тональний сигнал гучномовця) |
043h |
Запис керуючого слова, команд “читання на льоту” та “обернене читання” |
Процедура програмування таймера дуже гнучка. Необхідно запам’ятати два правила:
1) у кожний лічильник керуюче слово має бути записане перед завантажен-
ням коефіцієнта рахунку;
2) лічильник повинен завантажуватись тією кількістю байтів значення рахунку, яка вказана в керуючому слові (молодший байт, старший байт).
Таблиця 2 – Формат керуючого слова
Біт |
Призначення |
D0 |
Тип рахунку: 0 – двійковий 1 – двійково-десятковий |
D3 – D1 |
Режим роботи каналу: 000 – режим 0 001 – режим 1 10 – режим 2 11 – режим 3 100 – режим 4 101 – режим 5 |
D5, D4 |
Код читання/запису констант рахунку: 00 – “читання на льоту” 01 – читання/запис молодшого байта 10 – читання/запис старшого байта 11 – читання/запис спочатку молодшого байта, а потім старшого байта |
D7, D6 |
Адреса каналу: 00 – канал 0 01 – канал 1 10 – канал 2 11 – “обернене читання” |
34
Є три методи читання з лічильників: просте читання, “читання на льоту” та обернене читання.
Перший метод реалізується простою операцією читання. При читанні
лічильника його робота повинна бути зупинена; у протилежному випадку рахунок може бути змінений у процесі читання та його результат буде невизначеним.
Другий метод – “читання на льоту”. Ця команди дозволяє прочитати поточне
значення лічильника в будь-який момент часу без зупинки рахунку. Формат команди наведений в таблиці 2 (біти D0 – D3 не використовуються).
При будь-якому методі читання значення рахунку повинно читатись згідно з форматом програмування: якщо лічильник програмується на два байти зчитуван- ня, два байти і повинні бути прочитані.
