Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні роботи Степаненко.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
2.5 Mб
Скачать

Контрольні запитання

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 не використовуються).

При будь-якому методі читання значення рахунку повинно читатись згідно з форматом програмування: якщо лічильник програмується на два байти зчитуван- ня, два байти і повинні бути прочитані.