Помощь в написании студенческих работ
Антистрессовый сервис

Разработка синтезатора звуковых сигналов с компрессией данных

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

ADuC812- принимает команды с ПК, а затем кодированное звуковое сообщение через LPT порт, записывает его во внешнюю память, считывает из нее, декодирует и через устройство усиления воспроизводит с помощью динамика. Техническое задание Целью данного курсового проекта является разработка синтезатора звуковых сигналов с компрессией данных, позволяющего осуществлять воспроизведение звуковых сообщений… Читать ещё >

Разработка синтезатора звуковых сигналов с компрессией данных (реферат, курсовая, диплом, контрольная)

1. Техническое задание

2. Разработка структурно-функциональной схемы

3. Разработка принципиальной схемы

3.1 Принципиальная схема и ее описание

3.2 Выбор элементной базы

4. Разработка программного обеспечения

4.1 Алгоритм программы

4.2 Листинг программы Вывод

Приложение синтезатор звуковой программа

1. Техническое задание Целью данного курсового проекта является разработка синтезатора звуковых сигналов с компрессией данных, позволяющего осуществлять воспроизведение звуковых сообщений.

Команды управления передаются по параллельному каналу данных с персонального компьютера. Звуковое сообщение должно передаваться через LPT-порт на микроконтроллер через соответствующий разъем, а воспроизведение сообщений через цифро-аналоговый преобразователь и усилитель динамиком.

Данные, передаваемые из LPT-порта содержат два четырехбитовых приращения, которые при воспроизведении звука прибавляются к текущему значению, подаваемому на ЦАП. Таким образом, 12-разрядные данные закодированы 4 битами, что существенно увеличивает скорость загрузки данных и уменьшает занимаемое место в памяти.

2. Разработка структурно-функциональной схемы к динамику

к

LPT

Рис. 1. Структурно-функциональная схема Назначение блоков и принцип работы структурно-функциональной схемы.

ПК — персональная ЭВМ служащая для передачи данных и команд управления микроконтроллеру.

ADuC812- принимает команды с ПК, а затем кодированное звуковое сообщение через LPT порт, записывает его во внешнюю память, считывает из нее, декодирует и через устройство усиления воспроизводит с помощью динамика.

К544УД2 — операционный усилитель включенный в качестве повторителя и обеспечивающий развязку слаботочного выхода ЦАП и усилительного устройства.

модули памяти 64 кБ, образующие внешнюю память МК, для хранения звукового сообщения (AT29C64S)

3. Разработка принципиальной схемы

3.1 Принципиальная схема и ее описание Принципиальная схема приведена на чертеже

В качестве микропроцессорного контроллера предполагается использовать универсальный микроконтроллер ADuC812.

ADuC812 — интегральная 12 разрядная система сбора информации, включающая в себя прецизионный многоканальный АЦП с самокалибровкой, два 12-разрядных ЦАП и программируемое 8-битное микропроцессорное ядро (совместимое с 8051, MCU).

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 В.

3.2 Выбор элементной базы Разъем X1 — подключается к параллельному LPT-порту.

BQ1 — кварцевый генератор 24 МГц.

DD1 — микроконтроллер ADuC812.

DD2 — DD5 — микросхемы памяти.

DD6 — микросхема регистра К580ИР27.

DD21 — операционный усилитель К544УД2.

R1-R3 — резисторы .

С1-С5 — конденсаторы.

4. Разработка программного обеспечения

4.1 Алгоритм программы

4.2 Листинг программы

retransl: do;/* программа управления контроллером ретранслятора*/

include (adu812.dcl)

declare

(adrW, adrR) word,/*текущий адрес памяти при записи и воспроизведении*/

(bankW, bankR) byte,/*выбор банка памяти при записи и воспроизведении*/

dac_datword,/*переменная для работы с ЦАП*/

smbyte,/*расчетное смещение*/

comandbyte,/*команда, приходящая от ПК*/

(fl_out, fl_in, fl) bit,/* флаг вывода, ввода, номера байта*/

