標題: stc89c52單片機蜂鳴器不響,請教各位大佬! [打印本頁]

作者: 滄瀾釣翁    時間: 2018-1-24 10:59
標題: stc89c52單片機蜂鳴器不響,請教各位大佬!
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit BEEP=P3^7;                

音符頻率表,不同頻率由不同的延時來決定
uchar code SONG_TONE[]=
        {212,212,190,212,159,169,
        212,212,190,212,142,159,
        212,212,106,126,159,169,
        190,119,119,126,159,142,
        159,0};                
       
/節(jié)拍表,節(jié)拍決定每個音符的演奏長短
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 DelayMS(uint z)
{
        uint x,y;
        for(x=0;x<z;x++)         
//        while(x--)
                for(y=0;y<110;y++);
}

//播放函數(shù)
void PlayMusic()
{   uint i=0,j,k;
        while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)
        {
        //播放各個音符,SONG_LONG為拍子長度
        for(j=0;j<SONG_LONG[i]*20;j++)
        {
                BEEP=~BEEP;
                //SONG_TONE延時表決定了每個音符的頻率
        for(k=0;k<SONG_TONE[i]/3;k++);
        }
        DelayMS(10);
        i++;
        }
        }
        void main()
        {
                BEEP=0;
                while(1)
        {
                PlayMusic(); //播放
                DelayMS(500); //播放完后暫停一段時間
        }
}


作者: cccc888    時間: 2018-1-24 11:44
注釋可用雙斜線,不是單斜線。
程序除注釋外,沒問題,可發(fā)聲。
作者: 劉海龍    時間: 2018-1-24 12:35
用無源蜂鳴器
作者: xdl932365660    時間: 2018-1-24 14:12
確定是軟件的事情,而不是硬件的原因么,可以用Protes仿真,確定下問題所在




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1