51单片机蜂鸣器的发声教程。

大家好,今天我就把我学习到的蜂鸣器发声过程,分享给大家,可能有点片面,请见谅,将就着看吧,我也是新手。
我先带大家了解一下蜂鸣器的模式图吧,
51单片机蜂鸣器的发声教程。这就是蜂鸣器的原理图,E是发射极,B是基极,C是集电极。当E到B的电流大于1mA时E和C之间导通,或者当E到B的电压大于0.7V时E和C之间导通。例如当B处的电流是2mA时,E处的电流最低要是3mA时,E和C之间才可以导通。当E处的电压是5V时,B处的电压最高要是4.3V时,E和C之间才可以导通.51单片机蜂鸣器的发声教程。这个是三极管的模式图,E和C之间能否导通,取决于B的大小,一般情况下,给B一个高电平(5V)时无法导通,给B一个低电平(0V)时可以导通,在之前的文章里给大家说过,高电平在一般程序里用1表示,低电平用0表示,51单片机蜂鸣器的发声教程。这个圆圈里的P36表示芯片的I/O口,在程序中用P3^6表示,大家在自己的单片机芯片处可以看见一圈的P10,P11,P12…之类的,这里一般是8个为一体,和二进制的8位数一样0000 0000表示八个灯全亮,刚刚说了:0代表低电平,让灯可以亮起来,(这里再解释一下为什么低电平可以使灯发亮,LED灯本身有一个压差,我学习的这个为3V,若输入为5V输出为5V(这边一般是固定的5V)则不亮,若输入为0V则表示亮),
现在继续说蜂鸣器吧,结合图片,51单片机蜂鸣器的发声教程。先用sbit函数给beep定义,使beep表示三极管的I/O口P36,之后用按位取反符号(~)给beep按位取反,就是当beep为1时,按位取反的beep就为0,给大家看一下我的程序吧,51单片机蜂鸣器的发声教程。红色方框是我在上个流水灯程序的基础上添加的,不过没关系,第一个方框给大家说过了,给beep定义为P36口,P36是三极管,然后电流经过三极管到蜂鸣器,使蜂鸣器发声。第二个方框在while函数里,给beep按位取反,就是让beep随“流水灯”的速度在0和1之间变换,也就是给P36三极管低电平和高电平之间变换,(这里有必要再解释一下,我们用程序控制的是三极管B端(基极),高低电平给的是基极,而E端是VCC(电源),电源是通过数据线连接在我们的计算机上的),这样大家就好理解一些了吧,
如果不给beep按位取反,就是不让beep = ~beep;而是让beep = 0;蜂鸣器就不会随着“流水灯”的速度那样“滴答滴答”的响,而是只会发出“滴…”的响声不会停。
好啦,今天就说到这里,还是那句话,我是新手,我会把自己学到的和自己的见解写在这里,供那些同样是新手的朋友看,如果一些高手发现我这里有错误,可以联系我,QQ:2115756263.
谢谢大家,再见!