单片机中改变蜂鸣器的发声频率是什么原理
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/16 09:05:49
单片机中改变蜂鸣器的发声频率是什么原理
利用编程来改变蜂鸣器的发声频率是什么原理,最好能附一小段代码解释,
利用编程来改变蜂鸣器的发声频率是什么原理,最好能附一小段代码解释,
你说的应该是无源蜂鸣器,需要外部提供脉冲信号才会发声,且声音会随脉冲频率变化而变化.而有源蜂鸣器内部有振荡器,所以只需要提供电压(高电平)就能发声,它们的原理不同,你提到的应该是前者.
举例说明吧,你定义 一个IO连接蜂鸣器.比如,sbit fmq=P1^0; 再来个500US延时函数.
void beep()\x09//所以会产生1KHZ频率声音
{
\x09fmq=0;
\x09delay500us();
\x09fmq=1;
\x09delay500us();\x09
}
再问: 为什么500us的延时函数就可以产生1kHz的频率呢,那如果要产生2kHz,5kHz呢
再答: 500us高电平,500us低电平,那周期不正好是1MS嘛,所以频率就是1K HZ啊。 如果是其它频率你可以换个延时函数啊,给你个 MS 延时函数,
void delayms(unsigned int i)
{
unsigned char j;
while(i--)
{
for(j=0;j
举例说明吧,你定义 一个IO连接蜂鸣器.比如,sbit fmq=P1^0; 再来个500US延时函数.
void beep()\x09//所以会产生1KHZ频率声音
{
\x09fmq=0;
\x09delay500us();
\x09fmq=1;
\x09delay500us();\x09
}
再问: 为什么500us的延时函数就可以产生1kHz的频率呢,那如果要产生2kHz,5kHz呢
再答: 500us高电平,500us低电平,那周期不正好是1MS嘛,所以频率就是1K HZ啊。 如果是其它频率你可以换个延时函数啊,给你个 MS 延时函数,
void delayms(unsigned int i)
{
unsigned char j;
while(i--)
{
for(j=0;j