⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainsrc.lst

📁 DTMF信号产生原程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
     345                    
     346 0122       _ROW_MAX_1:  
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Mon Aug  2 11:21:40 2004
Copyright (c) 1987-1999  Texas Instruments Incorporated 
mainsrc.asm                                                          PAGE    9

     347 0122 8b99          MAR                     *- , AR1
     348 0123 8b9a                  MAR                     *- , AR2
     349 0124 7b99                  BANZ            _ROW_MAX , *- , AR1   
         0125 011b' 
     350                            
     351 0126 ba20                  SUB                     #20H
     352 0127 e344                  BCND            NO_DTMF_SEND , LT
         0128 01d6' 
     353                             
     354            
     355 0129       GET_COL_MAX:  
     356                            ;取出COL最大的INDEX放到DEC_COL_INDEX中
     357                    ;***********************************************   
     358 0129 8b89          MAR                     * , AR1      
     359 012a bf80          LACC            #3H , 0
         012b 0003  
     360 012c 902b          SACL            DEC_COL_INDEX          
     361 012d b202          LAR                     AR2 , #2H
     362 012e bf09          LAR                     AR1 , #(GOERTZEL_EN+0EH)  ;
         012f 030e  
     363                  
     364 0130 1090          LACC            *- , 0
     365 0131 8b99          MAR                     *- , AR1
     366 0132 902d          SACL            DEC_COL_MAX_EN   ;保存第一个数据到VAR_MAIN_TEMP_1  
     367                    
     368 0133       _COL_MAX:          
     369 0133 102d          LACC            DEC_COL_MAX_EN   ;
     370 0134 3080          SUB                     * , 0 
     371 0135 e38c          BCND            _COL_MAX_1 , GEQ   
         0136 013a' 
     372                    
     373 0137 822b          SAR                     AR2 , DEC_COL_INDEX
     374 0138 1080          LACC            * , 0
     375 0139 902d          SACL            DEC_COL_MAX_EN  
     376                    
     377 013a       _COL_MAX_1:  
     378 013a 8b99          MAR                     *- , AR1
     379 013b 8b9a                  MAR                     *- , AR2
     380 013c 7b99                  BANZ            _COL_MAX , *- , AR1    
         013d 0133' 
     381                            
     382 013e ba20                  SUB                     #20H
     383 013f e344                  BCND            NO_DTMF_SEND , LT 
         0140 01d6' 
     384                                    
     385            ;相对峰值检测  
     386            ;if MAX*#2ABH-EN*800H <0则退出,不进行检测    
     387            ;****************************************************************** 
     388 0141       RELPEAK_CHECK:     
     389                            ;AR3:循环因子,作为比较能量值个数为4  
     390                            ;AR1:能量值存放地址  
     391                            ;AR2:为与差值大于数量参数,等于1,除了本身以外,不能比自己大
     392 0141 b303          LAR                     AR3 , #3H
     393 0142 bf09          LAR                     AR1 , #(GOERTZEL_EN+07H)
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Mon Aug  2 11:21:40 2004
Copyright (c) 1987-1999  Texas Instruments Incorporated 
mainsrc.asm                                                          PAGE   10

         0143 0307  
     394 0144 b201          LAR                     AR2 , #1H        
     395                    
     396 0145 732c                  LT                      DEC_ROW_MAX_EN     ;DEC_ROW_MAX_EN*#2ABH
     397 0146 c2ab                  MPY                     #2ABH                           
     398 0147       ROW_RELPEAK_CHECK:
     399 0147 8b99                  MAR                     *- , AR1     ;EN * 800H
     400 0148 1b9b                  LACC            *- ,11 , AR3
     401 0149 be05                  SPAC
     402 014a e344                  BCND            ROW_RELPEAK_CHECK_0 , LT                
         014b 014e' 
     403                            
     404 014c 8b8a                  MAR                     * , AR2  
     405 014d 8b9b                  MAR                     *- , AR3  
     406 014e       ROW_RELPEAK_CHECK_0:
     407 014e 7b99                  BANZ            ROW_RELPEAK_CHECK , *- , AR1  
         014f 0147' 
     408                            
     409                            ;如果两个数据以上的超过最大值,则不正确,有一个超过,是因为自身的数据没有设为0           
     410 0150 8b8a                  MAR                     * , AR2
     411 0151 7b89                  BANZ            NO_DTMF_SEND ,* ,AR1  
         0152 01d6' 
     412            
     413            ;检测列
     414 0153 b303          LAR                     AR3 , #3H
     415 0154 bf09          LAR                     AR1 , #(GOERTZEL_EN+0FH)
         0155 030f  
     416 0156 b201          LAR                     AR2 , #1H        
     417                    
     418 0157 732d                  LT                      DEC_COL_MAX_EN     ;DEC_COL_MAX_EN*#2ABH
     419 0158 c2ab                  MPY                     #2ABH           
     420 0159       COL_RELPEAK_CHECK:
     421 0159 8b99                  MAR                     *- , AR1     ;其他能量值*
     422 015a 1b9b                  LACC            *- ,11 , AR3
     423 015b be05                  SPAC
     424 015c e344                  BCND            COL_RELPEAK_CHECK_0 , LT                
         015d 0160' 
     425                            
     426 015e 8b8a                  MAR                     * , AR2  
     427 015f 8b9b                  MAR                     *- , AR3  
     428 0160       COL_RELPEAK_CHECK_0:
     429 0160 7b99                  BANZ            COL_RELPEAK_CHECK , *- , AR1  
         0161 0159' 
     430                            
     431                            ;如果两个数据以上的超过最大值,则不正确,有一个超过,是因为自身的数据没有设为0           
     432 0162 8b8a                  MAR                     * , AR2
     433 0163 7b89                  BANZ            NO_DTMF_SEND ,* ,AR1            
         0164 01d6' 
     434                            
     435                            
     436            ;第一个音频的二次滤波 
     437            ;*****************************************************************    
     438 0165       GOERTZEL_2:
     439 0165 8b8b                  MAR                     * , AR3
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Mon Aug  2 11:21:40 2004
Copyright (c) 1987-1999  Texas Instruments Incorporated 
mainsrc.asm                                                          PAGE   11

     440                            
     441 0166 bf80                  LACC            #COSF_PARA+8H , 0
         0167 0108  
     442 0168 202a                  ADD                     DEC_ROW_INDEX
     443 0169 9045                  SACL            MAIN_TEMP_0             
     444 016a 0345                  LAR                     AR3 , MAIN_TEMP_0
     445 016b b765                  LAR                     AR7 , #(VAL_SLOTBUF_LONG-1)
     446 016c bf09                  LAR                     AR1 , #(GOERTZEL_EN+13H)
         016d 0313  
     447 016e 023e                  LAR                     AR2 , GOERTZEL_DEC_DATA_PTR   
     448                            
     449 016f 738a                  LT                      * , AR2 
     450 0170 1075                  LACC            DIV_VALUE_VAR   
     451 0171 e308                  BCND        GOERTZEL_2_ROW_ADD1 , NEQ
         0172 0181' 
     452                                             
     453 0173       GOERTZEL_2_ROW_ADD:             
     454 0173 1aa9                  LACC            *+ , VAL_VALUE_DIV , AR1                
     455 0174 6590                  SUB                     *- , 16
     456 0175 5480                  MPY                     *
     457 0176 728b                  LTD                     * , AR3
     458 0177 7089                  LTA                     * , AR1
     459 0178 be04                  APAC
     460 0179 be04                  APAC
     461 017a 98af                  SACH            *+ , 0 , AR7
     462 017b e322                  BCND            GOERTZEL_2_ROW_COMPUTE_EN , OV     ;如果溢出则开始计算能量值
         017c 018d' 
     463 017d 7b9a                  BANZ            GOERTZEL_2_ROW_ADD , *- , AR2 
         017e 0173' 
     464 017f 7980                  B           GOERTZEL_2_ROW_COMPUTE_EN
         0180 018d' 
     465                            
     466 0181       GOERTZEL_2_ROW_ADD1:  
     467 0181 1ca9                  LACC            *+ , VAL_VALUE_DIV1 , AR1               
     468 0182 6590                  SUB                     *- , 16
     469 0183 5480                  MPY                     *
     470 0184 728b                  LTD                     * , AR3
     471 0185 7089                  LTA                     * , AR1
     472 0186 be04                  APAC
     473 0187 be04                  APAC
     474 0188 98af                  SACH            *+ , 0 , AR7
     475 0189 e322                  BCND            GOERTZEL_2_ROW_COMPUTE_EN , OV     ;如果溢出则开始计算能量值
         018a 018d' 
     476 018b 7b9a                  BANZ            GOERTZEL_2_ROW_ADD1 , *- , AR2 
         018c 0181' 
     477                            
     478 018d       GOERTZEL_2_ROW_COMPUTE_EN:
     479 018d 0245                  LAR                     AR2 , MAIN_TEMP_0
     480 018e bf09                  LAR                     AR1 , #(GOERTZEL_EN+13H)
         018f 0313  
     481                            
     482 0190 7a8a                  CALL        FUN_GOERTZEL_EN , * , AR2
         0191 02b6' 
     483                            
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Mon Aug  2 11:21:40 2004
Copyright (c) 1987-1999  Texas Instruments Incorporated 
mainsrc.asm                                                          PAGE   12

     484 0192 732c                  LT                      DEC_ROW_MAX_EN  
     485 0193 cc00                  MPY                     #0C00H  
     486                            ;MPY                    #0600H     
     487 0194 be05                  SPAC            
     488 0195 be05                  SPAC
     489 0196 e38c                  BCND            CHANGE_DECT_SEC , GEQ
         0197 01cf' 
     490                            
     491                            ;第二个音频的二次滤波
     492                            ;**********************************************************
     493 0198 8b8b                  MAR                     * , AR3                 
     494 0199 bf80                  LACC            #COSF_PARA+0CH , 0
         019a 010c  
     495 019b 202b                  ADD                     DEC_COL_INDEX
     496 019c 9045                  SACL            MAIN_TEMP_0             
     497 019d 0345                  LAR                     AR3 , MAIN_TEMP_0
     498 019e b765                  LAR                     AR7 , #(VAL_SLOTBUF_LONG-1)
     499 019f bf09                  LAR                     AR1 , #(GOERTZEL_EN+11H)
         01a0 0311  
     500 01a1 023e                  LAR                     AR2 , GOERTZEL_DEC_DATA_PTR     
     501                            
     502 01a2 738a                  LT                      * , AR2 
     503                            
     504 01a3 1075                  LACC            DIV_VALUE_VAR   
     505 01a4 e308                  BCND        GOERTZEL_2_COL_ADD1 , NEQ
         01a5 01b4' 
     506                                                             
     507 01a6       GOERTZEL_2_COL_ADD:             
     508 01a6 1aa9                  LACC            *+ , VAL_VALUE_DIV , AR1
     509 01a7 6590                  SUB                     *- , 16
     510 01a8 5480                  MPY                     *
     511 01a9 728b                  LTD                     * , AR3
     512 01aa 7089                  LTA                     * , AR1
     513 01ab be04                  APAC
     514 01ac be04                  APAC
     515 01ad 98af                  SACH            *+ , 0 , AR7
     516 01ae e322                  BCND            GOERTZEL_2_COL_COMPUTE_EN , OV     ;如果溢出则开始计算能量值
         01af 01c0' 
     517 01b0 7b9a                  BANZ            GOERTZEL_2_COL_ADD , *- , AR2 
         01b1 01a6' 
     518                            
     519 01b2 7980                  B           GOERTZEL_2_COL_COMPUTE_EN 
         01b3 01c0' 
     520                             
     521 01b4       GOERTZEL_2_COL_ADD1:      
     522 01b4 1ca9                  LACC            *+ , VAL_VALUE_DIV1 , AR1  
     523            
     524 01b5 6590                  SUB                     *- , 16
     525 01b6 5480                  MPY                     *
     526 01b7 728b                  LTD                     * , AR3
     527 01b8 7089                  LTA                     * , AR1
     528 01b9 be04                  APAC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -