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

单片机实验报告蜂鸣器单片机实验报告:蜂鸣器引言:单片机是现代电子技术中的重要组成部分,其广泛应用于各个领域。
蜂鸣器作为一种常见的声音输出设备,在单片机实验中也被广泛使用。
本文将介绍蜂鸣器的原理、实验过程以及实验结果,并对实验中遇到的问题进行分析和解决。
一、蜂鸣器的原理蜂鸣器是一种能够产生声音的装置,其原理基于压电效应。
压电材料在受到外力作用时会产生电荷,而当外力消失时,压电材料则会产生相反方向的电荷。
利用这种特性,蜂鸣器可以通过施加电压来使压电材料振动,从而产生声音。
二、实验过程1. 准备工作:首先,我们需要准备一块单片机开发板、一个蜂鸣器和相关电路连接线。
2. 连接电路:将单片机的IO口与蜂鸣器连接,注意正确连接正负极。
一般情况下,蜂鸣器的正极连接到单片机的IO口,负极连接到GND。
3. 编写程序:使用单片机开发工具,编写一个简单的程序来控制蜂鸣器。
例如,我们可以通过控制IO口的高低电平来控制蜂鸣器的开关状态。
4. 烧录程序:将编写好的程序烧录到单片机中。
5. 实验测试:将单片机开发板连接到电源,观察蜂鸣器是否发出声音。
可以通过改变程序中IO口的电平来控制蜂鸣器的开关状态,从而产生不同的声音。
三、实验结果经过实验,我们成功地控制了蜂鸣器的开关状态,并产生了不同的声音效果。
通过改变程序中IO口电平的高低,我们可以调节蜂鸣器的频率和音调。
此外,我们还可以通过控制IO口的输出时间来调节蜂鸣器发声的时长。
四、问题分析与解决在实验过程中,我们可能会遇到一些问题,例如蜂鸣器无法发声或声音不稳定等。
这些问题可能是由以下原因引起的:1. 连接错误:检查蜂鸣器的正负极是否正确连接到单片机的IO口和GND。
确保连接线没有松动或接触不良。
2. 程序错误:检查程序中的代码是否正确,特别是IO口的控制部分。
确保程序正确地控制了蜂鸣器的开关状态。
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篇)

