Использование порта встроенного громкоговорителя (PC Speaker) [20]
При проектировании устройств сопряжения иногда возникает необходимость использовать компьютер только для вывода информации в виде управляющих сигналов. Это может понадобиться, например, при создании программных систем управления, выполняющих определенные функции в заданные моменты времени. Для этого, в принципе, можно использовать любой интерфейс ЭВМ. Однако наименее трудоемким способом является сопряжение через порт встроенного громкоговорителя. Для этого достаточно отсоединить динамик от разъема на материнской плате компьютера и подключить вместо него свое устройство (если, конечно, вы не боитесь забираться внутрь системного блока). Таким образом, можно получить либо близкий к меандру периодический сигнал с частотами от 18,2 до 1193180 Гц, либо ступенчатый сигнал (с помощью команд «втянуть» – «отпустить» динамик), из которого можно формировать периодические импульсные сигналы с различной частотой и скважностью.
Существует два основных способа генерации выходного сигнала для порта громкоговорителя – таймерный и программный. Таймерный способ основан на использовании второго канала системного таймера. Для этого в счетчик таймера загружается соответствующее значение, которое обратно пропорционально частоте сигнала. При каждом цикле часов таймера, работающих с частотой 1,19318 МГц, значение счетчика уменьшается на 1. При достижении нулевого значения таймер посылает выходной импульс на вход микросхемы генератора звука и снова начинает отсчет. По сути дела, происходит деление тактовой частоты на значение, загружаемое в счетчик, и, следовательно, частоту сигнала можно определить по формуле:
Частота = 1193180 / Счетчик,
и наоборот, значение, загружаемое в счетчик для получения сигнала нужной частоты:
Счетчик = 1193180 / Частота.
Максимальное значение счетчика равно 65535 (в шестнадцатиричной нотации FFFFH), т. е. максимальное 16-битовое число, для минимального значения частоты 18,2 Гц; самая высокая частота (1193180 Гц) получается при значении счетчика 1.
После загрузки значения счетчика в регистры второго канала таймера производится активизация микросхемы динамика.
Последовательность действий можно проиллюстрировать с помощью рис. 81. Установка готовности таймера производится посылкой значения B6H (в десятичной нотации 182) в порт 43Н (67). Эта операция извещает таймер о том, что следом будет передано значение счетчика, которое представляет собой слово из двух байтов, младшего и старшего, загружаемых по очереди в порт 42Н (66). Включение динамика осуществляется установкой в единицу двух младших битов порта 61Н (97). Для выключения динамика этим битам возвращается исходное значение.
Рис. 81. Схема формирования выходного сигнала с помощью системного таймера
Фрагмент программы на языке Turbo Pascal для выполнения этих действий может иметь приблизительно такой вид:
……………………………
{Вычисление значения счетчика, freq - частота}
Do'stlaringiz bilan baham: |