
2. Управління клавіатурою.
При натисканні якоїсь клавіші клавіатури виробляється код, який називається кодом сканування (скан-код). Кожна клавіша має свій унікальний код сканування, який залежить тільки від місця розташування клавіші на панелі клавіатури та не зв’язане з зображеним на клавіатурі символом. Це порядковий номер клавіші. Та програмі потрібен не номер натиснутої клавіші, а відповідно означеному на цій клавіші код символу – код ASCII. Цій код не залежить від скан-кода, так як одній і той же клавіші можуть відповідати декілька значень ASCII-кода в залежності від стану інших клавіш (клавіші перемикачі). Всі перетворення скан-кода в ASCII –код виконуються операційною системою, яка розміщує отриманий код ASCII в спеціальну частину оперативною пам’яті , яка називається буфером клавіатури.
Деякі коди ASCII.
-
Клавіша
код
Клавіша
код
A(лат.)
65
Home
71
B(лат.)
66
Enter
13
C(лат.)
67
BackSpase
8
А(кір.)
128
Tab
9
Б(кір.)
129
Пробіл
32
В(кір.)
130
Esc
27
Модуль CRT має дві функції для управління клавіатурою:
логічна функція KeyPressed, яка перевіряє наявність символів в буфері клавіатури, та повертає значення true, якщо на клавіатурі була натиснута якась клавіша, та false – в протилежному випадку.
Наприклад, наступний пустий цикл може бути використован для реалізації в програмі паузи до натиснення якої завгодно клавіші (а),або закінчення повторення дії (б):
а) Reapet б) Reapet
Until KeyPressed; або <дія>
Until KeyPressed;
Функція KeyPressed не видаляє введений символ з буфера клавіатури;
функція ReadKey зчитує код символу з буфера клавіатури (очищує буфер) та повертає в програму символ типу Char (символ). При натисканні особистої клавіші можливо змінювати за допомогою ReadKey дії програми, наприклад:
Var ch:char;
Begin
. . . . . . .
If KeyPressed then if Readkey=#13 then <дія1>
else<дія2>;
3. Управління звуком.
Sound (Hz) – процедура, яка вмикає внутрішній динамік. Hz задає частоту сигналу в Герцях, звуковий сигнал буде звучати доки не буде вимкнут;
NoSound – вимикає звуковий сигнал;
Delay(time) – час затримання роботи ЕОМ в мілісекундах. Ця процедура також використовується для завдання часу звучання звуку.
Для написання програми звучання якоїсь мелодії, необхідно знати частоту нот:
-
Позначення ноти
Назва
ноти
Частота
звучання
Позначення ноти
Назва
ноти
Частота
звучання
C (I-октава)
до
262
G
соль
392
D
ре
294
A
ля
440
E
ми
330
H
си
482
F
фа
350
C (II-октава)
до
493
Діези та бемолі обчислюються як середина між двома сусідніми нотами.
Тривалість ноти задається процедурою Delay(N), якщо N ціла нота, то N/2-половинна, тощо. N приблизно 10000-20000.