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

📄 voice_drv.lst

📁 这是atmel公司的89C51SND1C的mp3源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 147   1        for (i = 8; i != 0; i--)
 148   1        {
 149   2          AUDDAT = (char)gl_buffer[gl_pointer++] / (char)voc_volume;
 150   2        }
 151   1        Aud_voice_play();                       /* start sample request */
 152   1      }
 153          
 154          
 155          /*F**************************************************************************
 156          * NAME: voc_play_stop
 157          *----------------------------------------------------------------------------
 158          * PARAMS:
 159          *
 160          * return:
 161          *----------------------------------------------------------------------------
 162          * PURPOSE: 
 163          *   Stop voice playing
 164          *----------------------------------------------------------------------------
 165          * EXAMPLE:
 166          *----------------------------------------------------------------------------
 167          * NOTE: 
 168          *----------------------------------------------------------------------------
 169          * REQUIREMENTS: 
 170          *****************************************************************************/
 171          void voc_play_stop (void)
 172          {
 173   1        Dac_mute();                               /* silence */
 174   1        aud_stop();                               /* disable audio */
 175   1        Pll_stop();                               /* disable pll */
 176   1      }
 177          
 178          
C51 COMPILER V6.20c  VOICE_DRV                                                             07/10/2002 15:17:38 PAGE 4   

 179          /*F**************************************************************************
 180          * NAME: voc_inc_volume
 181          *----------------------------------------------------------------------------
 182          * PARAMS:
 183          *
 184          * return:
 185          *----------------------------------------------------------------------------
 186          * PURPOSE: 
 187          *   Increment playing volume
 188          *----------------------------------------------------------------------------
 189          * EXAMPLE:
 190          *----------------------------------------------------------------------------
 191          * NOTE: 
 192          *----------------------------------------------------------------------------
 193          * REQUIREMENTS: 
 194          *****************************************************************************/
 195          void voc_inc_volume (void)
 196          {
 197   1        if (voc_volume != VOC_VOLUME_MAX)
 198   1        {
 199   2          voc_volume--;
 200   2        }
 201   1      }
 202          
 203          
 204          /*F**************************************************************************
 205          * NAME: voc_dec_volume
 206          *----------------------------------------------------------------------------
 207          * PARAMS:
 208          *
 209          * return:
 210          *----------------------------------------------------------------------------
 211          * PURPOSE: 
 212          *   Decrement playing volume
 213          *----------------------------------------------------------------------------
 214          * EXAMPLE:
 215          *----------------------------------------------------------------------------
 216          * NOTE: 
 217          *----------------------------------------------------------------------------
 218          * REQUIREMENTS: 
 219          *****************************************************************************/
 220          void voc_dec_volume (void)
 221          {
 222   1        if (voc_volume != VOC_VOLUME_MIN)
 223   1        {
 224   2          voc_volume++;
 225   2        }
 226   1      }
 227          
 228          
 229          /*F**************************************************************************
 230          * NAME: voc_rec_int
 231          *----------------------------------------------------------------------------
 232          * PARAMS:
 233          *
 234          * return:
 235          *----------------------------------------------------------------------------
 236          * PURPOSE: 
 237          *   Timer 1 interrupt function
 238          *----------------------------------------------------------------------------
 239          * EXAMPLE:
 240          *----------------------------------------------------------------------------
C51 COMPILER V6.20c  VOICE_DRV                                                             07/10/2002 15:17:38 PAGE 5   

 241          * NOTE: 
 242          *   IRQ_T1 defined in extsnd1.h
 243          *   gl_pointer is modulo 256
 244          *----------------------------------------------------------------------------
 245          * REQUIREMENTS: 
 246          *****************************************************************************/
 247          Interrupt (voc_rec_int(void), IRQ_T1) 
 248          {
 249   1        gl_buffer[gl_pointer++] = (Adc_get_data_h()); /* write data in buffer */
 250   1        Adc_ack_conversion();
 251   1        Adc_start_idle(VOICE_CHANNEL);                /* launch new conversion */
 252   1      }
 253          
 254          
 255          /*F**************************************************************************
 256          * NAME: voc_play_int
 257          *----------------------------------------------------------------------------
 258          * PARAMS:
 259          *
 260          * return:
 261          *----------------------------------------------------------------------------
 262          * PURPOSE: 
 263          *   Audio interrupt function
 264          *----------------------------------------------------------------------------
 265          * EXAMPLE:
 266          *----------------------------------------------------------------------------
 267          * NOTE: 
 268          *   IRQ_AUD defined in extsnd1.h
 269          *   The underrun condition is not tested as it must not appear
 270          *   0x80 offset is added for unsigned to signed samples conversion 
 271          *----------------------------------------------------------------------------
 272          * REQUIREMENTS: 
 273          *****************************************************************************/
 274          Interrupt (voc_play_int (void), IRQ_AUD)
 275          {
 276   1        ACC= AUDSTA;                        /* dummy read to clear flags */
 277   1        AUDDAT = (char)(gl_buffer[gl_pointer++] + 0x80)/(char)voc_volume;
 278   1        AUDDAT = (char)(gl_buffer[gl_pointer++] + 0x80)/(char)voc_volume;
 279   1        AUDDAT = (char)(gl_buffer[gl_pointer++] + 0x80)/(char)voc_volume;
 280   1        AUDDAT = (char)(gl_buffer[gl_pointer++] + 0x80)/(char)voc_volume;
 281   1      }
 282          
 283          
 284          
 285          
 286          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    289    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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