标题: 单片机串口通信更新音乐数组的问题? [打印本页]

作者: 陆小贱    时间: 2017-4-14 10:53
标题: 单片机串口通信更新音乐数组的问题?
我通过串口向单片机发送数组,然后存储在单片机数组内,在通过音乐播放程序调用该数组进行播放但出现有些时候音乐发生不正常,有时候又发声正常,请问这是什么原因。(歌曲播放过程中有写段是好的有些段播放不正确)
  1.         if(W==0&&biaozhi==1)//数据接收完毕可以播放该歌曲
  2.                 {  
  3.                         T=W;
  4.                         write_com(0x81);
  5.                          write_zfc("shishangzhiyou");
  6.                         write_com(0xc4);
  7.                          write_zfc("mamahao");
  8.                 for(i=0;i<80;i=i+3)
  9.                     {         //音乐数组长度 ,唱完从头再来
  10.                         
  11.                
  12.                     k=table[i]+7*table[i+1]-1;//去音符振荡频率所需数据//table数组用于存放串口数据
  13.                     Timer0_H=FREQH[k];
  14.                     Timer0_L=FREQL[k];
  15.                     Time=table[i+2];          //节拍时长
  16.                    // i=i+3;
  17.                     Song();
  18.                                 if(T!=W)
  19.                                         break;
  20.                 }
  21.                 }
  22.                 else
  23.                 {
  24.                         W=1;
  25.                 }
复制代码


这是我用来播放通信歌曲的程序段,哪位大神帮忙看看,为什么会这样

作者: XIN_XIN    时间: 2017-4-14 14:52
#include<reg51.h> #include<string.h> #define addr 0x02//从机2的地址 #define _SUCC_ 0x0f//数据传送成功 #define _ERR_ 0xf0//数据传送失败 unsigned char aa=0xff;//主机与从机之间通信标志 unsigned char Buff[20];//数据缓冲区 //串口初始化函数 void serial_init() { TMOD=0x20; //定时器1工作于方式2 TH1=0xfd; TL1=0xfd; //波特率为9600 PCON=0; SCON=0xd0; //串口工作于方式3 TR1=1; //开启定时器 TI=0; RI=0; } //接收数据函数 unsigned char RECE_data(unsigned char *Buff) { unsigned char i,temp; unsigned char lenth; unsigned char check; RI=0; //接收数据长度 while(!RI); if(RB8==1) //若接收到地址帧,则返回0xfe return 0xfe; lenth=SBUF; RI=0; check=lenth; for(i=0;i<lenth;i++) //接收数据
作者: 陆小贱    时间: 2017-4-16 08:40
XIN_XIN 发表于 2017-4-14 14:52
#include #include #define addr 0x02//从机2的地址 #define _SUCC_ 0x0f//数据传送成功 #define _ERR_ 0xf ...

不懂…………





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1