蜂鸣器发声实验及程序设计
单片机实验报告蜂鸣器
![单片机实验报告蜂鸣器](https://img.taocdn.com/s3/m/41a28742b6360b4c2e3f5727a5e9856a561226e5.png)
一、实验目的1. 熟悉51单片机的基本结构和工作原理。
2. 掌握51单片机的I/O口编程方法。
3. 学习蜂鸣器的驱动原理和应用。
4. 通过实验,提高动手实践能力和问题解决能力。
二、实验原理蜂鸣器是一种将电信号转换为声音信号的器件,常用于产生按键音、报警音等提示信号。
根据驱动方式,蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。
1. 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。
2. 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才能发声,调整提供振荡脉冲的频率,可发出不同频率的声音。
在本次实验中,我们使用的是无源蜂鸣器。
51单片机通过控制P1.5端口的电平,产生周期性的方波信号,驱动蜂鸣器发声。
三、实验器材1. 51单片机实验板2. 蜂鸣器3. 连接线4. 电路焊接工具5. 编程软件(如Keil)四、实验步骤1. 电路连接:- 将蜂鸣器的正极连接到51单片机的P1.5端口。
- 将蜂鸣器的负极接地。
2. 程序编写:- 使用Keil软件编写程序,实现以下功能:1. 初始化P1.5端口为输出模式。
2. 通过循环,不断改变P1.5端口的电平,产生方波信号。
3. 调整方波信号的频率,控制蜂鸣器的音调。
3. 程序下载:- 将程序下载到51单片机中。
4. 实验观察:- 启动程序后,观察蜂鸣器是否发声,以及音调是否与程序设置一致。
五、实验结果与分析1. 实验结果:- 成功驱动蜂鸣器发声,音调与程序设置一致。
2. 结果分析:- 通过实验,我们掌握了51单片机的I/O口编程方法,以及蜂鸣器的驱动原理。
- 在程序编写过程中,我们学习了方波信号的生成方法,以及如何调整方波信号的频率。
六、实验总结本次实验成功地实现了51单片机控制蜂鸣器发声的功能,达到了预期的实验目的。
通过本次实验,我们提高了以下能力:1. 对51单片机的基本结构和工作原理有了更深入的了解。
2. 掌握了51单片机的I/O口编程方法。
3. 学习了蜂鸣器的驱动原理和应用。
蜂鸣器声响实验
![蜂鸣器声响实验](https://img.taocdn.com/s3/m/eef351ddb14e852458fb572f.png)
EDA实验单元8由于蜂鸣器具有控制简单、声音悦耳,在工程项目中常用作人机接口的重要输出设备,用以发出提示声音,使系统更加完善、使用。
蜂鸣器有交流和直流2种,直流蜂鸣器驱动简单,一旦在两引脚上加入直流电源它就会发出一定频率的声音,此时声音的音调和音量是固定的;而交流蜂鸣器在这个方面则显的较为灵活,输入的声音信号的频率和音长使用户可控,因此输出的声响将更加逼真、更悦耳。
蜂鸣器声响实验1.要求使FreeDev开发板的蜂鸣器输出报警笛声。
2.分析FreeDev开发板为用户准备了蜂鸣器,其原理图见下图:在电路图中为了增加I/O口的驱动能力采用了PNP型三极管,这样只要在BUZZ 上输入一定频率的脉冲,蜂鸣器就会发出声音。
3.程序设计文件名:buzz.v。
module buzz ( CLK,BUZZ);input CLK;output BUZZ;reg buzzout_reg;reg [31:0] counter;always @ (posedge CLK)begincounter=counter+1;endalways @ (counter[6])beginbuzzout_reg=!(counter[21]& counter[23]& ~counter[26]);endassign BUZZ=buzzout_reg;endmodule4.实验方法注意:在Quartus II创建工程的详细图示请参考EDA实验单元1《点亮LED 灯》部分,本范例不再赘述。
在Quartus II中创建以buzz.v为顶层模块的工程,按下表锁定引脚,编译下载后即听到蜂鸣器的声音。
按键计数蜂鸣器实验报告(3篇)
![按键计数蜂鸣器实验报告(3篇)](https://img.taocdn.com/s3/m/101c7907793e0912a21614791711cc7931b778c9.png)
第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. 当按键未被按下时,蜂鸣器不发声。
单片机《蜂鸣器》实验报告
![单片机《蜂鸣器》实验报告](https://img.taocdn.com/s3/m/1e51c7d06394dd88d0d233d4b14e852458fb39ec.png)
单片机《蜂鸣器》实验报告单片机《蜂鸣器》实验报告一、实验目的本次实验旨在通过单片机的控制,实现对蜂鸣器的驱动和发声控制,进一步了解蜂鸣器的工作原理及应用。
二、实验原理蜂鸣器是一种电子发声器件,常用于发出警告、提示或声音信号。
其工作原理是利用电磁感应原理,在蜂鸣器线圈中通入电流时,会产生磁场,该磁场与蜂鸣器内部的一块磁铁产生相互作用力,使蜂鸣器内部的膜片发生振动,从而发出声音。
在本实验中,我们将通过单片机控制蜂鸣器的驱动信号,使其发出不同的声音,从而实现单片机对蜂鸣器的控制。
三、实验步骤1、准备实验器材:单片机开发板、蜂鸣器模块、杜邦线等。
2、将蜂鸣器模块连接至单片机开发板的某个数字引脚上。
3、通过单片机编程软件编写控制程序,实现对蜂鸣器的控制。
4、将编写好的程序下载到单片机开发板中,并进行调试。
5、通过单片机控制蜂鸣器发出不同的声音,观察其工作情况。
四、实验结果与分析1、实验结果通过本次实验,我们成功实现了单片机对蜂鸣器的控制,可以通过编写不同的程序,使蜂鸣器发出不同的声音。
以下是实验中蜂鸣器发出的声音及其对应的程序代码:(1) 发出“滴”的一声(2) 发出“嘟嘟”的警告声2、结果分析通过实验结果可以看出,通过单片机对蜂鸣器进行控制,可以实现发出不同声音的效果。
在第一个实验中,我们通过设置引脚的高低电平及延时时间,使蜂鸣器发出一声“滴”的声音。
在第二个实验中,我们通过一个无限循环,使蜂鸣器发出“嘟嘟”的警告声。
五、结论与展望通过本次实验,我们深入了解了蜂鸣器的工作原理及应用,并成功实现了单片机对蜂鸣器的控制。
实验结果表明,我们可以根据实际需要编写不同的程序,实现对蜂鸣器的灵活控制。
展望未来,我们可以进一步研究蜂鸣器的其他应用场景,例如在智能家居、机器人等领域中的应用。
我们也可以通过其他方式对蜂鸣器进行控制,例如通过传感器采集信号或者通过无线网络进行远程控制等。
按键控制蜂鸣器发声
![按键控制蜂鸣器发声](https://img.taocdn.com/s3/m/817b49c7227916888586d784.png)
一.系统任务按键控制蜂鸣器发声二.电路原理图三.程序设计内容“叮咚”电子门铃实验程序:常见的家用电子门铃在有客人来访时候,如果按压门铃按钮时,室内会发出“叮咚”声音,本实验程序模拟电子门铃的发音,当我们按压实验板上的K1按钮时候,蜂鸣器发出“叮咚”音乐声,是一个比较实用的程序。
使用无源蜂鸣器输出7个基本音阶声音是由物体振动所产生的。
只是由于物体的材料以及振幅、频率不同,而产生不同的声音。
声音的响度是由振幅决定的,而音调则是由频率决定的,那么我们只需要控制物体振动的频率,就可以发出固定的声调。
五.汇编程序ORG 0000HAJMP STARTORG 000BHINC 20H ;中断服务,中断计数器加1MOV TH0,#0D8HMOV TL0,#0F0H 12M晶振,形成10毫秒中断RETIORG 001BHLJMP INTT1 ;跳转到T1中断服务程序START: MOV DPTR,#00H ;初始化程序MOV A,#00HOBUF1 EQU 30HOBUF2 EQU 31HOBUF3 EQU 32HOBUF4 EQU 33HFLAGB BIT 00HSTOPB BIT 01HMOV SP,#50HMOV TH0,#0D8HMOV TL0,#0F0HMOV TMOD,#21HMOV TH1,#09HMOV TL1,#09HMOV IE,#8AHAJMP LOOPLOOP:JNB P3.2,MUSIC0JNB P3.1,MAINAJMP LOOPMAIN:JB P3.1,MAIN ;检测p3.1按钮LCALL YS10M ;延时去抖动JB P3.1,MAINSETB TR1 ;按钮有效MOV OBUF1,#00HMOV OBUF2,#00HMOV OBUF3,#00HMOV OBUF4,#00HCLR FLAGBCLR STOPBJNB STOPB,$AJMP START ;发出“叮咚”完毕,返回重新检测按钮YS10M: ;10ms延时子程序MOV R6,#20D1:MOV R7,#100DJNZ R7,$DJNZ R6,D1RETTING:AJMP STARTINTT1: ;定时器T1中断服务程序INC OBUF3 ;中断服务程序中发出一声“叮咚”响声MOV A,OBUF3CJNE A,#100,NEXTMOV OBUF3,#00HINC OBUF4MOV A,OBUF4CJNE A,#20,NEXTMOV OBUF4,#00HJB FLAGB,PGSTPCPL FLAGBAJMP NEXTPGSTP:SETB STOPBCLR TR1LJMP INT0RET NEXT:JB FLAGB,SOU2INC OBUF2MOV A,OBUF2CJNE A,#04H,INT0RETMOV OBUF2,#00HCPL P1.5LJMP INT0RETSOU2:INC OBUF1MOV A,OBUF1CJNE A,#05H,INT0RETMOV OBUF1,#00HCPL P1.5INT0RET:RETIMUSIC0:JB p3.2,MUSIC0 LCALL YS10MJB p3.2,MUSIC0NOPMOV DPTR,#DAT 表头地址送DPTRMOV 20H,#00H ;中断计数器清0MOV B,#00H ;表序号清0 MAIN2:JNB P3.3,TINGCLR AMOVC A,@A+DPTR ;查表取代码JZ END0 ;是00H,则结束CJNE A,#0FFH,MUSIC5LJMP MUSIC3MUSIC5:NOPMOV R6,AINC DPTRMOV A,BMOVC A,@A+DPTR ;取节拍代码送R7MOV R7,ASETB TR0 ;启动计数MUSIC2:NOPCPL P1.5MOV A,R6MOV R3,ALCALL DELMOV A,R7CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?;不等,则继续循环MOV 20H,#00H ;等于,则取下一代码INC DPTRINC BLJMP MAIN2MUSIC3: ;休止100毫秒NOPCLR TR0MOV R2,#0DHMUSIC4:NOPMOV R3,#0FFHLCALL DELDJNZ R2,MUSIC4INC DPTRLJMP MAIN2END0:NOPMOV R2,#0FFH ;歌曲结束,延时MUSIC6:MOV R3,#00HLCALL DELDJNZ R2,MUSIC6CLR TR0LJMP LOOPDEL:NOPDEL3:MOV R4,#03HDEL4:NOPDJNZ R4,DEL4NOPDJNZ R3,DEL3RETDENG1:MOV R3,#64HDJNZ R3,$AJMP MAINDAT:DB 30h,30h,26h,26h,20h,20h,1ch,1ch,1ah,1ah,18h,18h,00hEND六、程序下载及调试步骤:1.点击translate 按钮预编译2.点击build 按钮编译3.点击rebuild 按钮编译所有目标4.打开普中烧录软件5.点击程序下载四.程序流程图。
单片机蜂鸣器实验报告
![单片机蜂鸣器实验报告](https://img.taocdn.com/s3/m/d94dfccedbef5ef7ba0d4a7302768e9950e76e4a.png)
一、实验目的1. 了解单片机I/O的工作方式;2. 熟悉51单片机的汇编指令;3. 掌握蜂鸣器的工作原理及驱动方法;4. 学会通过单片机控制蜂鸣器发声,实现音乐播放功能。
二、实验原理1. 单片机:单片机是一种具有微处理器的集成电路,它将微处理器、存储器、输入/输出接口等集成在一个芯片上,具有体积小、功耗低、成本低等特点。
2. 蜂鸣器:蜂鸣器是一种将电信号转化为声音信号的装置,广泛应用于计算机、打印机、复印机、报警器、电子玩具等电子产品中。
蜂鸣器主要分为有源蜂鸣器和无源蜂鸣器两种类型。
有源蜂鸣器内置振荡源,可直接发声;无源蜂鸣器无内置振荡源,需要控制器提供振荡脉冲才能发声。
3. 51单片机与蜂鸣器连接:51单片机通过P1.0端口控制蜂鸣器,当P1.0端口输出高电平时,蜂鸣器发声;输出低电平时,蜂鸣器停止发声。
三、实验器材1. 51单片机实验板;2. 蜂鸣器;3. 连接线;4. 信号源;5. 示波器;6. 计算机及仿真软件(如Proteus)。
四、实验步骤1. 将蜂鸣器连接到51单片机实验板的P1.0端口;2. 编写程序,实现以下功能:(1)初始化51单片机系统;(2)通过P1.0端口控制蜂鸣器发声;(3)实现音乐播放功能;3. 将程序烧录到51单片机实验板;4. 使用示波器观察蜂鸣器发出的声音波形;5. 使用信号源模拟按键输入,验证蜂鸣器控制功能;6. 使用Proteus仿真软件验证程序功能。
五、实验结果与分析1. 通过实验,成功实现了51单片机控制蜂鸣器发声,验证了单片机I/O的工作方式和51单片机的汇编指令;2. 实现了音乐播放功能,验证了蜂鸣器的工作原理及驱动方法;3. 通过示波器观察,蜂鸣器发出的声音波形符合预期,验证了程序的正确性;4. 通过Proteus仿真软件,验证了程序在虚拟环境中的正确性。
六、实验总结1. 通过本次实验,掌握了单片机I/O的工作方式,熟悉了51单片机的汇编指令;2. 理解了蜂鸣器的工作原理及驱动方法,学会了通过单片机控制蜂鸣器发声;3. 提高了动手实践能力,培养了团队协作精神。
物联网蜂鸣器实验报告
![物联网蜂鸣器实验报告](https://img.taocdn.com/s3/m/04465c4c6fdb6f1aff00bed5b9f3f90f76c64d83.png)
一、实验目的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)观察蜂鸣器是否按照预期发声,音调是否逐渐升高。
单片机蜂鸣器响一秒停一秒实验报告代码
![单片机蜂鸣器响一秒停一秒实验报告代码](https://img.taocdn.com/s3/m/65734f010a4c2e3f5727a5e9856a561252d321f5.png)
单片机蜂鸣器响一秒停一秒实验报告代码实验目的:利用单片机控制蜂鸣器输出不同的频率和时间,实现蜂鸣器响一秒停一秒的功能。
实验器材:STC89C52单片机、蜂鸣器、 Jumper wires。
实验原理:STC89C52单片机的IO口可以用来控制外部器件,蜂鸣器连接到单片机的IO口上,通过程序控制IO口输出高电平或低电平控制蜂鸣器发声或停止发声。
实验步骤:1. 将STC89C52单片机片上系统搭建好,将蜂鸣器连接到单片机的一个IO口上;2. 使用Keil编译器编写程序代码,实现蜂鸣器响一秒停一秒的功能;3. 将程序代码烧录进单片机,连接电源后观察蜂鸣器是否正常响起。
代码如下:```c#include<reg52.h>#define ON 0 // 蜂鸣器控制IO口输出高电平#define OFF 1 // 蜂鸣器控制IO口输出低电平void delay(unsigned int x); // 延迟函数void main(){while (1){P1 = ON; // 蜂鸣器控制IO口输出高电平delay(1000); // 延时1秒P1 = OFF; // 蜂鸣器控制IO口输出低电平delay(1000); // 延时1秒}}void delay(unsigned int x){ // 延迟函数unsigned char i, j;for (i = x; i > 0; i--)for (j = 110; j > 0; j--);}```以上代码中,P1口控制蜂鸣器,利用循环控制蜂鸣器在高低电平间切换,延时用来实现响1秒停1秒的功能。
注意:实现蜂鸣器响一秒停一秒功能时,需要确保延时函数的时间间隔精度较高,否则会影响响停时间的准确性。
以上是单片机蜂鸣器响一秒停一秒的实验报告和代码,希望能对您有所帮助。
制作蜂鸣器实验报告
![制作蜂鸣器实验报告](https://img.taocdn.com/s3/m/37adf0dbed3a87c24028915f804d2b160b4e86ae.png)
一、实验目的1. 了解蜂鸣器的工作原理及电路组成。
2. 掌握蜂鸣器驱动电路的设计与搭建方法。
3. 学习使用万用表检测电路元件参数。
二、实验原理蜂鸣器是一种电子音响装置,主要由蜂鸣片、振荡器、放大器和驱动电路组成。
当给蜂鸣器提供适当的电压时,振荡器产生音频信号,经过放大后驱动蜂鸣片振动发声。
本实验采用压电式蜂鸣器,其工作原理是利用压电材料的压电效应,将电能转换为机械能,使蜂鸣片振动发声。
驱动电路通常由晶体管或集成电路构成,用于放大振荡器产生的音频信号,驱动蜂鸣片发声。
三、实验仪器与材料1. 仪器:万用表、示波器、面包板、电源2. 材料:蜂鸣器、电阻、电容、晶体管、导线等四、实验步骤1. 设计电路图:根据实验要求,设计蜂鸣器驱动电路图,包括晶体管、电阻、电容等元件的连接方式。
2. 搭建电路:将设计好的电路图按照元件连接方式,在面包板上搭建实验电路。
3. 检测元件参数:使用万用表检测晶体管、电阻、电容等元件的参数,确保元件符合设计要求。
4. 连接电源:将电源的正负极分别连接到电路的正负电源端。
5. 测试电路:打开电源,观察蜂鸣器是否发出声音。
若发出声音,则说明电路搭建成功;若未发出声音,则检查电路连接是否正确,并重新搭建电路。
6. 调整电路:根据实验要求,调整电路参数(如电阻值、电容值等),观察蜂鸣器发声情况,以达到最佳效果。
7. 记录实验数据:记录实验过程中蜂鸣器的发声频率、音量等参数。
五、实验结果与分析1. 实验结果:搭建电路后,蜂鸣器发出声音,频率约为1kHz,音量适中。
2. 实验分析:通过实验,我们了解了蜂鸣器的工作原理及电路组成,掌握了蜂鸣器驱动电路的设计与搭建方法。
在实验过程中,我们通过调整电路参数,实现了对蜂鸣器发声频率和音量的控制。
六、实验总结1. 通过本次实验,我们掌握了蜂鸣器的工作原理及电路组成,学会了蜂鸣器驱动电路的设计与搭建方法。
2. 在实验过程中,我们了解了如何使用万用表检测电路元件参数,为后续实验奠定了基础。
蜂鸣器实验报告范文
![蜂鸣器实验报告范文](https://img.taocdn.com/s3/m/935b5c77657d27284b73f242336c1eb91b37337e.png)
实验名称:蜂鸣器实验一、实验目的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. 播放简单的旋律通过编写程序,实现播放简单的旋律。
实验结果显示,蜂鸣器能够准确播放出旋律,且音调和音量符合预期。
蜂鸣器仿真编程实验报告(3篇)
![蜂鸣器仿真编程实验报告(3篇)](https://img.taocdn.com/s3/m/c718436cba68a98271fe910ef12d2af90342a81a.png)
第1篇一、实验目的1. 理解蜂鸣器的工作原理和驱动方式。
2. 掌握Verilog硬件描述语言在FPGA上的应用。
3. 学习使用Quartus II软件进行FPGA编程和仿真。
4. 实现通过FPGA控制蜂鸣器发声,实现对音调、音量的调节。
二、实验环境1. 仿真软件:ModelSim SE2. FPGA开发板:Cyclone IV E FPGA开发板3. 编译软件:Quartus II4. 代码编辑器:Vivado或Eclipse三、实验原理1. 蜂鸣器工作原理:蜂鸣器是一种电磁声音变换器,通过电信号的变化产生声音。
当电流通过蜂鸣器线圈时,线圈会产生磁场,使振动膜片在电磁线圈和磁铁的相互作用下振动,从而产生声音。
2. PWM控制原理:PWM(脉冲宽度调制)是一种模拟信号与数字信号之间的转换技术,通过改变脉冲宽度来控制输出信号的占空比,从而实现对模拟信号的调节。
3. FPGA编程:FPGA(现场可编程门阵列)是一种具有可编程逻辑资源的集成电路,通过编程实现对逻辑功能的配置。
在本实验中,使用Verilog硬件描述语言编写蜂鸣器控制程序。
四、实验步骤1. 设计PWM控制模块:首先,设计一个PWM控制模块,该模块可以产生不同占空比的方波信号,用于控制蜂鸣器的音量。
2. 设计蜂鸣器驱动模块:设计一个蜂鸣器驱动模块,该模块将PWM信号转换为蜂鸣器可识别的信号,驱动蜂鸣器发声。
3. 编写Verilog代码:使用Verilog语言编写蜂鸣器控制程序,包括PWM控制模块、蜂鸣器驱动模块以及主控模块。
4. 仿真测试:使用ModelSim SE软件对编写的Verilog代码进行仿真测试,观察PWM信号和蜂鸣器驱动信号的波形,确保程序功能正常。
5. 硬件下载:将编写的Verilog代码下载到FPGA开发板上,观察蜂鸣器是否按照预期发声。
五、实验结果与分析1. 仿真结果:在ModelSim SE软件中,通过观察PWM信号和蜂鸣器驱动信号的波形,发现PWM控制模块和蜂鸣器驱动模块的功能正常。
蜂鸣器实验报告
![蜂鸣器实验报告](https://img.taocdn.com/s3/m/99833d07326c1eb91a37f111f18583d048640f67.png)
蜂鸣器实验报告一、实验目的。
本实验旨在探究蜂鸣器的工作原理,了解其在电路中的应用,通过实际操作加深对蜂鸣器的理解。
二、实验原理。
蜂鸣器是一种能够发出嗡嗡声的电子元件,其工作原理是利用电磁感应产生声音。
当电流通过蜂鸣器时,会产生磁场,磁场的变化会使蜂鸣器内部的振膜产生振动,从而发出声音。
在电路中,蜂鸣器通常被用作警报器或提醒装置。
三、实验材料。
1. 蜂鸣器。
2. 电源。
3. 电线。
4. 开关。
5. 电阻。
6. 面包板。
四、实验步骤。
1. 将蜂鸣器、电源、开关、电阻等材料准备齐全。
2. 将电源、开关、电阻连接至面包板上,构建一个简单的电路。
3. 将蜂鸣器连接至电路中的适当位置。
4. 打开电源,观察蜂鸣器是否发出声音。
5. 调整电路中的参数,如电压、电阻值等,观察蜂鸣器的工作状态变化。
五、实验结果与分析。
经过实验操作,我们成功搭建了一个简单的蜂鸣器电路,并成功使蜂鸣器发出了清脆的嗡嗡声。
在调整电路参数的过程中,我们发现改变电压和电阻值可以显著影响蜂鸣器的声音频率和音量。
这进一步验证了蜂鸣器的工作原理,也为我们在实际应用中提供了一定的参考。
六、实验总结。
通过本次实验,我们对蜂鸣器的工作原理有了更深入的了解,也掌握了搭建蜂鸣器电路的基本方法。
蜂鸣器作为一种常见的电子元件,在电子产品中有着广泛的应用,如闹钟、电子玩具、报警器等。
因此,对蜂鸣器的理解和掌握对于电子爱好者来说是非常重要的。
希望通过本次实验,能够帮助大家更好地理解蜂鸣器的工作原理,为日后的学习和实践打下坚实的基础。
七、参考文献。
1. 《电子技术基础》,XXX,XXX出版社,200X年。
2. 《电子电路原理与应用》,XXX,XXX出版社,200X年。
蜂鸣器的实验报告6
![蜂鸣器的实验报告6](https://img.taocdn.com/s3/m/06265703ff4733687e21af45b307e87101f6f8d7.png)
蜂鸣器的实验报告6引言蜂鸣器是一种能够发出不同频率声音的电子元件。
它常被用于电子产品中作为声音提示器件,如电子钟、手机等。
本实验旨在通过使用蜂鸣器,学习和了解蜂鸣器的基本原理和功能。
实验目的1. 了解蜂鸣器的工作原理;2. 学习使用蜂鸣器进行声音输出;3. 熟悉控制蜂鸣器发出不同频率的声音。
实验材料- Arduino 开发板- 杜邦线- 蜂鸣器- 220 Ω电阻- 面包板实验步骤步骤一:准备工作1. 将Arduino 开发板连接至电脑,并打开Arduino IDE 软件;2. 将蜂鸣器连接至面包板。
将杜邦线分别连接蜂鸣器的正和负引脚;3. 将蜂鸣器的正引脚再连接至面包板上的数字引脚13,并在其连接处加上一个220 Ω的电阻。
步骤二:编写程序1. 在Arduino IDE 软件中新建一个程序文件;2. 编写以下代码:cppvoid setup() {pinMode(13, OUTPUT); 设置数字引脚13为输出模式}void loop() {digitalWrite(13, HIGH); 发送高电平信号给数字引脚13delay(1000); 延迟1秒digitalWrite(13, LOW); 发送低电平信号给数字引脚13delay(1000); 延迟1秒}步骤三:上传程序1. 将Arduino 开发板与电脑连接好后,点击Arduino IDE 软件的“上传”按钮;2. 等待程序上传完成。
步骤四:观察实验现象1. 可以听到蜂鸣器发出“滴答”声;2. 蜂鸣器发声间隔为1秒。
实验结果与分析通过上述实验步骤,我们成功驱动了蜂鸣器发出了声音。
蜂鸣器的发声原理是通过快速交替地给蜂鸣器正、负极供电,使得蜂鸣器产生振荡,从而产生声音。
通过改变程序中的延迟时间,我们可以改变蜂鸣器发声的频率。
实验总结本实验通过使用蜂鸣器,我们学习了蜂鸣器的基本原理和功能。
我们了解了蜂鸣器的发声机制和控制方式,通过编写程序实现了控制蜂鸣器发出不同频率的声音。
蜂鸣器响实验报告
![蜂鸣器响实验报告](https://img.taocdn.com/s3/m/7dd57cadafaad1f34693daef5ef7ba0d4a736d18.png)
蜂鸣器响实验报告
《蜂鸣器响实验报告》
实验目的:通过实验观察蜂鸣器在不同条件下的响声表现,探究其响声特性及影响因素。
实验材料:蜂鸣器、电源、导线、实验记录表。
实验步骤:
1. 将蜂鸣器与电源连接,观察其正常工作状态下的响声。
2. 改变电压大小,记录响声的变化。
3. 改变蜂鸣器的工作环境,如在不同温度下进行实验,记录响声的变化。
4. 对蜂鸣器进行轻微损坏,观察其响声的变化。
实验结果:
1. 在不同电压下,蜂鸣器的响声大小和频率均发生了变化。
随着电压的增加,蜂鸣器的响声变得更加响亮且频率更高。
2. 在不同温度下,蜂鸣器的响声也发生了变化。
在较高温度下,蜂鸣器的响声变得更加尖锐,而在较低温度下,响声则变得较为低沉。
3. 当蜂鸣器受损时,其响声变得不规则且频率不稳定。
实验分析:
蜂鸣器的响声特性受多种因素影响,包括电压、温度和器件状态。
在实际应用中,我们需要根据具体情况来选择合适的工作条件,以获得最佳的响声效果。
结论:
通过本次实验,我们对蜂鸣器的响声特性有了更深入的了解,不同的工作条件会对其响声产生影响。
这对于我们在实际应用中选择合适的蜂鸣器及工作条件
具有一定的指导意义。
蜂鸣器的使用实验报告(3篇)
![蜂鸣器的使用实验报告(3篇)](https://img.taocdn.com/s3/m/5e4fadb2c0c708a1284ac850ad02de80d4d806de.png)
第1篇一、实验目的1. 了解蜂鸣器的工作原理和基本特性。
2. 掌握蜂鸣器在电路中的应用方法。
3. 学习使用单片机控制蜂鸣器发声,实现音乐播放和报警功能。
4. 培养动手能力和实践操作技能。
二、实验原理蜂鸣器是一种利用电磁原理或压电效应产生声音的电子元件,广泛应用于报警、提示、音乐播放等领域。
根据工作原理,蜂鸣器主要分为压电式和电磁式两种。
1. 压电式蜂鸣器:主要由压电蜂鸣片、阻抗匹配器、共鸣箱、外壳等组成。
当接通电源后,多谐振荡器产生音频信号,阻抗匹配器推动压电蜂鸣片发声。
2. 电磁式蜂鸣器:主要由振荡器、电磁线圈、磁铁、振动膜片、外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
三、实验器材1. 单片机开发板(如51单片机、AVR单片机等)2. 蜂鸣器(压电式或电磁式)3. 电阻、电容、连接线等实验器材4. 示波器、电源等辅助设备四、实验步骤1. 蜂鸣器基本测试(1)将蜂鸣器正负极分别接入电源,观察蜂鸣器是否发声。
(2)使用示波器观察蜂鸣器发声时的波形,分析其频率和幅度。
2. 单片机控制蜂鸣器发声(1)搭建电路:将蜂鸣器正负极分别接入单片机的某个I/O端口,如P1.0。
(2)编写程序:编写单片机程序,通过控制I/O端口的高低电平,实现蜂鸣器的发声控制。
(3)程序测试:将程序烧录到单片机中,观察蜂鸣器是否按照预期发声。
3. 音乐播放实验(1)编写程序:编写单片机程序,实现音乐播放功能。
程序中需要包含音符频率和持续时间等参数。
(2)程序测试:将程序烧录到单片机中,观察蜂鸣器是否能够播放音乐。
4. 报警功能实验(1)编写程序:编写单片机程序,实现报警功能。
程序中需要包含报警频率、持续时间等参数。
(2)程序测试:将程序烧录到单片机中,观察蜂鸣器是否能够发出报警声。
五、实验结果与分析1. 蜂鸣器基本测试实验结果表明,蜂鸣器在接通电源后能够发声,示波器显示的波形符合预期。
蜂鸣器的驱动实验报告(3篇)
![蜂鸣器的驱动实验报告(3篇)](https://img.taocdn.com/s3/m/7d46a0a288eb172ded630b1c59eef8c75fbf9583.png)
第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. 当程序运行时,蜂鸣器应该会发出“滴答”声。
蜂鸣器的使用实验报告
![蜂鸣器的使用实验报告](https://img.taocdn.com/s3/m/8a7c0a7bf011f18583d049649b6648d7c0c70840.png)
蜂鸣器的使用实验报告一、实验目的本实验旨在探究蜂鸣器的工作原理,了解蜂鸣器的使用方法,并通过实际操作来学习如何控制蜂鸣器发出不同的声音。
二、实验器材- Arduino UNO开发板- 蜂鸣器模块- 面包板- 连接线- 电脑三、实验原理蜂鸣器是一种能够发出声音的电子元件。
它由一个压电陶瓷晶体和音腔组成。
在正向作用下,陶瓷晶体会振荡,产生声音。
通过调节驱动电压的频率和占空比,可以产生不同音调的声音。
四、实验步骤以及结果1. 将Arduino UNO开发板连接到电脑,并打开Arduino IDE软件。
2. 将蜂鸣器模块插入面包板。
3. 将蜂鸣器模块的VCC引脚连接至Arduino开发板的5V引脚。
4. 将蜂鸣器模块的GND引脚连接至Arduino开发板的GND引脚。
5. 将蜂鸣器模块的S引脚连接至Arduino开发板的数字引脚13。
6. 编写Arduino代码,实现蜂鸣器发出不同的声音。
7. 将代码上传至Arduino开发板,并观察蜂鸣器的发声情况。
以下是实验中编写的Arduino代码样例:C++void setup(){pinMode(13, OUTPUT);}void loop(){tone(13, 1000);delay(500);noTone(13);delay(500);}实验结果显示,在运行代码后,蜂鸣器模块会发出一定频率的声音,每隔一段时间停止,然后再次发声,如此循环。
五、结果分析实验结果表明,通过对Arduino开发板的数字引脚进行控制,可以实现对蜂鸣器发声的控制。
在此实验中,我们通过设定13号引脚的输出为高电平,并调用tone函数来产生一个频率为1000的声音。
然后使用delay函数延迟500毫秒,再次调用noTone函数停止蜂鸣器发声,并使用再次使用delay函数延迟500毫秒,实现循环发声的效果。
六、实验总结通过本次实验,我对蜂鸣器的工作原理有了更深入的了解,并学会了如何使用Arduino开发板来控制蜂鸣器发声。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学ARM从STM32开始STM32开发板库函数教程--实战篇4.2蜂鸣器发声实验4.2.1概述本节给大家实现怎样用STM32驱动蜂鸣器发声和Systick定时器的使用,通过设置Systick定时器使蜂鸣器非常精确的按照设计的时间发声。
在做实验之前我们要先了解蜂鸣器的结构与原理。
4.2.1.1蜂鸣器概述蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。
4.2.1.2结构原理1.压电式蜂鸣器:压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
有的压电式蜂鸣器外壳上还装有发光二极管。
多谐振荡器由晶体管或集成电路构成。
当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。
在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。
2.电磁式蜂鸣器:电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。
振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
4.2.1.3制作工艺(1)制备电磁铁M:在长约6厘米的铁螺栓上绕100圈导线,线端留下5厘米作引线,用透明胶布把线圈粘好,以免线圈松开,再用胶布把它粘在一个盒子上,电磁铁就做好了.(2)制备弹片P:从铁罐头盒上剪下一条宽约2厘米的长铁片,弯成直角,把电磁铁的一条引线接在弹片上,再用胶布把弹片紧贴在木板上.(3)用曲别针做触头Q,用书把曲别针垫高,用胶布粘牢,引出一条导线。
(4)调节M与P之间的距离(通过移动盒子),使电磁铁能吸引弹片,调节触点与弹片之间的距离,使它们能恰好接触,通电后就可以听到蜂鸣声。
4.2.1.4分类教你区分有源蜂鸣器和无源蜂鸣器:现在市场上出售的一种小型蜂鸣器因其体积小(直径只有llmm)、重量轻、价格低、结构牢靠,而广泛地应用在各种需要发声的电器设备、电子制作和单片机等电路中。
有源蜂鸣器和无源蜂鸣器的外观如图a、b所示。
图:有源和无源蜂鸣器的外观a有源b)无源。
从图a、b外观上看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器a,高度为9mm,而无源蜂鸣器b的高度为8mm。
如将两种蜂鸣器的引脚都朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。
迸一步判断有源蜂鸣器和无源蜂鸣器,还可以用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器"-"引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。
有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。
有源[1]蜂鸣器与无源蜂鸣器的区别:注意:这里的“源”不是指电源,而是指震荡源。
也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。
必须用2K-5K的方波去驱动它有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路无源蜂鸣器的优点是:1.便宜2.声音频率可控,可以做出“多来米发索拉西”的效果3.在一些特例中,可以和LED复用一个控制口有源蜂鸣器的优点是:程序控制方便。
4.2.1.5驱动模块在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。
这里对单片机在蜂鸣器驱动上的应用作一下描述。
4.2.1.6驱动方式由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音,很简单,这里就不对自激蜂鸣器进行说明了。
这里只对必须用1/2duty的方波信号进行驱动的他激蜂鸣器进行说明。
单片机驱动他激蜂鸣器的方式有两种:一种是PWM输出口直接驱动,另一种是利用I/O定时翻转电平产生驱动波形对蜂鸣器进行驱动。
PWM输出口直接驱动是利用PWM输出口本身可以输出一定的方波来直接驱动蜂鸣器。
在单片机的软件设置中有几个系统寄存器是用来设置PWM口的输出的,可以设置占空比、周期等等,通过设置这些寄存器产生符合蜂鸣器要求的频率的波形之后,只要打开PWM输出,PWM输出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。
比如频率为2000Hz的蜂鸣器的驱动,可以知道周期为500μs,这样只需要把PWM的周期设置为500μs,占空比电平设置为250μs,就能产生一个频率为2000Hz的方波,通过这个方波再利用三极管就可以去驱动这个蜂鸣器了。
而利用I/O定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。
比如为2500Hz的蜂鸣器的驱动,可以知道周期为400μs,这样只需要驱动蜂鸣器的I/O口每200μs翻转一次电平就可以产生一个频率为2500Hz,占空比为1/2duty的方波,再通过三极管放大就可以驱动这个蜂鸣器了。
4.2.1.7驱动电路由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。
蜂鸣器驱动电路一般都包含以下几个部分:一个三极管、一个蜂鸣器、一个续流二极管和一个电源滤波电容。
1.蜂鸣器发声元件,在其两端施加直流电压(有源蜂鸣器)或者方波(无源蜂鸣器)就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作频率、工作电流、驱动方式(直流/方波)等。
这些都可以根据需要来选择。
2.续流二极管蜂鸣器本质上是一个感性元件,其电流不能瞬变,因此必须有一个续流二极管提供续流。
否则,在蜂鸣器两端会产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其它部分。
3.滤波电容滤波电容C1的作用是滤波,滤除蜂鸣器电流对其它部分的影响,也可改善电源的交流阻抗,如果可能,最好是再并联一个220uF的电解电容。
4.三极管三极管Q5起开关作用,其基极的低电平使三极管饱和导通,使蜂鸣器发声;而基极高电平则使三极管关闭,蜂鸣器停止发声。
4.2.3硬件设计大黄蜂STM32开发板上有1个电子蜂鸣器,PCB线路板上的标号分别是FM。
与原理图对应的标号是(1.PE2-FMQ)。
原理图上标号的命名规则如下:“1”指的是芯片管脚序号1;“PE2”指的是IO口定义;“FMQ”指的是电子元件编号。
我们以程序书写过程为例说明:MCU芯片管脚序号(1)+I/O引脚(PE2)+功能标号(FMQ).原理图与PCB线路板上已经都连接好了,大家不用自己再连接了,直接把程序下载到大黄蜂STM32开发板上运行就可以了。
FMQ原理图图4.14.2.4软件设计4.2.4.1STM32库函数文件stm32f10x_gpio.cstm32f10x_rcc.c本节实验我们主要用到的库文件,其中stm32f10x_gpio.h头文件包含了GPIO端口的定义。
stm32f10x_rcc.h头文件包含了系统时钟配置函数以及相关的外设时钟使能函数,所以我们要把这两个头文件对应的stm32f10x_gpio.c和stm32f10x_rcc.c都加到工程中。
4.2.4.2自定义头文件pbdata.hpbdata.c同时我们自己也创建了两个公共的文件,这两个文件主要存放我们自定义的公共函数和全局变量,以方便以后每个功能模块之间传递参数。
4.2.4.3pbdata.h文件里的内容是#ifndef_pbdata_H#define_pbdata_H#include"stm32f10x.h"//定义函数void RCC_HSE_Configuration(void);void delay(u32nCount);void delay_us(u32nus);void delay_ms(u16nms);#endif语句#ifndef、#endif是为了防止pbdata.h文件被多个文件调用时出现错误提示。
如果不加这两条语句,当两个文件同时调用pbdata文件时,会提示重复调用错误。
stm32f10x.h头文件是我们每个工程都需要调用的,里面包括了STM32内部寄存器地址的定义。
4.2.4.4pbdata.c文件里的内容是#include"pbdata.h"//很重要,引用这个头文件void RCC_HSE_Configuration(void)//HSE作为PLL时钟,PLL作为SYSCLK{RCC_DeInit();/*将外设RCC寄存器重设为缺省值*/RCC_HSEConfig(RCC_HSE_ON);/*设置外部高速晶振(HSE)HSE晶振打开(ON)*/ if(RCC_WaitForHSEStartUp()==SUCCESS){/*等待HSE起振,SUCCESS:HSE 晶振稳定且就绪*/RCC_HCLKConfig(RCC_SYSCLK_Div1);/*设置AHB时钟(HCLK)RCC_SYSCLK_Div1——AHB时钟=系统时*/RCC_PCLK2Config(RCC_HCLK_Div1);/*设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟=HCLK*/RCC_PCLK1Config(RCC_HCLK_Div2);/*设置低速AHB时钟(PCLK1)RCC_HCLK_Div2——APB1时钟=HCLK/2*/RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);/*设置PLL时钟源及倍频系数*/RCC_PLLCmd(ENABLE);/*使能PLL*/while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);/*检查指定的RCC 标志位(PLL准备好标志)设置与否*/RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);/*设置系统时钟(SYSCLK)*/ while(RCC_GetSYSCLKSource()!=0x08);/*0x08:PLL作为系统时钟*/ }}void delay(u32nCount){for(;nCount!=0;nCount--);}/*********************************************************************** ******名称:delay_us(u32nus)*功能:微秒延时函数*入口参数:u32nus*出口参数:无*说明:*调用方法:无************************************************************************ ****/void delay_us(u32nus){u32temp;SysTick->LOAD=9*nus;SysTick->VAL=0X00;//清空计数器SysTick->CTRL=0X01;//使能,减到零是无动作,采用外部时钟源do{temp=SysTick->CTRL;//读取当前倒计数值}while((temp&0x01)&&(!(temp&(1<<16))));//等待时间到达SysTick->CTRL=0x00;//关闭计数器SysTick->VAL=0X00;//清空计数器}/*********************************************************************** ******名称:delay_ms(u16nms)*功能:毫秒延时函数*入口参数:u16nms*出口参数:无*说明:*调用方法:无************************************************************************ ****/void delay_ms(u16nms){u32temp;SysTick->LOAD=9000*nms;SysTick->VAL=0X00;//清空计数器SysTick->CTRL=0X01;//使能,减到零是无动作,采用外部时钟源do{temp=SysTick->CTRL;//读取当前倒计数值}while((temp&0x01)&&(!(temp&(1<<16))));//等待时间到达SysTick->CTRL=0x00;//关闭计数器SysTick->VAL=0X00;//清空计数器}延时函数可以通过很多种方法实现,采用精密微秒延时函数“delay_us(u32nus)”和毫秒延时函数“delay_ms(u16nms)”,由于本节实验对延时的精度要比较高,主要是为了学习者掌握精确定时的使用方法,所以我们专用的延时函数。