第八章-:蜂鸣器驱动

由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音,很简单,这里就不对自激蜂鸣器进行说明了。这里只对必须用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 的方波,再通过三极管放大就可以驱动这个蜂鸣器了。

由于这里要介绍两种驱动方式的方法,所以在设计模块系统中将两种驱动方式做到一块,即程序里边不仅介绍了PWM 输出口驱动蜂鸣器的方法,还要介绍I/O 口驱动蜂鸣器的方法。所以,我们将设计如下的一个系统来说明单片机对蜂鸣器的驱动:系统有两个他激蜂鸣器,频率都为2000Hz,一个由I/O 口进行控制,另一个由PWM 输出口进行控制;系统还有两个按键,一个按键为PORT 按键,I/O 口控制的蜂鸣器不鸣叫时按一次按键I/O 口控制的蜂鸣器鸣叫,再按一次停止鸣叫,另一个按键为PWM 按键,PWM 口控制的蜂鸣器不鸣叫时按一次按键PWM输出口控制的蜂鸣器鸣叫,再按一次停止鸣叫。

介绍完毕

时间: 2024-10-01 04:52:00

第八章-:蜂鸣器驱动的相关文章

第八章 蜂鸣器驱动

(1)代码重用 代码重用分为静态和动态两种.静态方式为编译由多个文件组成的 Linux 驱动,这种方式是代码级的重用,也就是将需要重用的代码和使用这些代码的使用者放在一起进行编译,最终生成一个可执行文件或程序 库 (.ko. .so 等).另外一种代码共享的方式:模块依赖,也称为导出符号.如果只能用一句话解释 如何利用导出符号实现代码共享,这句话就是“在一个驱动模块里使用另一个驱动模块里的被导出 的符号(常章.变量.函数等〉”,在 Linux 驱动中可以使用如下两个宏导出函数: EXPORT S

第八章让开发版发出声音:蜂鸣器驱动

第八章本章主要介绍蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动(可以打开和关闭蜂鸣器),以及把Linux驱动分成多个文件的方式. 蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声. PWM驱动不同于LED驱动,将由多个文件组成,这也是大多数Linux驱动的标准实现形式.也就是说一个复杂的驱动不太可能将所有的代码都放在一个文件中,最好将相关的代码放在相应的文件中,在编译Linux驱动的时候讲这些文件进行联合编译.这些文件的数据结构.函数的代码也可以被多个不同的驱

第八章 让开发板发出声音:蜂鸣器驱动

这一章的主要内容是让开发板发出声音——蜂鸣器驱动,在Linux驱动开发中重点也学习了这一部分内容,同时最后我们小组的考核内容是通过中断控制蜂鸣器发七个音符的音. 这一部分中,要中断控制蜂鸣器,在中断和蜂鸣器代码的基础上进行增加.中断与蜂鸣器的代码不变,在中断的测试代码中,首先要定义七个音符,之后将开发板上的七个键与七个音符相连接,再将七个音符的转换与蜂鸣器相连接,来达到所需的效果. 核心代码: int main() { int fd,fd1; int div; int keyval; fd1 =

第八章 让开发板发出声音:蜂鸣器驱动 心得笔记

蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止.蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音.本节介绍了蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,可以打 开和关闭.PWM驱动的实现方式不同于LED驱动,PWM驱动由多个文件组成,这也是大多数Linux驱动的标准实现方式. Linux驱动的代码重用有很多种方法.分为静态重用和动态重用,静态重用是代码级的重用,就是将需要重用的代码和使用这些代码的文档放在一起编 译,最终生成一个

第八章、让开发板发出声音:蜂鸣器驱动

通过对这一章节的学习我学到了如下知识: 一.蜂鸣器的知识:蜂鸣器也称为PWM(脉冲宽度调制),其基本原理是通过脉冲来控制蜂鸣器的打开和关闭,定时器的输出引脚与蜂鸣器的三极管相连,此电路的三极管是PNP性,当引脚是高电平时,此三极管处于饱和状态,电路导通,电流流过蜂鸣器,此时蜂鸣器发声,反之,当引脚是高电平时,此三极管处于截止状态,电路关断,蜂鸣器停止发声.       蜂鸣器驱动由三个文件组成:pwm_c.pwm_fun.h.pwm_fun.c.其中pwm.c是驱动主程序.pwm_fun.h引用

Android深度探索(卷1)HAL与驱动开发 第八章 让开发板发出声音:蜂鸣器驱动 读书笔记

PWM驱动的实现方式不同于LED,PWM驱动由多个文件组成.大多数Linux驱动的标准实现方式都是这种.一个复杂的驱动不会把所有代码都放在一个文件中.相关的代码会放在相应的文件中,在编译Linux驱动时将这些文件进行联合编译.当开发一个Linux驱动时,在init.exit等函数中发生错误时,Linux驱动可能会安装失败.甚至使用rmmod命令也无法正常地来将LINUX驱动卸载.这时就需要将相应的Linux驱动的内存地址修改,实现对Linux驱动的卸载. Linux驱动代码的重用有两种方式,第一

让开发板发出声音:蜂鸣器驱动

第八章介绍了一个个实验:蜂鸣器驱动,让开发板发出声音. 将介绍蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,通过该驱动可以控制蜂鸣器的打开与关闭. 蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止.蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音.本节介绍了蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,可以打开和关闭.PWM驱动的实现方式不同于LED驱动,PWM驱动由多个文件组成,这也是大多数Linux驱动的标准实现方式. Linu

八、蜂鸣器驱动--学习笔记

第八章.蜂鸣器驱动--学习笔记 蜂鸣器是 S3C6410 开发板上带的一个硬件设备.可以通过向寄存器写入特定的值来控制蜂鸣器 发出尖叫声.本节将介绍蜂鸣器实现原犁,并实现一个完整的蜂呜器驱动(可以打开和关闭蜂鸣器).PWM驱动的实现方式不同于LED驱动,PWM驱动将由多个文件组成.这也是大多数i n u x驱动的标准实现方式.也就是说--个复杂的驱动不太可能将所有的代码都放在…个文件中.最好将相关的代码放在相应的文件中.在编译L i n u x驱动时将这些文件进行联合编译.本节将介绍把Li n

linux驱动开发之misc设备与蜂鸣器驱动(一)

1.板载蜂鸣器的驱动测试 我手里有一个BSP,九鼎的Bsp,里面有蜂鸣器的驱动,我们先测试一下好不好用.我们拿到一个BSP时,如果要做或移植蜂鸣器的驱动,首先要确定下这个内核 中究竟有没有蜂鸣器的驱动,我们可以用sourceInsight将内核放进去,搜索buzzer这个文件,看有没有,如果不行,也可以在内核中输入make menuconfig,利用这个配置界面来搜索buzzer英文,看不能找到相应的信息,从而也会知道这个设备在哪个路径下,通过对九鼎的内核进行make menuconfig后,搜

第8章 让开发板发出声音,蜂鸣器驱动 心得体会

第8章让开发板发出声音,蜂鸣器驱动 心得体会 通过学习Android深度探索(卷1)HAL与驱动开发的第8章 让开发板发出声音,蜂鸣器驱动,我加深对驱动的认识.以下主要是我对本节实验和参考在Linux驱动开发中使用PWM控制蜂鸣器中的一些见解. 先编写一个简单的蜂鸣器驱动程序,根据开发板上的硬件IO接口和Android驱动规范,在kernel中的driver目录中新建一个Buzzer文件,新建一个buzzer.c的源文 在目录下创建一个Makefile文件 先运行make clean命令清楚到编