Использование цифровой обработки сигналов. Технические характеристики комплекса. Микропроцессорная система на базе ADSP 21xx, страница 11

.section/pm  program;

adc:                                                                // Метка входа в подпрограмму

CALL r_adc;                                     // получение данных с АЦП

AX0=AR;                                           // сохранение полученных данных

AY0=0x000A;                                  

AR=AR-AY0;                                    // проверка полученных данных меньше

IF LE JUMP A0_10;                         // ли 10, если да то прыжок на A0_10

AY0=0x000D;

AR=AX0 XOR AY0;                        //проверка полученных данных с числом 13

IF EQ JUMP A13 ;                            // если равен 13 то прыжок на А13

AY0=0x000C;

AR=AX0 XOR AY0;                        //проверка полученных данных с числом 12

IF EQ JUMP A12                              // если равен 13 то прыжок на А13

JUMP osh:     

A12:    CALL t_sport;                                    // передача полученных данных в SPORT

RTI;

A13:    AX0=AY1;                                        // загрузка последнего переданного значения

CALL dac;                                         // передача его в ЦАП

RTI;                                                    //возврат в main

A0_10: AR = PASS AX0;                             //проверка полученного значения на 0

IF NE JUMP A1_10;                         // если не 0, то прыжок на метку A1_10

osh:     AX0=0x0006;                                    //иначе посылка в ЦАП сигнала В6,

CALL dac;                                         //означающая запрос повтора

RTI                                                     //возврат в main

A1_10: CALL t_sport;                                  //передача полученной информации в SPORT

AX0=0x0002;                                   

CALL dac;                                         //передача в ЦАП сигнала В2

RTI                                                     //возврат в main


/*      ADSP-21msp58    r_adc

Подпрограмма осуществляющет прием данных с порта АЦП

*/

.GLOBAL  r_adc;                                         // Описание метки r_adc как внешней

.section/pm  program;

r_adc:                                                             // Метка входа в подпрограмму

CALL radix-2;                                              // Вызов подпрограммы БПФ, после завершения

// в AX0 находится номер первой частоты;

// в AY0 находится номер второй частоты;

AR=AX0+AY0;                                             // получение номера сигнала

AX0=AR;                                                      // Если сумма равна 11, то необходимо

AY0=0x000B;                                               // исправить номер сигнала на 10, т.к.

AF=AX0 XOR AY0;                                    // сигнал 10 кодируется частотами 4 и 7

IF EQ AR=0x000A;                                      //

RTI;                                                               // Выход из подпрограммы

/*      ADSP-21msp58    dac

Подпрограмма осуществляющет формирование необходимого сигнала и передача его в порт ЦАП

*/

.section/data   data1;

.VAR/CIRC  sine_data_1[16]="sine_1.dat" ;           // Описание массива  sine_data сигнала 1

.VAR/CIRC  sine_data_2[16]="sine_2.dat" ;           // Описание массива  sine_data сигнала 2

.VAR/CIRC  sine_data_4[16]="sine_4.dat" ;           // Описание массива  sine_data сигнала 4

.VAR/CIRC  sine_data_5[16]="sine_5.dat" ;           // Описание массива  sine_data сигнала 5

.VAR/CIRC  sine_data_6[16]="sine_6.dat" ;           // Описание массива  sine_data сигнала 6

.GLOBAL  dac;                                            // Описание метки dac как внешней