- •Архітектура комп’ютерів методичний посібник для проведення лабораторних робіт
- •Лабораторна робота № 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 с.
Лабораторна робота № 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
