vhdl实验报告--蜂鸣器

合集下载

蜂鸣报警器实训报告

蜂鸣报警器实训报告

一、实训目的本次实训旨在使学生了解蜂鸣报警器的工作原理、电路组成以及制作方法,培养学生的动手能力和实际操作技能。

通过本次实训,使学生掌握以下内容:1. 蜂鸣报警器的工作原理;2. 蜂鸣报警器电路的组成及各元件的作用;3. 蜂鸣报警器的制作方法;4. 蜂鸣报警器的调试与测试。

二、实训原理蜂鸣报警器是一种常用的电子报警设备,它利用蜂鸣器发出声音来提醒人们注意。

当电路中的某些参数(如电压、电流等)超过设定值时,蜂鸣器就会发出报警声。

本实训所采用的蜂鸣报警器电路主要由555定时器、蜂鸣器、电阻、电容等元件组成。

1. 555定时器:555定时器是一种集成电路,具有定时、振荡、整形等功能。

在本电路中,555定时器作为振荡器,产生一定频率的方波信号,控制蜂鸣器发出报警声。

2. 蜂鸣器:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。

当两端加上工作电压后,蜂鸣器即可以发出鸣叫声。

3. 电阻、电容:电阻和电容在电路中起到限流、滤波、耦合等作用。

三、实训内容1. 蜂鸣报警器电路的搭建(1)准备元件:555定时器、蜂鸣器、电阻、电容、面包板、导线等。

(2)按照电路图连接电路,注意连接顺序。

(3)将电路连接完成后,检查电路连接是否正确。

2. 蜂鸣报警器的调试与测试(1)给电路供电,观察蜂鸣器是否发出报警声。

(2)调整电路参数(如电阻、电容等),观察报警声的变化。

(3)记录不同参数下的报警声变化情况。

四、实训结果与分析1. 实训结果通过本次实训,成功搭建了蜂鸣报警器电路,并实现了报警功能。

2. 实训分析(1)电路连接正确,电源电压稳定,蜂鸣器能够发出报警声。

(2)调整电路参数,可以改变报警声的频率和音量。

(3)在实训过程中,遇到的问题及解决方法:问题1:蜂鸣器不发声。

解决方法:检查电路连接是否正确,确保电源电压稳定。

问题2:报警声频率不正常。

解决方法:调整电阻、电容等元件的参数,以达到预期的报警声频率。

五、实训心得体会1. 通过本次实训,加深了对蜂鸣报警器工作原理的理解,掌握了电路搭建、调试与测试的方法。

蜂鸣器实训报告

蜂鸣器实训报告

一、实训目的本次蜂鸣器实训的主要目的是通过实际操作,掌握蜂鸣器的工作原理、电路连接方法及其在电子项目中的应用。

通过实训,提升对电子元件的认识,增强动手实践能力,并培养解决实际问题的能力。

二、实训时间2023年X月X日至2023年X月X日三、实训地点电子实验室四、实训内容1. 蜂鸣器基本原理蜂鸣器是一种电子元件,它可以将电信号转换为声信号。

当通过蜂鸣器的电流发生变化时,蜂鸣器内部的电磁铁会产生振动,从而发出声音。

蜂鸣器分为无源蜂鸣器和有源蜂鸣器两种类型。

2. 蜂鸣器电路连接在本次实训中,我们主要学习了无源蜂鸣器的电路连接方法。

首先,我们需要准备以下材料:蜂鸣器、面包板、导线、电源、电阻等。

具体步骤如下:(1)将蜂鸣器的正负极分别与面包板上的两个孔相连;(2)将电阻的一端与蜂鸣器的正极相连,另一端与电源的正极相连;(3)将电源的负极与蜂鸣器的负极相连;(4)将电阻的另一端与电源的负极相连,形成一个完整的电路。

3. 蜂鸣器应用在电子项目中,蜂鸣器可以用来发出警告声、提示音等。

以下是一些蜂鸣器的应用实例:(1)电子门铃:当有人按下按钮时,蜂鸣器发出铃声;(2)温度报警器:当温度超过设定值时,蜂鸣器发出警报声;(3)水位报警器:当水位超过设定值时,蜂鸣器发出警报声。

五、实训过程1. 准备阶段在实训开始前,我们首先对蜂鸣器的基本原理进行了学习,了解了蜂鸣器的种类、工作原理以及电路连接方法。

2. 实践操作在实验室老师的指导下,我们按照步骤将蜂鸣器连接到电路中。

在连接过程中,我们注意了以下几点:(1)确保电路连接正确,避免短路或断路;(2)注意电源电压的选择,避免对蜂鸣器造成损害;(3)观察蜂鸣器的工作状态,确保其能够正常发出声音。

3. 问题解决在实训过程中,我们遇到了一些问题,如电路连接错误、蜂鸣器不发声等。

通过查阅资料、与同学讨论以及向老师请教,我们成功解决了这些问题。

六、实训总结通过本次蜂鸣器实训,我收获颇丰。

蜂鸣器谱曲实验报告

蜂鸣器谱曲实验报告

一、实验目的1. 了解蜂鸣器的工作原理和特性;2. 掌握蜂鸣器谱曲的基本方法;3. 通过实验,验证蜂鸣器演奏音乐的效果。

二、实验原理蜂鸣器是一种电磁声音变换器,它利用电信号的变化产生声音。

蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。

当接通电源后,多谐振荡器起振,输出音频信号,阻抗匹配器推动压电蜂鸣片发声。

蜂鸣器谱曲的基本方法是通过编程控制蜂鸣器发出不同频率的音频信号,从而实现演奏音乐的效果。

音乐由音调和节拍两个主要元素组成,对于蜂鸣器来说,频率的高低决定了音调的高低。

三、实验器材1. 蜂鸣器;2. 电脑;3. 编程软件(如C语言、Python等);4. 连接线和电源。

四、实验步骤1. 连接蜂鸣器将蜂鸣器的正负极分别连接到电脑的GPIO(通用输入输出)端口,确保连接正确。

2. 编写程序使用编程软件编写程序,实现以下功能:(1)初始化蜂鸣器端口;(2)定义音乐音符频率表,包括音符、频率和持续时间;(3)根据音符频率和持续时间,通过GPIO端口控制蜂鸣器发出相应频率的音频信号;(4)循环播放音乐音符,实现整首歌曲的演奏。

3. 编译程序将编写好的程序编译成可执行文件。

4. 播放音乐将编译好的程序运行在电脑上,观察蜂鸣器是否能够演奏出预定的音乐。

