"Архитектура ввода-вывода персональных ЭВМ IBM PC" - читать интересную книгу автора (Лукач Ю.С.)раз в секунду, т. е. каждые 55 мсек.
Вы можете перепрограммировать канал 0, но тогда - BIOS не сможет отслеживать текущее время и дату; - нарушится работа с гибкими дисками, т. к. включение и выключение их двигателей отсчитывается по текущему времени. Канал 1 работает в режиме 2 со счетчиком 18, поэтому регенерация памяти происходит каждые 18 мсек. Перепрог- раммировать его нельзя, т. к. это приведет к потере данных в ОЗУ. Программирование канала 2 описано в следующем пункте. 4.3. Генерация звука На вход звукогенератора поступает логическое "И" двух сигналов: выхода OUT 2-го канала таймера и содержимого бита 1 порта РВ интерфейса 8255. Поэтому простейший способ генерации звука состоит в программировании канала 2 таймера так, чтобы он выдавал прямоугольный импульс заданной частоты, лежащий в звуковом диапазоне (20 Гц - 20 КГц). Для этого следует счетчика. Если затем установить биты 0 и 1 порта РВ, то импульс начнет поступать на вход звукогенератора (бит 0 - это вход GATE канала 2, разрешающий счет, а бит 1 - разрешение выдачи выхода OUT на вход звукогенератора). Для выключения звука достаточно сбросить биты 0 - 1 в РВ. Преимущество этого метода состоит в том, что, запустив генерацию звука, ЦП может выполнять другие действия. Значение счетчика 2-го канала вычисляется по формуле n=1193181/f=1234DDh/f (1193181 - тактовая частота таймера в Гц, f - требуемая частота звука). Пример: ; ; подпрограмма генерации звука ; Вход: АX= частота звука в Гц ; Sound proc near push ax ;сохранить регистры push bx push dx mov bx,ax ;частота mov ax,34DDh mov dx,12h ;(dx,ax)=1193181 cmp dx,bx ;если bx < 18Гц, то выход |
|
|