找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3776|回復: 2
收起左側

想用手機發(fā)送信息通過藍牙模塊聯(lián)單片機控制蜂鳴器發(fā)出音樂

[復制鏈接]
ID:76963 發(fā)表于 2015-6-11 21:45 | 顯示全部樓層 |閱讀模式
遇到問題:手機發(fā)送2,3時可以控制蜂鳴器響,但是將音樂程序加入后,手機發(fā)送任何數(shù)字蜂鳴器都會滴滴響但不成音樂,以下是我寫的下位機程序,不知道哪里出錯了,請各位大神指教,謝謝謝謝。。!急需!

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char  //無符號字符型 宏定義        變量范圍0~255
#define uint  unsigned int         //無符號整型 宏定義        變量范圍0~65535
sbit Beep =  P2^1 ;
uchar tmp;
uchar i,j,flag,time1,time2;
uint code array1[]={
     400,400,650,650,650,1200,
     400,400,650,650,650,1200,
     400,400,650,650,650,650,1200,
     400,400,650,650,650,1200
     };
uchar code array[]={
     0xfd,0x79,0xfd,0x79,0xfd,0xc7,0xfd,0x79,0xfe,0x21,0xfe,0x05,
        0xfd,0x79,0xfd,0x79,0xfd,0xc7,0xfd,0x79,0xfe,0x51,0xfe,0x21,  
     0xfd,0x79,0xfd,0x79,0xfe,0xc0,0xfe,0x84,0xfe,0x21,0xfe,0x05,0xfd,0xc7,
     0xfe,0x99,0xfe,0x99,0xfe,0x90,0xfe,0x21,0xfe,0x51,0xfe,0x21
     };
void delay(uint m)
{
            uint n;
         for(;m>0;m--)
          for(n=125;n>0;n--);
}


void init()               //初始化  
{  
          TMOD = 0x21;       // 定時器1工作于8位自動重載模式, 用于產(chǎn)生波特率  
          TH1=TL1=0xFD;      // 波特率9600  
                   
      SCON = 0x50;       // 設定串行口工作方式1 允許接收,相當于下面三句  
                //SM0=0;  
                //SM1=1;  
                //REN=1;  
          PCON =0x00;        // 波特率不倍增  
          
          EA=1;  
          ES=1;                              
            Beep =0;           //初始化設置指示燈滅  
                delay(25);
                Beep =1;
}  


void ctrl()         //根據(jù)接受信息做出操作  
{  
       
  switch(tmp)  
          {         
     case '2':      flag=1;    break;          //收到字符2,指示燈亮   
         case '3':       flag=2;     break;          //收到字符3,指示燈滅

          }  
}  

  /************************************************/   
void beep_with()
{
        if(flag==1)
        {        TH0=TL0=0;
            TR1 = 1;
            ET0=1;  
                 while(1)
                         {
                          time1=array[i++];
                          time2=array[i++];
                          if(i==50)
                           i=0;
                          delay(array1[j++]);
                          if(j==25)
                           j=0;
                         }
        }       
    if(flag==2)
        {
            TR0=0;
                Beep=~Beep;
         }
}         

void main( )  
        { init();
          while(1)  
                {  
                   if(RI==1)         // 是否有數(shù)據(jù)到來  
                      {  
                        RI = 0;  
                        tmp = SBUF;                  
                    ctrl();
                                        beep_with();
                      }            
                }  
        }  


void init0() interrupt 1
{
         TR0=0;
         Beep=~Beep;
         TH0=time1;
         TL0=time2;
         TR0=1;
}         

回復

使用道具 舉報

ID:1 發(fā)表于 2015-6-12 01:34 | 顯示全部樓層
這個程序是播放什么音樂的?  數(shù)組這么短
回復

使用道具 舉報

ID:76963 發(fā)表于 2015-6-14 16:52 | 顯示全部樓層
admin 發(fā)表于 2015-6-12 01:34
這個程序是播放什么音樂的?  數(shù)組這么短

生日快樂
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表