Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные работы / 9091_Боброва_лаб_3

.docx
Скачиваний:
9
Добавлен:
07.08.2024
Размер:
16.5 Кб
Скачать

МИНОБРНАУКИ РОССИИ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)

ОТЧЕТ

по лабораторной работе №1 по дисциплине «Системное программирование»

Тема: «Программирование системных часов и управление звуком»

Студентка гр. 9091 Боброва Н.Ю.

Преподаватель Кораблев Ю.А.

Санкт-Петербург

2024

Цель работы:

Изучить способы программирования системных часов ПЭВМ. Освоить программное управление звуком.

Исследование 1 способа генерации звука

Установить бит 0/порт 61h =0. В этом случае на выходе OUT2 канала 2 установится логическая 1. Генерация осуществляется циклическим изменением значения Бит 1/ порт 61h. Частота звука зависит от длительности цикла. Следующий фрагмент программы реализует данный способ:

MOV DX, FFFF

103: MOV AL, 32

OUT [61], AL

MOV CX, FFFF ; ИНТЕРВАЛ Т1

10A: LOOP 10A

MOV AL , 30

OUT [61], AL

MOV CX, FFFF ; ИНТЕРВАЛ Т2

113: LOOP 113

DEC DX

JNZ 103

Во время работы программы мы слышали звук от системного динамика компьютера. Динамик работал 2.5 сек. А так как DX = FFFF (в шестнадцатеричной системе) = 65536 (в десятичной системе счисления). Посчитаем период сигнала T= 2.5/ 65536 = 3.815 * 10 ^ -5, от сюда частота сигнала была = 2.62 * 10^4 гц.

Исследование 2 способа генерации звука

Запустим программу генерации звука по 2 способу

MOV AL, B6

OUT [43], AL

MOV AX, 3FFFF : ОПРЕДЕЛЯЕМ ПЕРИОД СИГНАЛА

OUT [42], AL

MOV AL, AH

OUT [42], AL

IN AL, [61]

OR AL, 3

OUT [61], AL : ЗВУК ВКЛ

IN AL, [61]

AND AL, FC

OUT [61], AL : ЗВУК ВЫКЛ

Меняя период сигнала, мы смогли определить примерную верхнюю границу нашего слуха. Это около AX= 49.

Исследование 3 способа генерации звука

В данном способе мы поменяем системное прерывание таймера, и в новом прерывании добавим обработку звука.

MOV AX , 0

MOV ES , AX

MOV AX , 12D

CLI

MOV ES:[70], AX ; установка нового вектора

MOV AX , CS ; прерывания 1Ch

MOV ES:[72],AX

STI

MOV BX , 7FFF ; в ВХ начальное значение счетчика

117: CALL 11E ; установка нового значения счетчика

SHR BX , 1 ; логический сдвиг вправо

JMP 117 ; В1 - точка останова

11E: MOV AL , 36 ; Подпрограмма устанавливает начальное

CLI ; значение канала счетчика 0 таймера

OUT [43] , AL ; устанавливаемое значение в регистре ВХ

MOV AX , BX

OUT [40] , AL

MOV AL , AH

OUT [40] , AL

STI

RET

12B: IN AL , [61] ; Пользовательская подпрограмма обработки

XOR AL , 02 ; прерываний системных часов

OUT [61] , AL

IRET

В ходе работы программы мы получили изменяющийся по частоте звук.

Соседние файлы в папке Лабораторные работы