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);
}
}
|