Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS_2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
72.19 Кб
Скачать

9

Міністерство освіти і науки, молоді та спорту України

Запорізький національний технічний університет

кафедра програмних засобів

ЗВІТ

з лабораторної роботи № 2

з дисципліни "Операційні системи"

на тему:

«Використання звукових можливостей IBM PC»

Виконав:

Ст. групи ІОТ-420 Перепелиця А. М.

Перевірив: О. О.Степаненко

О.І. Качан

2012

ЛАБОРАТОРНА РОБОТА №2

ВИКОРИСТАННЯ ЗВУКОВИХ МОЖЛИВОСТЕЙ IBM PC

Тема: Використання звукових можливостей IBM PC.

Мета: Вивчити способи генерації звука, навчитися використовувати звукові можливості ibm-сумісних пеом та практично реалізувати запропоновані способи генерації звука.

1 ХІД РОБОТИ

Постановка задачі:

Написати та відлагодити програму на Асемблері, що реалізує генерацію звуку за допомогою таймера.

Код програми:

dseg segment para 'data'

Ok dw 2700

Okk dw 2800

dseg ends

stck segment stack 'stack'

db 256 dup(?)

stck ends

cseg segment para 'code'

start:

assume cs:cseg, ss:stck, ds:dseg

;отправление таймеру соо об подключении счетчика

mov al,0B6h

out 43h,al

mov cx,2

A:

mov Ok,3500

mov Okk,500

in al,61h ;

or al,3

push cx

mov cx,75

; управление динамиком

music:

mov ax,Ok

out 42h, al

xchg al,ah

out 42h, al

sub Ok,40

;задержка

push cx

mov cx,1000

ext11:

push cx

mov cx,5000

iter11:

loop iter11

pop cx

loop ext11

pop cx

;конец задержки

loop music

mov cx,75

music2:

mov ax,Okk

out 42h, al

xchg al,ah

out 42h, al

add Okk,40

;задержка

push cx

mov cx,1000

ext12:

push cx

mov cx,5000

iter12:

loop iter12

pop cx

loop ext12

pop cx

;конец задержки

loop music2

in al,61h

and al,0FCh

out 61h,al

push cx

mov cx,10

stop:

;задержка

push cx

mov cx,1000

ext13:

push cx

mov cx,5000

iter13:

loop iter13

pop cx

loop ext13

pop cx

;конец задержки

loop stop

pop cx

pop cx

loop A

mov ax,4c00h

int 21h

cseg ends

end start

Написати та відлагодити програму на Асемблері, що реалізує генерацію звуку за допомогою прямого керування динаміком.

Код програми:

Dseg segment para 'data'

vremya DW 75 ;Общее время

kolvo DW 10 ;Время звучания одного колебания

visota DW 256h ;Высота (частота) звука

Dseg ends

stck segment stack 'stack'

db 256 dup(?)

stck ends

cseg segment para 'code'

start:

assume cs:cseg, ds:Dseg, ss:stck

mov ax,Dseg

mov ds,ax

xor ax,ax

mov cx,2

S:

push cx

in al,61h

cli

push ax

mov cx,vremya

new:

push cx

mov dx,kolvo

zanovo:

and al,11111100b

out 61h,al

mov cx,visota

ciklChastota:

loop ciklChastota

or al,00000010b

out 61h,al

mov cx,visota

ciklChastota2:

loop ciklChastota2

dec dx

jnz zanovo

add kolvo,1

pop cx

loop new

pop ax ;восстановить значение

out 61h,al

sti

push cx ;задержка

mov cx,1000

ext11:

push cx

mov cx,5000

iter11:

loop iter11

pop cx

loop ext11

pop cx ;конец задержки

pop cx

loop S

mov ax,4c00h ;стандартный выход

int 21h

cseg ends

end start

Висновок: У цій лабораторній роботі я вивчила способи генерації звука, навчилася використовувати звукові можливості ibm-сумісних пеом та практично реалізувати запропоновані способи генерації звука.

Контрольні запитання

1. Що таке звук?:

Звук — коливальний рух частинок пружного середовища, що поширюється у вигляді хвиль у газі, рідині чи твердому тілі. Більшість явищ у природі супроводжуються характерними звуками, які сприймаються та розпізнаються вухом людини і тварин і служать для орієнтування та спілкування.

Характеристиками звуку є частота, довжина хвилі, амплітуда і швидкість, а також тембр.

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

Частота — це кількість коливань певної точки звукової хвилі в секунду. Одному циклу коливання в секунду відповідає величина 1 Гц (1/с).

Діапазон від 16 Гц до 20 кГц називають чутним діапазоном. Звуки з частотами до 16 Гц називаються інфразвуком, понад 20000 Гц — ультразвуком. Звуки з частотою 109-1013 Гц називають гіперзвуком.

Людське вухо сприймає та розрізняє частоту звукових коливань як висоту звуку або тон.

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

2. В чому полягає основна ідея отримання звуку на ibm pc?:

Динамік в комп’ютерах IBM PC вібрує за рахунок електричних імпульсів, що надсилає йому комп’ютер. Через те, що комп’ютери мають справу з двійковими числами, то й створюють вони або високу, або низьку напругу. При кожному переході напруги з одного стану в іншій мембрана динаміка або виштовхується, або втягується.

Звук через динамік ми можемо генерувати двома способами. При одному способі можна записати програму, яка буде змінюючи стан двох розрядів динаміка в периферійному інтерфейсі, що програмується (РРІ), включати та виключати динамік. При іншому способі для створення коливань в динаміку заданої частоти використовується вмонтований в РС таймер, що програмується.

3. Спосіб генерації звуку за допомогою таймеру.:

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

- необхідно запрограмувати таймер для генерації деякої частоти;

- направити вихід з таймеру на динамік. Таймер по команді зчитує сигнал генератора тактових імпульсів (маючих частоту 1.193 МГц) до тих пір, поки їх число не співпаде з числом, заданим нами (лічильник). Фактично таймер ділить тактову частоту на наше число, та створює вихідну частоту. В результаті таймер генерує сигнали, які створюють звук визначеної частоти, коли ми підєднуемо його до динаміка.

Лічильник і результуюча частота пов’язані між собою наступним відношенням: частота = 1193180/лічильник.

Після обчислювання лічильника, що необхідний для тієї частоти звуку, яка нам потрібна (звукова), ми надсилаємо його в регістр таймера. Це робиться за допомогою трьох виводів у порти. Спочатку у порт 43Н надсилається значення В6Н, тим самим таймеру повідомляється, що йому надіслано лічильник. Потім в порт 42Н надсилається спочатку молодший, потім старший байти лічильника.

Після того, як ми запрограмували таймер, необхідно задіяти схеми динаміка. Динамік керується за допомогою РРІ та використовує порт 61Н. Динаміком використовується тільки два з восьми розрядів порту: розряди 0 та 1. Останні розряди використовуються для інших цілей, тому при роботі з динаміком ми не повинні змінювати їх.

Розряд 0 керує сигналом таймера, що використовується для роботи динаміка. Для того, щоб динамік працював від таймеру, обидва ці розряди повинні бути встановлені в 1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]