五、实验结果与分析1. 实验结果通过编程控制蜂鸣器,成功演奏了一首简单的歌曲。

播放过程中,蜂鸣器能够发出不同频率的音频信号,实现音乐演奏的效果。

2. 分析(1)蜂鸣器能够发出不同频率的音频信号,说明蜂鸣器具有较好的音质表现。

(2)通过编程控制蜂鸣器,可以实现音乐演奏的效果,说明蜂鸣器在音乐领域的应用前景广阔。

(3)实验过程中,由于蜂鸣器受到电源、环境等因素的影响,可能导致音质不够理想。

在今后的实验中,可以尝试优化程序,提高音质。

六、实验总结1. 通过本次实验,了解了蜂鸣器的工作原理和特性,掌握了蜂鸣器谱曲的基本方法。

2. 实验结果表明,蜂鸣器能够发出不同频率的音频信号,实现音乐演奏的效果。

按键计数蜂鸣器实验报告(3篇)

按键计数蜂鸣器实验报告(3篇)

第1篇一、实验目的1. 了解按键电路的工作原理。

2. 掌握蜂鸣器的工作原理及其控制方法。

3. 学习使用C语言进行嵌入式编程。

4. 培养动手实践能力和团队合作精神。

二、实验原理1. 按键电路:按键电路由按键、上拉电阻和下拉电阻组成。

当按键未被按下时,上拉电阻将输入端拉高;当按键被按下时,下拉电阻将输入端拉低。

2. 蜂鸣器电路:蜂鸣器是一种发声元件,其工作原理是利用电磁铁的磁力使振动膜片振动,从而产生声音。

蜂鸣器的控制主要通过改变输入信号的频率来实现。

3. 计数原理:通过按键输入信号,实现计数器的计数功能。

当按键被按下时,计数器加一;当按键被连续按下时,计数器的计数值随之增加。

三、实验器材1. 单片机开发板(如STC89C52)2. 按键3. 蜂鸣器4. 电阻5. 接线6. 电脑7. 调试软件(如Keil uVision)四、实验步骤1. 设计电路图:根据实验要求,设计按键、蜂鸣器和单片机的连接电路图。

2. 编写程序:使用C语言编写程序,实现按键计数和蜂鸣器控制功能。

3. 编译程序:将编写好的程序编译成机器码。

4. 烧录程序:将编译好的机器码烧录到单片机中。

5. 调试程序:通过调试软件对程序进行调试,确保程序正常运行。

6. 测试实验:将单片机连接到实验电路中,进行按键计数和蜂鸣器控制测试。

五、实验代码```cinclude <reg52.h>define uchar unsigned chardefine uint unsigned intsbit key = P3^2; // 按键连接到P3.2端口sbit buzzer = P1^0; // 蜂鸣器连接到P1.0端口uchar count = 0; // 计数器void delay(uint t) {uint i, j;for (i = 0; i < t; i++)for (j = 0; j < 127; j++);}void buzzer_on() {buzzer = 0; // 使蜂鸣器发声}void buzzer_off() {buzzer = 1; // 使蜂鸣器停止发声}void main() {while (1) {if (key == 0) { // 检测按键是否被按下delay(10); // 消抖if (key == 0) {count++; // 计数器加一buzzer_on(); // 使蜂鸣器发声delay(500); // 发声时间buzzer_off(); // 停止发声}}}}```六、实验结果与分析1. 当按键未被按下时,蜂鸣器不发声。

VHDL语言蜂鸣器

VHDL语言蜂鸣器

蜂鸣器输出报警声实验一.实验目的学习交流蜂鸣器的发音原理。

二.实验内容在SmartSOPC实验箱上的蜂鸣器输出报警笛声。

三.实验原理SmartSOPC实验箱上有1个交流蜂鸣器BUZZER,通过跳线JP6的BEEP与芯片相连接。

为了增强I/O口的驱动能力,在此采用了PNP型三极管,这样只要在BEEP上输入一定频率的脉冲蜂鸣器就会发出音乐。

四.实验程序实验源程序如下:Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity aa isPort( clk:in std_logic;beep:out std_logic);end aa;Architecture m1 of aa issignal beep_r:std_logic;signal count:std_logic_vector(15 downto 0);beginbeep<=beep_r;process(clk)beginif clk'event and clk='1' thencount<=count+'1';end if;end process;process(count(15))beginbeep_r<=not beep_r ;end process;end m1;五.实验步骤(1)、在QuartusII中建立一个工程项目文件beep.qpf,并在该项目下新建VHDL源程序文件输入源程序代码并保存。

(2)、选择目标器件并对相应的引脚进行锁定,在这里在这里所选择的目标器件为Altera 公司Cyclone系列的EP1C12Q240C8芯片,引脚锁定的方法如表6.1,将未使用的管脚设置为三态输入。

表1 引脚锁定方法信号引脚信号引脚1C6 1C12 EDA 1C6 1C12 EDA beep 175 175 175 clk 28 28 28(3)、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。

制作蜂鸣器模块实验报告

制作蜂鸣器模块实验报告

一、实验目的1. 了解蜂鸣器的工作原理及分类。

2. 掌握蜂鸣器模块的制作方法。

3. 学会使用蜂鸣器模块进行简单的声音控制。

二、实验原理蜂鸣器是一种电子音响器件,其工作原理是利用电流通过压电陶瓷片或电磁线圈产生振动,从而发出声音。

根据驱动方式,蜂鸣器可分为有源蜂鸣器和无源蜂鸣器两种。

1. 有源蜂鸣器:内部自带振荡电路,只需接通电源即可发声。

2. 无源蜂鸣器:需要外部电路提供方波信号驱动。

本实验采用有源蜂鸣器模块,其内部结构包括振荡电路、驱动电路、压电陶瓷片等。

三、实验器材1. 有源蜂鸣器模块2. 单片机(如Arduino)3. 杜邦线4. 电源5. 万用表6. 烧录器四、实验步骤1. 搭建电路:- 将蜂鸣器模块的VCC引脚连接到单片机的5V电源;- 将蜂鸣器模块的GND引脚连接到单片机的GND;- 将蜂鸣器模块的I/O引脚连接到单片机的数字输出引脚(如D8)。

2. 编写程序:- 使用单片机编程语言(如Arduino)编写程序,通过控制数字输出引脚的高低电平,控制蜂鸣器发声。

3. 烧录程序:- 将编写好的程序烧录到单片机中。

4. 测试:- 连接电源,观察蜂鸣器是否发声。

五、实验结果与分析1. 实验结果:- 成功搭建蜂鸣器模块电路;- 编写程序控制蜂鸣器发声;- 实现简单的音乐播放功能。

