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

Лабораторна робота № 6 вивчення та дослідження методів програмного керування годинником реального часу

Мета роботи:

 вивчити та опанувати методику дослідження та розшифрування вмісту регістрів КМОН-пам’яті;

навчитись розробляти програми безпосереднього доступу до регістрів

КМОН-пам’яті;

 опанувати методи програмування режимів роботи годинника реального часу.

Теоретичні відомості

1. Призначення годинника реального часу

Додаткові можливості з координації подій у часі в обчислювальних системах

IBM PC AT реалізовані в годиннику реального часу. Його основна функція –

відстежувати календарний (абсолютний, астрономічний) час.

У більшості систем, в якості годинника використовується ВІС RTC (Real –

Time Clock) MC 146818 фірми Motorola. Можливості MC 146818 (особливо наявність 64-байтного вмонтованого ЗП) дозволяють годиннику виконувати, крім основної, ще й інші важливі для системи вцілому функції, як-от: збереження інформації про конфігурацію системи та формування запиту на переривання при відмові живлення. З метою попередження втрати інформації про астрономічний час та перекручування системної конфігурації годинник “живиться” від автономного акумулятора.

2. Призначення та формати регістрів кмон-пам’яті

Для запису або читання даних з пам’яті пристрою MC 146818, як будь-якого

пристрою вводу/виводу, використовуються команди мікропроцесора OUT та IN. Порт 70h ділиться між регістром маски переривання NMI та регістром адреси пам’яті конфігурації. Для того, щоб регістр маски NMI був недоступний, потрібно, щоб біт 7 регістра адреси годинника реального часу (RTC) був скине-

ний.

Для запису даних про конфігурацію системи використовуються такі команди:

OUT 70h, AL визначає комірку пам’яті, в яку будуть записуватися дані;

70h – номер порту; AL – регістр повинен містити адресу комірки КМОН-пам’яті;

 OUT 71h, AL – передає дані для вибраної комірки пам’яті; 71h – номер порту; AL – містить дані.

Для читання вмісту комірки пам’яті використовуються такі команди:

OUT 70h, AL визначає комірку памяті, з якої будуть зчитуватися дані;

 IN AL, 71h – для читання даних, що зберігаються в комірці пам’яті, яка визначена попередньою командою; дані записуються в регістр AL процесора.

42

У таблиці 1 наведена інформація, що зберігається в комірках годинника реального часу MC 146818.

Таблиця 1 Призначення регістрів КМОН-памяті

Регістр

Функція

00h

Секунди поточного часу

01h

Секунди будильника

02h

Хвилини поточного часу

03h

Хвилини будильника

04h

Години поточного часу

05h

Години будильника

06h

День тиждня

07h

Число

08h

Місяць

09h

Рік

0Ah

Регістр стану A

0Bh

Регістр стану B

0Ch

Регістр стану C

0Dh

Регістр стану D

0Eh

Діагностичний байт

0Fh

Байт коду скидання

10h

Тип драйвера НГМД

11h

Зарезервовано

12h

Тип драйвера НТМД

13h

Зарезервовано

14h

Інстальовані пристрої

15h, 16h

Розмір основної пам’яті

17h, 18h

Інстальована розширена пам’ять

19h

Тип драйвера C, якщо є додатковий драйвер

1Ah

Тип драйвера D, якщо є додатковий драйвер

1Bh – 2Ch

Зарезервовано

2Dh

Додаткові прапорці

2Eh, 2Fh

Значення контрольної суми

30h, 31h

Пам’ять більша 1 Мб

32h

Століття, частина дати та часу

33h

Системна інформація

34h – 3Eh

Зарезервовано

3Fh

Не використовується

Таблиця 2 Структура регістра стану 0Ah итання і запис крім D7)

Біт

Значення

D3 – D0

Коефіцієнт ділення частоти генератора годинника.

Значення за замовчуванням 0110 (1,024 кГц)

D6 – D4

Основна частота генератора годинника.

43

Значення за замовчуванням 010 (32,768 кГц)

D7

0 / 1 – читання пристрою дозволено / оновлення поточного часу

Таблиця 3 Структура регістра стану (читання і запис)

Біт

Значення

D0

0 – без запам’ятовування годин дня

1 – із запам’ятовуванням годин дня

D1

12-годинний режим

24-годинний режим

D2

0 – час і дата у форматі BCD

1 – час і дата у двійковому форматі

D3

0 – вихід генератора прямокутних імпульсів дозволений

