Разработка синтезатора звуковых сигналов с компрессией данных
Содержание
.
Техническое задание
.
Разработка структурно-функциональной схемы
.
Разработка принципиальной схемы
.1
Принципиальная схема и ее описание
.2
Выбор элементной базы
.
Разработка программного обеспечения
.1
Алгоритм программы
.2
Листинг программы
Вывод
Приложение
синтезатор звуковой программа
1. Техническое задание
Целью данного курсового проекта является
разработка синтезатора звуковых сигналов с компрессией данных, позволяющего
осуществлять воспроизведение звуковых сообщений.
Команды управления передаются по параллельному
каналу данных с персонального компьютера. Звуковое сообщение должно
передаваться через LPT-порт на микроконтроллер через соответствующий разъем, а
воспроизведение сообщений через цифро-аналоговый преобразователь и усилитель динамиком.
Данные, передаваемые из LPT-порта содержат два
четырехбитовых приращения, которые при воспроизведении звука прибавляются к
текущему значению, подаваемому на ЦАП. Таким образом, 12-разрядные данные
закодированы 4 битами, что существенно увеличивает скорость загрузки данных и
уменьшает занимаемое место в памяти.
2. Разработка структурно-функциональной схемы к
динамику
к
LPT
Рис.1. Структурно-функциональная схема
ПК - персональная ЭВМ служащая для передачи
данных и команд управления микроконтроллеру.- принимает команды с ПК, а затем
кодированное звуковое сообщение через LPT порт, записывает его во внешнюю
память, считывает из нее, декодирует и через устройство усиления воспроизводит
с помощью динамика.
К544УД2 - операционный усилитель включенный в
качестве повторителя и обеспечивающий развязку слаботочного выхода ЦАП и
усилительного устройства.
модули памяти 64 кБ, образующие внешнюю память
МК, для хранения звукового сообщения ( AT29C64S)
3. Разработка принципиальной схемы
.1 Принципиальная схема и ее описание
Принципиальная схема приведена на чертеже
В качестве микропроцессорного контроллера
предполагается использовать универсальный микроконтроллер ADuC812.- интегральная
12 разрядная система сбора информации, включающая в себя прецизионный
многоканальный АЦП с самокалибровкой, два 12-разрядных ЦАП и программируемое
8-битное микропроцессорное ядро(совместимое с 8051, MCU).поддерживается
внутренними 8 k flash ЭРПЗУ программ, 640 байт ЭРПЗУ памяти данных и 256 байт
статической памяти данных с произвольной выборкой(RAM).
Пространство внешней памяти данных может быть до
16 Мбайт, а также пространство внешней памяти программ до 64Кбайт.
Для внешней памяти данных используются 4
микросхемы памяти 64kB (элементы DD2-DD5). Восьмиразрядные двунаправленные
входы-выходы данных этих микросхем подключены к порту Р0 микроЭВМ, через
который осуществляется обмен данными с внешней памятью. Так как объем внешней
памяти превышает 256 байт, то для вывода младших разрядов адреса используется
также порт Р0, а для вывода старших разрядов - порт Р2. Вывод адреса и данных
через порт Р0 разделен во времени, поэтому младшие 8 разрядов адреса сигналом
ALE запоминаются (фиксируются) в регистре DD6 и подаются на 8 младших адресных
входов микросхем памяти. Для выбора любой ячейки памяти необходимо 16 разрядов
адреса. С выходов Р2.0-Р2.7 сигналы подаются на оставшиеся входы адресов
микросхем памяти.
Для выбора конкретного кристалла БИС памяти используется порты P3.0,
P3.3-P3.5.
Операционный усилитель К544УД2 усиливает
звуковой сигнал на выходе из МК.
Для питания системы (кроме ПК) требуются
номиналы напряжения постоянного тока +5 В и +12 В.
.2 Выбор элементной базы
Разъем X1 - подключается к параллельному
LPT-порту.- кварцевый генератор 24 МГц.- микроконтроллер ADuC812.- DD5 -
микросхемы памяти. - микросхема регистра К580ИР27.- операционный усилитель
К544УД2.-R3 - резисторы .
С1-С5 - конденсаторы.
4. Разработка программного обеспечения
.1 Алгоритм программы
4.2 Листинг программы
: do;/* программа управления контроллером
ретранслятора*/(adu812.dcl)
(adrW, adrR)word,/*текущий адрес памяти при
записи и воспроизведении*/
(fl_out, fl_in, fl)bit,/* флаг вывода, ввода,
номера байта*/(65535) byte auxiliary;/*массив внешнего ОЗУ*/_int:procedure
interrupt 0;= 0;/*запрещаем прерывания*/= P3 and 11111011b;/*готовность чтения
из LPT*/
if adrW=0 then p_comand;
if fl_in=1 then;/*вводим данные с параллельного
порта*/(adrW)=P1;
/*установка адреса для следующей записи*/
if adrW=65535 then
;=0;=bankW+1;;=adrW+1;bankW=0 then P3=11111110b;/*запись
в
DD2*/bankW=1 then P3=11110111b;/*запись
в
DD3*/bankW=2 then P3=11101111b;/*запись
в
DD4*/bankW=3 then P3=11011111b;/*запись
в
DD5*/bankW=4 then ; =0;
fl_in=0;/*память закончилась*/;;=
1;in_int;_int: procedure interrupt 1; /* interrupt t0 */
/*процедура вывода звука*/fl_out then/*выборка и
раскодировка данных*/
do;fl=0 then =(mem(adrR) and
0fh)=ror(mem(adrR) and 0f0h,4);
fl = not(fl);/*учитывается знак приращения*/
if (sm and 8)<>0 then
_dat=dac_dat-(sm and 7) _dat=dac_dat+sm; /*вычисл
новое
значение
ЦАП*/
DacoH=dac_dat/0ffh;/*задаем новое знач ЦАП*/
DacoL=dac_dat mod 0ffh;sm = 1
then(adrR)=65535 then /*вычисл перенос*/;=0;=
bankR+1;bankR=4 then =0;;= adrR +1;bankR=0 then P3=11111110b;bankR=1 then
P3=11110111b;bankR=2 then P3=11101111b;bankR=3 then P3=11011111b;
/*воспроизведение только в границах
записанного*/
if (bankR = bankW) and (adrR = adrW)
then;= 0;= 0;;;
end;=0;/*сброс флага переполнения таймера*/
end timer_int;_comand: procedure;
=P1;comand=0 then fl_p=1;comand=1 then ;_out = 1;_in = 0;= 0;= 0;;/*запускаем
вывод
звука*/comand=0f4h
then fl_out=0;/*останов
вывода
звука*/comand=0f7h
then ;_in = 1;_out = 0;= 0;
adrW = 0;;/*запускаем ввод звука*/
end p_comand;: procedure;/*процедура
инициализации*/
ea = 1;/*разрешаем все прерывания*/=
1;/*pазpешаем пpеpывание Т0*/= 1;/*запускаем таймер 0*/= 0;= 00000010b;/*второй
режим таймера для 0 таймера частота 10КГц */= 1;/*пpеpывание по фронту сигнала
переполнения*/= 155, tl0 = 155;= 1;/*обнуляем счетчики и pазpешаем работу 0-го
Таймеpа*/= 0; adrW = 0; fl_out, fl = 0;/*обнуление перемен*/= 1;/*разрешаем
прерывание INT0*/ = 0ffh;init;
/*___________ тело основной пpогpаммы
______________*/init;while 1;/*бесконечный цикл работы*/
В результате выполнения курсовой работы я
ознакомился с микроконтроллером ADUC812, принципами построения устройства
синтезатора звуковых сообщений, работой с таймером МК, а т.ж. с принципами
работы внешней подключаемой к МК памяти.
Приложение