2. 分析:- 通过控制单片机数字输出引脚的高低电平,可以改变蜂鸣器的频率,从而控制音调;- 通过改变高低电平的持续时间,可以改变蜂鸣器的音量;- 可以通过编程实现多种声音效果,如音乐播放、报警等。

六、实验总结1. 通过本次实验,掌握了蜂鸣器的工作原理及分类;2. 学会了蜂鸣器模块的制作方法;3. 掌握了使用蜂鸣器模块进行简单的声音控制。

七、拓展应用1. 将蜂鸣器模块应用于智能家居系统,实现门铃、报警等功能;2. 将蜂鸣器模块应用于机器人,实现语音提示、警报等功能;3. 将蜂鸣器模块应用于音乐创作,实现音效合成等功能。

单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告单片机《蜂鸣器》实验报告一、实验目的本次实验旨在通过单片机的控制,实现对蜂鸣器的驱动和发声控制,进一步了解蜂鸣器的工作原理及应用。

二、实验原理蜂鸣器是一种电子发声器件,常用于发出警告、提示或声音信号。

其工作原理是利用电磁感应原理,在蜂鸣器线圈中通入电流时,会产生磁场,该磁场与蜂鸣器内部的一块磁铁产生相互作用力,使蜂鸣器内部的膜片发生振动,从而发出声音。

在本实验中,我们将通过单片机控制蜂鸣器的驱动信号,使其发出不同的声音,从而实现单片机对蜂鸣器的控制。

三、实验步骤1、准备实验器材:单片机开发板、蜂鸣器模块、杜邦线等。

2、将蜂鸣器模块连接至单片机开发板的某个数字引脚上。

3、通过单片机编程软件编写控制程序,实现对蜂鸣器的控制。

4、将编写好的程序下载到单片机开发板中,并进行调试。

5、通过单片机控制蜂鸣器发出不同的声音,观察其工作情况。

四、实验结果与分析1、实验结果通过本次实验,我们成功实现了单片机对蜂鸣器的控制,可以通过编写不同的程序,使蜂鸣器发出不同的声音。

以下是实验中蜂鸣器发出的声音及其对应的程序代码:(1) 发出“滴”的一声(2) 发出“嘟嘟”的警告声2、结果分析通过实验结果可以看出,通过单片机对蜂鸣器进行控制,可以实现发出不同声音的效果。

在第一个实验中,我们通过设置引脚的高低电平及延时时间,使蜂鸣器发出一声“滴”的声音。

在第二个实验中,我们通过一个无限循环,使蜂鸣器发出“嘟嘟”的警告声。

五、结论与展望通过本次实验,我们深入了解了蜂鸣器的工作原理及应用,并成功实现了单片机对蜂鸣器的控制。

实验结果表明,我们可以根据实际需要编写不同的程序,实现对蜂鸣器的灵活控制。

展望未来,我们可以进一步研究蜂鸣器的其他应用场景,例如在智能家居、机器人等领域中的应用。

我们也可以通过其他方式对蜂鸣器进行控制,例如通过传感器采集信号或者通过无线网络进行远程控制等。

vhdl实验报告--蜂鸣器

vhdl实验报告--蜂鸣器

vhdl实验报告--蜂鸣器VHDL 实验报告蜂鸣器一、实验目的本次实验的主要目的是通过使用 VHDL 语言来设计并实现一个蜂鸣器的控制电路,深入理解数字电路的设计原理和 VHDL 编程的基本方法,掌握硬件描述语言在实际电路设计中的应用,提高自己的逻辑思维和问题解决能力。

二、实验原理蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。

常见的蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。

有源蜂鸣器内部自带了振荡源,只要给其供电就能发出固定频率的声音;无源蜂鸣器则需要外部提供一定频率的脉冲信号才能发声。

在本实验中,我们使用 VHDL 语言来控制一个无源蜂鸣器。

通过编写代码,生成特定频率的脉冲信号,从而驱动蜂鸣器发声。

三、实验设备及工具1、计算机2、 Quartus II 软件3、开发板四、实验内容及步骤1、设计思路首先,需要确定蜂鸣器发声的频率。

通过计算得出所需的时钟周期数。

然后,使用计数器来产生特定频率的脉冲信号。

最后,将脉冲信号输出到蜂鸣器的控制引脚。

2、 VHDL 代码编写```vhdllibrary ieee;use ieeestd_logic_1164all;use ieeenumeric_stdall;entity buzzer_control isport(clk : in std_logic;rst : in std_logic;buzzer : out std_logic);end entity;architecture Behavioral of buzzer_control isconstant CLK_FREQ : integer := 50_000_000; 系统时钟频率constant BUZZER_FREQ : integer := 1000; 蜂鸣器发声频率signal counter : integer range 0 to CLK_FREQ/BUZZER_FREQ 1; signal clk_div : std_logic;beginprocess(clk, rst)beginif rst ='1' thencounter <= 0;clk_div <='0';elsif rising_edge(clk) thenif counter = CLK_FREQ/BUZZER_FREQ 1 thencounter <= 0;clk_div <= not clk_div;elsecounter <= counter + 1;end if;end if;end process;buzzer <= clk_div;end architecture;```3、编译与仿真将编写好的 VHDL 代码在 Quartus II 软件中进行编译。

数码管显示实验报告总结蜂鸣器

数码管显示实验报告总结蜂鸣器

数码管显示实验报告总结蜂鸣器蜂鸣器作为数码管显示实验中的一个重要组成部分,在实验中扮演了发出声音的角色。

通过对蜂鸣器进行控制,我们可以发出不同的音调和音乐,为数码管显示实验增添了趣味性。

下面是关于蜂鸣器的实验报告总结,其中包含了蜂鸣器的原理及实验中的应用。

蜂鸣器是一种能够发出声音的电子元件,由震动器和驱动电路组成。

它的工作原理是通过交变电流激励震动器的振动,产生需要的音调。

在数码管显示实验中,蜂鸣器常常与其他的电子元件(如数字控制电路、计数器等)配合使用,共同完成特定的功能。

在实验中,我们通过对蜂鸣器施加不同的电压和电流,可以产生不同的音调。

通过改变电压的大小和频率,我们可以发出不同的声音,如高音、低音、长音、短音等。

这为实验中的数码管显示提供了更多的功能和表现形式。

在数码管显示实验中,蜂鸣器的应用主要包括两个方面。

首先,蜂鸣器可以作为提示器件,用于发出特定的声音来提醒或警示用户。

