文档库 最新最全的文档下载
当前位置:文档库 › FPGA无源蜂鸣器驱动设计

FPGA无源蜂鸣器驱动设计

FPGA无源蜂鸣器驱动设计
FPGA无源蜂鸣器驱动设计

无源蜂鸣器驱动设计

小梅哥编写,可适用于芯航线FPGA学习套件,作者保留一切所有权

2016年7月16日星期六

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

压电式蜂鸣器:压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。

多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。

电磁式蜂鸣器:电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。

接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

根据蜂鸣器本身是否集成了震荡源,蜂鸣器可以分为有源蜂鸣器与无源蜂鸣器。

有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。

有源蜂鸣器与无源蜂鸣器的区别:

注意:这里的“源”不是指电源,而是指震荡源。

也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫;

而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的方波去驱动它

有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。

无源蜂鸣器的优点是:

1. 便宜

2. 声音频率可控,可以做出“多来米发索拉西”的效果

3. 在一些特例中,可以和LED复用一个控制口

有源蜂鸣器的优点是:程序控制方便。

以上介绍了蜂鸣器的种类以及有源蜂鸣器、无源蜂鸣器的特点。接下来,我们将介绍芯航线FPGA学习套件主板上使用的蜂鸣器电路,并使用Verilog设计一个蜂鸣器驱动电路,来驱动蜂鸣器发声。

蜂鸣器电路介绍

芯航线FPGA学习套件主板上使用了一枚3.3V驱动的无源蜂鸣器,其电路如下所示:

电容C37 用于提高电路抗干扰性能。D1 起保护三极管的作用,当三极管突然截止时,无源蜂鸣器两端产生的瞬时感应电动势可以通过D3 迅速释放掉,避免叠加到三极管集电极上从而击穿三极管。

beep端口接FPGA输出管脚,使用时,只需要在beep信号上输出2~5KHz的pwm波,就能驱动蜂鸣器发声。

无源蜂鸣器控制器设计

通过前面对无源蜂鸣器的特点介绍可知,要使无源蜂鸣器能够正常发声,需要在控制端beep给出相应频率的PWM波。因此,对于无源蜂鸣器的控制,就转化为了设计一个PWM 波发生电路。因此,接下来我们将介绍PWM波发生电路的设计。

何为PWM波?PWM的英文全名叫Pulse Width Modulation,即脉冲宽度调制。通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。PWM控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是PWM型,广泛应用在从测量、通信到功率控制与变换的许多领域中。

以下为周期为1KHz,脉冲宽度(占空比)分别为20%、50%、90%的波形图:

占空比:20%

占空比:50%

占空比:

由图可知,当信号周期一定,信号高电平时间所占总时间的百分比不一样,即为不同占空比的PWM波。在逆变电路中,当使用这样的波形去驱动MOS管的导通时,因为一个周期内不同占空比的PWM信号其高电平持续长度不一样,因此使得MOS管的开通时间也不一样,从而使得电路中的平均电流也不一样,因此,通过调整驱动信号的占空比即可调整被控制电路中的平均电流。

而除了调整PWM信号的占空比,PWM信号的周期也是可以调整的,例如,在逆变电路中,使用IGBT作为开关器件,常见开关频率为几K到几十K,而使用MOS管作为开关器件,其开关频率则可高达几百K。因此,对于不同的器件,对驱动信号的频率要求也不一样。所以,还需要能够对PWM波的频率进行调整。

通过以上分析,可以知道,要设计一个PWM发生电路,需要能够实现对信号的频率和占空比的调节。使用过单片机或者DSP产生PWM波的朋友应该知道,在单片机或者DSP 中,产生PWM波的方法就是使用片上定时器进行循环计数,通过设定定时器的一个定时周期时长来确定对应输出PWM信号的频率,同时还有一个比较器,该比较器比较定时器的实时计数值与用户设定的比较值的大小,根据比较结果来控制输出信号的电平高低。通过设定不同的比较值,即可实现不同占空比的PWM信号输出。

PWM

对于FPGA来说,要产生PWM波,也可以借鉴单片机或DSP使用定时器产生PWM 波的思路。

基于FPGA的PWM电路设计

根据DSP产生PWM波典型原理,在FPGA中设计PWM发生器时,也可提取出如下两个主要电路:

1、定时器/计数器电路

2、输出比较电路

定时器/计数器电路设计

定时器电路设计较为简单,在《小梅哥FPGA设计思想与验证方法视频教程》中,04课“计数器设计与验证”介绍了最简单的计数器设计。参考各种MCU的计数器输出PWM波时的典型配置,可知该定时/计数器采用循环递减的计数方式,计数器循环从设定的计数初始值递减到0,然后再回到计数初始值再次递减。这样,只需要设定一个计数初始值,并确定计数时钟源频率,即可确定计数一个完整周期的时间,也即PWM信号频率。

在本节中,我们设计定时/计数器的计数时钟源频率为芯航线FPGA学习套件主板上晶

输出比较电路

输出比较电路通过比较计数器实时计数值与比较寄存器中的设定值,来确定最终PWM 输出信号的电平状态。这里,我们可以定义,当计数器计数值大于等于比较值时,PWM输出端输出低电平,当计数值小于比较值时,PWM输出端输出高电平。因此输出比较电路设

完整PWM发生电路设计

通过以上设计,一个最简单的PWM产生电路主要电路就设计完成了,以下为PWM产生电路的完整代码:

module pwm_generator(

Clk50M,

Rst_n,

cnt_en,

counter_arr,

counter_ccr,

o_pwm

);

input Clk50M;//50MHz时钟输入

input Rst_n;//复位输入,低电平复位

