标题: 请问一下这段程序实现了什么?这是基于51单片机的音乐播放器里的一段程序 [打印本页]

作者: wuwua    时间: 2020-3-28 21:17
标题: 请问一下这段程序实现了什么?这是基于51单片机的音乐播放器里的一段程序
void SendASC(uchar d)
{
   
    SBUF=d;
    while(!TI);     //

    TI=0;
}
void SendString(uchar *str)         
{
    while(*str!='\0')                       
    {
        SendASC(*str) ;           
        str++;                  
    }
}

//  通讯中断接收程序   中断函数无返回值
  void uart_rx(void)  interrupt 4    using 3      
{

       unsigned char i;
    unsigned char flag;
    unsigned char dat;
    if(RI)                     //是否接收中断     RI是接受中断请求标志位
    {
      
       RI=0;
       dat=SBUF;
       if(dat==0xc1) //接收数据第一帧
       {
            buff[0]=dat;
            flag=1;        //开始接收数据
       }
       else if(dat==0xc5)
       {
              buff[0] = dat;
              flag=2;
              i=1;
       }
       else if(dat==0xc9)
       {
              buff[0] = dat;
              flag=3;
              i=1;
            
       }
        else if(dat==0xc2)
       {
              buff[0] = dat;
              flag=4;
              i=1;
            
       }
       else
       {
           switch (flag)
           {   case 1:     flag=0;
                          yinliang= dat;
                       break;
                case 2:      if(i==1) i++;
                           else
                           {
                             flag=0;
                        
                             zongqumu=dat;
                           } break;
                case 3:         if(i==1) i++;
                           else
                           {
                             flag=0;
                          
                             dangqianqumu=dat;
                           }
                        
                             break;
              case 4:   flag=0;zhuangtai=dat;break;
            }
        }   
     }

}


#endif

作者: 罗程峰8200    时间: 2020-3-29 05:15
串口中断函数的收发,没什么特别的




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