比如,在计时器实验中,通过控制蜂鸣器的开关,可以在设定的时间到达时发出蜂鸣声,提醒用户。

此外,在温湿度测量实验中,当温湿度超出设定的范围时,蜂鸣器可以发出警示音。

其次,蜂鸣器还可以用来产生音乐。

通过控制蜂鸣器发出不同的频率和音调,可以演奏简单的音乐曲目。

比如,我们可以根据音乐的谱子来控制蜂鸣器的开关,从而将音乐的旋律通过蜂鸣器发出来。

这为数码管显示实验增添了更多的娱乐性和趣味性,使实验更加富有创意和挑战性。

在实验过程中,我们还要注意对蜂鸣器的控制方法和参数的调整。

首先,要确定适当的电压和电流,避免对蜂鸣器造成过大的电流和电压,从而保护蜂鸣器的正常工作。

其次,要根据实验需求选择适当的音调和频率,通过调整蜂鸣器的控制电路,可以改变蜂鸣器的声音频率。

此外,还可以通过改变蜂鸣器的尺寸和结构,来获得不同的音色和音效。

总之,蜂鸣器在数码管显示实验中起到了关键的作用。

通过对蜂鸣器的控制,我们可以产生不同的音调和声音,用于提醒、警示和演奏音乐。

蜂鸣器电子实验报告

蜂鸣器电子实验报告

蜂鸣器电子实验报告蜂鸣器是一种电子元件,常用于产生声音信号,广泛应用于各种电子设备和电路中。

本实验报告将介绍蜂鸣器的工作原理、实验装置以及实验步骤,并对实验结果进行分析和讨论。

一、工作原理蜂鸣器是一种电磁声音变换器,它利用电信号的变化产生声音。

蜂鸣器由振动系统和驱动系统组成。

振动系统由一个薄膜和一个或多个线圈组成,薄膜与线圈相互作用,通过振动来产生声音。

驱动系统将电信号转化为磁场,通过控制磁场的变化来驱动薄膜振动,从而产生声音。

二、实验装置本实验所需的材料和仪器有:1. 蜂鸣器:用于产生声音信号。

2. 电源:提供电能给蜂鸣器。

3. 信号发生器:产生不同频率的电信号。

4. 示波器:用于观测电信号的波形。

5. 万用表:用于测量电流、电压等电性能参数。

三、实验步骤1. 将蜂鸣器连接至电源的正负极。

2. 将信号发生器连接至蜂鸣器的输入端。

3. 通过调节信号发生器产生不同频率的电信号。

4. 使用示波器观测电信号的波形,并记录相应的频率和振幅。

5. 使用万用表测量电流、电压等电性能参数。

四、实验结果通过实验步骤所述的操作,我们得到了如下实验结果:1. 在不同频率下,蜂鸣器发出不同音调的声音。

2. 频率越高,蜂鸣器发出的声音越尖锐,频率越低,蜂鸣器发出的声音越低沉。

3. 频率与电信号的振幅有关,当振幅增大时,声音变得更响亮。

五、实验分析与讨论蜂鸣器在电子设备和电路中有着广泛的应用,如警报装置、时钟、手机等。

通过实验可以得知,蜂鸣器的声音由输入信号的频率和振幅决定。

因此,在设计电路时,需要根据实际需求选择适当的频率和振幅。

在实验中,我们发现频率越高,所需的输入电压也越高才能使蜂鸣器正常工作。

这是因为频率较高时,需要更大的驱动力来使薄膜振动频率与输入信号频率保持一致。

另外,在实验过程中还可以观察到蜂鸣器的共振现象。

当输入信号的频率接近蜂鸣器的共振频率时,蜂鸣器的振动会变得非常明显,声音也会更加响亮。

这是因为共振频率处的能量传递效率最高,薄膜振动响应最大。

蜂鸣器实验报告范文

蜂鸣器实验报告范文

实验名称:蜂鸣器实验一、实验目的1. 了解蜂鸣器的工作原理和驱动方式。

2. 掌握使用微控制器(如Arduino)控制蜂鸣器发声的方法。

3. 学习通过编程实现不同音调、音量的声音输出。

二、实验原理蜂鸣器是一种电子音响器件,它可以将电信号转换为声信号。

根据工作原理,蜂鸣器主要分为压电式和电磁式两种。

1. 压电式蜂鸣器:由压电蜂鸣片、阻抗匹配器、共鸣箱、外壳等组成。

当接通电源后,多谐振荡器产生 1.5~2.5kHz的音频信号,阻抗匹配器推动压电蜂鸣片发声。

2. 电磁式蜂鸣器:由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。

接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

微控制器通过编程控制蜂鸣器发声,实现不同音调和音量的声音输出。

在Arduino 中,控制蜂鸣器发声主要通过PWM(脉冲宽度调制)方式实现。

三、实验仪器与设备1. 微控制器(如Arduino)2. 蜂鸣器3. 连接线4. 电源5. 电阻(可选)6. 计算机及编程软件(如Arduino IDE)四、实验步骤1. 准备实验器材,连接蜂鸣器与Arduino。

2. 打开Arduino IDE,编写控制蜂鸣器发声的程序。

3. 编写程序实现以下功能:a. 发出不同频率的音调。

b. 发出不同音量的声音。

c. 播放简单的旋律。

4. 将编写好的程序上传到Arduino。

5. 检查蜂鸣器是否正常发声。

五、实验结果与分析1. 发出不同频率的音调通过调整程序中的频率值,可以实现不同音调的声音输出。

实验结果显示,当频率越高,音调越高;频率越低,音调越低。

2. 发出不同音量的声音通过调整程序中的PWM占空比,可以实现不同音量的声音输出。

实验结果显示,PWM占空比越大,音量越大;PWM占空比越小,音量越小。

3. 播放简单的旋律通过编写程序,实现播放简单的旋律。

实验结果显示,蜂鸣器能够准确播放出旋律,且音调和音量符合预期。

蜂鸣器实验报告

蜂鸣器实验报告

实验报告信息与通信工程学院1 实验要求用所学知识和编程技巧,编写一段程序,实现用蜂鸣器演奏一首歌曲。

按下(sw2)按键,蜂鸣器唱出一首歌,歌曲可以自己选择,主要是通过不同的频率来实现不同的音调。

2 实验原理2.1蜂鸣器类型蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

1、压电式蜂鸣器主要由多谐振荡、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。

多谐振荡器由晶体管或集成电路构成。

当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。

2、电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。

接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。

振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

实验箱上蜂鸣器驱动原理:通过FPGA的143管脚驱动蜂鸣器发声,不同的频率使蜂鸣器发出不同的音调。

