单片机中蜂鸣器驱动模块_第1页
单片机中蜂鸣器驱动模块_第2页
单片机中蜂鸣器驱动模块_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机屮蜂鸣器驱动模块在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣 器來做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。1 驱动方式由于自激蜂鸣器(有源蜂鸣器)是直流电压驱动的,不需要利用交流信号进 行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂 鸣器发出声音,很简单,这里就不对自激蜂鸣器进行說明了。这里只对必 须用l/2duty的方波信号进行驱动的他激蜂鸣器进行说明。单片机驱动他激蜂鸣器(无源蜂鸣器)的方式有兩种:一种是PWM输出口 直接驱动,另一种是利用I/O定时翻转电平产生驱动波形对蜂鸣器进行驱 动。PWM输出口直接驱动是利用PWM输出口

2、本身可以输出一定的方波來直接驱动蜂鸣器。在单片机的软体设置中有几个系统寄存器是用來设置PWM 口的输出的,可以设置占空比、周期等等,通过设置这些寄存器产 生符合蜂鸣器要求的频率的 波形之后,只要打开PWM输出,PWM输岀口就能输出该频率的方波,这 个时候利用这个波形就可以驱动蜂鸣器了。比如频率为2000Hz的蜂鸣器 的驱动,可以知道周期为500ps,这样只需要把PWM的周期设置为500ps, 占空比电平设置为 250ps,就能产生一个频率为2000Hz的方波,通过这个方波再利用三极 管就可以去驅動這個蜂鳴器了。而利用I/O定时翻转电平來产生驱动波形 的方式会比较麻烦一点,必须利用计时器來做定时

3、,通过定时翻转电平产 生符合蜂鸣器要求的频率的波形,这个波形就可以用來驱动蜂鸣器了。比 如为2500Hz的蜂鸣器的驱动,可以知道周期为400ps,这样只需要驱动 蜂鸣器的I/O 口每200ps翻转一次电平就可以产生一个频率为2500Hz, 占空比为l/2duty的方波,再通过三极管放大就可以驱动这个蜂鸣器了。2 蜂鸣器驱动电路由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O 口是无法直接驱 动的,所以要利用放大电路來驱动,一般使用三极管來放大电流就可以了。3 蜂鸣器驱动设计由于这里要介绍兩种驱动方式的方法,所以在设计模组系统中将兩种驱动 方式做到一块,即程式里边不仅介绍了 PWM输出口驱动

4、蜂鸣器的方法, 还要介绍I/O 口驱动蜂鸣器的方法。所以,我们将设计如下的一个系统來 說明单片机对蜂鸣器的驱动:系统有兩个他激蜂鸣器,频率都为2000H乙一个由I/O 口 进行控制,另一个由PWM输出口进行控制;系统还有兩个按键,一个按 键为PORT按键,I/O 口控制的蜂鸣器不鸣叫时按一次按键I/O 口控制的 蜂鸣器鸣叫,再按一次停止鸣叫,另一个按键为PWM按键,PWM 口控制的蜂鸣器不鸣叫时按一次 按键PWM输出口控制的蜂鸣器鸣叫,再按一次停止鸣叫。PORTC.3/TO作为I/O 口通过三极管Q2來驱动蜂鸣器LSI,而PORTC.2/PWMO 则作为PWM输出口通过三极管Q1來驱动蜂鸣器L

5、S2o另外在PORTA.3和PORTA.2 分别接了兩个按键,一个是PWM按键,是用來控制PWM输出口驱动蜂鸣 器使用的;另一个是PORT按键,是用來控制I/O 口驱动蜂鸣器使用的。連接按键的I/O 口开内部上拉电阻。软体设计方法先分析一下蜂鸣器。所使用的蜂鸣器的工作频率是2000H乙也就是說蜂 鸣器的驱动信号波形周期是500ms,由于是1 /2duty的信号,所以一个周 期内的高电平和低电平的时间宽度都为250pso软体设计上,我们将根据 兩种驱动方式來进行說明。a) PWM输岀口直接驱动蜂鸣器方式由于PWM只控制固定频率的蜂鸣器,所以可以在程式的系统初始化时就 对PWM的输出波形进行设置。

6、首先根据SH69P43的PWM输出的周期宽 度是10位元资料來选择PWM时钟。系统使用4MHz的晶振作为主振荡器, 一个tosc的时间就是O.25|JS,若是将PWM的时钟设置为tosc的话,则 蜂鸣器要求的波形周期500ps的计數值为500Ms/0.25ps= (2000) 10=(7D0) 16, 7D0H为11位元的资料,而SH69P43的PWM输出周期宽度只是10位元资料,所以选择PWM的时钟为tosc是不能实现蜂鸣器所 要的驱动波形的。这里我们将PWM的时钟设置为4tosc,这样一个PWM的时钟周期就是1|JS 了,由此可以算出500ps对应的计數值为500ps/lps= (500)

7、 10= (1F4) 16,即分在周期寄存器的高2位、中4位和低4位三个寄存器中填入1、F和4,就完成了对输出周期的设置。再來设置占空 比寄存器,在PWM输出中占空比的实现是通过设定一个周期内电平的宽度來实现的。当输岀模式选择为普通模式时,占空比寄存器是用來设高电平的宽度。250|js的宽度计數值为250ps/lps= (250) 10= (0FA) 16。只需要在占空比寄存器的高2位、中4位和低4位中分别填入0、F和A就可以完成对占空比的设f了,置占空比为l/2dutyo以后只需要打开PWM输出,PWM输出口自然就能 输出频率为2000Hz、占空比为l/2duty的方波。b) I/O 口定时翻转电平驱动蜂鸣器方式使用I/O 口定时翻转电平驱动蜂鸣器方式的设置比较简单,只需要对波形 分析一下。由于驱动的信号刚好为周期500ps,占空比为l/2duty的方波, 只需要每250ps进行一次电平翻转,就可以得到驱动蜂鸣器的方波信号。在程式上,可以使用TIMER0來定时,将TIMER0的预分频设置为/I,选 择TIMER0的始终为系统时钟(主振荡器时钟/4),在TIMER0的载入/计數 寄存器的高4位和低4位分别写入00H和06H,就能将TIMER0的中断 设置为25

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论