单片机驱动蜂鸣器为什么有杂音?

2019-07-16 00:38发布

这是我的电路的一部分,为什么发声会不清晰呢?
1.jpg
测试程序如下:
#include<reg51.h>
#define uint unsigned  int
#define uchar unsigned char
sbit SPK=P2^7;

void alARM(uchar t) //产生200个周期为2t的波形
{
        uchar i,j;
        for(i=0;i<200;i++)
        {
                SPK=~SPK;
                for(j=0;j<t;j++)
                ;
        }
}

void delayms(uint xms) //延时110*x
{
        uint i,j;
        for(i=xms;i>0;i--)
        for(j=110;j>0;j--)
        ;
}       
void main()
{       
        uchar t;
        delayms(11*50);
        SPK=0;       

                  for(t=20;t>10;t--)
                  {
                          alarm(90);
                          delayms(t*30);
                  }

                  while(1)
                {
                alarm(90);
                delayms(100);       
                }
          

}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。