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

4. Засоби bios для роботи з таймером

Для роботи з таймером (точніше, для роботи з каналом 0 таймера) BIOS має

дві функції переривання 1Ah. Вони дозволяють прочитати поточний вміст лічильника та змінити його. Функція 00h призначена для читання вмісту лічиль- ника таймера:

Вхід: AH = 00h

Вихід: CX – старше слово лічильника;

DX – молодше слово лічильника;

AL = 0, якщо після перезапуску таймера пройшло більше 24 годин. Змінити вміст лічильника таймера можна за допомогою функції 01h:

Вхід: AH = 01h

CX – старше слово лічильника;

DX – молодше слово лічильника.

BIOS комп’ютерів IBM PC AT містить ще дві цікаві функції для роботи з таймером: 83h та 86h переривання 15h. Функція 83h дозволяє запустити таймер на

рахунок, вказавши адресу деякого байта в оперативній пам’яті. Після закінчення часу, заданого при запуску таймера, функція встановлює старший біт вказаного

байта на одиницю, сигналізуючи таким чином програмі про завершення вказаного часового інтервалу.

Вхід: AH = 83h

AL = код підфункції (0 – встановити інтервал, запустити таймер);

(1 – відмінити роботу таймера);

CX = старше слово часу роботи таймера, мкс

DX = молодше слово часу роботи таймера, мкс

ES:BX = адреса байта, в якому після закінчення інтервалу часу старший біт буде встановлено на одиницю.

Функція 86h спеціально призначена для формування затримок. Вона дозво-

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

Вхід: AH = 86h

CX = старше слово часу затримки, мкс

DX = молодше слово часу затримки, мкс

5. Генерація звукових сигналів

Як відомо, канал 2 системного таймера керує гучномовцем комп’ютера він

35

генерує прямокутні імпульси з частотою, рівною 1193180 / початкове значення лі- чильника герц. Але гучномовець не просто з’єднаний з виходом каналу 2 таймера. Порт виводу 61h також використовується для керування гучномовцем. Молодший біт порту 61h при встановленні на 1 дозволяє роботу каналу, тобто генерацію імпульсів для гучномовця, а при встановленні на 0 забороняє.

Додатково для керування гучномовцем використовується біт 1 порту 61h.

Якщо цей біт встановлений на 1, сигнали з виходу каналу 2 таймера через схему збігу зможуть проходити на гучномовець. Якщо в біті 1 нуль, то схема збігу забороняє проходження сигналів на гучномовець.

6. Генерація випадкових чисел

Для генерації випадкових чисел краще використовувати канал 2 в режимі 3.

У регістр лічильника каналу заноситься значення, що дорівнює діапазону потрібних випадкових чисел. Наприклад, якщо записати в регістр число 80 та

запустити канал таймера, отримані випадкові числа будуть дежати в діапазоні від

0 до 79.

Методичні вказівки

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

Для виконання роботи необхідні грунтовні знання архітектури і принципів функціонування таймера, а також знання та навички програмування каналів таймера та портів 60h та 61h.