废话少说,直接代码~
#include <reg51.h>
#define uint unsigned int
sfr P4=0xE8;
sbit BEEP = P4^4;
void Delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=100;j>0;j--);
}
void beep()
{
BEEP=1;
Delay(100);
BEEP=0;
}
void main()
{
P4=0xff;
while(1)
beep();
}
机器周期为1us
------解决方案--------------------
改一下beep函数试试。
void beep()
{
BEEP=1;
Delay(300);
BEEP=0;
Delay(300);
}
------解决方案--------------------
也有可能是硬件驱动的问题,
蜂鸣器前要加三极管驱动的。
------解决方案--------------------
你这驱动能力不够的
你可以简单的接个小上拉电阻
还有蜂鸣器是有两种的,一种是给电就响,不需要给脉冲
另一种就是需要脉冲驱动的
你用电池接到蜂鸣器两端看你的是哪中蜂鸣器