input cnt_en;//计数使能信号

input[31:0]counter_arr;//输入32位预重装值

input[31:0]counter_ccr;//输入32位输出比较值

output reg o_pwm;//pwm输出信号

reg[31:0]counter;//定义32位计数器

always@(posedge Clk50M or negedge Rst_n)

if(!Rst_n)

counter <=32'd0;

else if(cnt_en)begin

if(counter ==0)

counter <= counter_arr;//计数到0,加载自动预重装寄存器值else

PWM发生电路仿真验证

对本PWM发生电路的验证思路比较简单,只需要产生50MHz基准计数时钟源(其他频率也可以,只需要修正频率和占空比计算公式中的相关参数),然后给出预重装值和输出比较值,然后使能计数,即可启动PWM输出。在运行过程中,修改预重装值可以设置输出PWM信号的频率,并将同时影响输出占空比,而在预重装值确定的情况下,修改输出比较值,则可以设置输出占空比。

最终输出PWM波的频率计算公式为:

f pwm=

f clk

因此,当输出频率确定时,可计算得到预重装值,计算公式为:

counter_arr=

f clk

f pwm

?1

例如,当希望设置输出信号频率为5KHz时

counter_arr=

f clk

f pwm

?1=

50000000

5000

?1=9999

因此,我们只需要设置counter_arr值为9999即可使得最终输出信号频率为5KHz。

当输出PWM频率确定后,其输出占空比计算则为输出比较值与预重装值之商。计算公式为:

PW=

counter_ccr

因此,当输出占空比确定时,可计算得到输出比较值,计算公式为:

counter_ccr= PW × counter_acr

例如,当输出频率为5KHz,输出占空比为70%时

counter_ccr= PW × counter_arr=9999 ?0.7=6999

PWM发生电路testbench设计

根据上述计算公式,可以设计pwm_generator模块的仿真文件如下所示:`timescale1ns/1ns

`define clk_period 20

module pwm_generator_tb;

reg Clk50M;//50MHz时钟输入

reg Rst_n;//复位输入,低电平复位

reg cnt_en;//计数使能信号

reg[31:0]counter_arr;//输入32位预重装值

reg[31:0]counter_ccr;//输入32位输出比较值

wire o_pwm;//pwm输出信号

pwm_generator pwm_generator(

.Clk50M(Clk50M),

.Rst_n(Rst_n),

.cnt_en(cnt_en),

.counter_arr(counter_arr),

.counter_ccr(counter_ccr),

.o_pwm(o_pwm)

);

initial Clk50M =0;

always#(`clk_period/2) Clk50M =~Clk50M;

initial begin

Rst_n =0;

cnt_en =0;

counter_arr =0;

counter_ccr =0;

#(`clk_period*20+1);

Rst_n =1;

#(`clk_period*10+1);

counter_arr =999;//设置输出信号频率为50KHz

counter_ccr =400;//设置输出PWM波占空比为40% #(`clk_period*10);

cnt_en =1;//启动计数以产生PWM输出

#100050;

counter_ccr =700;//设置输出PWM波占空比为70% #100050;

cnt_en =0;//停止计数以关闭PWM输出

仿真结果分析

下图为设置输出PWM波频率为50KHz(counter_arr为999)、占空比为40%(counter_ccr 为400)时的仿真波形,由图可知,低电平周期为12us,高电平周期为8us,整个信号周期为20us,即频率为50KHz。占空比为8/20 = 0.4。

下图为设置输出PWM波频率为50KHz(counter_arr为999)、占空比为70%(counter_ccr 为700)时的仿真波形,由图可知,低电平周期为6us,高电平周期为14us,整个信号周期为20us,即频率为50KHz。占空比为14/20 = 0.7。

下图为设置输出PWM波频率为100KHz(counter_arr为499)、占空比为50%(counter_ccr 为250)时的仿真波形,由图可知,低电平周期为5us,高电平周期为5us,整个信号周期为10us,即频率为100KHz。占空比为5/10 = 0.5。

下图为设置输出PWM波频率为100KHz(counter_arr为499)、占空比为20%(counter_ccr 为100)时的仿真波形,由图可知,低电平周期为8us,高电平周期为2us,整个信号周期为10us,即频率为100KHz。占空比为2/10 = 0.2。

由此可知,该PWM生成电路能够正确的产生PWM输出信号。

PWM驱动蜂鸣器板级验证

通过仿真验证,我们确认了该PWM发生电路理论设计正确,接下来,我们将使用该PWM发生模块来驱动芯航线FPGA开发板上的无源蜂鸣器,让无源蜂鸣器能够循环依次发出“哆来咪发梭拉西”的音调。(本想让蜂鸣器能够演奏一曲的,可是无奈本人音乐天赋为负数,学不会谱曲,因此只能把最基本的“哆来咪发梭拉西”放出来了,希望有音乐天赋的朋友能在此基础上谱写演奏出美丽的乐章)。

以下为查资料得知的每个乐调对应的频率。

根据每个音调的频率值,可以计算得出PWM发送模块的预重装值,以下为计算得出的音调频率与对应PWM发送模块输出相应频率的预重装值。

本例中,保持PWM波的占空比始终为50%即可,而通过前面仿真验证可知,占空比为50%时,输出比较值刚好为预重装值的一半,因此,我们只需要将预重装值除以2(右移一位)的结果直接赋值给输出比较值即可,这样可以避免再重复计算输出比较值。

另外,为了保证音调的切换能够让我们容易分辨,因此设计一个500ms的定时器,每500ms切换一次音调。该部分电路非常简单,因此本板级验证部分将不再讲解代码的详细设计思路,只给出具体代码。

