标题:
无源蜂鸣器的发生控制(部分程序)
[打印本页]
作者:
蓝野
时间:
2017-10-2 15:17
标题:
无源蜂鸣器的发生控制(部分程序)
while(1)
{
beep=~beep;、//蜂鸣器已经定义,
delay(10); //延时大约100us 通过修改此延时时间达到不同的发声效果(频率改变音色)
beep=1;
delay(10); //延时函数,前面已经定义
beep=0;
delay(5); //调节占空比达到通过改变声音的大小 (还要进一步思考。因为与上面的周期不一致)
}
问题:对无源蜂鸣器第一部分设置频率(改变声音的音色),第二部分设置占空比(改变声音大小);但是前后的高低电平一个周期内,时间并不想等,有毛病吗?
作者:
wulin
时间:
2017-10-2 17:01
驱动无源蜂鸣器最好用定时器中断输出2000Hz,占空比50%的方波,用延时函数会严重影响其它程序运行。要改变频率就改一下定时器重载值。改变占空比并不能明显改变音量。
void Timer0Init() //250微秒@12.000MHz
{
TMOD= 0x02; //设置定时器自动重载模式
TL0 = 0x06; //设置定时初值
TH0 = 0x06; //设置定时重载值
// TR0 = 1; //定时器0开始计时
EA=1; //开全局中断
ET0=1; //允许T0中断
}
void timer0() interrupt 1
{
static uint count=0;//中断计数变量
count++;
Buzzer=~Buzzer; //蜂鸣器端口取反
if(count>=500) //持续时间
{
count=0; //计数清0
Buzzer=0; //蜂鸣器端口复位
TR0 = 0; //定时器0关闭
}
}
作者:
anhuiyesu
时间:
2017-10-3 11:06
牛人大赞
作者:
kelaosan
时间:
2019-4-21 15:44
请问此程序如何和通过按键控制蜂鸣器音量大小结合起来呢?
作者:
LH2344
时间:
2019-4-21 21:14
新手表示很难呀,看不明白
作者:
sewell
时间:
2019-4-22 01:15
赞一个
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1