单片机学习之蜂鸣器驱动

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
蜂鸣器的种类
蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣 器两种类型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振 动膜片及外壳等组成。接通电源后,振荡器产生的音频信号 电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁 线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹 配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电 路构成,当接通电源后(1.5~15V直流工作电压),多谐 振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动 压电蜂鸣片发声。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
音乐基础
音调的确定,我们在前面已经详细讲解过,这 里就不再重复。对于一个音符,确定了它的发音 频率后,就要确定这个音符发音要发多长时间, 也就是节拍,在一张乐谱中,我们经常会看到这 样的表达式,如1=C 、1=G…… 等等,这里 1=C、1=G表示乐谱的曲调,和我们前面所谈的 音调有很大的关联,、就是用来表示节拍的。以 为例加以说明,它表示乐谱中以四分音符为节 拍,每一小结有三拍。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/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
技术支持:http://www.wang1jin.com/bbs
音乐基础知识
如果驱动无源蜂鸣器发出频率、持续时间不同的声 音,就可以达到单片机控制演奏歌曲的目的。一般说来, 单片机演奏音乐基本都是单音频率,因为单片机的IO端 口,只能输出高电平或低电平,相当于方波信号,它虽然 谐波很丰富,但不包含足够幅度的谐波频率,也就是说不 能象电子琴那样能奏出多种音色的声音,这也就是为什么 单片机演奏歌曲听起来声音单调的原因。 因此单片机用于演奏歌曲,只需搞清楚两个概念即 可,也就是“音调”和“节拍”。音调表示一个音符该唱的频 率,节拍表示一个音符该唱多长的时间。
Wang1jin 带您从零学单片机
第 6 章:蜂鸣器部分
配套开发板:WJ-V4.0 AVR+51开发板
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
本章目录:
Ø 蜂鸣器简介 Ø 蜂鸣器硬件结构与原理 Ø 蜂鸣器驱动方法 Ø 单片机如何输出一定频率 Ø 蜂鸣器唱歌原理 Ø 蜂鸣器小电子琴设计 Ø 蜂鸣器唱歌程序设计 Ø 课后作业
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
音乐基础知识
A、B、C、D、E、F、G。经过声学家的研究,全世界都用这些字母来表 示固定的音高。比如,A这个音,标准的音高为每秒钟振动440周。 除了这些标准间外,还有5个半音,#1B2-#6B7。 升C调:1=#C,也就是降D调:1=BD;277(频率) 升D调:1=#D,也就是降E调:1=BE;311 升F调:1=#F,也就是降G调:1=BG;369 升G调:1=#G,也就是降A调:1=BA;415 升A调:1=#A,也就是降B调:1=BB。466,
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
连音,顿音,符点
音乐中较为常见的还有连音、顿音、符 点等,连音就是乐谱上用连线连起来的 音,它是用连线来标记的,表示连线内不 同音高的音要奏的连贯,即中间不需要停 顿。顿音是用三角符标记在音符的上面, 在演奏或表演上要表现得短促而又轻巧有 弹性。符点就是记在音符右边的小圆点, 表示增加前面音符时值的一半,带符点的 音符叫符点音符。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
音符演奏长度控制实现
在单片机上控制一个音符唱多长可采用循环延 时的方法来实现。首先,我们确定一个基本时长 的延时程序,为了使这个时间更精确,使用定时 器来实现,设定定时器为10ms中断一次,那么, 我们需要多少延长时间就延时多少次中断。比如 说十六分音符的时长为100ms,八分音符的时长 就为200ms,那么,对于一个音符,如果它为十 六分音符,则只需产生10次中断,延时时间就刚 好是100ms,如果它为八分音符,则只需产生20 次中断,依次类推。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
蜂鸣器的分类
蜂鸣器按其是否带有信号源又分为有源和 无源两种类型。有源蜂鸣器只需要在其供电 端加上额定直流电压,其内部的震荡器就可 以产生固定频率的信号,驱动蜂鸣器发出声 音。无源蜂鸣器可以理解成与喇叭一样,需 要在其供电端上加上高低不断变化的电信号 才可以驱动发出声音。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
音乐基础
其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。 1 、2的时长为四分音符的一半,即为八分音符长,3、4的 时长为八分音符的一半,即为十六分音符长,5的时长为四 分音符的一半,即为八分音符长,6的时长为四分音符长。 那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说 明,一拍的时长大约为400~500ms 。我们以一拍的时长为 400ms为例,则当以四分音符为节拍时,四分音符的时长就 为400ms,八分音符的时长就为200ms,十六分音符的时长 就为100ms。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
音符频率及定时器初值对照表
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
单片机频率音频计算方法 从上图中可以看出,高、中、低音的音 符频率存在倍频关系,比如1其低音频率是 262Hz,中音频率是523Hz,中音是低的2 倍频率,高音频率是1045Hz,高音又是中 音的2倍频率,所以,我们可以根据其中的 12个音符频率来推算出其它的音符频率。 这种可推算的频率关系有利于我们在程序 采用运算方法来确定音符的频率。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
音乐基础
所谓1=A,就是说,这首歌曲的“导”要 唱得同A一样高,人们也把这首歌曲叫做A 调歌曲,或叫“唱A调”。1=C,就是说,这 首歌曲的“导”要唱得同C一样高,或者说“这 歌曲唱C调”。同样是“导”,不同的调唱起来 的高低是不一样的。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
单片机如何输出频率
为了让单片机发出不同频率的声音,我 们采用定时中断来计算延时时间,我们只需 将定时器预置不同的定时值就可实现不同时 间的定时。那么怎样确定一个频率所对应的 定时器的定时值呢?以标准音高A为例: A的频率f=440Hz,其对应的周期为: T=1/f=1/440=2272us
主 讲:wan来自百度文库1jin
技术支持:http://www.wang1jin.com/bbs
有源蜂鸣器的驱动方法
对于有源和无源的驱动方式,略有不 同,我们先讲解一下有源蜂鸣器的驱动方 法。有源蜂鸣器因为内含有信号源,因此 只要加上额定的工作电压就可以发出固定 频率的声音,因此,我们在实验板中,只 要将P17端口置成低电平,就可以使Q1导 通,蜂鸣器得电工作。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
无源蜂鸣器的驱动方法
对于无源的蜂鸣器,驱动其发出声音就较为复 杂,因为它本身不带信号源,因此,只是通上电 源,是不能发出声音的,必须要不断的重复“通电 -断电”,才能使其发出声音,我们可以通过编写 程序,控制P17口不断的置为高电平—低电平— 高电平…,这样蜂鸣器就可以不断的通、断电, 从而发出声音。而通电、断电的时间不同,相当 于振荡周期的不同,因此又可以得到不同频率的 声音。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
音乐中的音调
在音乐中所谓“音调”,其实就是我们常 说的“音高”,实质就是频率不同的声音。音 乐中以ABCDEFG来表示音高,A音定为标 准音高,其频率f=440Hz。当两个声音信号 的频率相差一倍时,也即f2=2f1时,则称f2 比f1高一个倍频程, 在音乐中1(do)与,2 (来)与……正好相差一个倍频程,在音 乐学中称它相差一个八度音。在一个八度 音内,有12个半音。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
有源和无源蜂鸣器的区别
实验板中,单片机P17脚输出接Q1基极,通过 控制Q1导通或截止来控制蜂鸣器上是否有电流,从 而发出声音,要用单片机控制蜂鸣器发出不同频率的 声音,最好采用无源的蜂鸣器,如果用有源蜂鸣 器,可以会因为二种不同频率声音(有源蜂鸣器本 身固有发音频率与单片机驱动频率)互相叠加,造 成效果混乱、发音不清。 不过为了照顾初学者,我们的开发板上的是有源 的蜂鸣器.(因为有源的驱动很简单,无源的则很复杂.)
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
蜂鸣器的工作原理
蜂鸣器的正极接到Q1的集电极C极上面,蜂鸣器的负 极地,三极管发射极E极接电源VCC,基级B经过限流电 阻R33后由单片机的P1.7引脚控制,当P1.7输出高电平 时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声; 当P17输出低电平时,三极管导通,这样蜂鸣器的电流形 成回路,发出声音。 因此,我们可以通过程序控制P1.7脚的电平来使蜂鸣 器发出声音和关闭。程序中改变单片机P1.7引脚输出波形 的频率,就可以调整控制蜂鸣器音调,产生各种不同音 色、音调的声音。另外,改变P1.7输出电平的高低电平占 空比,则可以控制蜂鸣器的声音大小。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
蜂鸣器的工作原理
蜂鸣器发声原理是电流通过电磁线圈, 使电磁线圈产生磁场来驱动振动膜发声 的,因此需要一定的电流才能驱动它,单 片机IO引脚输出的电流较小,单片机输出 的TTL电平基本上驱动不了蜂鸣器,因此需 要增加一个电流放大的电路。实验板通过 一个三极管Q1来放大驱动蜂鸣器。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
主 讲:wang1jin
技术支持:http://www.wang1jin.com/bbs
实例练习1
实例练习1:4*4电子琴程序的实现。利用 WJ-V4.0开发板按下相应键盘时,蜂鸣器发 出相应频率的声音。松开按键声音即停 止。实现简单的电子琴功能。
主 讲:wang1jin
技术支持:http://www.wang1jin.com/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个音阶的分 度基本上是以对数关系来划分的。如果我 们只要知道了这十二个音符的音高,也就 是其基本音调的频率,我们就可根据倍频 程的关系得到其他音符基本音调的频率。
相关文档
最新文档