Системный таймер. Генерация звука
Автор: zinovkin • Декабрь 28, 2017 • Задача • 456 Слов (2 Страниц) • 722 Просмотры
Тема: Системный таймер. Генерация звука.
Цель: Изучить функции системного таймера и приобрести практические навыки в работе с таймером и динамиком при генерации звука.
Индивидуальное задание: Сгенерировать звук, а сам три ноты Си, К-диез и Ля-диез в течение 0.5, 3 и 0.5 секунды соответственно с помощью таймера. Сгенерировать звук не используя таймер.
Текст программы
#include
#include
#include
#include
const long clock = 1193180;
void main(void)
{
char b;
int i; int dlinna[3] = { 1, 3, 1 }; int note[3] = { 494, 277, 466 };
printf("Clock\n");
outportb(0x43, 0xB6);
b = inportb(0x61);
outportb(0x61, b | 3);
for (i = 0; i<3; i++) {
printf(".");
outportb(0x42, (clock / note[i]) & 0x00FF);
outportb(0x42, (clock / note[i]) >> 8);
delay(dlinna[i] * 1000); }
b = inportb(0x61);
outportb(0x43, 0xFC);
b = inportb(0x61);
outportb(0x43, 0xFE);
printf("\nImpuls\n");
for (i = 0; i<600; i++) {
b = inportb(0x61);
outportb(0x61, b | 2);
delay(1);
b = inportb(0x61);
outportb(0x61, b & 0xFD);
delay(1); }
}
Результат работы программы
На рисунке 1 изображен результат работы программы
Рис. 1 - результат работы программы
Как видим программа работает правильно, она проигрывает три ноты различной протяженности с помощью таймера, и играет музыку без таймера.
Вывод: На данной лабораторной работе мною была написана программа, которая генерирует звук, а сам три ноты Си, К-диез и Ля-диез в течение 0.5, 3 и 0.5 секунды соответственно с помощью таймера и звук не используя таймер.
...