2.2音乐歌曲元素一首歌曲由音调和节拍两个主要的元素组成。

对于蜂鸣器来说,频率的高低决定了音调的高低。

所有不同频率的信号都是从同一个基准频率分频得来的。

由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。

若基准频率过低,则由于分频比太小,四舍五入取证后的误差较大。

若基准频率过高,虽然误差变小,但分频数将变大。

实际的设计在尽量减小频率误差的前提下去合适的基准频率。

给蜂鸣器输入相应的频率,可以使其发出表中所示的低音、中音、高音的do~xi的声音。

将其按照音乐演奏的规律组合,便可以得到所需要的乐曲。

2.3任务原理2.3.1音调的控制频率的高低决定了音调的高低。

音乐的十二平均率规定;每两个8度音之间的频率相差1倍。

在两个8度音之间,又可分为12个半音,每两个半音的频率比为122。

另外,音名A的频率为440Hz,音名B到C直接、E到F之间为半音,其余为全音。

由此可以计算出简谱中从低音1所有不同频率的信号都是从同一个基准频率分频的到,由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。

vhdl实验报告--蜂鸣器

vhdl实验报告--蜂鸣器

VHDL实验报告一、实验目的1、掌握蜂鸣器的使用;2、通过复杂实验,进一步加深对VHDL语言的掌握程度。

二、实验原理乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。

而要准确地演奏出一首乐曲,仅仅让蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。

由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。

乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。

在2个八度音之间,又可分为12个半音。

另外,音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。

由此可以计算出简谱中从低音l至高音1之间每个音符的频率,如表2.1所示。

音名频率/Hz音名频率/Hz音名频率/Hz低音1261.6 中音1523.3 高音11045.5低音2293.7 中音2587.3 高音21174.7低音3329.6 中音3659.3 高音31318.5低音4349.2 中音4698.5 高音41391.1低音5392 中音5784 高音51568低音6440 中音6880 高音61760低音7493.9 中音7987.8 高音71975.5表2.1 简谱音名与频率的对应关系产生各音符所需的频率可用一分频器实现,由于各音符对应的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。

若分频器时钟频率过低,则由于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。

实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取合适的时钟频率。

实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。

音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。

因此,要控制音符的音长,就必须知道乐曲的速度和每个音符所对应的节拍数,本例所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。

蜂鸣器实验报告

蜂鸣器实验报告

蜂鸣器实验报告一、实验目的。

本实验旨在探究蜂鸣器的工作原理,了解其在电路中的应用,通过实际操作加深对蜂鸣器的理解。

二、实验原理。

蜂鸣器是一种能够发出嗡嗡声的电子元件,其工作原理是利用电磁感应产生声音。

当电流通过蜂鸣器时,会产生磁场,磁场的变化会使蜂鸣器内部的振膜产生振动,从而发出声音。

在电路中,蜂鸣器通常被用作警报器或提醒装置。

三、实验材料。

1. 蜂鸣器。

2. 电源。

3. 电线。

4. 开关。

5. 电阻。

6. 面包板。

四、实验步骤。

1. 将蜂鸣器、电源、开关、电阻等材料准备齐全。

2. 将电源、开关、电阻连接至面包板上,构建一个简单的电路。

3. 将蜂鸣器连接至电路中的适当位置。

4. 打开电源,观察蜂鸣器是否发出声音。

5. 调整电路中的参数,如电压、电阻值等,观察蜂鸣器的工作状态变化。

五、实验结果与分析。

经过实验操作,我们成功搭建了一个简单的蜂鸣器电路,并成功使蜂鸣器发出了清脆的嗡嗡声。

在调整电路参数的过程中,我们发现改变电压和电阻值可以显著影响蜂鸣器的声音频率和音量。

这进一步验证了蜂鸣器的工作原理,也为我们在实际应用中提供了一定的参考。

六、实验总结。

通过本次实验,我们对蜂鸣器的工作原理有了更深入的了解,也掌握了搭建蜂鸣器电路的基本方法。

蜂鸣器作为一种常见的电子元件,在电子产品中有着广泛的应用,如闹钟、电子玩具、报警器等。

因此,对蜂鸣器的理解和掌握对于电子爱好者来说是非常重要的。

希望通过本次实验,能够帮助大家更好地理解蜂鸣器的工作原理,为日后的学习和实践打下坚实的基础。

七、参考文献。

1. 《电子技术基础》,XXX,XXX出版社,200X年。

2. 《电子电路原理与应用》,XXX,XXX出版社,200X年。

蜂鸣器断续响实验报告

蜂鸣器断续响实验报告

蜂鸣器断续响实验报告通过实验观察和了解蜂鸣器在断续响的条件下的工作原理和特点。

实验仪器:蜂鸣器、直流电源、导线、电阻、开关、示波器实验原理:蜂鸣器是一种能够发出声音的电子元件,它由震动片和电磁线圈组成。

当电流通过电磁线圈时,会产生磁场,磁场与震动片的磁性材料相互作用,使震动片发生振动,进而发出声音。

实验步骤:1. 将蜂鸣器与直流电源、导线等连接起来。

2. 使用示波器进行观测,调整示波器的时间基准,使波形能够清晰地显示。

3. 打开电源,观察蜂鸣器的工作状态。

实验结果:在实验过程中,蜂鸣器能够发出一连串的断续响声。

通过示波器观测,我们可以看到蜂鸣器工作时产生的波形,波形通常呈现一种正弦波的形态,频率和振幅可能会有所变化。

实验分析:蜂鸣器的断续响声是由于电流的断断续续导致的。

当电流通过蜂鸣器时,电磁线圈会产生磁场,使得震动片发生振动,发出声音。

而当电流断开时,磁场消失,震动片停止振动,声音也随之停止。

在实验中,我们通过控制开关的断开和闭合,使电流不断变化,从而使蜂鸣器的工作状态也不断变化。

实验总结:通过实验观察和研究,我们了解到蜂鸣器在断续响的条件下的工作原理和特点。

蜂鸣器是一种能够发出声音的电子元件,它通过电磁线圈产生磁场,使震动片发生振动,从而发出声音。

在实验中,我们通过调整电路中的开关状态,使蜂鸣器的工作状态也不断变化,产生了断续的响声。

这种断续的响声在日常生活中也有一定的应用,比如在电子闹钟中使用的蜂鸣器就是一种断续响声。

实验中可能存在的误差主要来源于实验仪器的精度和实验条件的控制。

在实验中,我们尽量保证电流的稳定和准确,并选择合适的示波器进行观测,以提高实验结果的准确性和可靠性。