第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. 当按键未被按下时,蜂鸣器不发声。
单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告单片机《蜂鸣器》实验报告一、实验目的本次实验旨在通过单片机的控制,实现对蜂鸣器的驱动和发声控制,进一步了解蜂鸣器的工作原理及应用。
二、实验原理蜂鸣器是一种电子发声器件,常用于发出警告、提示或声音信号。
其工作原理是利用电磁感应原理,在蜂鸣器线圈中通入电流时,会产生磁场,该磁场与蜂鸣器内部的一块磁铁产生相互作用力,使蜂鸣器内部的膜片发生振动,从而发出声音。
在本实验中,我们将通过单片机控制蜂鸣器的驱动信号,使其发出不同的声音,从而实现单片机对蜂鸣器的控制。
三、实验步骤1、准备实验器材:单片机开发板、蜂鸣器模块、杜邦线等。
2、将蜂鸣器模块连接至单片机开发板的某个数字引脚上。
3、通过单片机编程软件编写控制程序,实现对蜂鸣器的控制。
4、将编写好的程序下载到单片机开发板中,并进行调试。
5、通过单片机控制蜂鸣器发出不同的声音,观察其工作情况。
四、实验结果与分析1、实验结果通过本次实验,我们成功实现了单片机对蜂鸣器的控制,可以通过编写不同的程序,使蜂鸣器发出不同的声音。
以下是实验中蜂鸣器发出的声音及其对应的程序代码:(1) 发出“滴”的一声(2) 发出“嘟嘟”的警告声2、结果分析通过实验结果可以看出,通过单片机对蜂鸣器进行控制,可以实现发出不同声音的效果。
在第一个实验中,我们通过设置引脚的高低电平及延时时间,使蜂鸣器发出一声“滴”的声音。
在第二个实验中,我们通过一个无限循环,使蜂鸣器发出“嘟嘟”的警告声。
五、结论与展望通过本次实验,我们深入了解了蜂鸣器的工作原理及应用,并成功实现了单片机对蜂鸣器的控制。
实验结果表明,我们可以根据实际需要编写不同的程序,实现对蜂鸣器的灵活控制。
展望未来,我们可以进一步研究蜂鸣器的其他应用场景,例如在智能家居、机器人等领域中的应用。
我们也可以通过其他方式对蜂鸣器进行控制,例如通过传感器采集信号或者通过无线网络进行远程控制等。
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. 掌握调试技巧调试是实验过程中最关键的一步。
如果调试不好,实验结果可能会偏差很大。
在调试过程中,我们需要掌握一些基本的调试技巧,如断点调试、单步调试、变量监视等,可以帮助我们快速找到问题所在。
二、实验建议1. 准备好必要的工具和材料在进行蜂鸣器实验之前,我们需要准备好必要的工具和材料,如面包板、电路图、电阻、电容、开关、蜂鸣器等。
在选择材料时,我们要注意其参数是否符合要求,以免影响实验效果。
2. 先进行模拟电路实验在进行数字信号处理实验之前,我们可以先进行模拟电路实验。
模拟电路实验可以帮助我们了解蜂鸣器的基本工作原理和控制方法,为后续的数字信号处理实验打下基础。
3. 选择适合自己的控制方法控制蜂鸣器可以使用数字信号处理的方法,也可以使用模拟电路的方法。
在选择控制方法时,我们要考虑自己的技术水平和实验要求,选择适合自己的方法。
4. 注意电路的稳定性蜂鸣器实验中,电路的稳定性非常重要。
蜂鸣器实验报告思考
蜂鸣器实验报告思考蜂鸣器实验报告思考:蜂鸣器实验是电路原理课程中常见的实验之一,通过搭建简单的电路,能够使蜂鸣器发出一定频率的声音。
本次实验的目的是理解蜂鸣器的工作原理,掌握蜂鸣器的使用方法,并通过实际实验验证理论知识。
实验步骤:1. 搭建蜂鸣器电路:蜂鸣器通常有两个引脚,分别是正极和负极。
在本次实验中,我们需要将蜂鸣器与一个发声电路相连。
发声电路通常由一个振荡电路和一个放大电路组成。
将蜂鸣器的正极与振荡电路的输出端连接,负极与放大电路的输入端连接。
根据电路图,依次连接各个元器件和导线。
2. 设置振荡电路参数:在实验中,我们需要设置振荡电路的频率和电压。
通过调整电源电压和电阻的数值,可以改变振荡电路的频率。
我们可以不断尝试不同的参数组合,以找到合适的频率。
3. 设置放大电路参数:放大电路的作用是放大振荡电路输出的信号,并驱动蜂鸣器发声。
通过调整放大电路中的元器件参数,如电阻和电容,可以改变放大电路的增益和响应特性。
4. 进行实验观察:当电路连接正确并且参数设置合适后,启动电源,蜂鸣器应该开始发声。
观察蜂鸣器的频率、响度和稳定性。
如果发现声音不正常或者无法发声,则需要检查电路连接和元器件参数设置,逐步寻找问题。
实验结果和讨论:通过以上实验步骤,我们成功地搭建了蜂鸣器电路,并且观察到了蜂鸣器的发声现象。
根据实验中的观察和实验数据,我们得出以下结论和讨论。
首先,蜂鸣器发声的频率是由振荡电路控制的,在实验中我们可以通过调整振荡电路的电阻和电容来改变频率。
较大的电阻或者小的电容会使振荡频率变低,反之亦然。
在实验过程中,我们可以尝试不同的参数组合,以找到合适的频率。
其次,蜂鸣器的响度和稳定性也受到放大电路的影响。
放大电路的设计需要考虑到增益和频率响应特性。
过大或过小的增益可能导致蜂鸣器声音过大或过小,甚至无法发声。
此外,放大电路的频率响应特性应该尽可能平坦,以保证声音的稳定性和质量。
在实验中,我们还发现蜂鸣器发声的功率与电源电压有关。
物联网蜂鸣器实验报告
一、实验目的1. 了解蜂鸣器的工作原理及在物联网中的应用。
2. 掌握使用Arduino平台控制蜂鸣器发声的基本方法。
3. 通过实验加深对物联网基础组件应用的理解。
二、实验器材1. Arduino开发板2. 蜂鸣器模块3. 连接线4. 面包板或电路板5. 电源6. 电脑及编程软件(如Arduino IDE)三、实验原理蜂鸣器是一种电子音响装置,通过电磁原理产生振动,从而发出声音。
在物联网中,蜂鸣器常用于警报、提示等功能。
本实验中,我们使用Arduino开发板控制蜂鸣器发声,通过改变PWM(脉冲宽度调制)信号的占空比来调整蜂鸣器的音调。
四、实验步骤1. 搭建电路(1)将蜂鸣器的正极(通常标有“+”或红色)连接到Arduino开发板的数字输出引脚(如D8)。
(2)将蜂鸣器的负极(通常标有“-”或黑色)连接到Arduino开发板的GND (地)引脚。
(3)将Arduino开发板插入面包板或电路板,确保连接稳固。
2. 编写程序(1)打开Arduino IDE,创建一个新的空白项目。
(2)在程序中添加以下代码:```cppint buzzerPin = 8; // 定义蜂鸣器连接的引脚int frequency = 1000; // 定义初始频率void setup() {pinMode(buzzerPin, OUTPUT); // 设置引脚为输出模式}void loop() {tone(buzzerPin, frequency); // 产生指定频率的声音delay(1000); // 持续1秒noTone(buzzerPin); // 停止发声delay(1000); // 暂停1秒frequency += 100; // 逐渐增加频率}```(3)上传程序到Arduino开发板。
3. 实验观察(1)打开Arduino IDE中的串口监视器,观察程序运行状态。
(2)观察蜂鸣器是否按照预期发声,音调是否逐渐升高。
蜂鸣器实验报告范文
实验名称:蜂鸣器实验一、实验目的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. 播放简单的旋律通过编写程序,实现播放简单的旋律。
实验结果显示,蜂鸣器能够准确播放出旋律,且音调和音量符合预期。
15.3、 蜂鸣器实验
蜂鸣器实验z意义与作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
用于产品的声音提醒或者告警等。
本实验将介绍,如何通过一个GPIO管脚控制有源直流蜂鸣器。
该实验与流水灯实验类似,都是学习如何控制STM32的IO口输出。
(有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中(交流信号)才能发声。
)z实验原理前面流水灯的实验已经介绍过STM32处理器GPIO接口,如何配置它的模式,时钟速率等,在这一节就不再重复讲解GPIO接口的使用。
当蜂鸣器两端的电压大于4V,典型值为5V时,蜂鸣器就会发出固定频率的的声音。
当控制蜂鸣器的GPIO管脚的管脚输出高电平时,关闭蜂鸣器,当GPI管脚输出低电平时,蜂鸣器发声鸣响。
z硬件设计在神舟IV号STM32开发板中,提供了一个蜂鸣器,器鸣器连接到了处理器的PA3管脚,由处理器的PA3管脚控制,当处理器的PA3管脚输出低电平时蜂鸣器开始鸣响,反之处理器的PA3管脚输出高电平或OD开漏时蜂鸣器停止鸣响,。
图中PA3的电阻R23的作用为限流作用,防止电流蜂鸣器工作时电流过大,损坏处理器的管脚。
查阅STM32F103处理器可知,STM32处理器IO口能够承受的电流为25mA,如下表所示:而蜂鸣器的的额定工作电流为30mA,因此在此处串一个电阻,保证工作电流即满足蜂鸣器的要求,又不至于太大而损坏处理器的GPIO管脚。
注意神舟IV号开发板载蜂鸣器与315M的无线模块VT脚复用,当315M的无线遥控的任意按键按下时蜂鸣器也会鸣响。
其原理图如下:图中R23实际安装22欧姆电阻使蜂鸣器的声音柔和。
图表 1 蜂鸣器电路z软件设计神舟IV号蜂鸣器实验源码位于神舟IV号光盘\源码\ STM32F10x_StdPeriph_Lib_V3.3.0.rar\ \Project\3、BEEP蜂鸣器(神舟IV号)目录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验8 蜂鸣器实验(仿真部分)1.实验任务用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。
2.电路原理图3.硬件连线(1.P1.0端口用导线通过“音频放大模块”连接到喇叭SOUNDER上;(2.把P1.7端口用导线连接到“拨动开关”K1端口上;4.程序设计内容(1.信号产生的方法500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次;5.程序框图图4.6.2 6.汇编源程序(非中断软延时)FLAG BIT 00HORG 00HSTART: JB P1.7,STARTJNB FLAG,NEXTMOV R2,#200DV: CPL P1.0LCALL DELY500LCALL DELY500DJNZ R2,DVCPL FLAGNEXT: MOV R2,#200DV1: CPL P1.0LCALL DELY500DJNZ R2,DV1CPL FLAGSJMP STARTDELY500: MOV R7,#250LOOP: NOPDJNZ R7,LOOPRETEND7.C语言源程序(非中断软延时)#include <A T89X51.H>#include <INTRINS.H>bit flag;unsigned char count;void dely500(void){unsigned char i;for(i=250;i>0;i--){_nop_();}}void main(void){while(1){if(P1_7==0){for(count=200;count>0;count--){P1_0=~P1_0;dely500();}for(count=200;count>0;count--){P1_0=~P1_0;dely500();dely500();}}}}8.汇编源程序(计数方式采用中断方式)ORG 0000HLJMP MAINORG 0003HLJMP INT0PORG 0013HLJPM INT1PMAIN: MOV SP,#60HSETB IT0SETB IT1SETB IE0SETB IE1SETB EAMOV R0,#00HLOOP: MOV P1,R0JMP LOOPINT0P:INC R0RETIINT1P:DEC R0RETIEND9.实验要求学会C51和ASM51两种编程工具。
并尝试采用定时器实现定时。
实验8 交流蜂鸣器演奏简单乐曲1. 实验目的●学习蜂鸣器的基础知识●掌握用I/O驱动中等电流负载的正确方法●学习如何用74HC573扩展简单的并行输出端口●进一步掌握如下基础知识:定时器、中断、I/O扩展电流驱动、蜂鸣器●学习如何编写简单的乐曲程序2. 实验原理2.1蜂鸣器原理蜂鸣器是常见的电子讯响器件,与扬声器相比,明显优势是体积很小,但缺点是低频响应很差,一般不能很好地产生200Hz以下的低频声音。
按制造工艺,蜂鸣器可分为电磁式、压电式等。
按功能,蜂鸣器分为有源和无源两大类,也称做直流蜂鸣器和交流蜂鸣器。
对直流蜂鸣器,只要加上正向电源(可能需要限流电阻)就能发出一定频率的响声,操作简单,但是只有响与不响两种状态。
而交流蜂鸣器需要输入有一定驱动能力的交流信号才能发声,发声频率即交流信号的频率,因此能够发出各种不同音调的响声,可用来演奏简单乐曲。
蜂鸣器在正常工作时,一般需要数十毫安的驱动电流,这大大超过了8051的I/O承受能力。
对这种中等电流负载的驱动方法,一般可采用晶体管。
图 4.21是蜂鸣器的典型驱动电路。
2.2 简单乐曲原理假如您是一名电子产品研发工程师,如果能够在您设计的产品里加入演奏乐曲的功能,则会让消费者耳目一新,增加一个很好的卖点。
利用蜂鸣器演奏简单的乐曲,具有结构简单、体积小、成本低等优势,软件处理起来也不是很复杂。
图 4.24 一段简单的乐谱编写简单的乐曲程序,需要懂得一些简单的乐理知识。
由于篇幅所限,这里不做详细讲解,如果有兴趣,请参考相关书籍或网上资料。
请看图 4.24所示的一段简单乐谱。
一首乐曲可以看成是由一个个基本的音符组成。
音符是乐曲的基本单元,它有两个要素:发声频率和发声时值。
用两个定时器就可以完成演奏一个音符的任务,一个工作于定时中断方式,在中断服务程序里不断翻转控制蜂鸣器的I/O,以产生规定频率的响声;另一个决定演奏多久,是一个简单的延时应用。
把所有音符串接起来演奏,就会形成一支动听的乐曲。
在光盘例程中,名为“Sound”的子程序,可以演奏一个音符,而“Play”子程序通过不断调用“Sound”子程序来演奏整个乐曲。
在下面已经以宏定义的形式给出了低音、中音和高音“1234567”发声频率对应的定时器初值,L1~L7表示低音,M1~M7表示中音,H1~H7表示高音。
;************************************************************************** *****;定义音名(1=G);L1~L7表示低音,M1~M7表示中音,H1~H7表示高音;************************************************************************** *****L1 EQU 0xFB68 ;391.995Hz(G1)L2 EQU 0xFBE9 ;440Hz (A)L3 EQU 0xFC5B ;493.883Hz(B)L4 EQU 0xFC8F ;523.251Hz(C)L5 EQU 0xFCEF ;587.33Hz (D)L6 EQU 0xFD45 ;659.255Hz(E)L7 EQU 0xFD91 ;739.989HzM1 EQU 0xFDB4 ;783.991Hz(G)M2 EQU 0xFDF4 ;880Hz (a)M3 EQU 0xFE2D ;987.767Hz(b)M4 EQU 0xFE48 ;1046.5Hz (c)M5 EQU 0xFE78 ;1174.66Hz(d)M6 EQU 0xFEA3 ;1318.51Hz(e)M7 EQU 0xFEC9 ;1479.98HzH1 EQU 0xFEDA ;1567.98Hz(g)H2 EQU 0xFEFA ;1760Hz (a1)H3 EQU 0xFF17 ;1975.53Hz(b1)H4 EQU 0xFF24 ;2093Hz (c1)H5 EQU 0xFF3C ;2349.32Hz(d1)H6 EQU 0xFF51 ;2637.02Hz(e1)H7 EQU 0xFF64 ;2959.96Hz;************************************************************************** *****;定义时值;T*4全音符,T*2二分音符,T四分音符,T/2八分音符,T/4十六分音符;************************************************************************** *****T EQU 1000对发声时值,规定以四分音符作为一个T周期基准,二分音符用“2*T”表示,八分音符用“T/2”表示,带符点的八分音符用“T/2+T/4”表示,等等。
改变T的宏定义值,能够整体加快或减慢乐曲的演奏速度。
根据光盘例程所提供的框架,图 4.24所示的乐谱可以翻译成如下的ROM数据表:MusicTab:; 音名,时值DW L3,TDW L5,T/2+T/4DW L6,T/4DW M1,T/2+T/4DW M2,T/4DW L6,T/4DW M1,T/4DW L5,T/2DW M5,T/2+T/4DW H1,T/4DW M6,T/4DW M5,T/4DW M3,T/4DW M5,T/4DW M2,T*23. 实验步骤●参考实验例程,自己动手建立Keil C51工程。
注意选择CPU类型。
Philips半导体的P89V51RB2。
●编辑源程序,编译生成HEX文件。
●ISP下载开关扳到“01”,用Flash Magic软件下载程序HEX文件到MCU BANK2,运行。
运行Flash Magic软件。
各步骤操作如下:Step 1:COM Port:选择实际使用的串行口,通常为COM1;Baud Rate:波特率不可设置得过高,推荐用9600;Device:请选择正确的型号89V51RB2;Interface:选择None(ISP)。
Step 2:请勾中“Erase blocks used by Hex File”。
Step 3:装入你的程序文件,注意必须为HEX格式。
Step 4:请勾中“Verify after programming”(编程后校验);对其它几项如果不了解,请不要勾中。
Step 5:请先给电路板上电,同时按住复位键不松手,然后点击Flash Magic软件的“Start”按钮。
当出现提示您复位的对话框时再松开复位键,ISP下载过程开始。
如果您的电路板没有设置复位键,可以先点击“Start”,然后给电路板上电。
Step 6:运行程序ISP下载结束后,按一次复位键或者重新上电程序即开始运行。
●运行程序,蜂鸣器演奏出动听的乐曲《化蝶》。
光盘中还提供有其它几首乐曲程序,请分别运行,欣赏。
●尝试改变曲谱,得到自己想要的乐曲。