单片机学习之蜂鸣器驱动
单片机蜂鸣器工作原理单片机驱动蜂鸣器原理与编程
单片机蜂鸣器工作原理单片机驱动蜂鸣器原理与编程蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
下面是电电磁式蜂鸣器实物图:磁式蜂鸣器的外形图片及结构图。
电磁式蜂鸣器结构示意图:图1电磁式蜂鸣器内部构成:1.防水贴纸2.线轴3.线圈4.磁铁图25.6.7.8.底座引脚外壳铁芯9.封胶10.小铁片11.振动膜12.电路板一、电磁式蜂鸣器驱动原理蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。
S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3:S51增强型单片机实验板蜂鸣器驱动原理图:图3如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。
因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。
程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。
蜂鸣器变声控制实验单片机实验报告
蜂鸣器变声控制实验单片机实验报告一、实验目的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、通过本次实验,学生们不仅掌握了相关的电路和编程知识,同时还锻炼了自己的实践能力和创新思维。
单片机蜂鸣器实验报告体会
单片机蜂鸣器实验报告体会通过这次单片机蜂鸣器实验,我深刻体会到了单片机的应用和蜂鸣器的原理与工作方式。
同时,实验过程中也锻炼了我动手实践、问题分析和解决能力。
以下是我的一些心得体会。
首先,这次实验让我重新认识和理解了单片机的作用和重要性。
单片机是一种微型计算机系统,通过给单片机编程,可以实现各种复杂的控制功能。
在这次实验中,我们利用单片机控制蜂鸣器发出不同频率的声音,让我感受到了单片机在音频控制方面的优势。
同时,单片机的计算能力和高效性也让我意识到它在各个领域的广泛应用。
其次,通过这次实验,我深入了解了蜂鸣器的原理和工作方式。
蜂鸣器是一种能够发出声音的电子器件,它是利用电流通过振动片或压电陶瓷晶片引起共振来产生声音。
通过改变电流的频率和占空比,可以发出不同的声音。
在实验中,我们通过改变单片机的输出电压来控制蜂鸣器的工作状态,发出不同频率的声音。
这让我明白了如何利用蜂鸣器来实现声音控制。
此外,这次实验也让我意识到了问题分析和解决的重要性。
在实验过程中,我们遇到了各种问题,如蜂鸣器不工作、声音频率不准确等。
这些问题的出现让我反思了自己对实验原理的理解和对单片机编程的掌握程度。
通过仔细分析问题的原因和搜索相关资料,我找到了解决方法,如检查电路连接是否正确、重新编写程序等。
这让我意识到在实验和工程项目中,能够熟练运用问题分析和解决方法是很重要的。
最后,通过这次实验,我也发现了自己在动手实践方面的不足之处。
实验的电路连接和单片机编程都需要细心和耐心,我在实验过程中有时会出现粗心和着急的情况。
这次实验让我认识到了自己的不足,并促使我更加认真对待实验和动手实践的环节。
只有通过亲身实践,才能够更好地理解和掌握相关知识。
总而言之,通过这次单片机蜂鸣器实验,我不仅加深了对单片机和蜂鸣器的理解,也锻炼了动手实践和问题解决的能力。
这次实验让我更加认识到了单片机的应用前景和重要性,同时也让我明白了在实验和工程项目中,细心和耐心是非常重要的品质。
四款蜂鸣器驱动电路原理图
四款蜂鸣器驱动电路原理图
本文主要讲了五款蜂鸣器驱动电路原理图,下面就来学习学习吧。
蜂鸣器驱动电路图一:
典型的蜂鸣器驱动电路,蜂鸣器驱动电路一般包含:一个三极管、一个蜂
鸣器、一个续流二极管、一个滤波电容。
1、蜂鸣器:发声元件,在其两端施加直流电压(有源蜂鸣器)或者方波(无源蜂鸣器)就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作频率、工作电流、驱动方式(直流方波)等。
这些都需要根据需要进行
选择。
2、续流二极管:蜂鸣器本质上是一个感性元件,其电流不能瞬变,因此必须有一个续流二极管提供续流。
否则,在蜂鸣器两端会产生几十伏的尖峰电压,可能损坏三极管,并干扰整个电路系统的其他部分。
3、滤波电容:作用是滤波,滤除蜂鸣器电流对其他部分的影响,也可以改善电源的交流阻抗,如果可能,最好是再并联一个220uF的电解电容。
4、三极管:起开关作用,其基极的高电平使三极管饱和导通,使蜂鸣器发声;而基极低电平则使三极管关闭,蜂鸣器停止发声。
蜂鸣器驱动电路图二:
根据下面四幅图分析可以看出图1和图3采用的是NPN型三极管驱动,而图2和图4采用的是PNP型三极管驱动。
若采用图1和图3的方法进行驱动,蜂鸣器工作电压只要不超过管子的极限参数即可随时取用。
像图1,采用这种方法驱动蜂鸣器,再用编程控制器的I/O口进行控制,蜂鸣器都能响;但相对于图3电路图而言,采用图1方式接,蜂鸣器没有图3。
蜂鸣器及范例
下面是电磁式蜂鸣器的外形图片及结构图。
程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。
另外,改变P3.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。
二、蜂鸣器列子下面我们举几个简单的单片机驱动蜂鸣器的编程和电路设计的列子。
1、简单的蜂鸣器实验程序:本程序通过在P3.7输出一个音频范围的方波,驱动实验板上的蜂鸣器发出蜂鸣声,其中DELAY延时子程序的作用是使输出的方波频率在人耳朵听觉能力之内的20KHZ以下,如果没有这个延时程序的话,输出的频率将大大超出人耳朵的听觉能力,我们将不能听到声音。
更改延时常数,可以改变输出频率,也就可以调整蜂鸣器的音调。
大家可以在实验中更改#228为其他值,听听蜂鸣器音调的改变。
ORG 0000HAJMP MAIN ;跳转到主程序ORG 0030HMAIN: CPL P3.7 ;蜂鸣器驱动电平取反LCALL DELAY ;延时AJMP MAIN ;反复循环DELAY:MOV R7,#228 ;延时子程序,更改该延时常数可以改变蜂鸣器发出的音调DE1: DJNZ R7,DE1RETEND2、倒车警示音实验程序:我们知道各种卡车、货柜车在倒车时候,会发出倒车的蜂鸣警示提示音,同时警示黄灯也同步闪烁,提醒后面的人或车辆注意。
本实验例程就实现倒车警示功能,通过实验板上的蜂鸣器发出警示音,同时通过实验板上P1.2和P1.5上的两个黄色发光二极管来发出黄色警示灯。
ORG 0000HAJMP START ;跳转到初始化程序ORG 0033HSTART:MOV SP,#60H ;SP初始化MOV P3,#0FFH ;端口初始化MAIN: ACALL SOUND ;蜂鸣器发声ACALL YS500M ;延时AJMP MAINSOUND:MOV P1,#11011011B ;点亮2个警示黄色发光二极管MOV R2,#200 ;响200个周期SND1: CLR P3.7 ;输出低电平T1导通,蜂鸣器响ACALL YS1ms ;延时SETB P3.7 ;输出高电平T1截止,蜂鸣器不响ACALL YS1ms ;延时DJNZ R2,SND1MOV P1,#0FFH ;熄灭黄色警示灯RETYS1ms: ;1ms延时子程序MOV R0,#2YL1: MOV R1,#250 ;改变R0的数值可改变声音频率DJNZ R1,$DJNZ R0,YL1RETYS500M: ;500ms延时子程序MOV R0,#6YL2: MOV R1,#200YL3: MOV R2,#250DJNZ R2,$DJNZ R1,YL3DJNZ R0,YL2RETEND3、“叮咚”电子门铃实验程序:常见的家用电子门铃在有客人来访时候,如果按压门铃按钮时,室内会发出“叮咚”声音,本实验程序模拟电子门铃的发音,当我们按压实验板上的K 1按钮时候,蜂鸣器发出“叮咚”音乐声,是一个比较实用的程序。
单片机课程设计报告蜂鸣器
单片机课程设计报告蜂鸣器河南师范大学新联学院单片机课程设计报告课程单片机原理及接口技术设计题目蜂鸣器演奏歌曲年级专业级计算机科学与技术学号 11学生姓名李指导教师莹6 月 15 日蜂鸣器演奏歌曲实验报告一、要求完成驱动蜂鸣器歌曲演奏的实验二、目的1、学习KEIL软件的使用方法;2、掌握BST-V51单片机学习板设计蜂鸣器音乐的发生;3、掌握设计中各模块的功能,能够填入并演奏曲子;4、学习乐谱的基本知识,掌握其演奏的原理。
三、分析1、基本原理简述声音是经过振动产生的。
单片机对某一引脚以一定的频率循环置1置0,该引脚便产生一定频率的方波,方波经过放大,作用于一定的物理实件(蜂鸣器),就产生了一定频率的声音。
若改变输出方波的频率,产生的声音随之改变。
经过控制输出方波的时间长短,声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样的节拍,单片机就能够产生电子音乐。
音乐的播放选择能够经过按键的输入得以实现。
为简便起见,以一定的频率方波产生的音在其每个周期内高低幅值得时间各占一半。
因此,输出引脚在每个方波周期内要动作两次:一次升高,一次降低。
即输出引脚的频率是原音频率的两倍。
2、单片机产生不同频率脉冲信号的原理(1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就能够在I/O脚上得到此频率的脉冲。
(2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:例如,频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。
计数脉冲值与频率的关系公式如下: N=Fi/2/Fr(N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率)(3)其计数值的求法如下:T=65536-N=65536-Fi/2/Fr计算举例:设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。
51单片机项目教程项目 5 蜂鸣器实验
图5- 9蜂鸣器实物结果
当SM0、SM1=01时,串行口设为方式1的双机串行通信。TXD脚和 RXD脚分别用于发送和接收数据。
5.2技术准备
方式1发送时,数据位由TXD端输出,发送一帧信息为10位:1位起始 位0,8位数据位(先低位)和1位停止位1。当CPU执行一条数据写 SBUF的指令,就启动发送。发送开始时,内部发送控制信号变为有 效,将起始位向TXD脚(P3.0)输出,此后每经过一个TX时钟周期, 便产生一个移位脉冲,并由TXD引脚输出一个数据位。8位数据位全部 发送完毕后,中断标志位TI置1。 方式1接收时(REN = 1),数据从RXD(P3.1)引脚输入。当检测到 起始位的负跳变,则开始接收。当一帧数据接收完毕后,同时满足以 下两个条件,接收才有效。 (1)RI = 0,即上一帧数据接收完成时,RI = 1发出的中断请求已被 响应,SBUF中的数据已被取走,说明“接收SBUF”已空。 (2)SM2 = 0或收到的停止位 = 1(方式1时,停止位已进入RB8), 则将接收到的数据装入SBUF和RB8(装入的是停止位),且中断标 志RI置“1”。
5.2技术准备
5.2.2 了解实验板蜂鸣器电路
图5- 3蜂鸣器电路
5.2技术准备
5.2.3 蜂鸣器驱动电路
蜂鸣器驱动电路如图5-4所示。
图5- 4蜂鸣器驱动电路
5.2技术准备
5.2.4串行口的结构
单片机串口结构如图5-5所示。有两个物理上独立的接收、发送缓冲器 SBUF(属于特殊功能寄存器),可同时发送、接收数据。控制寄存器共 有两个:特殊功能寄存器SCON和PCON。发送和接收引脚分别是TXD (P3.0)和RXD(P3.1)。
SM0 0 0 1 1 SM1 0 1 0 1 工作 方式 0 1 2 3 功能简介 移位寄存器 8位UART 9位UART 9位UART 比特率 OSC/12 可变 OSC/32或 OSC/64 可变
单片机蜂鸣器音乐
单片机蜂鸣器音乐单片机在我们的生活中无处不在,它被广泛地应用在各种电子产品中,为我们的生活带来了便利。
今天,我要向大家介绍的是一种基于单片机的蜂鸣器音乐播放器。
一、硬件部分1、单片机:我们选用的是AT89C51单片机,它具有低功耗、高性能的特点,非常适合用于音乐播放器。
2、蜂鸣器:蜂鸣器是用来发出声音的,我们将其连接在单片机的输出口上。
3、存储芯片:为了能够播放存储在芯片中的音乐,我们需要将音乐以某种格式存储在芯片中。
常用的存储芯片有EEPROM和Flash芯片。
4、按键:为了能够选择播放不同的音乐,我们需要添加一个按键。
二、软件部分1、音乐编码:我们需要将音乐转换成二进制编码,这样才能被单片机读取并播放。
常用的音乐编码格式有MIDI、WAV等。
2、音乐播放:当按下按键时,单片机读取存储芯片中的音乐数据,并通过蜂鸣器播放。
3、音乐选择:通过按键可以选择不同的音乐进行播放。
4、音量控制:我们可以通过编程来控制蜂鸣器的音量大小。
三、调试与测试1、硬件调试:检查连接是否正确,确保没有短路或断路的情况。
2、软件调试:将程序下载到单片机中进行调试,确保能够正常播放音乐。
3、综合测试:将所有硬件和软件都连接起来进行测试,确保能够正常工作。
四、总结与展望通过本次实验,我们成功地制作了一个基于单片机的蜂鸣器音乐播放器。
它具有简单、实用的特点,可以用来播放存储在芯片中的音乐。
未来,我们可以进一步扩展其功能,例如添加更多的按键来选择不同的音乐、添加显示屏来显示歌曲名称等。
我们也可以将其应用到其他领域,例如智能家居、智能安防等。
单片机蜂鸣器唱歌程序在许多应用中,单片机蜂鸣器经常被用来发出声音或音乐。
下面是一个使用单片机蜂鸣器唱歌的程序示例。
我们需要确定单片机和蜂鸣器的连接方式。
通常,单片机具有一个内置的蜂鸣器输出引脚,可以将蜂鸣器连接到这个引脚上。
在以下的示例中,我们将假设单片机具有一个内置蜂鸣器输出引脚,并将其连接到P1.0端口上。
单片机实验报告-蜂鸣器驱动实验5页
单片机实验报告-蜂鸣器驱动实验5页
实验目的:了解蜂鸣器的基本原理和控制方法,熟悉单片机I/O口配置和使用。
实验器材:AT89C52单片机开发板、蜂鸣器、面包板、杜邦线、电源适配器。
实验原理:
蜂鸣器是一种能够发声的电子元件,在很多电子产品中都有广泛应用,比如:电子时钟、电子琴等。
蜂鸣器的基本原理是利用单片机产生一定频率的脉冲信号,通过输出端口将信号送到蜂鸣器上,使之发出相应频率的声音。
AT89C52单片机是一种高性能、低功耗的8位单片机,具有容易编程、易于学习的特点。
单片机通过I/O口输出脉冲信号来控制蜂鸣器的输出,从而实现发声。
实验步骤:
2.在开发板上选择一个I/O口,将其配置为输出端口。
3.编写程序,通过输出口控制蜂鸣器的发声。
4.将程序下载到开发板中,通过电源适配器供电。
5.观察蜂鸣器是否工作正常,听到蜂鸣声音。
实验代码:
实验结果:
经过实验,可以听到蜂鸣器发出的声音,证明程序运行正常,单片机成功驱动蜂鸣器。
单片机驱动蜂鸣器原理
单片机驱动蜂鸣器原理
单片机驱动蜂鸣器的原理是通过控制IO口的高低电平来控制
蜂鸣器的开关状态。
蜂鸣器通常是由一个振荡电路和一个放大电路组成。
当IO口输出高电平时,通过一个NPN型晶体管将电流传导到振荡电路中的电容上,电容开始充电。
当IO口输出低电平时,晶体管截断,电容开始放电。
电容放电时会产生声音,通过放大电路将声音放大,最终输出给蜂鸣器。
通过改变IO口输出高低电平的频率及持续时间,可以控制蜂
鸣器发出不同的声音。
例如,根据蜂鸣器发出声音的频率可以模拟出不同音调的声音。
根据IO口输出高低电平的持续时间
可以控制蜂鸣器发出短暂的提示音或长时间持续的声音。
总之,单片机驱动蜂鸣器的原理是通过IO口输出高低电平来
控制蜂鸣器的开关状态,从而产生不同的声音效果。
51单片机蜂鸣器代码理解
51单片机蜂鸣器代码理解1.引言1.1 概述概述:蜂鸣器是一种广泛应用于电子设备中的声音输出装置,它通过控制某个频率的电信号使蜂鸣器发出特定的声音。
而51单片机,则是一种常见的单片机芯片,具有广泛的应用领域。
本文将主要探讨51单片机蜂鸣器的代码理解和应用。
通过对其基本原理的概述以及相关代码的解析,希望读者能够深入理解51单片机蜂鸣器的工作原理和实现方式。
在第二部分中,我们将介绍单片机蜂鸣器的基本原理。
包括如何通过单片机控制蜂鸣器的电信号频率和时长,从而实现不同的声音效果。
接着,在第二点中,我们将详细解析51单片机蜂鸣器的代码。
通过对代码的分析,读者可以了解到如何使用51单片机的引脚功能和定时器功能来控制蜂鸣器。
最后,在结论部分,我们将对所述内容进行总结,并展望51单片机蜂鸣器在未来的应用前景。
蜂鸣器作为一种重要的声音输出装置,具有广泛的应用前景,可以应用于报警系统、提醒装置等领域。
通过本文的阅读,读者将能够全面了解51单片机蜂鸣器的工作原理和代码实现方式,为相关领域的应用开发提供参考和指导。
让我们开始探索吧!1.2 文章结构文章结构的部分主要介绍了本文的组织和分类方式,以帮助读者更好地理解文章的内容和思路。
本文按照以下结构进行组织:1. 引言部分:介绍了文章的概述、结构和目的。
通过引言部分,读者可以初步了解到本文的内容和主题,并对文章的结构和目的有一个整体的认识。
2. 正文部分:主要分为两个小节,分别是"单片机蜂鸣器的基本原理"和"51单片机蜂鸣器代码解析"。
2.1 单片机蜂鸣器的基本原理:该部分将详细介绍单片机蜂鸣器的基本工作原理,包括蜂鸣器的构成和工作原理,以及单片机如何控制蜂鸣器发出指定的声音。
2.2 51单片机蜂鸣器代码解析:该部分将对51单片机蜂鸣器的代码进行解析,包括如何初始化引脚、设置定时器和中断等相关代码。
通过对代码的逐行解析和说明,读者可以更加深入地理解代码的功能和实现原理。
单片机学习(四)蜂鸣器和独立按键的使用
单⽚机学习(四)蜂鸣器和独⽴按键的使⽤⽬录蜂鸣器两种蜂鸣器的介绍有源蜂鸣器⼀般是输⼊⼀个电流或电压即可直接驱动⼯作,⽽⽆源蜂鸣器则需要输⼊脉冲信号才可以进⾏⼯作。
在51单⽚机开发板上的即为⽆源蜂鸣器。
蜂鸣器相关电路图可以看出,信号是通过P15传递到ULN2003D芯⽚后进⽽传递到芯⽚的OUT5(即BEEP端⼝)再传递到蜂鸣器中的,其中ULN2003D芯⽚起着电流放⼤的作⽤。
控制代码⾸先我们先获得控制蜂鸣器的引脚,从电路图可以看出是P15,所以:sbit BEEP= P1^5;因为这是⽆源蜂鸣器,所以我们需要给它提供脉冲信号输⼊才能使它⼯作。
⽽当BEEP为0时有电流,BEEP为1时⽆电流,所以我们需要循环改变BEEP的值,主函数代码如下所⽰:int main() {while (1){BEEP = ~BEEP;deley(10);}}如果我们希望改变蜂鸣器的⾳调,只需要改变脉冲信号的频率即可,也就是while循环中deley()的参数。
我们也可以不断改变deley()中填⼊的参数来使蜂鸣器发出奇怪的声⾳ :int main() {u16 time = 10;u8 cnts = 50;u8 i;for(time=10;time<200;time++) {for(i=0;i<cnts;i++) {BEEP = ~BEEP;deley(time);}}}独⽴按键独⽴按键电路图可以看到,这4个独⽴按键都是⼀端和单⽚机的引脚(P3[0..3])相连,⽽另⼀端直接接地的。
这些按键的效果是,当按键没有按下时,它们对应的端⼝的输出是⾼电平,⽽当按键按下之后,这些端⼝的输出则变为低电平了。
因此我们可以使⽤轮询的⽅式查看这些端⼝的电平情况来检测按钮是否被按下,如果按下,则我们可以进⾏计数等控制其他元件的操作。
按键控制⼀个LED的点亮和熄灭我们希望当点击按键时,第⼀个LED点亮,⽽在此单击时则熄灭。
按照之前的思路,我们很容易就能写出对应的控制代码:sbit OneLED = P2^0; // 使⽤OneLED来控制对应的引脚的输出sbit k1 = P3^1;void keypros() {if (k1 == 0) {deley(1000); // 消抖if (k1 == 0) {OneLED = ~OneLED;}while (!k1);}}int main() {while (1) {keypros();}}重要的是keypros()函数中的内容,当我们点击第⼀个按钮时,k1的值会变为0,因此我们进⾏轮询的时候就会进⼊到keypros()函数的第⼀个if中。
单片机按键控制蜂鸣器发声程序
{
TMOD = 0x01;
IE= 0x82;
TH0 = 0xDC;
TL0 = 0x00;
}
void Time0_Int() interrupt 1
{
TH0 = 0xDC;
TL0 = 0x00;
Count++;
}
void delay (uint8 k)//按键防抖延时
{
return;
}
else
{
Temp2 = SONG[Addr++];
TR0 = 1;
while(1)
{
Speak = ~Speak;
Delay_xMs(Temp1);
if(Temp2 == Count)
{CΒιβλιοθήκη unt = 0;break;
}
}
}
}
}
void keyscan (void)//按键切换声音函数
单片机按键控制蜂鸣器发声程序单片机蜂鸣器音乐程序单片机蜂鸣器程序单片机蜂鸣器报警程序蜂鸣器发声程序单片机按键程序单片机独立按键程序单片机按键扫描程序单片机按键消抖程序单片机按键中断程序
#include<reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
{
uint8 Temp1,Temp2;
uint8 Addr;
Count = 0;//中断计数器清0
Addr = i *3;
while(1)
{
Temp1 = SONG[Addr++];
单片机控制蜂鸣器
单片机控制蜂鸣器单片机这玩意儿,对于很多小伙伴来说,可能听起来有点陌生,还有点高大上。
但其实啊,它在我们生活中可是有着不少的应用,就比如说控制蜂鸣器。
我记得有一次,我带着一群小朋友做一个简单的单片机实验,就是让单片机来控制蜂鸣器发声。
小朋友们那好奇的眼神,充满了期待,就像等着魔术师变出神奇的东西一样。
我们先准备好材料,单片机板子、导线、蜂鸣器,还有一些小小的电阻啥的。
小朋友们围在桌子旁,眼睛一眨不眨地盯着。
我开始给他们讲解单片机是怎么工作的,就像一个小小的指挥官,能给各种零件下达命令。
而蜂鸣器呢,就是那个听从命令然后发声的“小兵”。
然后,我们就开始动手连接电路啦。
小朋友们小心翼翼地拿着导线,生怕一不小心就弄断了。
有个小朋友还紧张得手都有点抖,那模样真是太可爱了。
连接好电路后,就是写程序让单片机控制蜂鸣器啦。
这程序就像是给单片机下达的“作战指令”。
当我把写好的程序下载到单片机里,按下启动按钮的那一刻,“嘀嘀嘀”,蜂鸣器响起来啦!小朋友们兴奋得欢呼起来,那声音比蜂鸣器还响呢。
这就是单片机控制蜂鸣器的魅力所在,能让我们感受到科技的神奇和乐趣。
咱们说回单片机控制蜂鸣器这个事儿。
单片机到底是怎么控制蜂鸣器的呢?其实啊,原理并不复杂。
单片机通过输出不同的电信号,来控制蜂鸣器的通断,从而让它发出不同频率和时长的声音。
比如说,我们可以让单片机输出一个高电平,蜂鸣器就接通开始发声;输出一个低电平,蜂鸣器就断开停止发声。
通过快速地切换高电平和低电平,就能让蜂鸣器发出连续的声音。
如果改变高电平和低电平的持续时间,就能改变声音的频率,听起来就会有高音和低音的区别。
在实际应用中,单片机控制蜂鸣器的场景可多了去了。
像在一些报警系统里,当有异常情况发生时,单片机就会控制蜂鸣器发出急促的声音,提醒大家注意。
还有在电子玩具里,按下不同的按钮,单片机就能让蜂鸣器发出不同的声音,增加玩具的趣味性。
要实现单片机控制蜂鸣器,我们得先了解一些基本的电路知识。
单片机驱动蜂鸣器原理与设计
单片机驱动蜂鸣器原理与设计蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计机、打印机、复印机、报警器、电话机等电子产品中作发声器件。
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
下面是电磁式蜂鸣器的外形图片及结构图。
电磁式蜂鸣器实物图:电磁式蜂鸣器结构示意图:图 1 图 2电磁式蜂鸣器内部构成:1. 防水贴纸2. 线轴3. 线圈4. 磁铁5. 底座6. 引脚7. 外壳8. 铁芯9. 封胶10. 小铁片11. 振动膜12. 电路板一、电磁式蜂鸣器驱动原理蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。
S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3:S51增强型单片机实验板蜂鸣器驱动原理图:图3如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。
因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。
程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。
(2)AT89C52有源蜂鸣器控制
/*名 称:
AT89S51 通过 CD4094 驱动 LED
*/
/*功 能:
用 CD4094 扩充 I/O 口,每片 4094 可以扩充 8 个 I/O 口 */
/*芯片类型:
AT89S51
*/
/*晶振频率:
11.0592MHZ
*/
/*作 者:
救火车
*/
/*版 权:
7
//unsigned char bdata p6,p7;//定义扩展 P6,P7 口
void update4094() {
unsigned char i,j,tt; STR4094=0; for (j=HOWMANY4094;j>0;j--) {
tt=*(&P4+j-1); for(i=0;i<8;i++) {
D4094=(tt&0x80)>0;//数据脚 CLK4094=0; CLK4094=1; tt<<=1; } } STR4094=1; }
8
key_times++;
if(3==key_times)
{
key_times=0;
delay_ms(1000);
sound_3(); //模拟声 3 报警音
}
} //if((last_key==1)&&(this_key==0))
if((0==last_key)&&(0==this_key)) {
k++; if(60==k) {
/*名 称:
蜂鸣器模拟报警音
*/
/*功 能:
每按一次按键,指示灯闪烁 8 次
AVR教程第十一课蜂鸣器
动手学 AVR 单片机十一、让蜂鸣器发 出声音
CEPARK-AVR 单片机教程. 技术专家 tiankai 原创 专家技术博客地址: /space.php?uid=8160 有技术类问题欢迎去给技术专家留言. 推荐论坛: 收集人:wang1jin
{
unsigned char i;
推荐网站:
推荐论坛:
PORTE |= (1 << PE5);
//
DDRE |= (1 << PE5);
//
Delayms(500);
PORTE &= ~(1 << PE5);
//
Delayms(500);
最下面给大家介绍几个下载资料的地方: 51 学习专区: / USB 学习专区: / CAN 学习专区: AVR 学习专区: / FPGA 学习专区: / STM32 学习专区: / ARM 学习专区: / DSP 学习专区: / PIC 学习专区: / DIY 电子制作专区: / GPS 学习专区:
下图是一种比较安全的蜂鸣器驱动电路
推荐网站:
推荐论坛:
图中在蜂鸣器两端并联了一个二极管,这个二极管称为续流二极管,蜂鸣器本质 上是一个感性元件,其电流不能瞬变,因此必须有一个续流二极管提供续流。否则,在蜂鸣 器两端会产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其它部分。
#include <util/delay.h>
//GCC 中的延时函数头文件
//函数声明
void Delayus(unsigned int lus);
//us 延时函数
void Delayms(unsigned int lms);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
技术支持:/bbs
音符演奏长度控制实现
在单片机上控制一个音符唱多长可采用循环延 时的方法来实现。首先,我们确定一个基本时长 的延时程序,为了使这个时间更精确,使用定时 器来实现,设定定时器为10ms中断一次,那么, 我们需要多少延长时间就延时多少次中断。比如 说十六分音符的时长为100ms,八分音符的时长 就为200ms,那么,对于一个音符,如果它为十 六分音符,则只需产生10次中断,延时时间就刚 好是100ms,如果它为八分音符,则只需产生20 次中断,依次类推。
主 讲:wang1jin
技术支持:/bbs
蜂鸣器的工作原理
蜂鸣器发声原理是电流通过电磁线圈, 使电磁线圈产生磁场来驱动振动膜发声 的,因此需要一定的电流才能驱动它,单 片机IO引脚输出的电流较小,单片机输出 的TTL电平基本上驱动不了蜂鸣器,因此需 要增加一个电流放大的电路。实验板通过 一个三极管Q1来放大驱动蜂鸣器。
主 讲:wang1jin
技术支持:/bbs
蜂鸣器的工作原理
蜂鸣器的正极接到Q1的集电极C极上面,蜂鸣器的负 极地,三极管发射极E极接电源VCC,基级B经过限流电 阻R33后由单片机的P1.7引脚控制,当P1.7输出高电平 时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声; 当P17输出低电平时,三极管导通,这样蜂鸣器的电流形 成回路,发出声音。 因此,我们可以通过程序控制P1.7脚的电平来使蜂鸣 器发出声音和关闭。程序中改变单片机P1.7引脚输出波形 的频率,就可以调整控制蜂鸣器音调,产生各种不同音 色、音调的声音。另外,改变P1.7输出电平的高低电平占 空比,则可以控制蜂鸣器的声音大小。
主 讲:wang1jin
技术支持:/bbs
音乐基础知识
如果驱动无源蜂鸣器发出频率、持续时间不同的声 音,就可以达到单片机控制演奏歌曲的目的。一般说来, 单片机演奏音乐基本都是单音频率,因为单片机的IO端 口,只能输出高电平或低电平,相当于方波信号,它虽然 谐波很丰富,但不包含足够幅度的谐波频率,也就是说不 能象电子琴那样能奏出多种音色的声音,这也就是为什么 单片机演奏歌曲听起来声音单调的原因。 因此单片机用于演奏歌曲,只需搞清楚两个概念即 可,也就是“音调”和“节拍”。音调表示一个音符该唱的频 率,节拍表示一个音符该唱多长的时间。
主 讲:wang1jin
技术支持:/bbs例练习1
实例练习1:4*4电子琴程序的实现。利用 WJ-V4.0开发板按下相应键盘时,蜂鸣器发 出相应频率的声音。松开按键声音即停 止。实现简单的电子琴功能。
主 讲:wang1jin
技术支持:/bbs
单片机如何输出频率
为了让单片机发出不同频率的声音,我 们采用定时中断来计算延时时间,我们只需 将定时器预置不同的定时值就可实现不同时 间的定时。那么怎样确定一个频率所对应的 定时器的定时值呢?以标准音高A为例: A的频率f=440Hz,其对应的周期为: T=1/f=1/440=2272us
主 讲:wang1jin
技术支持:/bbs
有源和无源蜂鸣器的区别
实验板中,单片机P17脚输出接Q1基极,通过 控制Q1导通或截止来控制蜂鸣器上是否有电流,从 而发出声音,要用单片机控制蜂鸣器发出不同频率的 声音,最好采用无源的蜂鸣器,如果用有源蜂鸣 器,可以会因为二种不同频率声音(有源蜂鸣器本 身固有发音频率与单片机驱动频率)互相叠加,造 成效果混乱、发音不清。 不过为了照顾初学者,我们的开发板上的是有源 的蜂鸣器.(因为有源的驱动很简单,无源的则很复杂.)
主 讲:wang1jin
技术支持:/bbs
连音,顿音,符点
音乐中较为常见的还有连音、顿音、符 点等,连音就是乐谱上用连线连起来的 音,它是用连线来标记的,表示连线内不 同音高的音要奏的连贯,即中间不需要停 顿。顿音是用三角符标记在音符的上面, 在演奏或表演上要表现得短促而又轻巧有 弹性。符点就是记在音符右边的小圆点, 表示增加前面音符时值的一半,带符点的 音符叫符点音符。
主 讲:wang1jin
技术支持:/bbs
音乐中的音调
在音乐中所谓“音调”,其实就是我们常 说的“音高”,实质就是频率不同的声音。音 乐中以ABCDEFG来表示音高,A音定为标 准音高,其频率f=440Hz。当两个声音信号 的频率相差一倍时,也即f2=2f1时,则称f2 比f1高一个倍频程, 在音乐中1(do)与,2 (来)与……正好相差一个倍频程,在音 乐学中称它相差一个八度音。在一个八度 音内,有12个半音。
主 讲:wang1jin
技术支持:/bbs
蜂鸣器的分类
蜂鸣器按其是否带有信号源又分为有源和 无源两种类型。有源蜂鸣器只需要在其供电 端加上额定直流电压,其内部的震荡器就可 以产生固定频率的信号,驱动蜂鸣器发出声 音。无源蜂鸣器可以理解成与喇叭一样,需 要在其供电端上加上高低不断变化的电信号 才可以驱动发出声音。
主 讲:wang1jin
技术支持:/bbs
无源蜂鸣器的驱动方法
对于无源的蜂鸣器,驱动其发出声音就较为复 杂,因为它本身不带信号源,因此,只是通上电 源,是不能发出声音的,必须要不断的重复“通电 -断电”,才能使其发出声音,我们可以通过编写 程序,控制P17口不断的置为高电平—低电平— 高电平…,这样蜂鸣器就可以不断的通、断电, 从而发出声音。而通电、断电的时间不同,相当 于振荡周期的不同,因此又可以得到不同频率的 声音。
主 讲:wang1jin
技术支持:/bbs
音乐基础
所谓1=A,就是说,这首歌曲的“导”要 唱得同A一样高,人们也把这首歌曲叫做A 调歌曲,或叫“唱A调”。1=C,就是说,这 首歌曲的“导”要唱得同C一样高,或者说“这 歌曲唱C调”。同样是“导”,不同的调唱起来 的高低是不一样的。
主 讲:wang1jin
技术支持:/bbs
音乐基础
其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。 1 、2的时长为四分音符的一半,即为八分音符长,3、4的 时长为八分音符的一半,即为十六分音符长,5的时长为四 分音符的一半,即为八分音符长,6的时长为四分音符长。 那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说 明,一拍的时长大约为400~500ms 。我们以一拍的时长为 400ms为例,则当以四分音符为节拍时,四分音符的时长就 为400ms,八分音符的时长就为200ms,十六分音符的时长 就为100ms。
主 讲:wang1jin
技术支持:/bbs
半音全音指的是音高关系丆把一个八度乮就像简谱中1到上面加一点的1•j 平均分成十二分丆每一分就是一个半音丆就像钢琴上的相邻白键与黑键丆 在钢琴中EF•CBC之间就是半音丆两个半音就是一个全音丆
音乐中的音调
以1—i八音区为例,12个半音是: 1—#1、#1—2、2—#2、#2—3、3— 4、4—#4,#4—5、5一#5、#5—6、 6—#6、#6—7、7—i。这12个音阶的分 度基本上是以对数关系来划分的。如果我 们只要知道了这十二个音符的音高,也就 是其基本音调的频率,我们就可根据倍频 程的关系得到其他音符基本音调的频率。
主 讲:wang1jin
技术支持:/bbs
音乐基础
音调的确定,我们在前面已经详细讲解过,这 里就不再重复。对于一个音符,确定了它的发音 频率后,就要确定这个音符发音要发多长时间, 也就是节拍,在一张乐谱中,我们经常会看到这 样的表达式,如1=C 、1=G…… 等等,这里 1=C、1=G表示乐谱的曲调,和我们前面所谈的 音调有很大的关联,、就是用来表示节拍的。以 为例加以说明,它表示乐谱中以四分音符为节 拍,每一小结有三拍。
主 讲:wang1jin
技术支持:/bbs
蜂鸣器的种类
蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣 器两种类型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振 动膜片及外壳等组成。接通电源后,振荡器产生的音频信号 电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁 线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹 配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电 路构成,当接通电源后(1.5~15V直流工作电压),多谐 振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动 压电蜂鸣片发声。
主 讲:wang1jin
技术支持:/bbs
有源蜂鸣器的驱动方法
对于有源和无源的驱动方式,略有不 同,我们先讲解一下有源蜂鸣器的驱动方 法。有源蜂鸣器因为内含有信号源,因此 只要加上额定的工作电压就可以发出固定 频率的声音,因此,我们在实验板中,只 要将P17端口置成低电平,就可以使Q1导 通,蜂鸣器得电工作。
主 讲:wang1jin
技术支持:/bbs
单片机如何输出频率
单片机控制蜂鸣器的波形图,通 过对端口P17循环的置位、清零来达到输出 固定频率波形,相对于A音频率440Hz图 T=2272us,那么 t=T/2=2272/2=1136us 所以,我们只要在程序中将P17置为高电 平,延时1136us,再置为低电平,延时 1136us,如此循环,就可以得到440Hz频 率的声音。 这个延时,可以用定时器中断来做,假设单片机晶振频率为12MHz,以 定时器工作方式1来做定时中断,可以得到定时器计数器初值为 TH = (65536 – 1136 ) /256 =0xFB TL = (65536 – 1136 )%256 =0x90
主 讲:wang1jin
技术支持:/bbs
音符频率及定时器初值对照表
主 讲:wang1jin
技术支持:/bbs
单片机频率音频计算方法 从上图中可以看出,高、中、低音的音 符频率存在倍频关系,比如1其低音频率是 262Hz,中音频率是523Hz,中音是低的2 倍频率,高音频率是1045Hz,高音又是中 音的2倍频率,所以,我们可以根据其中的 12个音符频率来推算出其它的音符频率。 这种可推算的频率关系有利于我们在程序 采用运算方法来确定音符的频率。