通过这次实验,我们加深了对蜂鸣器的认识,并对蜂鸣器在断续响的条件下的工作原理和特点有了更深入的理解。

这对我们今后的学习和应用来说都具有一定的意义。

同时,实验也进一步培养了我们观察、研究和分析问题的能力,提高了我们的实验操作技能。

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器单片机实验报告:蜂鸣器引言在现代科技发展迅猛的时代,单片机已经成为了各种电子设备中不可或缺的重要部分。

而蜂鸣器作为一种常见的声响器件,也被广泛应用在各种电子产品中。

本实验旨在通过单片机控制蜂鸣器,实现不同频率和节奏的声音输出,并对蜂鸣器的工作原理进行深入理解。

实验目的1. 了解蜂鸣器的工作原理;2. 掌握单片机控制蜂鸣器的方法;3. 实现不同频率和节奏的声音输出。

实验原理蜂鸣器是一种能够发出声音的电子元件,其工作原理是利用电流通过振动片产生声音。

在实验中,我们将通过单片机控制蜂鸣器的工作频率和节奏,从而实现不同的声音效果。

实验步骤1. 连接电路:将单片机和蜂鸣器按照电路图连接好;2. 编写程序:使用C语言编写单片机控制蜂鸣器的程序;3. 烧录程序:将编写好的程序烧录到单片机中;4. 调试程序:通过调试程序,实现不同频率和节奏的声音输出;5. 实验结果:记录实验中不同声音效果的输出结果。

实验结果经过实验,我们成功地通过单片机控制蜂鸣器,实现了不同频率和节奏的声音输出。

通过调试程序,我们可以轻松地改变蜂鸣器的声音效果,包括音调的高低和声音的持续时间等。

这些实验结果充分展示了单片机控制蜂鸣器的强大功能和灵活性。

实验总结通过本次实验,我们深入理解了蜂鸣器的工作原理,并掌握了单片机控制蜂鸣器的方法。

同时,我们也实现了不同频率和节奏的声音输出,为以后的电子产品设计和开发提供了有力的支持。

相信通过这次实验,我们对单片机和蜂鸣器的应用有了更深入的认识,为我们的学习和科研工作打下了坚实的基础。

蜂鸣器实验报告

蜂鸣器实验报告

蜂鸣器实验报告蜂鸣器实验报告引言:蜂鸣器是一种广泛应用于电子设备中的声音发生器,它可以通过电信号产生不同频率的声音。

在本次实验中,我们将探索蜂鸣器的原理和工作方式,并通过实际搭建电路来验证其功能。

一、蜂鸣器的原理蜂鸣器是一种声音发生器,它利用电磁感应原理产生声音。

其主要由震动片和电磁线圈组成。

当电流通过电磁线圈时,产生的磁场会使震动片受到吸引力或排斥力,从而引起震动。

通过不断变化的电流,蜂鸣器就能发出不同频率的声音。

二、蜂鸣器的工作方式蜂鸣器通常通过连接到电路中的振荡器来工作。

振荡器会产生一个周期性的电信号,频率决定了蜂鸣器发出的声音的音调。

当振荡器输出的电信号通过电磁线圈时,蜂鸣器就会根据电信号的变化发出相应的声音。

三、实验步骤1. 准备材料:蜂鸣器、电路板、导线、电源、电阻、电容等。

2. 搭建电路:将蜂鸣器连接到电路板上,确保连接正确无误。

3. 调整电路参数:通过调整电阻和电容的数值,改变振荡器的频率,从而改变蜂鸣器发出的声音。

4. 测试效果:启动电路,观察蜂鸣器是否能发出声音,并记录不同参数下的声音变化。

四、实验结果和分析我们通过实验搭建了蜂鸣器电路,并成功发出了声音。

通过调整电路参数,我们发现改变电阻和电容的数值可以改变蜂鸣器发出的声音的音调和持续时间。

较大的电阻和电容值会导致振荡器频率较低,从而使蜂鸣器发出低音调的声音;反之,较小的数值会使蜂鸣器发出高音调的声音。

五、应用领域蜂鸣器作为一种常见的声音发生器,广泛应用于各种电子设备中。

它可以用于警报系统、计时器、电子钟、游戏机等。

在警报系统中,蜂鸣器能够发出高频率的声音,吸引人们的注意;在计时器和电子钟中,蜂鸣器可以发出不同的声音来提醒人们时间的流逝;在游戏机中,蜂鸣器则可以模拟游戏中的各种声音效果,增强游戏的乐趣。

结论:通过本次实验,我们深入了解了蜂鸣器的原理和工作方式,并成功搭建了蜂鸣器电路。

我们发现通过调整电路参数,可以改变蜂鸣器发出的声音的音调和持续时间。

蜂鸣器的驱动实验报告(3篇)

蜂鸣器的驱动实验报告(3篇)

第1篇一、实验目的1. 理解蜂鸣器的工作原理和驱动方式。

2. 掌握使用三极管驱动蜂鸣器的方法。

3. 学习使用微控制器(如Arduino)控制蜂鸣器发声。

二、实验器材1. 蜂鸣器(有源或无源)2. 三极管(如2N2222)3. 微控制器(如Arduino Uno)4. 电阻(1kΩ)5. 连接线6. 电源(9V或5V)7. 稳压电路(可选,用于提供稳定的电源电压)三、实验原理蜂鸣器是一种电子元件,用于发出声音。

它由一个振动膜、一个线圈和一个磁铁组成。

当电流通过线圈时,线圈在磁铁的磁场中受到力的作用,从而驱动振动膜振动,产生声音。

在实验中,我们使用三极管作为放大器,将微控制器的信号放大,驱动蜂鸣器发声。

三极管具有放大电流的功能,当基极电流较小时,可以控制较大的集电极电流。

四、实验步骤1. 准备电路a. 将蜂鸣器的正极连接到三极管的集电极。

b. 将蜂鸣器的负极连接到三极管的发射极。

c. 将三极管的基极通过一个1kΩ电阻连接到微控制器的数字输出引脚。

d. 将微控制器的GND引脚连接到电源的负极。

2. 编写程序a. 打开Arduino IDE。

b. 选择相应的Arduino板和端口。

c. 编写以下代码,用于控制蜂鸣器发声。

```cppconst int buzzerPin = 9; // 定义蜂鸣器连接的引脚void setup() {pinMode(buzzerPin, OUTPUT); // 设置引脚为输出模式}void loop() {digitalWrite(buzzerPin, HIGH); // 打开蜂鸣器delay(500); // 延时500msdigitalWrite(buzzerPin, LOW); // 关闭蜂鸣器delay(500); // 延时500ms}```3. 编译并上传程序a. 编译程序,确保没有错误。

