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

📄 qpsk dsp.c

📁 此源码是用DSP实现QPSK调制
💻 C
字号:
      version: 1.0
      data: july-11-1999
      authors: ren guo chun
      comment: original created
      cpu type: ti_tms32054xx
      
      
      compiler: tms320c54x assembler
      version: 1.02(pc)
      include files: .mmregs
      
      
      functional description:
      QPSK modem
      2400 sym/s
      fc=1800Hz
      fs=14400 sample/s
      51 order fir filter
      
      
      activation
      activation example:
      call  modem_psk
      call  ini_modem
      
      
      External Data
      .ref  CRAM2
      
      
      temporary data:
      dp=4
      cram0
      cram1
      cram2
      cram3
      cram4
      cram5
      cram6
      cram7
      
      
      data structure
      SD_FILA  .set  400H
      SD_FILB  .set  500h
      SD_1800  .set  600h
      SD_NUL   .set  700H
      SD_2PP   .set  SD_NUL+1*51
      SD_2PN   .set  SD_NUL+2*51
      SD_4PP   .set  SD_NUL+3*51
      SD_4PN   .set  SD_NUL+4*51
      SD_DAB0  .set  7000h
      
      
      ram define:
      SD_FBIP  as SD_FILA and SD_FILB
      SD_FBOP  as SD_FILA and SD_FILB 
      SD_DAIO  as SD_DAB0
      SD_DAOP  as SD_DAB0
      
      
      
      inut data:cram2
      data format: 2bit data
      
      
      output data:SD_DAB0
      data format:16bit data buffer
modem_psk:
      CALL  get_data
      CALL  wave_filter
      CALL  fc_modem
      RET
ini_modem


get_data
      
      LD    CRAM2,A
      AND   #11,A
      SFTL  A,2
      ADD   #wave_rd_tab,A
      READA CRAM0
      ADD   #1,A
      READA CRAM1
      RET
      
      
wave_filter
      LD    SD_FBIP,A
      STLM  A,AR1
      ADD   #100H,A
      STLM  A,AR2
      
      LD    CRAM0,A
      STLM  A,AR3
      LD    CRAM1,A
      STLM  A,AR4
      STM   #51-1,BRC
      RPTBD  wave_add_m00-1
      STM    #80H,BK
      LD     *AR3+,A
      ADD    *AR1,A
      STL    A,*AR1+%
      LD     *AR4+,A
      ADD    *AR2,A
      STL    A,*AR2+%
wave_add_m00

      LD     SD_FBIP,A
      SUB    #SD_FILA,A
      ADD    #6,A
      AND    #80H-1,A
      ADD    #SD_FILA,A
      STL    A,SD_FBIP
      RET
      
      
fc_modem
      LD     #DODP,DP
      LD     SD_DAOP,A
      SUB    SD_DAIP,A
      NOP
      NOP 
      XC    2,ALEQ
      ADD   #SD_DABL,A
      NOP
      SUB  #090H,A
      BC    sd_mod+m00,ALT
      RSBX  SXM
      LD    SD_FBIP,A
      SUB   SD_FBOP,A
      NOP
      NOP
      XC    2,ALT
      ADD   #80H,A
      NOP
      SUB  #10H,A
      SSBX  SXM
      BC    sd_mod_m02,AGEQ
       
      LD    BIT_FLG,A
      AND   #11B,A
      BC    sd_mod_m00,ANEQ
      
      
sd_mod_m02
      LD    SD_FBOP,A
      STLM  A,AR2
      ADD   #100H,A
      STLM  A,AR3
      LD    SD_DAIP,A
      ADD   #SD_DAB),A
      STLM   A,AR1
      
      ST    #3000H,CRAM1
      
      STM    #SD_1800,AR4
      STM    #SD_1800+2,AR5
      STM    #8-1,BRC
      RPTBD  sd_mod_m01-1
      STM    #80H,BK
      
      MPY    *AR2,*AR4+,A
      MACR   *AR3,*AR5+,A
      STH    A,CRAM0
      LD     CRAM1,T
      MPY    CRAM0,A
      STH    A,*AR1+
      
      LD    #0,A
      STL   A,*AR2+%
      STL   A,*AR3+%
sd_mod_m01

      MVKD   AR2,SD_FBOP
      LD     SD_DAIP,A
      ADD    #8,A
      AND    #SD_DABL-1,A
      STL    A,SD_DAIP
sd_mod_m00
      RET
ini_modem:
      SSBX   FRCT
      STM    #SD_NUL, AR1
      RPTZ   A,#51-1
      STL    A,*AR1+
      STM    #SD_2PP,AR1
      RPT    #51-1
      MVPD   #ep_wavn,*AR1+
      NOP
      STM    #51-1,BRC
      STM    #SD_2PP,AR1
      STM    #SD_2PN,AR2
      RPTB   ep_movd_m00-1
      LD     *AR1+,A
      NEG    A
      STL    A,*AR2+
ep_movd_m00
      ST     #5A82HmCRAM0
      LD     CRAM0,T
      STM    #50,BRC
      STM    #SD_2PP,AR1
      STM    #SD_4PP,AR2
      STM    #SD_4PN,AR3
      RPTB   ep_movd_m01-1
      MPY    *AR1+,A
      STH    A,*AR2+
      NEG    A
      STH    A,*AR3+
ep_movd_m01

      STM    #SD_1800,AR1
      RPT    #10h-1
      MVKD   #ef1800,*AR1+
      RET
      
    
wave_rd_tab
      .word   SD_2PP,SD_NUL
      .word   SD_4PP,SD_4PP
      .word   SD_NUL,SD_2PP
      .word   SD_4PN,SD_4PP
      .word   SD_2PN,SD_NUL
      .word   SD_4PN,SD_4PN
      .word   SD_NUL,SD_2PN
      .word   SD_4PP,SD_4PN
;sqar cos k=0.35
ep_wave.word 0FFF6H,00003H,00013H,0001EH,00019H,0FFFAH,0FFC1H,0FF89H
       .word 0FF85H,0FFE8H,000C2H,001DCH,002A9H,0026AH,00087H,0FCF9H
       .word 0F89CH,0F53CH,0F52AH,0FA7EH,00633H,01781H,02BB9H,03ED2H
       .word 04C7DH,05174H,04C7DH,03ED2H,02BB9H,01781H,00633H,0FA7EH
       .word 0F52AH,0F53CH,0F89CH,0FCF9H,00087H,0026AH,002A9H,001DCH
       .word 000C2H,0FFE8H,0FF85H,0FF89H,0FFC1H,0FFFAH,00019H,0001EH
       .word 00013H,00003H,0FFF6H
       
      
;sin table 360/8 dobble
ef1800
       .word 00000H,05A82H,07FFFH,05A82H,00000H,0A57FH,08002H,0A57FH
       .word 00000H,05A82H,07FFFH,05A82H,00000H,0A57FH,08002H,0A57FH
       .end
        

⌨️ 快捷键说明

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