马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
我们在开发板上装有一个交流源蜂鸣器,可用做发声练习。其电路图和实物图如下所示:
file:///C:/Windows/system32/config/SYSTEM~1/AppData/Local/Temp/msohtml1/01/clip_image002.jpgfile:///C:/Windows/system32/config/SYSTEM~1/AppData/Local/Temp/msohtml1/01/clip_image004.jpg
首先,我们为什么选择交流蜂鸣器?所谓有源蜂鸣器是指在器件内部具有振荡器,所以只要在引脚上加上固定的直流电源,就能发出一定频率的声音,但缺点是频率固定唯一(在该蜂鸣器生产出来后就决定了)。交流蜂鸣器需要在引脚上加上一定频率的方波信号才能出声,而且声音的音调可有驱动方波的频率决定,所以音调是可调的,发出的声音更加逼真、悦耳。对CPLD/FPGA来说,产生频率可调方波并不是件难事。所以选择无源是很合适的。
电路中,主要由一个三极管,一个续流二极管和一个交流蜂鸣器组成。三极管Q1起开关作用,其基极的高电平使三极管饱和导通,使蜂鸣器发声;而基极低电平则使三极管关闭,蜂鸣器停止发声。因为蜂鸣器本质上是一个感性元件,其电流不能瞬变,因此必须有一个续流二极管提供续流。否则,在蜂鸣器两端会产生几十伏的尖峰电压,可能损坏电路系统的其它部分。交流蜂鸣器也有正负极,在器件的上方和板子上面都标注了,焊接时注意方向。
有了蜂鸣器的硬件组成,下面我们讲解下如何发出音谱上的音调。
每个音调,其实都是一个固定频率的振动,频率的高低决定了音调的高低。简谱中的音名与频率的对应关系如表1所示:表1 简谱中的音名与频率的对应关系
音名 |
频率/Hz |
音名 |
频率/Hz |
音名 |
频率/Hz |
低音1 |
261.6 |
中音1 |
523.3 |
高音1 |
1046.5 |
低音2 |
293.7 |
中音2 |
587.3 |
高音2 |
1174.7 |
低音3 |
329.6 |
中音3 |
659.3 |
高音3 |
1318.5 |
低音4 |
349.2 |
中音4 |
698.5 |
高音4 |
1396.9 |
低音5 |
392 |
中音5 |
784 |
高音5 |
1568 |
低音6 |
440 |
中音6 |
880 |
高音6 |
1760 |
低音7 |
493.9 |
中音7 |
987.8 |
高音7 |
1975.5 |
当采用12M作为基准时钟时,那么各个音调的分频系数可按这个公式计算:12 000 000 ÷音调频率÷2(除以2表示半个周期),所以得出如下不同音调的分频系数表格(十六进制表示,已进行四舍五入)表格2 不同音调对应的分频系数(只列举了低音部分)
音名 |
分频系数 |
低音1 |
5997 |
低音2 |
4FCD |
低音3 |
471B |
低音4 |
431E |
低音5 |
3BCA |
低音6 |
3544 |
低音7 |
2F74 |
所以综上所述,我们在程序中只要按表格里的分频系数产生一定频率的方波就能产生对应的音调了。 |