|
ЭНЦИКЛОПЕДИЯ РАДИОЭЛЕКТРОНИКИ И ЭЛЕКТРОТЕХНИКИ MIDI-клавиатура на PIC16F84
Энциклопедия радиоэлектроники и электротехники / Музыканту Предлагаемая 48-клавишная MIDI-клавиатура предназначена для работы совместно
с персональным компьютером (ПК) или синтезаторами в бесклавиатурном исполнении.
Она обслуживает 16 MIDI-каналов. Встроенный регулятор может использоваться либо
для управления громкостью, либо для манипулирования одним из 31 контроллера.
Применение микроконтроллера (МК) PIC16F84 позволило не только упростить схему
устройства, но и значительно снизить стоимость и сложность исполнения,
отказавшись от традиционного в этой области МК i8051.
Принципиальная схема предлагаемой MIDI-клавиатуры изображена на рисунке. Ее
основа - МК DD7, осуществляющий основные операции опроса всех манипуляторов и
организации MIDI-интерфейса. Мультиплексоры DD1-DD6 предназначены для реализации
динамического опроса клавиш. К каждому из них подключено по восемь подклавишных
контактных групп, а сигнал с выхода подается на соответствующий вход порта В МК
DD7 (на схеме полностью показан только DD1, остальные включены аналогично).
Регулятор громкости - переменный резистор R10 - включен в RC-цепь одновибратора,
собранного на таймере DA2. Положение его движка определяется по длительности
импульсов, поступающих на вход RB6 DD7. Одновибратор запускается импульсами,
поступающими с выхода RA3, который одновременно управляет индикатором режима
работы - светодиодом HL1. Программа, управляющая работой МК DD7, осуществляет
опрос клавиатуры. Как только обнаруживается нажатие или отпускание клавиши,
происходит вызов процедуры, отправляющей соответствующее MIDI-сообщение [1]. Так
как МК PIC16F84 не имеет встроенного универсального асинхронного
последовательного приемопередатчика (UART), программа осуществляет программную
организацию MIDI-интерфейса с помощью простейших операций сдвига.
При вычислении положения движка резистора R10 учитывается его конфигурация как
манипулятора контроллера или как регулятора громкости. В первом случае считанное
значение сравнивается с записанным в прошлый цикл опросом, и если пять раз
подряд установлено различие, то отправляется соответствующее MIDI-сообщение.
Положение движка резистора R10 оцифровывается контроллером в пятибитный код, и,
таким образом, устройство чувствительно к 32 его различным положениям. Если R10
"настроен" как регулятор громкости, необходимая информация посылается вместе с
событиями нажатия клавиш.
Кнопкой SB49 устройство переводят в режим настройки, о чем сигнализирует
светодиод HL1. В этом случае сообщения о нажатиях клавиш не передаются на выход
устройства.
Нажатие любой из 16 первых клавиш (т. е. подключенных к мультиплексорам DD1 и
DD2) приводит к переключению MIDI-канала, любой из 32 других - к выбору
соответствующего номера контроллера, которым будет управлять резистор R10. Если
нажата клавиша SB17 (ее контакт подключен к входу Х0 DD3), R10 конфигурируется
как регулятор громкости, иначе (при нажатии SB18, SB19 и т. д.) - как
манипулятор MIDI-koh-троллера, номер которого назначается нажатием клавиш
SA18-SA48 (SA18 - контроллер О, SA19 - контроллер 1 и т. д.).
Коды программы в виде hex-файла приведены в таблице. Первый байт строки 9 (число
29h) - константа, определяющая номер ноты, с которой начинается клавиатура. В
авторском варианте начальной является нота F3 - фа третьей октавы (нота с
номером 41, принятым в MIDI-сообщени-ях). При использовании другой клавиатуры
следует откорректировать эту константу и пересчитать контрольную сумму строки 9.
Печатная плата для устройства не разрабатывалась- Большинство деталей
(микросхемы DD7, DA1, DA2, резисторы, конденсаторы, кварцевый резонатор)
смонтированы на макетной плате, все соединения выполнены проводом МГТФ. Для
уменьшения длины жгута, идущего к контактам клавиш, мультиплексоры DD1-DD6
установлены непосредственно под клавиатурой. Источник питания, подключаемый к
разъему ХР1, должен иметь выходное напряжение 6... 12 В при токе около 50 мА.
С небольшими доработками К561КП2 (DD1-DD6) можно заменить мультиплексорами
К561КП1. Кроме МК PIC16F84, в устройстве можно применить PIC16F84A или
PIC16CR84. Прямая замена на PIC16C84 или PIC16F83 невозможна. В качестве R10
можно использовать любой переменный резистор указанного на схеме сопротивления с
функциональной характеристикой А. Розетка XS1 -стандартная пятиконтактная
ОНЦ-ВГ-4-5/16-р (DIN-5).
Клавиатура практически не нуждается в налаживании и при исправных деталях и
отсутствии ошибок в монтаже начинает работать сразу после включения питания.
Если положение движка резистора R10 определяется неверно, следует подобрать
конденсатор C3 и резистор R11. При наличии программы-секвенсора клавиатуру можно
подключить к ПК и проверить правильность работы устройства в целом. Для
подключения к ПК используют переходник, обеспечивающий оптоэлектронную развязку
интерфейса, например, подобный описанному в [2].
При постоянном использовании клавиатуры с ПК для питания можно использовать
импульсный преобразователь [3], подключив его к источнику +5 В игрового порта.
Для уменьшения потребляемого тока R12 в этом случае желательно заменить
резистором большего сопротивления или вообще исключить светодиод HL1.
Литература
Автор: А.Борисевич, г.Севастополь, Украина
раздел сайта Технологии радиолюбителя книга История свечи. Фарадей М., 1980 книга Новые источники питания радиоаппаратуры. Чечик П.О., 1956 статья Зарядное устройство для литиевых батарей статья Перемещающаяся жидкость справочник Вхождение в режим сервиса зарубежных телевизоров. Книга №24
|