15.3、 蜂鸣器实验
蜂鸣报警器实训报告

一、实训目的本次实训旨在使学生了解蜂鸣报警器的工作原理、电路组成以及制作方法,培养学生的动手能力和实际操作技能。
通过本次实训,使学生掌握以下内容: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. 通过本次实训,加深了对蜂鸣报警器工作原理的理解,掌握了电路搭建、调试与测试的方法。
单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告实验报告:蜂鸣器实验工具和器材:Proteus仿真软件,Keil程序编写软件,蜂鸣器,AT89C51单片机。
实验原理:蜂鸣器分为压电式和电磁式两种类型。
本实验采用的是电磁式蜂鸣器。
蜂鸣器又分为有源和无源两种类型。
本实验采用的是有源蜂鸣器。
通过51单片机和C程序,将程序所设计的算法与蜂鸣器电路连接起来,采用循环函数配合多个延时来实现各个音节的有规律发声,合成一首完整的音乐。
本实验采用较为简单的一首儿歌《两只老虎》来体现。
硬件电路说明:本实验使用电磁式蜂鸣器,蜂鸣器连接单片机P2.0端口,另一端接地。
通过C程序产生的hex文件控制蜂鸣器发声,播放一首完整的歌曲。
音节的曲调和间隔时间都是构成歌曲的一个重要部分,需要调节频率和利用延时函数。
控制发声频率要产生音频脉冲,只要算出某一音频的周期/频率,然后将此周期除以2(即为半周期的时间)。
利用定时器计时这半个周期时间,就可在I/O脚上得到此频率的脉冲。
利用AT89C51的内部定时器使其工作在计数器模式下,改变计数值TH0及TL0从而产生不同频率。
此外,结束符和休止符可以分别用代码00H和XXX来表示,若查表结果为0x00,则表示曲子终了;若查表结果为0xff,则产生相应的停顿效果。
软件程序说明:主函数采用while和for循环,并且引用延时函数,对各部分程序进行调用。
与采用一般的延时函数相比,可以分别控制歌曲各个音节的持续发声。
在主函数中,使用多个for循环来控制每个音节的起始和结束,以实现蜂鸣器对一首完整歌曲的播放。
通过调用不同的延时函数,实现有节奏的音节发声,并将它们串联起来。
在调用Beep函数时,需要进行定义。
在主函数中,分别在每个音节开始前后的两个for循环中调用Beep函数。
通过Beep=~Beep和Beep=1指令的调用,实现各个音节的发声和停止,从而控制歌曲的有节奏播放。
为了实现各个音节的延时发声,我们使用了多个延时程序,例如500ms和700ms。
单片机实验报告蜂鸣器

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