b. 将程序上传到Arduino板。

4. 观察实验结果a. 当程序运行时,蜂鸣器应该会发出“滴答”声。

制作蜂鸣器实验报告

制作蜂鸣器实验报告

制作蜂鸣器实验报告实验名称:蜂鸣器的制作与调试实验实验目的:1. 理解蜂鸣器的基本原理。

2. 学习使用元件并搭建简单的电路。

3. 掌握蜂鸣器的调试方法。

实验仪器与材料:1. 蜂鸣器2. 电源(直流电源或电池)3. 电线4. 电阻5. 电容6. 音频信号发生器7. 示波器(可选)8. 音频放大器(可选)实验原理与步骤:1. 实验原理:蜂鸣器是一种将电能转换为声能的装置,其基本原理是利用定时器产生一定频率的方波信号,并通过蜂鸣器内部的振荡器和扩声器将方波信号转换为可听到的声音。

2. 实验步骤:步骤一:搭建基本电路A. 将蜂鸣器的正极(红线)与电源正极相连。

B. 将蜂鸣器的负极(黑线)与电源负极相连。

C. 将一个合适的电阻与蜂鸣器的正负极间串联,用以控制电流。

D. 将电阻的一端与正极相连,另一端与蜂鸣器的正负极之间相连。

步骤二:调试音频信号A. 使用音频信号发生器产生所需频率的方波信号,连接至电路中。

B. 调节音频信号发生器的频率和幅度,观察蜂鸣器的响应情况。

C. 若蜂鸣器无法响应或声音较小,可尝试调整电阻的阻值或更换电容,以达到更佳效果。

步骤三:使用示波器(可选)若实验条件允许,可使用示波器连接至电路中,观察方波信号的波形和频率。

步骤四:使用音频放大器(可选)若蜂鸣器的声音较小,可将音频放大器连接至电路中,提高声音的音量。

实验结果与分析:1. 实验结果:通过搭建电路并调节音频信号,可以听到蜂鸣器发出的声音。

2. 结果分析:蜂鸣器的声音主要受到频率、幅度和波形的影响。

当频率和幅度适合时,蜂鸣器可以产生较大的声音。

而若频率过高或过低,蜂鸣器可能无法响应;若幅度过大或过小,蜂鸣器可能发出较弱的声音。

通过调整电阻和电容的阻值和容值,可以影响方波信号的频率和幅度,从而调整蜂鸣器的声音。

结论:通过本次实验,我们成功制作了蜂鸣器并调试出合适的声音。

蜂鸣器的工作原理、调试方法和影响因素都得到了初步认识。

这些基础知识将有助于我们在今后的学习和实践中更好地应用蜂鸣器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VHDL 实验报告一、实验目的1、掌握蜂鸣器的使用;2、通过复杂实验,进一步加深对VHDL语言的掌握程度。

二、实验原理乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。

而要准确地演奏出一首乐曲,仅仅让蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。

由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。

乐曲的12 平均率规定:每2 个八度音(如简谱中的中音1 与高音1)之间的频率相差1 倍。

在2个八度音之间,又可分为12个半音。

另外,音符A(简谱中的低音6)的频率为440Hz, 音符B到C之间、E到F之间为半音,其余为全音。

由此可以计算出简谱中从低音I至高音1 之间每个音符的频率,如表所示。

音名频率/Hz 音名频率/Hz 音名频率/Hz 低音1 中音1 高音1低音2 中音2 高音2低音3 中音3 高音3低音4 中音4 高音4低音5 392 中音5 784 高音5 1568低音6 440 中音6 880 高音6 1760 低音7 中音7 高音7表简谱音名与频率的对应关系产生各音符所需的频率可用一分频器实现, 由于各音符对应的频率多为非整数, 而分频系数又不能为小数, 故必须将计算得到的分频数四舍五入取整。

若分频器时钟频率过低, 则由于分频系数过小, 四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。

实际的设计应综合考虑两方面的因素, 在尽量减小频率误差的前提下取合适的时钟频率。

实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。

音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。

因此, 要控制音符的音长,就必须知道乐曲的速度和每个音符所对应的节拍数, 本例所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s 的话,那么一拍所应该持续的时间为秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。

本例设计的音乐电子琴选取40MHZ的系统时钟频率。

在数控分频器模块,首先对时钟频率进行40分频,得到1MHZ的输入频率,然后再次分频得到各音符的频率。

由于数控分频器输出的波形是脉宽极窄的脉冲波, 为了更好的驱动蜂鸣器发声, 在到达蜂鸣器之前需要均衡占空比, 从而生成各音符对应频率的对称方波输出。

这个过程实际上进行了一次二分频, 频率变为原来的二分之一即。

因此,分频系数的计算可以按照下面的方法进行。

以中音1为例,对应的频率值为523. 3Hz,它的分频系数应该为:0.375MHZ 0.375 106716 523.3 523.3至于其他音符,同样可由上式求出对应的分频系数,这样利用程序可以很轻松地得到相应的乐声。

音名频率/Hz 分频系数音名频率/Hz 分频系数低音1 1911 咼音1 478 低音2 1702 咼音2 425 低音3 1517 咼音3 379 低音4 1431 咼音4 359 低音5 392 1276 咼音5 1568 319 低音6 440 1136 咼音6 1760 284 低音7 1014 咼音7 253 中音1 956 中音2 851 中音3 758 中音4 716中音5 784 638 中音6 880 568中音7 506表各音名对应的分频系数至于音长的控制,在自动演奏模块,每个乐曲的音符是按地址存放的,播放乐曲时按4HZ的时钟频率依次读取简谱,每个音符持续时间为秒。

如果乐谱中某个音符为三拍音长,那又该如何控制呢其实只要在3个连续地址存放该音符,这时就会发三个秒的音长,即持续了三拍的时间,通过这样一个简单的操作就可以控制音长了。

三、实验步骤1、设置端口1)输入端口CLK 40MHZ系统时钟输入端口。

2)输出端口device :乐曲的声音输出端口,输出的是对应各音符频率的方波信号。

2、设置模块1)自动演奏模块自动演奏模块可以自动播放电子琴内置乐曲,按节拍读取内置乐谱。

将键盘输入的音符信号输出。

因此,本模块是向Tone模块提供音符信息。

首先,对40MHz系统时钟进行10M的分频,得到4Hz的信号,这样一秒中就可以按照四拍进行。

然后依照此频率进行地址累计。

