Продолжительность звучания

Продолжительность звучания

Мы можем регулировать продолжительность так, как было указано в гл. 6. Вспомним, что громкоговоритель управляется устройством, называемым "Программируемый параллельный интерфейсный контроллер 8255". Специальные каналы ввода-вывода, называемые портами, связывают этот и другие контроллеры с "мозгом" системы, микропроцессором 8088. Мы используем порт 97 для включения громкоговорителя, цикл, чтобы отмечать время, и затем порт 97 для отключения громкоговорителя. Вот фрагмент программы, которая будет выполнять эти действия:

#define TIMESCALE

1270         /* число отсчетов времени в 0,1 с */

#define BEEPPORT  97 /* порт управляет громкоговорителем */

#define ON 79         /* сигнал включения громкоговорителя */

count = TIMESCALE  *time;  /* преобразование времени

в единицы таймера */

port = inp(BEEPPORT);     /* запоминание состояния порта */

outp(BEEPPORT, ON);       /* включение громкоговорителя */

for(i = 0; i < count; i++)

;                          /* отметка времени */

outp(ВEEPPORT, port);      /* выключение громкоговорителя, восстановление состояния */

Значение count (число отсчетов) дает время, в течение которого громкоговоритель включен. Коэффициент TIMESCALE преобразует десятые доли секунды в эквивалентное количество отсчетов времени. Конечно, мы должны установить требуемую частоту звука до того, как зазвучит громкоговоритель, поэтому рассмотрим этот параметр.