用51做的4004语音,碰到小问题,前辈请进

2019-03-24 19:03发布

程序已编好, 录音不论录多长时间,放音总是在一秒左右,请问这是什么原因呢?有没有人遇到相同的问题,我把关键的子程序贴出来:
void keyscan()
{
if(PR==0)
{
   delay_ms(5);
   if(PR==0)
   {
       while(!PR);
      led0=~led0;  //灯亮表示可以放音,灯灭表示处于录音状态
   }
}
if(AN==0)
{
  delay_ms(5);
  if(AN==0)
  {
   if(led0)//如果处于luyin状态
   {
     powerup();
     powerup();
     powerup();
        led1=0;
     delay_ms(500);
     
     rec_addr(0);//在地址0录音
     do
     {
      record();
      delay_ms(20);
     }while(AN==0);//直到按键放开等待录音完成
     
     if(int_4004==0)//溢出
      overflow();//溢出报警
      
     led1=1;//灯灭
     stopmode();//录音完成
   }
   else  //放音状态
   {
    powerup();
    powerup();
    powerup();
    led1=0;
    delay_ms(500);
   
    play_addr(0);//播放地址0的录音
    do
    {
    play();
    delay(20);
    }while(int_4004==1);//等待EOM信号即录音播放完成,EOM到来之时int_4004变低
    stopmode();
    led1=1;
     
   }
  }
}
if(STOP==0)
{
  delay_ms(5);
  if(STOP==0)
  {
   while(!STOP);
   stopmode();
   powerup();
  }
}
} 此帖出自小平头技术问答
0条回答

一周热门 更多>