效果演示
https://www.bilibili.com/video/BV1zm4y1c785/?vd_source=8c09b180039a8e6891416332c317aac8
基础知识
蜂鸣器
蜂鸣器是一种一体化结构的电子发声器件,广泛应用于计算机、报警器、电子玩具、电话机、定时器等电子产品中,如图所示为市场上常见的蜂鸣器产品,一种是有源蜂鸣器,另一种是无源蜂鸣器。
有源蜂鸣器直接接上额定电源就可连续发声,有源蜂鸣器工作的理想信号是直流电。因为蜂鸣器内部有一简单的振荡电路,能将恒定的直流电转化成一定频率的脉冲信号,从而实现磁场交变,带动钼片振动发音。但是在某些有源蜂鸣器在特定的交流信号下也可以工作,只是对交流信号的电压和频率要求很高,此种工作方式一般不采用。无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声,原因在于内部没有驱动电路。无源蜂鸣器工作的理想信号是方波。如果给预直流信号蜂鸣器是不响应的,因为磁路恒定,钼片不能振动发音。
有源蜂鸣器 无源蜂鸣器一般的,两种蜂鸣器外观上看有些不同,如图所示,蜂鸣器背面可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。当然从外观上看多数可以这样判断,而最准确的判断方法可以用万用表电阻档 Rxl 档来测试:用黑表笔接蜂鸣器 "+"引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有 8 (或 16 )的是无源蜂蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。
实验平台采用的蜂鸣器控制电路如图所示:
蜂鸣器控制电路实验原理
(1)一个音阶对应一个频率,要获取对应的频率可直接使用宏模块LPM_COUNTER对时钟进行分频。以高音C(1)为例,其频率为523Hz,现有系统时钟频率为50MHz,直接使用宏模块,为得到50*10^6 /523≈95602的分频,选择2^17=131072,最后q[16..0]为得到的分频。这种分频方式比较精准。
LPM_COUNTER按照上述方法,生成所有音阶。
各个音阶对应频率
(2) 调整频率占空比。占空比是指高电平在一个周期之内所占的时间比率,方波的占空比为50%,占空比为0.5,说明正电平所占时间为0.5个周期。若信号的周期为T,每周期高电平时间为t1,低电平时间为t2,T=t1+t2,则占空比D=t1/T。当占空比的比例在80%时,蜂鸣器发出的声音会比较理想。调整频率占空比可直接使用宏模块中的比较器LPM_COMPARE,当比较器“小于”80%的频率时,输出端获取合适的占空比。
LPM_COMPARE(3)音乐播放器需要使用的各音阶应该先生成备用,以便乐谱选择音阶实现乐谱的播放。将以生成的各个音阶对应的频率放入如图74151的D0 ~ D7通道中,通过74151多路选择器ABC通道的编码输入,选择D0 ~ D7通道的音阶,从Y通道输出频率,驱动蜂鸣器发音,最终实现产生音阶的播放。如需要输出的音阶数量大于74151多路选择器的输入端口,可选择LPM_MUX多路选择器,其功能与74151相同,输入信号可从data[X..0](注:X最大值为256)进入,选择信号从sel[7..0]进入,最终输出信号从result端口输出。
74151 LPM_MUX(4)本次实验的乐谱用如图LPM_ROM记录频率输出规律的方法,实现记录频率输出的顺序,达到音乐被完整记录的效果。宏模块LPM_ROM作为存储器,q[2..0]为其数据输出端口,其输出总线的宽度最大可达256bit,将存储内最大的数据转换为二进制,则输出总线需要的最大宽度就为此二进制的位数;address[7..0]负责这个存储器数据的选择,也代表了这个存储器的内存宽度,最大可达65536个3字位;clock则是此存储器的时钟,负责LPM_ROM的驱动。LPM_ROM最重要的数据存储是通过如图mif文件格式存储的,只需将“小星星”简谱输入到mif文件中保存。
小星星简谱
然后,在存储器中选择此mif文件,则乐谱就生成完成了。
LPM_ROM mif文件在数字电路实验教学平台各个LED管对应的FPGA控制管脚如表所示:
各LED管对应的FPGA控制管脚拨码开关对应的FPGA控制管脚:
拨码开关对应控制管脚
按键对应的FPGA控制管脚:
按键对应控制管脚
蜂鸣器对应的FPGA控制管脚:
蜂鸣器对应控制管脚步骤
(1) 启动Quartus II,利用建立工程向导建立一个工程文件。
(2) 选择File->New->Block Diagram/Schematic,建立一个原理图输入文件。
选择file->new->Memory Files->Memory initialization File,建立一个mif文件。
(3) 双击原理图空白处,输入所要添加的器件,然后设置引脚的输入、输出值,编译通过后对引脚进行IO分配,并把没用到的引脚设置为三态输入。
(4) 把编译成功的文件下载到核心板上,观察结果。
(5) 填写实验报告(可以在背面填写或者另添纸填写)。
(6) 完成基本实验后可以设计自己的实验。
音乐播放器的设计与实现
班级 | 学号 | 姓名 | 指导教师 | 实验时间 |
---|---|---|---|---|
20____年____月 |
要求
- 通过对系统时钟50MHz分频的方式产生do,re,mi...等频率;
- 分别调节各频率的占空比,都固定为大约80%左右;
- 利用蜂鸣器,实现歌曲的自动播放。
网友评论