主页 > 科技生活 >佩视剧场_单片机用C语言让蜂鸣器发出两种声调,怎么编程? >

佩视剧场_单片机用C语言让蜂鸣器发出两种声调,怎么编程?

单片机用C语言让蜂鸣器发出两种声调,怎么编程?
让蜂鸣器发出两种调很容易,只要给蜂鸣器的控制信号发同频率的就可以实现了,以下以延时方式来做。
#include
#define uchar unsigned char
#define uint unsigned int
sbit SPK=P1^0;
sbit K1=P1^7;
//发声函数
void Alarm(uchar t)
{
uchari,j;
for(i=0;i<200;i++)
{
SPK=~SPK;
for(j=0;j}
}
voidmain()
{
SPK=0;
while(1)
{
if(K1==1)
{
Alarm(90);
Alarm(120);
}
}
}不会修改程可以送你一段程序,如果有心就看看吧;
//以下程序于STC12C**单片机
// BUZ为蜂鸣出I/O口定义名称
void Delay_1us(uint aa) //1T单片机/12MHz的n个us用于蜂鸣器
{
while (aa--)
{
_nop_();
_nop_();
}
}
/*----------------------------
响一声短音
----------------------------*/
void beep(void)
{
uint a;//定义变量用于发声的长度设置
for(a=300;a>0;a--)//第一个声音的长度

{
BUZ = ~BUZ;//产生音频
Delay_1us(100);//音调设置,延时调整赋值量可以调节音调
}
BUZ = 1;//音乐结束后扬声器关闭
}本回答被网友采纳sbit SPK = P1^7;
//-------------------------
void beep1()
{
int i, j;
for(i = 0; i < 200; i++) { SPK = ~SPK;for(j = 0; j < 200; j++);}
}
//-------------------------
void beep2()
{
int i, j;
for(i = 0; i < 200; i++) { SPK = ~SPK;for(j = 0; j < 400; j++);}
}
//-------------------------

的,随便改,自己听听效果追问

现在身边没有实验箱,明天有问题再问你,谢谢了改变发生频率,用定时器生成两个频率就行了
c51单片机怎么编程让蜂鸣器发出嘟嘟嘟的声


你可以在 百 上搜索 “单播放音乐”,你会得到答案能比较深刻解决这个问题。
单片机发声音,是编程 在 接有 蜂鸣器 的端口 间歇的输出某种频率的脉冲。
单片机在端口输出频率脉冲的最简单的方法 是使用 延时。

void beep()
{
unsigned char i,j,k;
for(i=0;i<18;i++)
{
for(j=0;j<250;j++)
{
for(k=0;k<120;k++) ;
SPK=!SPK;//发声音
}
for(j=0;j<130;j++)
{
for(k=0;k<120;k++) ; //间歇时间
}
}
}用延时程序或者定时器控制接蜂鸣器的端口输出频率在2khz左右的矩形波就能让蜂鸣器发声了
单片机蜂鸣器C语言编程
没有研究你的程序,但是Beep=~Beep;很好理解,就是将Beep的值取反,如果Beep原来是1(响),那么将Beep的值取反后再给回它自已那不是变成0(不响)了吗。本回答被提问者采纳sbit Beep =P1^5 ;
Beep 是变量不是端口,其值改变端口电平未变;
好像端口也未设为输出
编程使蜂鸣器响铃10次,每次响铃发出200HZ的声音,持续时间为0.25秒,静音0.5秒,单片机使
200HZ声音和持续0.25秒实现?
--
每隔 2.5ms,把输出端取反,即为 200Hz

取反 100 次,停止,即续 0.25s。

静音0.5秒,就是 2.5ms 的 200 倍。

为了精确定时,应该使用定时器。
----
楼主采纳的答案,并没有回答如何实现 200Hz 的方法。1、200HZ即周期为5ms
2、持续时间0.25S即为250ms
3、持续时间即为持续次数:250 / 5 = 50本回答被提问者采纳你先去看看蜂鸣器的资料吧使用一个timer实现,周期为5ms,产生50个周期


上一篇: 下一篇: