1.可以用计数器然后控制三极管和蜂鸣器,可以简单用单片机实现计数功能,然后通过不同的电阻网络来调节电流。
2.用单片机输出pwm控制三极管然后控制蜂鸣器。仅供参考
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar count;
sbit PWM=P2^0;
sbit zz=P1^0;
uchar N=0;
void delay(uint k)
{ uchar i,j;
for(i=0;i<k;i++)
{for(j=0;j<121;j++)
{;}
}
}
void T0_init()
{ TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
ET0=1;
TR0=1;
EA=1;
}
void time0(void) interrupt 1 using 1
{ TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
count++;
if(count<=N) PWM=0;
else PWM=1;
if(count>=100)
count=0;
}
void main(void)
{
T0_init();
while(1)
{ if(!zz)
{delay(100);
if(!zz)
{N=N+1;
if(N>100)
N=0;
}
}
delay(100);
}
}
|