标题:
请问怎么按键控制蜂鸣器音量大小啊
[打印本页]
作者:
sanqisang
时间:
2018-7-9 11:33
标题:
请问怎么按键控制蜂鸣器音量大小啊
百度搜遍了也没找到例子。。。。有没有大神教教啊最简单的例子也可以。
听说无源的不能控制?那有源的呢
作者:
hayden
时间:
2018-7-9 12:13
用PWM可调占空比控制音量。
作者:
canw
时间:
2018-7-9 12:53
有源无源的貌似都无法控制音量。
作者:
sanqisang
时间:
2018-7-9 13:14
hayden 发表于 2018-7-9 12:13
用PWM可调占空比控制音量。
程序不太会写....
作者:
lzts88
时间:
2018-7-9 13:30
不能控制音量。音量大小是硬指标,参数定死的
作者:
zsyzdx
时间:
2018-7-9 13:50
有源的可以的,控制电压就行了!!
作者:
yayay
时间:
2018-7-9 14:00
想办法控制电流啊 电流控制音量啊
作者:
盘盘盘
时间:
2018-7-9 14:17
貌似无法控制哎
作者:
上善-若水
时间:
2018-7-9 15:23
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);
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1