Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Midi-контролери клавіатурного типу

Реферат Midi-контролери клавіатурного типу





я АЦП. Зчитує значення перетворення АЦП. Переводить їх з діапазону 0 .. 4096 в діапазон 0 .. 100.


3.1.2 Опис алгоритму роботи основної програми

При включенні живлення починає виконання основної програми. На початку неї викликається процедура ініціалізації контролера. Установка бітів управління та напрямку передачі даних в портах введення-виведення, ініціалізація АЦП і послідовного порту на швидкості 2400 біт в секунду, розміром кадру 9 біт (8 біт даних + один стоп-біт), що відповідає стандарту MIDI-зв'язку.

Далі починається виконавчий блок програми. Відбувається зациклення за допомогою нескінченного циклу do while 1. На початку цього циклу відбувається перевірка на натискання клавіші програмування зсуву октави. Якщо вона натиснута, то, відповідно до обраної першими чотирма клавішами музичної клавіатури встановлюється зсув. Обрана величина зрушення відображається на індикаторі. Потім відбувається одноразовий запуск АЦП для зчитування значення встановлюваної користувачем сили натискання на клавішу. На наступному етапі перевіряється стан прапора klo, який відповідає за відпущені клавіші. Якщо цей прапор не дорівнює нулю, тобто мається необроблена відпущена клавіша, номер цієї клавіші з встановленим сьомим бітом (відповідно до стандарту MIDI) надсилається через послідовний порт в персональний комп'ютер. На останньому етапі циклу відбувається перевірка натискання нової клавіші. Якщо така подія має місце, то в послідовний порт надсилається номер октави і номер ноти, відповідні самій клавіші. br/>

3.2 Лістинг програми


ts: do ;/ * програма управління MIDI клавіатурою */

$ include (reg812.dcl) (8) STRUCTURE (n (12) byte, nk (12) byte), byte;/* Базова октава */byte,/* прапор відпрацювання АЦП */

(kl, klp, klo) byte,/* номери клавіш */

(adc_l, adc_h) byte,/* проміжні дані з АЦП */

power byte,/* Сила натискання */

st byte;/* значення шпальти матриці */

adc_in: procedure interrupt 6;/* обробник переривання АЦП */2 = 0;

adc_h = ADCDATAH;/* поміщаємо значення перетворення */

adc_l = ADCDATAL;/* в змінні adc_l і adc_h */

power = (adc_h * 255 + adc_l) * 100/4096 ;/ * розраховуємо силу натискання */

flag = 1;/* встановлюємо прапор ознаки відпрацювання АЦП */

end adc_in; _int: procedure interrupt 1;/* Обробка переривання таймера 1 */= st +1; if st = 8 then do; st = 0; kl = 0; kl = 0 then do ; klo = klp; klp = 0; end;/* клавіша відпущена * /;

/* Визначення номера натиснутоюклавіші */

If st = 0 then p2 = 11111110b;/* пускаємо нуль по порту P2 */

If st = 1 then p2 = 11111101b;...


Назад | сторінка 7 з 9 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка алгоритму програми на мові С + +, яка обчислює значення ємності і ...
  • Реферат на тему: Психоакустичного сприйняття і midi-інтерфейси
  • Реферат на тему: Створення програми для обчислення значення функції
  • Реферат на тему: Проблеми винесення вироку, який відповідає встановленим вимогам
  • Реферат на тему: Клемент Готвальд і його значення у зміні програми Компартії Чехословаччини ...