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

📄

📁 里面包括很多的驱动程序的
💻
字号:
哪位大虾会用单片机实现WAV文件的播放 [bluewind] [15次] 01-4-11 下午 11:36:04
小弟急需实现上述功能的C语言源程序,多谢多谢! 

写过,还没完善,ADPCM的还要一段时间,太忙。PCM可用。 [小师⊕] [7次] 01-4-12 下午 01:13:05 



巨人大侠及其他大侠:如何去掉WAV文件的“头” [bluewind] [8次] 01-4-12 下午 02:55:37 
请问去掉WAV文件的“头”,就是用 DEBUG 看见的RIFF....WAV…………等数据前面的数
据,如果可能,请赐教源程序,谢谢啦! 

这段程序解8KWAV,可生成51的数据格式。使用TC20以上编译。 [小师⊕] [22次] 01-4-12 下午 04:52:21 
#include <process.h>
#include <stdio.h>

extern long filesize(FILE *stream);

void main(int argc, char *argv[])
{
   int i;
   long j,l,p;
   unsigned char k;
   FILE *tmp,*fp,*file;
   union datastruct{
      unsigned long r_long;
      unsigned char r_char[4];
   }datain;

/*
   file = fopen("a:\\crun.exe", "rb");
   l=filesize(file);
   tmp = fopen("a:\\run.exe", "wb");
   for(j=0;j<2000;j++){
fread(&k,1,1,file);
fwrite(&k,1,1,tmp);
   }
fread(&k,1,1,file);
k=77;
fwrite(&k,1,1,tmp);
fread(&k,1,1,file);
k=77;
fwrite(&k,1,1,tmp);

   for(j=2002;j<l;j++){
fread(&k,1,1,file);
fwrite(&k,1,1,tmp);
   }

   fclose(tmp);
   fclose(file);
  return;
*/
//   argc=2;
//   argv[1]="d.wav";
//   argv[2]="b.wav";
/***********************************************************/
   printf("\nCollect wave files to gensc.bin:\n");
   for (i=1; i<argc; i++)printf("[%2d] : %s\n", i, argv[i]);

   if ((tmp = fopen("gensc.tmp", "wb"))== NULL)
   {
     fprintf(stderr, "Cannot open file gensc.tmp.\n");
     return ;
   }
/*********************************************************/
   file = fopen("genadpcm.dat", "wb");
   fclose(file);

   for(i=1,j=0;i<argc;i++){
      sound_process(argv[i]);
      if ((fp = fopen("genadpcm.sav", "rb"))== NULL)
      {
 fprintf(stderr, "Cannot open file gensapcm.sav.\n");
 exit(1) ;
       }

     datain.r_long=filesize(fp)+j;
     j=datain.r_long;
     fwrite(&datain.r_char[2],1,1,tmp);
     fwrite(&datain.r_char[1],1,1,tmp);
     fwrite(&datain.r_char[0],1,1,tmp);

     if ((file = fopen("genadpcm.dat", "ab"))== NULL)
     {
       fprintf(stderr, "Cannot open file genadpcm.dat.\n");
       return ;
     }
     for(datain.r_long=0;datain.r_long<filesize(fp);datain.r_long++){
       fread(&k,1,1,fp);
       fwrite(&k,1,1,file);
     }
     fclose(fp);
     fclose(file);
   }

   l=filesize(tmp)+3;
   fclose(tmp);

/********************************************************/
   if ((tmp = fopen("gensc.bin", "wb"))== NULL)
   {
     fprintf(stderr, "Cannot open file gensc.bin.\n");
     return ;
   }
   if ((fp = fopen("gensc.tmp", "rb"))== NULL)
   {
     fprintf(stderr, "Cannot open file gensc.tmp.\n");
     return ;
   }
/********************************************************/
     datain.r_long=l;
     fwrite(&datain.r_char[2],1,1,tmp);
     fwrite(&datain.r_char[1],1,1,tmp);
     fwrite(&datain.r_char[0],1,1,tmp);
   for(i=3;i<l;i+=3){
     fread(&datain.r_char[2],1,1,fp);
     fread(&datain.r_char[1],1,1,fp);
     fread(&datain.r_char[0],1,1,fp);
     datain.r_char[3]=0;
     datain.r_long+=l;
     fwrite(&datain.r_char[2],1,1,tmp);
     fwrite(&datain.r_char[1],1,1,tmp);
     fwrite(&datain.r_char[0],1,1,tmp);
   }
   fclose(fp);

     if ((fp = fopen("genadpcm.dat", "rb"))== NULL)
     {
       fprintf(stderr, "Cannot open file genadpcm.dat.\n",i);
       return ;
     }

     p=filesize(fp);
     for(j=0;j<p;j++){
fread(&k,1,1,fp);
fwrite(&k,1,1,tmp);
     }
     fclose(fp);

   fclose(tmp);
   printf("File gensc.bin success!\n");
}



写不下,发EMAIL TO YOU [小师⊕] [2次] 01-4-12 下午 04:54:20 

感激不尽!感激不尽!! [bluewind] [7次] 01-4-12 下午 08:22:07 
大恩不言谢,网上真温暖。我要把"c51bbs"介绍给我更多的朋友。 

 
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2001 

⌨️ 快捷键说明

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