这一课,我们将学习如何控制蜂鸣器的声音输出,这一课我们只输出一个频率的声音,之后几课我们将逐步输出更为复杂的音乐声,你甚至可以自己输入一个乐谱,直接播放出来。
蜂鸣器有有源和无源的几种。也称为直流蜂鸣器和交流蜂鸣器。有源蜂鸣器只要通上直流电,就会发出预定的声音,比如,连续嘀声,或者间断嘀嘀声,这种声音无法控制,频率也无法改变。一般用在一些简单应用场合。无源蜂鸣器相当于一个简单的喇叭,通上直流点不会发声,只有通上交流电时,才会根据交流点的频率发出相应的声音,这种蜂鸣器可以任意控制声音输出,但是需要用户以相应的信号驱动,工作复杂一些。
我们的试验使用的是交流蜂鸣器。我们的电路中用P17来驱动。
下面看连续输出一个频率的例程:
―――――――――――― 程序里,在延时一点时间之后,就将驱动蜂鸣器的引脚取反,不断循环,形成一个交流信号,蜂鸣器也就响了。 请编译,运行。可以听到发出嘀的连续的声音。
#define uchar unsigned char //定义一下方便使用
#define uint unsigned int
#define ulong unsigned long
#include
char code dx516[3] _at_ 0x003b;//这是为了仿真设置的
sbit P10=P1^0; //LED1
sbit K1=P3^2; //K1
sbit BEEP=P1^7; //喇叭输出脚
//嘀声报警信号输出试验
void main(void) // 主程序
{
uint n;
while(1)
{
for(n=0;n<100;n++); //延时
BEEP=~BEEP; //取反输出到喇叭的信号
}
}
―――――――――――――――――――
-
-
xilinxue 发表于 2009/2/7 13:13:23
改变延时值,以改变蜂鸣器输出声音的频率。
第十八课工程源码lesson18code.rar
引用 xilinxue 2009/2/7 13:13:23 发表于2楼的内容
-
引用 xilinxue 2009/2/10 13:27:08 发表于3楼的内容