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

бесплатно 0
4.5 129
Відтворювання динаміком звуків різної частоти. Обробка і видача звуків через динамік. Програмування мікросхеми таймера. Генерація звуку за допомогою адаптера інтерфейсу. Використання клавіатури в якості емулятора клавіатури музичного інструмента.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Сучасне компютерне програмне забезпечення перетворило персональні ПК у потужні обчислювальні машини, які здатні виконувати найрізноманітніші завдання. На даний момент існує безліч програм, які здатні задовольнити потреби користувачів у різних галузях науки та повсякденному житті: фізика, математика, графіка, економіка, бізнес тощо. Завдання курсової роботи полягає в тому, щоб скласти програму яка здатна відтворювати системним динаміком звуки різної частоти. Для розвязання поставленої задачі вибрана мова програмування Асемблер, оскільки вона має досить потужний набір інструментів для того , щоб створювати не тільки звук, але й змінювати його надаючи йому певних відтінків і тонів. На Асемблері можна написати програму більш компактну і швидкодіючу ніж написану на мові високого рівня.Завдання курсової роботи полягає в тому щоб відтворювати звуки заданої частоти. Розглядаючи вхідні дані ми можемо скласти такий їхній перелік: частота звуку, тривалість звуку. Продумуючи програму був обраний шлях який полягає в тому що при натисканні певної клавіші на клавіатурі буде отриманий звук певної частоти, який буде відповідати частоті певної ноти (до, ре, мі, та ін.). Для обробки і видачі звуків через динамік буде використовуватися програмування мікросхеми таймера. Число циклів системного годинника перетвориться в один імпульс, а послідовність цих імпульсів підраховується для визначення часу, чи вони можуть бути послані на гучномовець компютера для генерації звуку визначеної частоти.Генерація звуку за допомогою адаптера інтерфейсу з периферією 8255 складається у включенні і вимиканні з бажаною частотою біта порту B, що звязаний з динаміком (біт 1). Памятайте , що біт 0 порту B керує воротами каналу 2 мікросхеми таймера, що у свою чергу звязаний з динаміком. Ми використовуємо адрес порту мікросхеми 8255 який знаходиться по адресу 61Н , а для того щоб отримати звук нам потрібно послати число з потрібною частотою в канал 2 який знаходиться по адресу 42Н, а також після цього вимкнути динамік. В ініціалізаційні частині - області програми, де описані змінні та константи містяться стрічки повідомлень: slovo1 db "Space-RESTART",13,10,"$" slovo2 db "Enter-HELP",13,10,"$" slovo3 db "Esc-EXIT",13,10,"$" mes db "Matiyshun Yura$" string db "Vuberity trivalisty zvuchannya$" string1 db "Zvyk notu :$", стрічки назв нот(n1 - n15). not1 db "DO$" not2 db "RE$" not3 db "MI$" not4 db "FA$" not5 db "SOL$" not6 db "LA$" not7 db "SI$" not8 db "DO1$" not9 db "RE1$" not10 db "MI1$" not11 db "FA1$" not12 db "SOL1$" not13 db "LA1$" not14 db "SI1$" not15 db "DO2$", тривалості звучання нот: t1 db "1$" t2 db "2$" t3 db "3$" t4 db "4$" t5 db "5$" t6 db "6$", та текст меню допомоги help db "Klavisha - Nota Klavisha - Nota",13,10 db "z - Do s - Do(verhnye)",13,10 db "x - Re d - Re(verhnye)",13,10 db "c - Mi f - Mi(verhnye)",13,10 db "v - Fa g - Fa(verhnye)",13,10 db "b - Sol h - Sol(verhnye)",13,10 db "n - La j - La(verhnye)",13,10 db "m - Si k - Si(verhnye)",13,10,"$" У змінну NOTE під час виконання програми заноситься частота ноти, яка має програватись, а змінна DELAY призначена для зберігання часу тривалості звучання ноти.Також користувач за допомогою цифрових клавіш може керувати тривалістю звучання нот. Оскільки ми розробляємо програму яка програє звуки після того як буде нажата потрібна клавіша то ми вносимо потрібні функції які дають змогу зчитувати код натиснутої клавіші, була використана функція 7Н переривання 21Н. mov ah,7 int 21h Якщо вони нерівні, то відбувається перехід на мітку наступного порівняння, якщо рівні - у змінну DELAY заноситься число, яке відповідає за тривалість звучання ноти. cmp al, 49 jnz NEXT mov DELAY,1 NEXT: Якщо код відповідає одній із натиснених клавіш, то у змінну DELAY відповідно заноситься певне значення тривалості звучання ноти. GO_: Якщо код клавіші співпав із кодом ноти, то при цьому у змінну NOTE заноситься частота звучання відповідної ноти mov NOTE, 2300, у регістр DX заноситься зміщення стрічки, яка є назвою ноти і буде відображатися на екрані і відбувається перехід на підпрограму опрацювання змінних NOTE та DELAY, тобто відбувається перехід на мітку BYM програвання даної ноти із даною затримкою звучання.Результатом даної курсової роботи є створений програмний продукт на мові Асемблер який забезпечує можливість програвання звуків (нот) різної частоти. Забезпечує програвання двох октав з можливістю регулювання тривалості звучання ноти.

План
ЗМІСТ

Вступ

Розділ 1. Аналіз технічного завдання та методів його вирішення

Розділ 2. Опис методики та алгоритму вирішення задачі

Розділ 3. Опис програми та аналіз отриманих результатів

Висновок

Список використаних джерел

Додаток А Додаток Б

Вывод
Результатом даної курсової роботи є створений програмний продукт на мові Асемблер який забезпечує можливість програвання звуків (нот) різної частоти. Вона містить зручний інтерфейс, використовує клавіатуру для програвання нот та системний динамік для їх озвучення. Забезпечує програвання двох октав з можливістю регулювання тривалості звучання ноти. Дана програма працює тільки під середовищем MS-DOS.

Якщо продовжувати модернізацію даної програми можна добитися різних результатів, наприклад можна запропонувати користувачеві вести порядок програвання звуків певної мелодії, яка запишеться в память і потім може бути програна, можна також вести звуки півтонів що теж дасть хороший результат. Впродовж всього програмування ми використовували безпосереднє програмування мікросхем 8253 та 8255.

Отже бачимо що мова Асемблер має потужний набір функцій для осягнення такої області культури як музика.

Список литературы
1. Роберт Журден Справочник программиста персональных компьютеров типа IBM , 1992. - 541c.

2. К.Г.Финогенов. Самоучитель по системным функциям MS-DOS. - М.: “Малип”, 1993. - 262с.

3. Зубков С.В. Assembler для DOS, Windows и UNIX. - М.:ДМК Пресс, 2000. - 608 с.

4.Орловский Г.В. Введение в архітектуру микропроцесора 80386.- Санкт-Петербург: ИНФОКОМ, 1992.-240с.

5.Юров В. Assembler. -СПБ.:Питер, 2001.-624с

6. Юров В. Assembler. Практикум. Питер, 2006 г.- 400

7.Владислав Пирогов. Ассемблер для Windows - СПБ.: БХВ-Петербург, 2002. - 896 с

8.Калашников О. А. Ассемблер? Это просто! Учимся программировать - БХВ-Петербург , 2005. - С. 374

9.Галисеев Геннадий Владимирович Ассемблер для Win 32. Самоучитель. - М.: «Діалектика», 2007. - С. 368.

10. http://www.codenet.ru/progr/dos/

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?