mem (65 535) byte auxiliary;/*массив внешнего ОЗУ*/

in_int:procedure interrupt 0;

ea = 0;/*запрещаем прерывания*/

P3 = P3 and 1 111 1011b;/*готовность чтения из LPT*/

if adrW=0 then

call p_comand;

if fl_in=1 then

do;/*вводим данные с параллельного порта*/

mem (adrW)=P1;

/*установка адреса для следующей записи*/

if adrW=65 535 then

do;

adrW=0;

bankW=bankW+1;

end;

else

adrW=adrW+1;

if bankW=0 then P3=1 111 1110b;/*запись в DD2*/

if bankW=1 then P3=1 111 0111b;/*запись в DD3*/

if bankW=2 then P3=1 110 1111b;/*запись в DD4*/

if bankW=3 then P3=1 101 1111b;/*запись в DD5*/

if bankW=4 then

do;

bankW=0;

fl_in=0;/*память закончилась*/

end;

end;

ea = 1;

end in_int;

timer_int: procedure interrupt 1; /* interrupt t0 */

/*процедура вывода звука*/

if fl_out then/*выборка и раскодировка данных*/

do;

if fl=0 then

sm=(mem (adrR) and 0fh)

else

sm=ror (mem (adrR) and 0f0h, 4);

fl = not (fl);/*учитывается знак приращения*/

if (sm and 8)<>0 then

dac_dat=dac_dat-(sm and 7)

else

dac_dat=dac_dat+sm; /*вычисл новое значение ЦАП*/

DacoH=dac_dat/0ffh;/*задаем новое знач ЦАП*/

DacoL=dac_dat mod 0ffh;

if sm = 1 then

if (adrR)=65 535 then /*вычисл перенос*/

do;

adrR=0;

bankR = bankR+1;

if bankR=4 then

bankR=0;

end;

else

adrR = adrR +1;

if bankR=0 then P3=1 111 1110b;

if bankR=1 then P3=1 111 0111b;

if bankR=2 then P3=1 110 1111b;

if bankR=3 then P3=1 101 1111b;

/*воспроизведение только в границах записанного*/

if (bankR = bankW) and (adrR = adrW) then

do;

bankR = 0;

bankW = 0;

end;

end;

end;

tf0=0;/*сброс флага переполнения таймера*/

end timer_int;

p_comand: procedure;

comand=P1;

if comand=0 then fl_p=1;

if comand=1 then

do;

fl_out = 1;

fl_in = 0;

adrR = 0;

bankR = 0;

end;/*запускаем вывод звука*/

if comand=0f4h then fl_out=0;/*останов вывода звука*/

if comand=0f7h then

do;

fl_in = 1;

fl_out = 0;

adrR = 0;

adrW = 0;

end;/*запускаем ввод звука*/

end p_comand;

init: procedure;/*процедура инициализации*/

ea = 1;/*разрешаем все прерывания*/

et0 = 1;/*pазpешаем пpеpывание Т0*/

er0 = 1;/*запускаем таймер 0*/

bank = 0;

tmod = 10b;/*второй режим таймера для 0 таймера частота 10КГц */

it0 = 1;/*пpеpывание по фронту сигнала переполнения*/

th0 = 155, tl0 = 155;

tr0 = 1;/*обнуляем счетчики и pазpешаем работу 0-го Таймеpа*/

adrR = 0; adrW = 0; fl_out, fl = 0;/*обнуление перемен*/

ex0 = 1;/*разрешаем прерывание INT0*/

P1 = 0ffh;

end init;

/*___________ тело основной пpогpаммы ______________*/

call init;

do while 1;/*бесконечный цикл работы*/

end;Вывод:

В результате выполнения курсовой работы я ознакомился с микроконтроллером ADUC812, принципами построения устройства синтезатора звуковых сообщений, работой с таймером МК, а т.ж. с принципами работы внешней подключаемой к МК памяти.

Приложение

www.

Показать весь текст
Заполнить форму текущей работой