音调播放电路的代码如下所示:

module pwm_generator_test(

Clk50M,

Rst_n,

beep

);

input Clk50M;

input Rst_n;

output beep;

reg[31:0]counter_arr;//预重装值寄存器

wire[31:0]counter_ccr;//输出比较值

reg[24:0]delay_cnt;//500ms延时计数器

reg[4:0]Pitch_num;//音调编号

localparam

L1 =191130,//低音1

L2 =170241,//低音2

L3 =151698,//低音3

L4 =143183,//低音4

L5 =127550,//低音5

L6 =113635,//低音6

L7 =101234,//低音7

M1 =95546,//中音1

M2 =85134,//中音2

M3 =75837,//中音3

M4 =71581,//中音4

M5 =63775,//中音5

M6 =56817,//中音6

M7 =50617,//中音7

H1 =47823,//高音1

H2 =42563,//高音2

H3 =37921,//高音3

H4 =35793,//高音4

H5 =31887,//高音5

H6 =28408,//高音6

H7 =25309;//高音7

//输出比较值为预重装值一半

assign counter_ccr = counter_arr >>1;

pwm_generator pwm_generator(

.Clk50M(Clk50M),

.Rst_n(Rst_n),

.cnt_en(1'b1),

.counter_arr(counter_arr),

.counter_ccr(counter_ccr),

.o_pwm(beep)

);

//500ms延时计数器计数

always@(posedge Clk50M or negedge Rst_n) if(!Rst_n)

delay_cnt <=25'd0;

else if(delay_cnt ==0)

delay_cnt <=25'd2*******;

else

delay_cnt <= delay_cnt -1'b1;

//每500ms切换一次音调

always@(posedge Clk50M or negedge Rst_n) if(!Rst_n)

Pitch_num <=5'd0;

else if(delay_cnt ==0)begin

if(Pitch_num ==5'd20)

Pitch_num <=5'd0;

else

Pitch_num <= Pitch_num +5'd1;

end

else

Pitch_num <= Pitch_num;

//根据音调编号给预重装值给相应的值

always@(*)

case(Pitch_num)

0:counter_arr = L1;

1:counter_arr = L2;

2:counter_arr = L3;

3:counter_arr = L4;

4:counter_arr = L5;

5:counter_arr = L6;

6:counter_arr = L7;

7:counter_arr = M1;

8:counter_arr = M2;

9:counter_arr = M3;

10:counter_arr = M4;

11:counter_arr = M5;

12:counter_arr = M6;

13:counter_arr = M7;

14:counter_arr = H1;

15:counter_arr = H2;

16:counter_arr = H3;

17:counter_arr = H4;

18:counter_arr = H5;

19:counter_arr = H6;

20:counter_arr = H7;

default:counter_arr = L1;

endcase

endmodule

引脚分配完成后对工程全编译,然后下载到芯航线FPGA开发板上,下载完成后蜂鸣器即开始循环从低音1播放到高音7。

蜂鸣器驱动程序设计

合肥师范学院 嵌入式系统开发技术 课程设计 专业:计算机科学与技术(嵌入式) 班级:嵌入式应用技术 学号: 110441034 1110441047 1110441060 姓名:钱鹏鹏汪新妹郭航峰 设计题目:蜂鸣器驱动程序设计 2014年05月

1.绪论_______________________________________________________________ 3 1.1概要 _________________________________________________________________ 3 1.2设计内容 _____________________________________________________________ 4 2.开发环境的搭建_____________________________________________________ 4 2.1Redhat的安装 _________________________________________________________ 4 2.2安装arm-linux-gcc交叉编译器__________________________________________ 9 2.3安装及编译linux-2.6.29-mini2440-20090708内核_________________________ 9 3.字符设备驱动相关知识_______________________________________________ 9 3.1模块机制 _____________________________________________________________ 9 3.2字符设备开发基本步骤_________________________________________________ 10 3.3主设备号和次设备号___________________________________________________ 11 3.4实现字符驱动程序_____________________________________________________ 12 4.蜂鸣器原理________________________________________________________ 14 4.1蜂鸣器的种类和工作原理_______________________________________________ 14 4.2开发板上蜂鸣器原理图分析_____________________________________________ 15 4.3GPB0参数 ____________________________________________________________ 15 5.总体设计__________________________________________________________ 16 5.1设计思路 ____________________________________________________________ 16 5.2设计步骤 ____________________________________________________________ 16 6. 驱动及测试程序___________________________________________________ 17 6.1beep.c _______________________________________________________________ 17 6.2beep_tset.c __________________________________________________________ 21 7.运行结果及截图____________________________________________________ 22综合设计总结与思考__________________________________________________ 25

无源蜂鸣器常规驱动电路设计

一种低成本无源蜂鸣器的设计 在实际的应用中,虽然有源蜂鸣器控制简单,缺陷是成本比较高,在潮湿的环境用久了,容易损坏。而无源蜂鸣器弥补了有源蜂鸣器缺点,但问题是无源蜂鸣器需要PWM驱动。在系统的设计中,微控制器的PWM资源往往是比较紧张的,同时使用PWM驱动也加大了软件开发的难度。接下来笔者将引领大家学习如何设计一个无需PWM也能驱动无源蜂鸣器的低成本电路。 1.1 无源蜂鸣器常规驱动电路 图1 无源蜂鸣器常规驱动电路 如图1所示,此图为无源蜂鸣器的常规驱动电路。需要在输入端输入一定频率PWM的信号才能使蜂鸣器发声。为了解放PWM资源,实现简单控制,必须如有源蜂鸣器一样提供一个振荡电路。而有源蜂鸣器主要使用LC振荡,如果要实际搭建此电路,电感参数比较难控制,而且成本高。此时,自然会想到简易的RC振荡,而由三极管构成的RC多谐振荡电路显然是一个不错的选择。

1.2 三极管多谐振荡电路 图2 三极管多谐振荡电路 三极管多谐振荡的通用电路如图2所示。这个电路起振的原理主要是通过电阻与电容的充放电使三极管交替导通。首先,在电路上电时,分别通过R1与R4对电容C1与C2进行充电。由于三极管元件的参数不可能完全一致,可以假设三极管Q1首先饱和导通,由于电容两端的电压不能突变,Q2的 B极此时变成负压,Q2截止,Vo端输出高电平;C1通过R2进行充电,当 C2的电位使BE极正向偏置时,Q2导通,Vo端输出低电平;同理C2电容两端电压不能突变,Q1的B极电压变为负压,此时Q1截止。这样循环往复,使在Vo端输,一定频率的方波信号。如图3所示,笔者使用示波器截取了 Q1与Q2的B极和E极的波形,可以发现与上面的分析是吻合的。

单片机 利用蜂鸣器演奏音乐

实验三-利用蜂鸣器演奏音乐 一、实验目的 1.了解BlueSkyC51单片机实验板中蜂鸣器的硬件电路 2.学会利用蜂鸣器实现音乐的演奏 3.掌握蜂鸣器实现音乐演奏的编程 二、实验硬件设计及电路 1. BlueSkyC51单片机实验板 ` 2.单片机最小系统

。 3.蜂鸣器电路连接 三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以

我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,你要是输出高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。 三、实验原理 1.音调及节拍 用一个口,输出方波,这个方波输入进蜂鸣器就会产生声音,通过控制方波的频率、时间,就能产生简单的音乐。一般说来,单片机演奏音乐基本都是单音频率,因此单片机奏乐只需控制音调和节拍。 (1)音调的确定 音调是由频率来确定的。通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O 口来回取反,从而让蜂鸣器发出不同频率的声音。只需将定时器给以不同的定时值就可实现。通过延时,即可发出所需要的频率。 … (2)节拍的确定 一拍的时长大约为400—500ms,每个音符的时长通过节拍来计算。详细见程序代码。 2.软件设计相关 (1)头文件 #include<> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long sbit beep=P1^4; 译实验相关问题 ; (1)实际发音颤音重 解决方法为修改蜂鸣器的驱动频率. (2)实际节奏过快或者过慢 调整延时 四、C51程序代码(部分来源于网络) #include<> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long ~ sbit beep=P1^4; //蜂鸣器与口连接 uchar th0_f; //中断装载T0高8位 uchar tl0_f; //T0低8位 uchar code freq[36*2]={ //音阶码表 0xf7,0xd8, //440hz , 1 //0 0xf8,0x50, //466hz , 1# //1

蜂鸣器的介绍

蜂鸣器的介绍 推荐 一)蜂鸣器的介绍 1.蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 2.蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 3.蜂鸣器的电路图形符号蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。 (二)蜂鸣器的结构原理 1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 一、常规电磁蜂鸣器产品是如何工作的? 无源电磁蜂鸣器工作原理是:交流信号通过绕在支架上的线包在支架的芯柱上产生一交变的磁通,交变的磁通和磁环恒定磁通进行叠加,使钼片以给定的交流信号频率振动并配合共振腔发声。产品的整个频率和声压的响应曲线与间隙值、钼片的固有振动频率(可粗略折射为小钼片的厚度)、外壳(亥姆霍兹共振声腔)频率、磁环的磁强漆包线的线径有直接关系。 二、常规电磁无源蜂鸣器产品由哪些材料组成? 三、常规压电蜂鸣器产品是如何工作的?

几种驱动蜂鸣器的编程示例

几种驱动蜂鸣器的编程示例 以下介绍几种在S3F9454/9444下驱动蜂鸣器的编程示例,供参考 A.第一种,普通IO高低电平驱动法 ;运行环境: S3F9454,Fosc= 3.2MHz无分频 ;P2.0为蜂鸣输出端口 ;本例输出频率为4KHZ,即每250US一个周期,高低电平时间分别为125US BEEP: LD BTCON,#10100011B ;看门狗禁用 DI PUSH R5 PUSH R6 ;首先配置P2.0为普通推挽输出端口 AND P2CONL,#0FEH OR P2CONL,#02H LD R6,#0FAH ;R6设置输出方波个数,本例为250个(计时62.5MS) ONE_BEEP: LD R5,#27H ;R5为频率发生计时器,本例为近似125US(4KHZ) XOR P2,#01H _LOOP: DEC R5 JR NZ,_LOOP DEC R6 JR NZ,ONE_BEEP LD BTCON,#02H ;恢复看门狗运行 EI POP R6 POP R5 RET ;----------------------------------------------------------- B.利用P2.0配置为T0定时器匹配输出方式产生 ;注: 该方式可用于带多位数码显示扫描的软件中,可有效避免因蜂鸣器 ;输出而造成的数码显示抖动闪烁 ;因定时器T0被分配作为T0匹配输出定时器,所以本例中利用看门狗定时器 ;的实时计时器BTCNT作为数码显示实时扫描计时器 ;R0为蜂鸣时间长短计时器,由主调用程序进行予设置 ;运行环境: S3F9454,Fosc= 3.2MHZ无分频 ;P2.0为蜂鸣输出端口 ;本例输出频率为4KHZ,即每250US一个周期,高低电平时间分别为125US ;----------------------- BEEP: DI PUSH R1 PUSH T 0CON PUSH T0DATA ;在蜂鸣输出前首先扫描一次数码显示 CALL LED_SCAN OR P2CONL,#03H ;set P2.0 as T0 match output/every 12 5us LD T0CON,#10001000B ;set T0 input cLOCk=Fosc/8 LD T0DATA,#32H LD BTCON,#10100011B ;DISAble Watch-dog run, ;but btcnt clk input fxx/4096= 1.280ms NEXT_BEEP: LD R1,#0AH WAIT_CNT: OR BTCON,

有源与无源蜂鸣器的区别

一)蜂鸣器的介绍 1.蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 2.蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 3.蜂鸣器的电路图形符号蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。 (二)蜂鸣器的结构原理 1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 蜂鸣器的制作 (1)制备电磁铁M:在长约6厘米的铁螺栓上绕100圈导线,线端留下5厘米作引线,用透明胶布把线圈粘好,以免线圈松开,再用胶布把它粘在一个盒子上,电磁铁就做好了. (2)制备弹片P:从铁罐头盒上剪下一条宽约2厘米的长铁片,弯成直角,把电磁铁的一条引线接在弹片上,再用胶布把弹片紧贴在木板上. (3)用曲别针做触头Q,用书把曲别针垫高,用胶布粘牢,引出一条导线,如图连接好电路. (4)调节M与P之间的距离(通过移动盒子),使电磁铁能吸引弹片,调节触点与弹片之间的距离,使它们能恰好接触,通电后就可以听到蜂鸣声.有源蜂鸣器和无源蜂鸣器 教你区分有源蜂鸣器和无源蜂鸣器 现在市场上出售的一种小型蜂鸣器因其体积小(直径只有llmm)、重量轻、价格低、结构牢靠,而广泛地应用在各种需要发声的电器设备、电子制作和单片机等电路中。有源蜂鸣器和无源蜂鸣器的外观如图a、b所示。 图:有源和无源蜂鸣器的外观

蜂鸣器驱动程序的设计说明

蜂鸣器驱动 课程设计 专业: xxxxxxxxxxxxxx 班级: xxxxxxxxx 学号: xxxxxxxxx 姓名: xxxx 设计题目:蜂鸣器驱动程序设计 2016年12月

目录 一.任务 (2) 1.目标 (2) 2.环境 (2) 3.需求: (2) 二.总体设计 (2) 1.处理流程 (2) 2.模块介绍 (3) 3.模块接口设计 (3) 4.各个模块设计 (3) 三.PWM蜂鸣器字符设备驱动 (3) 1.模块设计 (3) 1. 模块介绍 (3) 2. 模块结构图 (4) 2.接口设计 (4) 1. 数据结构设计 (4) 2. 驱动程序接口 (4) 3.函数设计 (4) 1.初始化函数 (5) 2. 字符设备打开函数 (6) 3. 字符设备关闭函数 (7) 4. 模块卸载函数................................................................... ...................... (8) 5. 文件操作接口函数 (8) 四. PWM蜂鸣器字符设备驱动测试 (8) 1.调用系统函数ioctl实现对蜂鸣器的控制 (8) 五.tiny210开发板调试............................................................................. (9)

六.综合设计总结与思考................................................................... .. (10) 一.任务 1.目标: 编写按键蜂鸣器驱动程序函数与测试文件,实现上位机与tiny210-SDK开发板的连接,利用函数实现对蜂鸣器通过按键来启动与关闭。 2.环境: ①软件环境:windows 7 系统和VMware Workstation 软件 ②硬件环境:tiny210 开发板,核部分 Linux-3.0.8 ,交叉编译版本arm-linux-gcc-4.5.1-v6-vfp1 Linux系统介绍: Linux是一种自由开发源码的类Unix操作系统,存在这许多不同的Linux 版本,但它们都使用了Linux核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。 Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来说,Linux这个词本身只表示Linux核,但实际上人们已经习惯了用Linux来形容整个基于Linux核,并且使用GNU工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 tiny210开发板中模块介绍: ①PWM蜂鸣器模块

单片机驱动蜂鸣器原理与程序学习资料

单片机驱动蜂鸣器原 理与程序

单片机驱动蜂鸣器原理与设计 作者:mcu110 来源:51hei 点击数:12159 更新时间:2007年08月01日【字体:大中小】 蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(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增强型单片机实验板蜂鸣器驱动原理图:

有源蜂鸣器与无源蜂鸣器的区别超全

有源蜂鸣器与无源蜂鸣器的区别(转) 有源(引脚长)无源(引脚长度相同) 无源蜂鸣器的优点是: 1。便宜 2。声音频率可控,可以做出“多来米发索拉西”的效果 3。在一些特例中,可以和LED复用一个控制口 而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。 有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。 有源蜂鸣器的优点是:程序控制方便 区分 1 把蜂鸣器一脚朝天,如果电路板是黑色的表明是有缘的,如果电路板是绿色的表示无源的。 2 把万用表调到欧姆挡RX1位,用黑表笔接蜂鸣器的正极,慢慢触碰,如果发出咔咔生,电阻组织为8Ω或16Ω表示无源蜂鸣,如果发出持续的声音,表示有源! 现在很常用的是一种有源蜂鸣器,内部有振荡、驱动电路。加电源就可以响,你所说的估计就是那种。优点是用起来省事,缺点是频率固定了,就只一个单音。 有源蜂鸣器和无源蜂鸣器的差别主要差别为:有源蜂鸣器和无源蜂鸣器的根本区别是产品对输入信号的要求不一样;有源蜂鸣器工作的理想信号是直流电,通常标示为VDC、VDD等。因为蜂鸣器内部有一简单的振荡电路,能将恒定的直流电转化成一定频率的脉冲信号,从面实出磁场交变,带动钼片振动发音。但是在某些有源蜂鸣器在特定的交流信号下也可以工作,只是对交流信号的电压和频率要求很高,此种工作方式一般不采用。而无源蜂鸣器没有内部驱动电路,有些公司和工厂称为讯响器,国标中称为声响器。无源蜂鸣器工作的理想信号方波。如果给预直流信号蜂鸣器是不响应的,因为磁路恒定,钼片不能振动发音。 实例中,把驱动方式给为交流驱动(PWM输出)控制,频率选为5kHz。 在实际使用蜂鸣器时,区分是有源还是无源蜂鸣器,电磁式还是压电式。 对于后者,他们的区别是: 电磁无源蜂鸣属于感性负载器件,理想输入是正向方波通常记作:VO-P。压无源蜂鸣属于容性负载器件,理想输入是双向方波通常记作:VP-P。但是如果IC是反向器4049等,取一非门的输入和输出接蜂鸣器也是很理想的,只是有时IC的输出功率太小,声音达不到预期要求。如果蜂鸣器是作为高声压报警用的,普通的两引脚电感还不能满足要求,一般会采用三脚抽头电感,一般为10倍的升压比,有些高声压110dB以上的可能要用小功率变压器实现升压。

蜂鸣器驱动程序设计

蜂鸣器驱动 课程设计 专业:xxxxxxxxxxxxxx 班级:xxxxxxxxx 学号:xxxxxxxxx 姓名:xxxx 设计题目:蜂鸣器驱动程序设计 2016年12月

目录 一.任务 (2) 1.目标 (2) 2.环境 (2) 3.需求: (2) 二.总体设计 (2) 1.处理流程 (2) 2.模块介绍 (3) 3.模块接口设计 (3) 4.各个模块设计 (3) 三.PWM蜂鸣器字符设备驱动 (3) 1.模块设计 (3) 1. 模块介绍 (3) 2. 模块结构图 (4) 2.接口设计 (4) 1. 数据结构设计 (4) 2. 驱动程序接口 (4) 3.函数设计 (4) 1.初始化函数 (5) 2. 字符设备打开函数 (6) 3. 字符设备关闭函数 (7) 4. 模块卸载函数......................................................................................... (8) 5. 文件操作接口函数 (8) 四. PWM蜂鸣器字符设备驱动测试 (8) 1.调用系统函数ioctl实现对蜂鸣器的控制 (8) 五.tiny210开发板调试 (9) 六.综合设计总结与思考 (10)

一.任务 1.目标: 编写按键蜂鸣器驱动程序函数与测试文件,实现上位机与tiny210-SDK开发板的连接,利用函数实现对蜂鸣器通过按键来启动与关闭。 2.环境: ①软件环境:windows 7 系统和VMware Workstation 软件 ②硬件环境:tiny210开发板,内核部分Linux-3.0.8 ,交叉编译版本arm-linux-gcc-4.5.1-v6-vfp1 Linux系统介绍: Linux是一种自由开发源码的类Unix操作系统,存在这许多不同的Linux 版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。 Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来说,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 tiny210开发板中模块介绍: ①PWM蜂鸣器模块 PWM(脉冲宽度调制)简单的讲是一种变频技术之一,是靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率。来看看我们实际生活中的例子,我们的电风扇为什么扭一下按扭,风扇的转速就会发生变化;调一下收音机的声

蜂鸣器驱动电路

简易自控电路大全(1) 在简易自动控制电路中,将介绍一些模拟实验电路,利用一些物理现象产生的力、热、声、光、电信号,实现自动控制,以达到某种控制效果。 磁控和热控电路 在磁力自动控制电路中,传感元件是干簧管,当磁铁靠近时,常开触点闭合而接通传感电路,完成位置传感作用。 能不能用干簧管开关直接控制电动机的转与停呢?玩具电动机是常用的动力装置,它能够把电能转换为机械能,可用于小电风扇转动、小离心水泵抽水等执行功能。通常玩具直流电动机工作电压低,虽然在1.5~3V就可以启动,但起动电流较大(1~2安培),如果用触点负荷仅为几十毫安的干簧管进行开关控制,将大大缩短其使用寿命。因此,在自动控制电路中,常使用电子开关来控制电动机的工作状态。 三极管电子开关电路见图1 。由开关三极管VT,玩具电动机M,控制开关S,基极限流电阻器R和电源GB组成。VT采用NPN型小功率硅管8050,其集电极最大允许电流ICM可达1.5A,以满足电动机起动电流的要求。M选用工作电压为3V的小型直流电动机,对应电源GB亦为3V 。 VT基极限流电阻器R如何确定呢?根据三极管的电流分配作用,在基极输入一个较弱的电流IB,就可以控制集电极电流IC有较强的变化。假设VT电流放大系数hfe≈250,电动机起动时的集电极电流IC=1.5A,经过计算,为使三极管饱和导通所需的基极电流IB≥(1500mA/250)×2=12mA。在图1电路中,电动机空载时运转电流约为500mA,此时电源(用两节5号电池供电)电压降至2.4V,VT基极-发射极之间电压VBE≈0.9V。根据欧姆定律,VT基极限流电阻器的电阻值R=(2.4-0.9)V/12mA≈0.13kΩ。考虑到VT在IC 较大时,hfe要减小,电阻值R还要小一些,实取100Ω。为使电动机更可靠地启动,R甚至可减少到51Ω。在调试电路时,接通控制开关S,电动机应能自行启动,测量VT集电极—发射极之间电压VCE≤0.35V,说明三极管已饱和导通,三极管开关电路工作正常,否则会使VT过热而损坏。 自动灭火的热量自动控制电路见图2。该电路是将图1中的控制开关S换成双金属复片开关ST,就成为热控电路了。当蜡烛火焰烧烤到双金属复片时,复片趋于伸直状态,使得开关ST接通,电动机启动,带动小风扇叶片旋转,对准蜡烛吹风,自动将火焰熄灭;当双金属片冷却后,开关断开,小电风扇自动停转,完成了自动灭火的程序。 自动停车的磁力自动控制电路见图3。开启电源开关S,玩具车启动,行驶到接进磁铁时,安装在VT基极与发射极之间的干簧管SQ闭合,将基极偏置电流短路,VT截止,电动机停止转动,保护了电动机及避免大电流放电。

有源与无源蜂鸣器的介绍及识别

有源与无源蜂鸣器的介绍及识别(驱动/电路) 一)蜂鸣器的介绍 1.蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 2.蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 3.蜂鸣器的电路图形符号蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。 (二)蜂鸣器的结构原理 1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 蜂鸣器的制作 (1)制备电磁铁M:在长约6厘米的铁螺栓上绕100圈导线,线端留下5厘米作引线,用透明胶布把线圈粘好,以免线圈松开,再用胶布把它粘在一个盒子上,电磁铁就做好了. (2)制备弹片P:从铁罐头盒上剪下一条宽约2厘米的长铁片,弯成直角,把电磁铁的一条引线接在弹片上,再用胶布把弹片紧贴在木板上. (3)用曲别针做触头Q,用书把曲别针垫高,用胶布粘牢,引出一条导线,如图连接好电路. (4)调节M与P之间的距离(通过移动盒子),使电磁铁能吸引弹片,调节触点与弹片之间的距离,使它们能恰好接触,通电后就可以听到蜂鸣声.有源蜂鸣器和无源蜂鸣器 教你区分有源蜂鸣器和无源蜂鸣器

单片机驱动蜂鸣器原理与程序

单片机驱动蜂鸣器原理与设计下面是电磁式蜂鸣器的外形图片及结构图。。。

时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。 程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P3.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。 二、蜂鸣器列子 下面我们举几个简单的单片机驱动蜂鸣器的编程和电路设计的列子。 1、简单的蜂鸣器实验程序:本程序通过在P3.7输出一个音频范围的方波,驱动实验板上的蜂鸣器发出蜂鸣声,其中DELAY延时子程序的作用是使输出的方波频率在人耳朵听觉能力之内的20KHZ以下,如果没有这个延时程序的话,输出的频率将大大超出人耳朵的听觉能力,我们将不能听到声音。更改延时常数,可以改变输出频率,也就可以调整蜂鸣器的音调。大家可以在实验中更改#228为其他值,听听蜂鸣器音调的改变。 ORG 0000H AJMP MAIN ;跳转到主程序 ORG 0030H MAIN: CPL P3.7 ;蜂鸣器驱动电平取反 LCALL DELAY ;延时 AJMP MAIN ;反复循环 DELAY:MOV R7,#228 ;延时子程序,更改该延时常数可以改变蜂鸣器发出的音调 DE1: DJNZ R7,DE1 RET

END 2、倒车警示音实验程序:我们知道各种卡车、货柜车在倒车时候,会发出倒车的蜂鸣警示提示音,同时警示黄灯也同步闪烁,提醒后面的人或车辆注意。本实验例程就实现倒车警示功能,通过实验板上的蜂鸣器发出警示音,同时通过实验板上P1.2和P1.5上的两个黄色发光二极管来发出黄色警示灯。 ORG 0000H AJMP START ;跳转到初始化程序 ORG 0033H START: MOV SP,#60H ;SP初始化 MOV P3,#0FFH ;端口初始化 MAIN: ACALL SOUND ;蜂鸣器发声 ACALL YS500M ;延时 AJMP MAIN SOUND: MOV P1,#11011011B ;点亮2个警示黄色发光二极管 MOV R2,#200 ;响200个周期 SND1: CLR P3.7 ;输出低电平T1导通,蜂鸣器响 ACALL YS1ms ;延时 SETB P3.7 ;输出高电平T1截止,蜂鸣器不响 ACALL YS1ms ;延时 DJNZ R2,SND1 MOV P1,#0FFH ;熄灭黄色警示灯 RET

蜂鸣器及范例

蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 下面是电磁式蜂鸣器的外形图片及结构图。。。 电磁式蜂鸣器实物图:电磁式蜂鸣器结构示意图: 图 1 图 2 电磁式蜂鸣器内部构成: 1. 防水贴纸 2. 线轴 3. 线圈 5. 底座 6. 引脚 7. 外壳 9. 封胶 10. 小铁片 11. 振动膜

4. 磁铁8. 铁芯12. 电路板 一、电磁式蜂鸣器驱动原理 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3: S51增强型单片机实验板蜂鸣器驱动原理图: 图3 如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。

蜂鸣器驱动程序设计

蚌埠学院 嵌入式系统开发技术 课程设计 专业:电子信息科学与技术(嵌入式)班级:电子信息2班 学号:00000000000 姓名: 设计题目:蜂鸣器驱动程序设计 2014年9月

目录 1.绪论 _________________________________________________________________3 1.1概要___________________________________________________________________ 3 1.2设计内容_______________________________________________________________ 4 2.开发环境的搭建 _______________________________________________________4 2.1Redhat的安装 ___________________________________________________________ 4 2.2安装arm-linux-gcc交叉编译器____________________________________________ 8 2.3安装及编译linux-2.6.29-mini2440-20090708内核 _____________________________ 8 3.字符设备驱动相关知识 _________________________________________________8 3.1模块机制_______________________________________________________________ 8 3.2字符设备开发基本步骤___________________________________________________ 9 3.3主设备号和次设备号____________________________________________________ 10 3.4实现字符驱动程序______________________________________________________ 11 4.蜂鸣器原理 __________________________________________________________13 4.1蜂鸣器的种类和工作原理________________________________________________ 13 4.2开发板上蜂鸣器原理图分析______________________________________________ 14 4.3GPB0-0参数____________________________________________________________ 14 5.总体设计 ____________________________________________________________15 5.1设计思路______________________________________________________________ 15 5.2设计步骤______________________________________________________________ 15 6. 驱动及测试程序 _____________________________________________________16 6.1beep.c _________________________________________________________________ 16 6.2beep_tset.c _____________________________________________________________ 20 7.运行结果及截图 ______________________________________________________21 综合设计总结与思考___________________________________________________23

无源蜂鸣器

51单片机驱动无源蜂鸣器 在学习过程中遇到如下例题:8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。 流水灯的程序相对我个人来说比较简单,但是蜂鸣器有些难度,正常给I/0口一个信号,蜂鸣器既然不响,后经查证是无源蜂鸣器; 蜂鸣器简介:蜂鸣器根据结构不同分为压电式蜂鸣器和电磁式蜂鸣器;而两种蜂鸣器又分为有源蜂鸣器和无源蜂鸣器,这里的源特指振荡源;有源蜂鸣器直接加电就可以响起,无源蜂鸣器需要我们给提供振荡源。理想的振荡源为一定频率的方波。 本系统硬件采用的是伟纳ME300B开发板,驱动部分电路图如下: 由于系统采用了无源蜂鸣器,所以需要我们通过编程来控制I/0口的翻转来产生一定频率的方波信号。本文采用默认频率0.5KHZ的标准方波。可以算出周期T = 2ms 脉宽t = 1ms,因此我们可以通过简单的延时函数延时1ms。然后控制P3.7口的电平高低产生0.5KHZ的方波信号; 本程序只是通过简单延时达到驱动蜂鸣器的效果。 #include sbit buzzer = P3^7; void delayms(unsigned int xms) //延时函数,延时xms { unsigned int i , j;

for(i = 0; i < xms; i++) for(j = 0; j < 110; j++); } void fengming() //蜂鸣函数,脉宽t = 1ms 周期T = 2ms 频率f = 0.5khz 实际发现延时1ms的时候效果最好 { buzzer = 0; //给P3.7口送低电平 delayms(1); //延时1ms buzzer = 1; //给P3.7口送高电平 delayms(1); //延时1ms } void main() { while(1) { fengming(); } } -----

单片机驱动蜂鸣器原理与设计

单片机驱动蜂鸣器原理与设计 (拟标题“电子门铃":开关或按键,51单片机, 电阻,TTL三极管,蜂鸣器,灯) 作者:mcu110 来源:51hei 点击数:3275 更新时间:2007年08月01日 蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 下面是电磁式蜂鸣器的外形图片及结构图。。。 电磁式蜂鸣器实物图: tu1 电磁式蜂鸣器结构示意图:tu2 图 1 图 2 电磁式蜂鸣器内部构成: 1. 防水贴纸 2. 线轴 3. 线圈 4. 磁铁 5. 底座 6. 引脚 7. 外壳 8. 铁芯 9. 封胶 10. 小铁片 11. 振动膜 12. 电路板

Tu1 TU2 一、电磁式蜂鸣器驱动原理 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3: S51增强型单片机实验板蜂鸣器驱动原理图: 图3 如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。

蜂鸣器的结构原理

蜂鸣器的结构原理 1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 编辑本段蜂鸣器的制作 (1)制 蜂鸣器 备电磁铁M:在长约6厘米的铁螺栓上绕100圈导线,线端留下5厘米作引线,用透明胶布把线圈粘好,以免线圈松开,再用胶布把它粘在一个盒子上,电磁铁就做好了. (2)制备弹片P:从铁罐头盒上剪下一条宽约2厘米的长铁片,弯成直角,把电磁铁的一条引线接在弹片上,再用胶布把弹片紧贴在木板上.(3)用曲别针做触头Q,用书把曲别针垫高,用胶布粘牢,引出一条导线,如图连接好电路. (4)调节M与P之间的距离(通过移动盒子),使电磁铁能吸引弹片,调节触点与弹片之间的距离,使它们能恰好接触,通电后就可以听到蜂鸣声. 有源蜂鸣器和无源蜂鸣器

教你区分有源蜂鸣器和无源蜂鸣器 现在市场上出售的一种小型蜂鸣器因其体积小(直径只有llmm)、重量轻、价格低、结构牢靠,而广泛地应用在各种需要发声的电器设备、电子制作和单片机等电路中。有源蜂鸣器和无源蜂鸣器的外观如图a、b所示。 图:有源和无源蜂鸣器的外观 a)有源 b)无源 从图a、b外观上看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器a,高度为9mm,而无源蜂鸣器b的高度为8mm。如将两种蜂鸣器的引脚郡朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。 迸一步判断有源蜂鸣器和无源蜂鸣器,还可以用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器 "+"引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂 蜂鸣器 鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。 有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。 蜂鸣器驱动模块 在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。这里对单片机在蜂鸣器驱动上的应用作一下描述。 驱动方式 由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音,很简单,这里就不对自激蜂鸣器进行说明了。这里只对必须用1/2duty 的方波信号进行驱动的他激蜂鸣器进行说明。 单片机驱动他激蜂鸣器的方式有两种:一种是PWM 输出口直接驱动,另一种是利用I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。

相关文档
相关文档 最新文档