2)音频发生器模块根据自动演奏模块的信号输出,不同的信号被翻译为不同的频率。

3) 蜂鸣器驱动模块根据音频发生器发出音频的不同,蜂鸣器得到的驱动也不同。

首先,对系统时钟进行40分频,再对1mhz的脉冲再次分频,得到所需要的音符频率,然后再进行2分频。

四、实验代码library ieee; use tone is port(index: in std_logic_vector(15 downto 0); -- 音符输入信号tone0: out integer range 0 to 2047 -- 音符的分频系数);end tone;architecture behavioral of tone isbeginsearch :process(index) -- 此进程完成音符到音符的分频系数译码,音符的显示,高低音阶begin case index iswhen "0000000000000001" => tone0<=1433;when "0000000000000010" => tone0<=1277;when "0000000000000100" => tone0<=1138;when "0000000000001000" => tone0<=1074;when "0000000000010000" => tone0<=960;when "0000000000100000" => tone0<=853;when "0000000001000000" => tone0<=759;when "00000000" => tone0<=716;when "00000000" => tone0<=358;when "00000000" => tone0<=319; when "00000" => tone0<=284;when "0000" => tone0<=268;when "000" => tone0<=239;when "000" => tone0<=213;when "000" => tone0<=190;when "000" => tone0<=638; when others => tone0<=0; end case;end process;end behavioral;library ieee;use speaker isport(clk1: in std_logic; -- tone1: in integer range 0 to 2047;-- spks: out std_logic --);end speaker;architecture behavioral of speaker issignal preclk, fullspks:std_logic;begin p1:process(clk1)-- 此进程对系统时钟进行16 分频variable count: integer range 0 to 16;beginif clk1'event and clk1='1' then count:=count+1;if count=8 then preclk<='1';elsif count=16 thenpreclk<='0'; count:=0;end if;end if;end process p1;p2:process(preclk,tone1)-- 对的脉冲再次分频,得到所需variable count11:integer range 0 to 2047;beginif preclk'event and preclk='1' thenif count11<tone1 then count11:=count11+1;fullspks<='1';elsecount11:=0; fullspks<='0';end if;end if;end process p2;p3:process(fullspks)-- 此进程对fullspks 进行2 分频variable count2: std_logic:='0';beginif fullspks'event and fullspks='1' thencount2:=not count2;if count2='1' thenspks<='1';else spks<='0';end if;end if;end process p3;end behavioral;library ieee;use laohu is port(系统时钟12mhz 音符分频系数驱动扬声器的音频信号的音符频率clk: in std_logic;-- 系统时钟;键盘输入/自动演奏tone_key_0: buffer std_logic_vector(15 downto 0)-- 音符信号输出);end laohu;architecture behavioral of laohu issignal count0:integer range 0 to 31;--changesignal clk2:std_logic;beginp1:process(clk)-- 对12mhz系统时钟进行3m的分频,得到4hz的信号clk2 variable count:integer range 0 to 3000000;beginif clk'event and clk='1' then count:=count+1;if count=1500000 then clk2<='1';elsif count=3000000 then clk2<='0'; count:=0;end if;end if;end process p1;p2:process(clk2)-- 此进程完成自动演奏部分乐曲的地址累加beginif clk2'event and clk2='1' thenif count0=29 then count0<=0;elsecount0<=count0+1;end if; end if;end process p2;p3:process(count0,tone_key_0)begincase count0 is-- 此case 语句:存储自动演奏部分的乐曲when 0 => tone_key_0<=b"00000001_00000000"; --1 when 1 =>tone_key_0<=b"00000010_00000000"; --2 when 2 =>tone_key_0<=b"00000100_00000000"; --3 when 3 =>tone_key_0<=b"00000001_00000000"; --1 when 4 =>tone_key_0<=b"00000001_00000000"; --1 when 5 =>tone_key_0<=b"00000010_00000000"; --2 when 6 =>tone_key_0<=b"00000100_00000000"; --3 when 7 =>tone_key_0<=b"00000001_00000000"; --1 when 8 =>tone_key_0<=b"00000100_00000000"; --3 when 9 =>tone_key_0<=b"00001000_00000000"; --4 when 10 =>tone_key_0<=b"00010000_00000000"; --5 when 11 =>tone_key_0<=b"00000100_00000000"; --3 when 12 =>tone_key_0<=b"00001000_00000000"; --4 when 13 =>tone_key_0<=b"00010000_00000000"; --5 when 14 =>tone_key_0<=b"00010000_00000000"; --5 when 15 =>tone_key_0<=b"00100000_00000000"; --6 when 16 =>tone_key_0<=b"00010000_00000000"; --5 when 17 =>tone_key_0<=b"00001000_00000000"; --4 when 18 =>tone_key_0<=b"00000100_00000000"; --3 when 19 =>tone_key_0<=b"00000001_00000000"; --1 when 20 =>tone_key_0<=b"00010000_00000000"; --5 when 21 =>tone_key_0<=b"00100000_00000000"; --6 when 22 =>tone_key_0<=b"00010000_00000000"; --5 when 23 =>tone_key_0<=b"00001000_00000000"; --4 when 24 =>tone_key_0<=b"00000100_00000000"; --3 when 25 =>tone_key_0<=b"00000001_00000000"; --1 when 26 =>tone_key_0<=b"00000100_00000000"; --3 when 27 =>tone_key_0<=b"00000000_00100000"; --di6 when 28 =>tone_key_0<=b"00000001_00000000"; --1 when others => null;end case;end process p3;end behavioral;library ieee; use beep0 isport(clk:in std_logic;device:out std_logic);end beep0; architecture behavioral of beep0 is component laohu isport(clk: in std_logic;-- 系统时钟;键盘输入/自动演奏tone_key_0: out std_logic_vector(15 downto 0)-- 音符信号输出);end component; component tone isport(index: in std_logic_vector(15 downto 0);-- 音符输入信音符的分频系数tone0: out integer range 0 to 2047-););end component;component speaker isport(clk1: in std_logic;-- 系统时钟12mhztone1: in integer range 0 to 2047; -- 音符分频系数spks: out std_logic-- 驱动扬声器的音频信号);end component;signal mid:std_logic_vector(15 downto 0);signal tones:integer;beginu0:laohu port map(clk,mid);u1:tone port map(mid,tones); u2:speaker port map(clk,tones,device);end behavioral;五、实验结果及其分析频率折算中,由于频率计数3 不能是小数,采用了四舍五入的方法,所以得到的频率并不是十分精确的,但是不会影响结果。

相关文档
最新文档