蜂鸣器变声控制实验单片机实验报告一、实验目的1、了解单片机控制蜂鸣器发声的原理。
2、学会使用单片机控制蜂鸣器的频率、占空比、时长等特性。
3、掌握编写蜂鸣器变声程序的方法。
二、实验器材1、单片机培训板。
2、蜂鸣器。
3、杜邦线若干。
三、实验原理1、蜂鸣器通常是由震动片、驱动电路和音箱构成的,同时需要满足一定的电源条件和频率特性才能发声。
四、实验内容1、将蜂鸣器与单片机连接好。
3、观察蜂鸣器的变声效果。
五、实验步骤1、将蜂鸣器与单片机连接好。
将蜂鸣器的正极连接单片机的P1.0口,将蜂鸣器的负极连接单片机的GND口。
2、编写蜂鸣器变声程序,具体过程如下:1)定义相关变量和函数:需要定义相关变量和函数,例如频率、占空比、时长等变量,以及控制蜂鸣器发声的函数。
2)初始化:需要对单片机进行初始化设置,包括端口初始化、定时器初始化等。
3)控制蜂鸣器发声:通过改变PWM的频率、占空比、时长等特性,来控制蜂鸣器的发声。
4)停止蜂鸣器发声:在需要停止蜂鸣器发声时,关闭PWM输出端口即可。
3、观察蜂鸣器的变声效果。
根据程序设定的频率、占空比和时长等特性,可以看到蜂鸣器在不同的情况下发出不同的声音。
六、实验结果1、在经过程序设计后,蜂鸣器成功发出变声效果,根据程序的要求可以发出不同的声音。
3、在实验中还可以通过添加其他的控制模块,例如按键、温度传感器等,来实现更复杂的控制操作。
1、本次实验主要掌握了单片机控制蜂鸣器发声的原理和方法,通过自己编写程序来控制蜂鸣器发声。
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. 当按键未被按下时,蜂鸣器不发声。
制作蜂鸣器模块实验报告
一、实验目的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. 将蜂鸣器模块应用于音乐创作,实现音效合成等功能。
蜂鸣器变声控制实验单片机实验报告word
蜂鸣器变声控制实验,单片机实验报告蜂鸣器变声控制实验一.实验目的1.熟悉数码管的功能和使用。
2.熟悉延时子程序的编写和使用。
3.初步熟悉单片机软硬件设计方法。
二.实验仪器计算机、Keil编程环境、普中下载软件、单片机开发实验仪。
三.实验内容通过按键不仅可以显示相应的字符,同时让P1.0连接蜂鸣器,按下不同按键,发生高低不同的声音。
四.实验线路五.注意事项1.安装实验仪时,先接通讯串口线,再开电源开关。
2.实验过程中,在进行接插线操作时,必须先关闭电源。
六.实验步骤1、主机连线说明:JP10单片机0P0口(88位)JP3共阳极数码管JP11单片机2P2口(88位)JP588个独立按键JP8.8P1.0J8蜂鸣器控制端七.实验步骤1.打开Keil编程软件编写程序,并进行汇编产生HEX文件。
(1)流程图(2)汇编源程序ORG0000HLJMPMAIN;0000H地址跳转MAIN程序ORG000BHLJMPT0INT;000BH跳转TOINT子程序ORG0030HMAIN:MOVSP,#60H;赋值堆栈指针SP=60HMA1:MOVA,P2;赋值A=P2,如果没有按键按下P2=FFHCJNEA,#0FFH,LP2;AFFH时跳转LP2,否则不执行LJMPLP1;跳转LP1LP2:LCALLDEY10;调用DEY10MOVA,P2;赋值A=P2CJNEA,#0FFH,LP3;AFFH时跳转LP3LJMPLP1;跳转LP1LP3:MOVR3,#1;识别按键号MOVR2,#8LP4:RRCA;循环右移JNCLP5;无进位跳转LP5,A最低位为0时右移无进位INCR3;若按键是2~8,R3+对应按键号DJNZR2,LP4;R2-10跳转LP4LJMPLP1;跳转LP1LP5:MOVA,P2CJNEA,#0FFH,LP5;AFFH时跳转LP5LCALLDISPLAY;调用DISPLAY,取八段LED字形码数据赋值给P0MOVA,R3;不同按键的R3MOVB,#30H;MULAB;R3与与30H相乘,高字节放在B,低字节放在AMOV50H,A;定时器初值,不同按键的定时器初值设置不同,频率不同LCALLT0INI;调用定时函数LP1:LJMPMA1DISPLAY:MOVA,R3;R3=按键号MOVDPTR,#500H;将数组地址赋给数据指针寄存器MOVCA,@A+DPTR;取数组中的数据MOVP0,A;将数组中数据赋给P0口RETDEY10:MOVR6,#200MOVR7,#0DEY11:DJNZR7,DEY11DJNZR6 ,DEY11RETT0INI:MOVTMOD,#00000010B;模式:T0定时器方式2,启动与外部中断无关MOVTH0,50H;定时器高8位初值MOVTL0,50H;定时器低8位初值SETBTR0;启动定时SETBET0;设置定时器T0溢出中断SETBEA;中断允许RET;返回调用处T0INT:CPLP1.0;P1.0取反,定时器溢出定时器中断响应RETI;返回中断响应之前的位置ENDdey1:MOVR5,#40;延时子程序DEYY1:LCALLDEY10DJNZR5,DEYY1RET;返回调用处ORG500H;地址500H开始存放字形码TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,90H ,88H,83H,0C6H,0A1H,86H,8EH,0BFHEND;结束2.点击普中下载软件,检查设置是否正确,然后下载到实验仪的单片机中。
单片机蜂鸣器控制实验报告
单片机蜂鸣器控制实验报告摘要:本实验旨在通过使用单片机(Microcontroller Unit,MCU)来控制蜂鸣器发出不同的声音,进一步熟悉单片机的使用和控制技术。
通过实验,我们可以了解如何编程控制蜂鸣器,从而为更复杂的电子设备的开发做好准备。
本实验基于XXXXX单片机平台进行,具体的实验步骤和控制代码将在下文进行详细说明。
1. 实验介绍单片机蜂鸣器控制实验是一项基础实验,旨在让学生了解单片机的控制原理和实践操作。
在实验中,我们使用XXXXX单片机平台。
此平台具有良好的可编程性,且集成了许多功能模块,是学习和使用单片机的理想选择。
2. 实验材料- XXXXX单片机开发板- 蜂鸣器模块- 连接线- 电源3. 实验步骤3.1 连接电路将蜂鸣器模块的正极与单片机开发板的IO口相连,将负极与开发板的GND相连。
使用连接线进行正确的连接。
3.2 编程调试根据单片机平台的要求,采用XXXXX编程语言编写蜂鸣器控制程序。
以下是一段示例代码:```#include <XXXXX.h>int main() {while(1) {// 产生蜂鸣器控制信号XXXXX_WritePin(GPIOX, PinX, HIGH);delay_ms(1000);XXXXX_WritePin(GPIOX, PinX, LOW);delay_ms(1000);}}```在该示例代码中,通过控制GPIOX的PinX引脚输出高电平或低电平,来控制蜂鸣器的工作状态。
通过设置适当的延迟时间,我们可以调整蜂鸣器的鸣叫频率和持续时间。
3.3 烧录程序将编写好的程序烧录到单片机开发板中。
按照开发板的烧录方法进行操作。
3.4 调试和测试烧录完成后,将开发板连接到电源,并观察蜂鸣器的工作情况。
根据我们在代码中设定的参数,蜂鸣器应该会发出特定频率和持续时间的声音。
4. 结果与分析在实验过程中,我们可以根据需要编写不同的程序来控制蜂鸣器的状态,例如不同的频率、间隔时间和持续时间。
蜂鸣器实验
蜂鸣器实验产品介绍:蜂鸣器为一种发声元器件。
而蜂鸣器分为有源蜂鸣器和无源蜂鸣器。
(注意:这里的"源"不是指电源,而是指震荡源。
)有源蜂鸣器内部带震荡源,只要一通电就会叫。
而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。
必须用2K-5K的方波去驱动它。
单片机驱动无源蜂鸣器的方式有两种:一种是PWM 输出口直接驱动,另一种是利用I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。
有源蜂鸣器与无源蜂鸣器的区别如图:有源蜂鸣器底部为黑胶,而无源蜂鸣器底部可见绿色电路板。
无论有源还是无源蜂鸣器都是标注了“+”的引脚为正脚。
实验器件:■蜂鸣器器:1 个■面包板:1个■多彩面包板实验跳绳:若干实验连线1.将蜂鸣器插入到面包板上。
2.将无源蜂鸣器的正极接到开发板上的8脚,负极接到GND。
这样就完成了连线。
将代码上传到开发板。
程序代码(直接打开对应例程即可)int buzzer=8;//设置控制蜂鸣器的数字8 脚void setup(){pinMode(buzzer,OUTPUT);//设置数字IO 脚模式,OUTPUT 为输出}void loop(){unsigned char i,j;//定义发量while(1){for(i=0;i<80;i++)//输出一个频率的声音{digitalWrite(buzzer,HIGH);//发声音delay(1);//延时1msdigitalWrite(buzzer,LOW);//不发声音delay(1);//延时1ms}for(i=0;i<100;i++)//输出另一个频率的声音{digitalWrite(buzzer,HIGH);//发声音delay(2);//延时2msdigitalWrite(buzzer,LOW);//不发声音delay(2);//延时2ms}}}实验结论:能够听到蜂鸣器发出两个不同的声音。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蜂鸣器实验
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号)目录。
进入3、BEEP蜂鸣器(神舟IV号)\EWARMv5 目录后,双击Project.eww可以打开IAR 工程,以下为工程文件中主要代码的解释与说明。
为程序便于大家修改和移植,此处使用宏定义来定义神舟IV号BEEPER蜂鸣器使用的GPIO接口定义
下面的BEEP _config函数是初始化神舟IV号STM32开发板的BEEPER蜂鸣器对应的GPIO端口初始化的子函数。
以下为一些底层的函数:BEEP_Turn_on_all函数就是使能蜂鸣器鸣响,其中调用的GPIO_ResetBits就是STM32F10x_StdPeriph_Lib_V3.3.0库的标准函数,作用是将指定的一个或多个管脚输出低电平,前面讲过只要蜂鸣器管脚输出低电平,蜂鸣器就会鸣响。
BEEP _Turn_off_all函数就是禁止蜂鸣器鸣响,其中调用的GPIO_SetBits也是
STM32F10x_StdPeriph_Lib_V3.3.0库的标准函数,作用是将指定的一个或多个管脚输出高电平,前面讲过只要蜂鸣器管脚输出高电平,蜂鸣器就不会鸣响。
Delay_ARMJISHU函数流水灯使用的延时函数,简单的For循环
有了以上的子函数,MAIN主函数就会比较简单:
MAIN函数一开始就初始化BEEP的GPIO,然后进入While循环,KeyNum变量每次加一,将KeyNum对2求余数(也可以说取模)得到数字0或1,当为1时蜂鸣器鸣响,为0时蜂鸣器保持安静,这样便达到了蜂鸣器间断鸣响的预期目的。
z下载与验证
神舟IV号光盘\源码\目录包含本实验的工程源码,在神舟IV号光盘\源码\03、BEEP蜂鸣器.rar\Project\3、BEEP蜂鸣器\EWARMv5\STM32F107VC-ARMJISHU\Exe目录下的ARMJISHU_蜂鸣器.hex文件即为我们分析的蜂鸣器鸣响实验编译好的固件,我们可以直接通过JLINK V8将固件下载到神舟IV号开发板中,观察运行效果。
如果使用JLINK下载固件,请按错误!未找到引用源。
错误!未找到引用源。
下载固件到神舟IV号开发板小节进行操作。
如果使用USB下载固件,请按错误!未找到引用源。
错误!未找到引用源。
小节进行操作。
如果使用串口下载固件,请按错误!未找到引用源。
错误!未找到引用源。
小节进行操作。
如果在IAR开发环境中,下载编译好的固件或者在线调试,请按错误!未找到引用源。
错误!未找到引用源。
小节进行操作。
如果在MDK开发环境中,下载编译好的固件或者在线调试,请按错误!未找到引用源。
错误!未找到引用源。
小节进行操作。
z实验现象
将固件下载在神舟IV号STM32开发板后,可以听到看到的蜂鸣器发出间断的鸣响了,蜂鸣器的位置如下图红色框所示。
到这里,我们就完成了蜂鸣器实验的讲解,这个例程只是简单的实现蜂鸣器的鸣响和关闭控制,用蜂鸣器来唱歌,大家相信吗?感兴趣的朋友赶紧去尝试吧!。