1 – вибір вихідної частоти регістром A заборонено

D4

0 – переривання після оновлення заборонено

1 – переривання після оновлення дозволено

D5

0 – переривання від будильника заборонено

1 – переривання від будильника дозволено

D6

0 – переривання з частотою, визначеною регістром A, заборонено

1 – переривання дозволено

D7

0 – стандартні операції

1 – встановлення часу оновлення даних дозволено

Таблиця 4 Структура регістра стану 0Ch ільки читання)

Біт

Значення

D3 – D0

0000 – не використовується

D4

1 – прапорець переривання після закінчення оновлення даних

D5

1 – прапорець переривання від будильника

D6

1 – прапорець періодичного переривання

D7

1 – вихідний сигнал переривання активний

Таблиця 5 Структура регістра стану 0Dh (тільки читання)

Біт

Значення

D6 – D0

0000000 – не використовуються

D7

0 – годинник реального часу має автономне живлення

1 – годинник реального часу не має живлення

Таблиця 6 Структура регістра стану 0Eh

Біт

Значення

D1, D0

00 – не використовуються

D2

1 – час недійсний

D3

1 – помилка НТМД

D4

1 – розмір пам’яті визначений під час ініціалізації систем не відповідає

розміру, зазначеному в конфігурації пам’яті

D5

1 – при перевірці конфігурації системи під час ініціалізації виявлено

відсутність пристроїв, заданих в конфігурації пам’яті

44

D6

1 – невірна контрольна сума – помилка в ROM

D7

1 – годинник реального часу не має живлення

Таблиця 7 Структура байта коду скидання 0Fh

Значення

Сенс

00h

Нормальне скидання по живленню

04h

Завантаження DOS з диска

05h

Після ініціалізації обох контролерів переривання перехід до

вектора скидання 0040:0067

09h

Повернути Block Move

0Ah

Перехід до вектора скидання 0040:0067 – без ініціалізації кон-

тролерів переривання

Таблиця 8 Структура байта типу драйвера НГМД 10h

Біт

Значення

D3 – D0

Тип драйвера другого НГМД:

0000 – драйвера НГМД немає

0001 – 360 кб

0010 – 1,2 Мб

0011 – резерв

0100 – 1,44 Мб

0101 – 1111 – резерв

D7 – D4

Тип драйвера першого НГМД:

0000 – драйвера НГМД немає

0001 – 360 кб

0010 – 1,2 Мб

0011 – 1111 – резерв

Таблиця 9 Структура байта типу драйвера НТМД 12h

Біт

Значення

D3 – D0

Тип драйвера другого НТМД:

0000 – драйвера НТМД немає

0001…1110 – 1…14

1111 – інші (байт 1Ah)

D7 – D4

Тип драйвера першого НТМД:

0000 – драйвера НТМД немає

0001…1110 – 1…14

1111 – інші (байт 19h)

Таблиця 10 Структура байтів обєму основної памяті 15h, 16h

Значення

Обєм памяті

16h

15h

00h

80h

128 кб

01h

00h

256 кб

02h

00h

512 кб

45

02h

80h

640 кб

04h

00h

1 Мб

Таблиця 11 Структура байта інстальованих пристроїв 14h

Біт

Значення

D0

0 – драйвер НГМД не інстальований

1 – драйвер НГМД інстальований

D1

0 – співпроцесор не інстальований

1 – співпроцесор інстальований

D3, D2

00 – не використовуються

D5, D4

Тип контролера дисплея та режим роботи:

00 – зарезервовано

01 – кольоровий/графічний, 40 рядків

10 – кольоровий/графічний, 80 рядків

11 – монохром/неграфічний

D7, D6

Число інстальованих драйверів НГМД:

00 – один драйвер

01 – два драйвери

10, 11 – зарезервовано

Таблиця 12 Структура байтів обєму памяті розширення 17h, 18h

Значення

Обєм памяті

17h

18h

02h

00h

512 кб

02h

80h

640 кб

04h

00h

1 Мб

3Ch

00h

15 Мб

Таблиця 13 Структура байтів памяті вище 1 Мб 30h, 31h

Значення

Обєм памяті

30h

31h

02h

00h

512 кб

02h

80h

640 кб

04h

00h

1 Мб

3Ch

00h

15 Мб

Таблиця 14 Структура байта системної інформації 33h

Біт

Значення

D5 – D0

000000 – не використовуються

D6

Використовуються програмою SETUP

D7

1 – інстальовано більше 1 Мб пам’яті

46