Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программирование звукового канала таймера.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
В прграммирование звука указывают 2 микросхемы - таймер и ЛПА, управляющей клавиатурой и динамиком.
Микросхема таймера работает независимо от процессора (и параллельно с ним) от собственного генератора, вырабатывающего сигналы с частотой 1,19318 Мгц. Таймер имеет 3 независимых канала. Для управления режимом каналов используется регистр команд (порт 43h). Каждый канал включает счётчик передающий импульы от ГТИ в регистр-фиксатор, в которой программно заносится число, определяющее коэффициент пересчета. Фиксаторы каналов таймера адресуются через порты 40h, 41h, 42h. При включении компьютера в фиксатор канала 0 записывается число 65535(FFFFh)(максимально возможное число), в результате чего сигналы на входе канала 0 имеют частоту 18.2 1/с. Эти сигналы возбуждают прерывания с вектором 08h, который определяется программой,осуществляя отсчёт текущего времени. Канал 2 связан с динамиком и используется для генерации звука. Изменяя содержимое фиксатора этого канала можно изменять частоту сигналов, поступающих на динамик от 18,2Гц до 1,19Мгц. Реально для возбуждения звука можно использовать частоты приблизительно до 10Кгц. ППА имеет следующие порты 60h-порт А 61h-порт В 62h-порт С Порт А используется для приёма кодов, нажимаемых на клавиатуре, порты В и С для управления клавиатурой и таймером и для хранения информации о конфигурации компьютера. Микросхемы ППА используются в IBM PC и CP/XT. В PC/AT и PS/2 такой микросхемы нет, однако приём с клавиатуры и управление таймером осуществляется через порты с теми же адресами. Бит 0 порта 61 управляет включением и выклячением канала 2 таймера. Если бит 0 в 1, то на выходе канала действует сигнал заданой частоты, при сбросе бита 0- сигналы отсутствуют. Бит 1 управляет током, текущим через динамик. Т.е. прекратить работу динамика можно либо сбросив в 0 бит 0 либо бит 1. Программирование любого канала таймера осуществляется путём пересылки кода в регистр команд(43h). Формат 7 6 5 4 3 2 1 0
канал код режим 0 – дв. сч. операции 1 –дв. дес.
Режим - разовый и периодический с различной скважностью. Для возбуждения звука используется режим 011- периодическая генерация прямоугольных сигналов со скважностью 2. В битах 4 и 5 записывается способ загрузки в фиксатор константы. Обычно используется код 11, что позволяет загрузить в фиксатор 16-ти разрядную константу пересчёта 2-мя последовательными командами. Сначала младшие байты, потом старший. Т.о. управляющее слово оказывается равным 10110110В или В6h.
mov AL,0B6h;управляющее слово out 43h,AL;в регистр команд ;установим частоту канала 2 таймера mov AX, 11930;1193000Гц 11930=100Гц out 42h,AL;младший байт константы в порт movAL,Ah out 42h,AL;старший байт константы в порт ;включим динамик и разрешим разрешим работу таймера in AL,61h; or AL,3;установим биты 0 и 1 out 61h,AL; ;После загрузки выключим динамик и запретим таймер звука and AL, 11111100B;сбросим биты 0 и1 out 61h,AL
На любом этапе вывода звука можно изменять его частоту (эффект летящей бомбы) ;режим таймера mov AL,0B6h out 43h,AL ;вкл. динамик in AL,61h or AL,3 out 61h,AL ;изменяем частоту в процессе звучания mov CX,200;число шагов music: mov AX,tone out 42h,AL mov AL,AH out 42h,AL snb tone,30;изменим константу пересчёта задержки loop music ;выключить динамик in AL,61h and AL,0FCh out 61h,AL tone dw 5000
Таймер допускает повторную загрузку фиксатора после того, как однозначно установлен режим его работы.
Загр. 2б. знак (int и другие) ® AX 4б (long, float,..) ® AX, BX 8б (double) ® AX, BX, CX, DX
Интерфейс с Си
extern caps(); main () { char c; for(c=’a’; c<=’z’; c++) caps(c); c = caps (‘z’+1); caps (c); caps (‘\n’+32); } func segment public caps caps proc near push bp mov bp,sp mov DL,[BP]+4;взять аргумент sub DL,32;перевести в заглавные push AX mov AH,2 int 21h pop AX pop BP ret 2 caps endp func ends end
|
||||||||||||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 453; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.208.127 (0.006 с.) |