АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Керування звуком за допомогою таймера

Читайте также:
  1. Алгоритм 1. Зупинка артеріальної кровотечі за допомогою закрутки
  2. Будівлі органів керування, кредитування й громадських організацій
  3. ВИМОГИ ДО ДОКУМЕНТІВ, ЩО ЇХ ВИГОТОВЛЯЮТЬ ЗА ДОПОМОГОЮ ДРУКУВАЛЬНИХ ЗАСОБІВ
  4. Вставка символів або шаблонів за допомогою миші
  5. Вставка шаблонів у формулу за допомогою клавіатури
  6. Встановлення пріоритетів за допомогою аналізу А Б В
  7. Глава 11. Розрахунки за допомогою систем дистанційного обслуговування
  8. Декоративне оформлення сторінок HTML за допомогою CSS.
  9. Дистанційне керування світлосигнальним обладнанням
  10. Друга частина розробляється по фінансовому проекту за допомогою ЕОМ.
  11. За допомогою кнопок панелі Рисование
  12. Задача 4. Препарат вводять внутрішньовенно за допомогою інфузомату. Який показник встановлює, скільки часу необхідно для досягнення рівноважної концентрації в крові?

Для створення звуку за допомогою таймера необхідно виконати два кроки:

- необхідно запрограмувати таймер для генерації деякої частоти;

- направити вихід з таймеру на динамік. Таймер по команді зчитує сигнал генератора тактових імпульсів (маючих частоту 1.193 МГц) до тих пір, поки їх число не співпаде з числом, заданим нами (лічильник). Фактично таймер ділить тактову частоту на наше число, та створює вихідну частоту. В результаті таймер генерує сигнали, які створюють звук визначеної частоти, коли ми підєднуемо його до динаміка.

Лічильник і результуюча частота пов’язані між собою наступним відношенням:

частота = 1193180/лічильник.

Після обчислювання лічильника, що необхідний для тієї частоти звуку, яка нам потрібна (звукова), ми надсилаємо його в регістр таймера. Це робиться за допомогою трьох виводів у порти. Спочатку у порт 43Н надсилається значення В6Н, тим самим таймеру повідомляється, що йому надіслано лічильник. Потім в порт 42Н надсилається спочатку молодший, потім старший байти лічильника.

Після того, як ми запрограмували таймер, необхідно задіяти схеми динаміка. Динамік керується за допомогою РРІ та використовує порт 61Н. Динаміком використовується тільки два з восьми розрядів порту: розряди 0 та 1. Останні розряди використовуються для інших цілей, тому при роботі з динаміком ми не повинні змінювати їх.

Розряд 0 керує сигналом таймера, що використовується для роботи динаміка. Для того, щоб динамік працював від таймеру, обидва ці розряди повинні бути встановлені в 1.

 

Приклад 1.

Генерація звуку за допомогою таймера:

STAK SEGMENT PARA STACK ‘stack’

dw 125 dup(?)

STAK ENDS

DAT SEGMENT PARA ‘data’

m_freq dw 165, 156, 165, 0FFFF

m_time dw 3 dup (100)

DAT ENDS

COD SEGMENT PARA ‘CODE’

ASSUME CS:COD, DS:DAT, SS:STAK

PROGRAM PROC FAR

....................

LEA SI,m_freq

LEA BP, DS:m_time

.....................

FREQ:

MOV DI,[SI]

CMP DI,0FFFFH

JE END_PL

MOV BX, DS:[BP]

MOV AL, 0B6H

OUT 43H, AL

MOV DX, 14H

MOV AX, 4F38H

DIV DI

OUT 42H, AL

MOV AL, AH

OUT 42H, AL

IN AL, 61H

MOV AH, AL

OR AL,3

OUT 61H, AL

.....................

MOV AL,AH

OUT 61H, AL

ADD SI, 2

ADD BP, 2

JNZ FREQ

END_PL:

....................

PROGRAM ENDP

COD ENDS

END PROGRAM

Пряме керування динаміком

Таймер керує динаміком, надсилаючи періодичні сигнали, що примушують коливатися мембрану динаміка. Теж саме ми можемо зробити і за допомогою програми, яка надсилає до динаміка сигнали, що вмикають, та вимикають його. Встановивши в нуль розряд 0 порту 61Н і тим самим відєднавши динамік від таймера, а потім встановивши та скинувши розряд 1, ми змусимо динамік коливатися. При використанні цього методу швидкість програми визначає частоту звуку: чим швидше буде виконуватися програма - тим вище буде тон.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)