单片机用C语言让蜂鸣器发出两种声调,怎么编程? 20

这是我的部分代码,帮忙看下beep1和beep2怎么编码,要求beep1发出低声,beep2发出高声sbitsclk=P1^0;sbitio=P1^1;sbitrest=... 这是我的部分代码,帮忙看下beep1和beep2怎么编码,要求beep1发出低声,beep2发出高声
sbit sclk=P1^0;
sbit io=P1^1;
sbit rest=P1^2;
sbit cd=P1^3;

...........
void beep1()
{

}

void beep2()
{

}

void clock()
{
unsigned char s,m,h;
int i;

s=dataTime[0];

m=dataTime[1];

h=dataTime[2];
if(s==59&&m==59)
{
if(h==0)
{
h=h+24;

for(i=0;i<h;i++)
beep1();
beep2();
}
else
{
for(i=0;i<h;i++)
beep1();
beep2();
}
}

}
展开
 我来答
wannenggong9559f
生活家

2013-06-27 · 关注于个人成长
知道大有可为答主
回答量:3691
采纳率:82%
帮助的人:787万
展开全部
不会修改程序,但是可以送你一段程序,如果有心就看看吧;
//以下程序运行于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;//音乐结束后扬声器关闭
}
做而论道
高能答主

2013-06-27 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.2万
采纳率:86%
帮助的人:8817万
展开全部
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++);}
}
//-------------------------

其中的数字,随便改一改,自己听听效果。
追问
现在身边没有实验箱,明天有问题再问你,谢谢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友64c849d
2013-06-28 · 超过16用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:36.9万
展开全部
改变发生频率,用定时器生成两个频率就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
纷飞湮灭CQ
推荐于2017-09-21 · TA获得超过5854个赞
知道大有可为答主
回答量:5984
采纳率:61%
帮助的人:1017万
展开全部
让蜂鸣器发出两种不同的声调很容易,只要给蜂鸣器的控制信号发送不同频率的脉冲就可以实现了,以下以延时方式来做。
#include<reg51.h>
#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<t;j++); //由参数t行成不同的频率
}
}
voidmain()
{
SPK=0;
while(1)
{
if(K1==1)
{
Alarm(90);
Alarm(120);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式