标题: 实现led和声音同时工作 [打印本页]

作者: chuanrain    时间: 2012-12-26 08:53
标题: 实现led和声音同时工作
sbit BEEP = P3^7;
void DelayMS(uint x)
{
     uchar t;
    while(x--)
    {
         for(t=120;t>0;t--);
    }
}
uchar code SONG_TONE[]=
{
 212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,129,169,190,119,119,126,159,142,159,0
};
uchar code SONG_LONG[]=
{
     9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0
};

void PlayMusic()
{
     uint i =0,j,k;
    while(SONG_LONG!=0||SONG_TONE!=0)
    {
         for(j=0;j<SONG_LONG*20;j++)
        {
             BEEP = ~BEEP; 
            for(k=0;k<SONG_TONE/3;k++);
        }
        DelayMS(10);
        i++;
    }
}

void main()
{
     uchar i;
    while(1)
    {
      P2=0x01;   
     if(sw==0)
      {
        DelayMS(100);
        if(sw==0)
         {     
            PlayMusic();
            //DelayMS(500);   
         for(i=7;i>0;i--)
            {
                P2=_crol_(P2,1);
                DelayMS(100);
            }
            for(i=7;i>0;i--)
            {
                 P2=_cror_(P2,2);
                DelayMS(150);
            } 
        }
     }       
   } 
}

作者: hodenshi    时间: 2012-12-27 16:34
 牛人




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