Теоретична частина
ЛАБОРАТОРНА РОБОТА № 3
Завдання
1. Розкрити принципи фон-неймановскої архітектури.
2. Які елементи складають логічну схему комп'ютера.
3. Навести перелік функцій процесора і пам'яті, їх основні параметри.
4. Перерахувати основні вузли системного блоку.
5. Що розташоване на материнській платі.
6. Яка роль блоку електроживлення, які рівні напруги на його виході.
"ОЗНАЙОМЛЕННЯ З ПРОГРАМНОЮ МОДЕЛЛЮ ПРОГРАМОВАНОГО ІНТЕРВАЛЬНОГО ТАЙМЕРУ ПК ТА СТАНДАРТНИМ СИСТЕМНИМ ЗВУКОВИМ КАНАЛОМ"
4.1. Ціль роботи
Вивчити:
- роботу стандартного системного звукового каналу;
- ноти хроматичної гами;
- відповідність нот и частоти звука;
- складання програми відтворювання мелодії.
Будь-який гучномовець працює за рахунок отримання послідовності електричних імпульсів, які викликають відхилення діафрагми динаміка. Це призводить до виникнення коливань повітря, що утворюють звук.
У звичайному динаміці імпульси, що надходять, мають різну потужність (гучність) і тривалість (частоту або висоту тону). Простий динамік IBC/PC не дозволяє регулювати гучність, і звук утворюється простою послідовністю електричних імпульсів. Струм до динаміка подається і відключається в режимі простого двійкового управління. Частота імпульсів струму визначає звукову частоту, що виробляється динаміком.
Наявність програмованого таймера дозволяє отримувати будь-яку частоту імпульсів.
При формуванні звуку за допомогою таймера він буде звучати до тих пір, поки не буде відключений тією ж програмою, яка його запустила.
Сигнал для управління динаміком формується в результаті спільної роботи мікросхем (рис. 4.1):
- програмованого периферійного інтерфейсу і8255 (для ХТ) та і8242 (для АТ);
- таймера і8253.
Основна генерація звуку проводиться мікросхемою таймера, що має три канали з однаковою структурою та принципом роботи. На канали таймера подаються імпульси від мікросхеми системного годинника з частотою 1193181 Гц. Кожен канал має два входи і один вихід. Канал 0 замкнутий на контролер переривань і є джерелом апаратного переривання від таймера, що виникає 18,2 рази в секунду. Канал 1 пов'язаний з мікросхемою прямого доступу до пам'яті. Канал 2 виходить на динамік комп'ютера. До складу кожного каналу входять:
- регістр введення-виведення розрядністю 8 біт;
- регістр-засувка (16 біт);
- регістр-лічильник (16 біт).
Кожен регістр введення-виведення має адресу в адресному просторі введення-виведення (номер порту вводу-виводу). Регістр введення-виведення каналу 2 має номер порту вводу-виводу 42h. Розміщені в нього значення негайно потрапляють в регістр-засувку, де значення зберігається, поки в регістр введення-виведення не буде записано нове значення.
Вибір каналу здійснюється зверненням до регістру управління (порту 43h), що входить до складу таймера і містить слово стану наступної структури:
- Біт 0 – тип константи перерахунку (0 – двійкове число, 1 – двійково-десяткове);
- Біти 1-3 – режим роботи таймера (в даній роботі використовувати режим 3);
- Біти 4-5 – 00 – передати значення лічильника в регістр-засувку; 01 – записати в регістр-засувку молодший байт; 10 – записати в регістр-засувку старший байт; 11 – записати в регістр-засувку спочатку старший байт, а потім – молодший (у даній роботі використовувати значення 11);
- Біти 6-7 визначають номер каналу (в даній роботі використовувати значення 10).
Рис. 4.1. Схема звукового каналу
Подачею струму на динамік управляє біт 1 порту 61h. Біт 0 порту 61h відкриває або закриває вихід каналу.
Для генерації (другий канал таймера) прямокутних імпульсів, що завантажуються в порт 42, значення (value) повинні бути парними:
Value = 1193181 / f (f – частота звукового сигналу).
Таким чином, для програмування звукового каналу таймера необхідно:
- за допомогою порту 43h вибрати канал, задати режим роботи і тип операції передачі значення в канал;
- подати струм на динамік, встановивши в 1 біт 1 порту 61h;
- помістити в порт 42h значення, що відповідає висоті тону.
1. Скласти дві функції: виду void ідентифікатор (unsignedintTn), де Tn - тривалість звучання (або паузи) представлена рядом (табл. 4.1):
Таблиця 4.1
Tn=T0=4сек | Tn=T8T=0,75 сек |
Tn=T0T=6 сек | Tn=T16=0,25 сек |
Tn=T2=2 сек | Tn=T16T=0,375 сек |
Tn=T2T=3 сек | Tn=T32=0,125 сек |
Tn=T4=1 сек | Tn=T32T=0,187 сек |
Tn=T4T=1,5 сек | Tn=T64=0,062 сек |
Tn=T8=0,5 сек | Tn=T128=0,031 сек |
для генерації звуку з заданими значеннями частот, що визначаються ідентифікаторами (табл. 4.2):
Таблиця 4.2
С0=65 Гц, | D0=74 Гц | FD=184 Гц, | GD=208 Гц | ||
E0=82 Гц, | F0=87 Гц | C2=520 Гц, | D2=592 Гц | ||
G0=98 Гц, | A0=110 Гц | E2= 656 Гц, | F2=696 Гц | ||
В0=116 Гц, | Н0=124 Гц | G2=784 Гц, | A2=880 Гц | ||
С=130Гц, | D=148 Гц | B2=928 Гц, | H2=992 Гц | ||
E=164 Гц, | F=174 Гц | C1D=276 Гц, | D1D=312 Гц | ||
G=196 Гц, | A=220 Гц | F1D=368 Гц, | G1D=416 Гц | ||
B=232 Гц, | H=248 Гц | C2D=552 Гц, | D2D=624 Гц | ||
C1=260 Гц, | D1=296 Гц | F2D=736 Гц, | G2D=832 Гц | ||
E1=328 Гц, | F1=348 Гц | C3=1040 Гц, | D3=1184 Гц | ||
G1=392 Гц, | A1=440 Гц | E3=1312 Гц, | F3=1392 Гц | ||
B1=464 Гц, | H1=496 Гц | G3=1568 Гц, | A3=1760 Гц | ||
C0D=69 Гц, | D0D=78 Гц | ||||
F0D=92 Гц, | G0D=104 Гц | ||||
CD=138 Гц, | D0=156 Гц |
і функцію паузи виду void P (unsignedintTn).
Для програмування звукового каналу таймера можна використовувати також функцію Windows API Beep, яка призначена для відтворення простих однотонних звуків через вбудований динамік із заданою частотою і тривалістю. Існує в операційних системах сімейства Microsoft Windows і ReactOS.
Функція Beep виконується синхронно, тобто повертає керування лише після завершення відтворення звуку.
Вона має два параметри:
- dwFrec – частота звуку в герцах, допустимий діапазон – від 37 до 32767 Гц;
- dwDuration – тривалість звуку в мілісекундах;
і повертає значення типу BOOL (ненульове при успішному виконанні).
Величина паузи задається командою sleep, яка уповільнює виконання.
Її опис – void sleep (int seconds).
Функція sleep затримує виконання програми на дану кількість секунд seconds.
Частота нот хроматичної гами (табл. 4.3) і ноти хроматичної гами (рис. 4.2) дають можливість відтворити будь-яку просту мелодію.
Таблиця 4.3
До | До# | Ре | Ре# | Ми | Фа | Фа# | Соль | Соль# | Ля | Ля# | Си | Октава |
контроктава | ||||||||||||
велика | ||||||||||||
мала | ||||||||||||
перша | ||||||||||||
друга | ||||||||||||
третя | ||||||||||||
четверта | ||||||||||||
Рис. 4.2. Ноти хроматичної гами
Точка поряд з нотою збільшує її тривалість наполовину.
Ноти студенту видаються із збірника мелодій згідно зі списком у журналі.