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

合集下载

如何有效编程单片机有源蜂鸣器驱动

如何有效编程单片机有源蜂鸣器驱动

如何有效编程单片机有源蜂鸣器驱动
 蜂鸣器是很常见的设备,分为无源和有源两种。

根据项目需求选择不同类型的蜂鸣器。

最近的项目里有用到有源蜂鸣器对有源蜂鸣器。

还是老一套,把电路板画完,接着编程。

 在项目中原理图如下:
 如果不能保证I/O的输出性能可以根据情况增加上拉或者下拉电阻。

 切入正题:在程序里面这个蜂鸣器的驱动就是个高低电平驱动。

高电平三极管导通、蜂鸣器发声,低电平三极管关断、蜂鸣器不发声。

这的确很简单,程序上最开始我是这样写的:
 当然,如果单片机没有很好的I/O跳变函数也可以这样修改:
 这里稍作解释:
 1)。

C# 调用主板蜂鸣器四种方法

C# 调用主板蜂鸣器四种方法

C#调用主板蜂鸣器四种方法1.Beep的报警实现//添加引用using System.Runtime.InteropServices;//引用函数[DllImport("user32.dll")]public static extern int MessageBeep(uint uType); uint beepI=0x00000030;//发出不同类型的声音的参数如下://Ok=0x00000000,//Error=0x00000010,//Question= 0x00000020,//Warning=0x00000030,//Information= 0x00000040//然后在程序中调用MessageBeep(beepI);2.调用Microsoft.ViualBase中的Beep():1.先引入命名空间:using Microsoft.VisualBasic;2.调用:Interaction.Beep();在编译时注意要引用Microsoft.VisualBasic.dll程序集,否则编译不能通过。

另外,如果是Console应用,可以用Console.WriteLine(”\a”);来代替Beep()。

3.通过主板蜂鸣器发出蜂鸣[DllImport("kernel32.dll",EntryPoint="Beep")]//第一个参数是指频率的高低,越大越高,第二个参数是指响的时间多长public static extern int Beep(int dwFreq,int dwDuration);private void button1_Click(object sender, System.EventArgs e){Beep(500,100);}4.用PlaySound(string pszSound,int hmod,int fdwSound)来播放声音[DllImport("winmm.dll")]public static extern bool PlaySound(string pszSound,int hmod,int fdwSound);public const int SND_FILENAME=0x00020000;public const int SND_ASYNC=0x0001;PlaySound("alarm8.wav",0,SND_ASYNC|SND_FILENAME);注:笔记本时直接调用的就是音箱了,如果静音也不会响。

单片机蜂鸣器控制程序和驱动电路典型设计案例

单片机蜂鸣器控制程序和驱动电路典型设计案例

单片机蜂鸣器控制程序和驱动电路典型设计案例[前言]蜂鸣器从结构区分分为压电式蜂鸣器和电磁式蜂鸣器。

压电式为压电陶瓷片发音,电流比较小一些,电磁式蜂鸣器为线圈通电震动发音,体积比较小。

蜂鸣器从结构区分分为压电式蜂鸣器和电磁式蜂鸣器。

压电式为压电陶瓷片发音,电流比较小一些,电磁式蜂鸣器为线圈通电震动发音,体积比较小。

按照驱动方式分为有源蜂鸣器和无源蜂鸣器。

这里的有源和无源不是指电源,而是振荡源。

有源蜂鸣器内部带了振荡源,如图9-8 所示中,给了BUZZ 引脚一个低电平,蜂鸣器就会直接响。

而无源蜂鸣器内部是不带振荡源的,要让他响必须给500Hz~4.5KHz 之间的脉冲频率信号来驱动它才会响。

有源蜂鸣器往往比无源蜂鸣器贵一些,因为里边多了振荡电路,驱动发音也简单,靠电平就可以驱动,而无源蜂鸣器价格比较便宜,此外无源蜂鸣器声音频率可以控制,而音阶与频率又有确定的对应关系,因此就可以做出来do re mi fa sol la si的效果,可以用它制作出简单的音乐曲目,比如生日歌、两只老虎等等。

图9-8 蜂鸣器电路原理图我们来看一下图9-8 的电路,蜂鸣器电流依然相对较大,因此需要用三极管驱动,并且加了一个100 欧的电阻作为限流电阻。

此外还加了一个D4 二极管,这个二极管叫做续流二极管。

我们的蜂鸣器是感性器件,当三极管导通给蜂鸣器供电时,就会有导通电流流过蜂鸣器。

而我们知道,电感的一个特点就是电流不能突变,导通时电流是逐渐加大的,这点没有问题,但当关断时,经电源-三极管-蜂鸣器-地这条回路就截断了,过不了任何电流了,那么储存的电流往哪儿去呢,就是经过这个D4 和蜂鸣器自身的环路来消耗掉了,从而就避免了关断时由于电感电流造成的反向冲击。

接续关断时的电流,这就是续流二极管名称的由来。

蜂鸣器经常用于电脑、打印机、万用表这些设备上做提示音,提示音一般也很简单,就是简单发出个声音就行,我们用程序简单做了个4KHZ 频率下的发声和1KHZ 频率下的发声程序,同学们可以自己研究下程序,比较下实际效果。

蜂鸣器及范例

蜂鸣器及范例

下面是电磁式蜂鸣器的外形图片及结构图。

程序中改变单片机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按钮时候,蜂鸣器发出“叮咚”音乐声,是一个比较实用的程序。

单片机驱动蜂鸣器音乐生日快乐的播放程序

单片机驱动蜂鸣器音乐生日快乐的播放程序

单片机驱动蜂鸣器音乐生日快乐的播放程序;音乐生日快乐的播放;P1.6是喇叭输出端口,用杜邦线连接到J42插针 B1针脚,喇叭即播放音乐numtim equ 20hgewei equ 21hshiwei equ 22hscanled equ 23horg 000hjmp startorg 00bhjmp tim0org 100hstart:; JB P3.7,$ ;检测播放按键是否按下mov tmod,#00000001bmov ie,#10000010bmov numtim,#01h start0:mov 30h,#00hnext:mov a,30hmov dptr,#tablemovc a,@a+dptrmov r2,ajz end0anl a,#0fhmov r5,amov a,r2swap aanl a,#0fhjnz singclr tr0jmp d1sing: dec amov 22h,arl amov dptr,#table1movc a,@a+dptrmov th0,amov 21h,amov a,22hrl ainc amovc a,@a+dptrmov tl0,amov 20h,asupplies and get to use, the registration of company assets, record maintenance, maintenance of effective management; 2.6 cost management: preparation of the annual administrative budget, control administrative costs, determine the scope of cost-sharing, sharing the office expenses by month; 2.7 information management: responsible for documents,materials, information and publicity, communication links, and ensure promptly, ranking officers reporting; responsible for the collation and analysis of information, provide the basis for corporate decisions; corporate culture construction, planning, editing, internal publications;2.8 vehicle management: responsible for the management, repairs and maintenance of vehicles; 2.9 legal disputes: the company responsible for the handling of disputes; 2.10 other: maintaining normal working order, and security. General Manager General Manager job description 1, 1.1 develop strategies and plans: according to company strategic planning, establish the annual management plan, reported to the Board of Directors for approval; 1.2 decomposition measures: according to the Board of Directors issued the annual management plan, annual index of decomposition, through the Organization of coordination mandate incharge of the Department Organization and implementation, ensuring comprehensive implementation of annual indicators; 1.3 inspection: convenes the General Manager Office, throughsetb tr0d1:lcall delayinc 30hjmp nextend0:clr tr0jmp start0tim0:push accpush pswmov tl0,20hmov th0,21hcpl p1.6 ;由该口输出音频数据pop pswpop accretidelay: mov r7,#02hd2: mov r4,#187d3: mov r3,#248djnz r3,$djnz r4,d3djnz r7,d2djnz r5,delayrettable1: ;音乐码表dw 64260,64400,64524,64580 dw 64684,64777,64820,64898 dw 64968,65030,65058,65110 dw 65157,65178,65217table:db 82h,01h,81h,94h,84h db 0b4h,0a4h,04hdb 82h,01h,81h,94h,84hdb 0c4h,0b4h,04hdb 82h,01h,81h,0f4h,0d4hdb 0b4h,0a4h,94hdb 0e2h,01h,0e1h,0d4h,0b4hdb 0c4h,0b4h,04hdb 82h,01h,81h,94h,84hdb 0b4h,0a4h,04hdb 82h,01h,81h,94h,84hdb 0c4h,0b4h,04h supplies and get to use, the registration of company assets, record maintenance, maintenance of effective management;2.6 cost management: preparation of the annual administrative budget, control administrative costs, determine the scope of cost-sharing, sharing the office expenses by month; 2.7 information management: responsible for documents, materials, information and publicity, communication links, and ensure promptly, ranking officers reporting; responsible for the collation and analysis of information, provide the basis for corporate decisions; corporate culture construction, planning, editing, internal publications; 2.8 vehicle management: responsible for the management, repairs and maintenance of vehicles; 2.9 legal disputes: the company responsible for the handling of disputes; 2.10 other: maintaining normal working order, and security. General Manager General Manager job description 1, 1.1 develop strategies and plans: according to company strategic planning, establish the annual management plan, reported to the Board of Directors for approval; 1.2 decomposition measures: according to the Board of Directors issued the annual management plan, annual index of decomposition, through the Organizationof coordination mandate in charge of the Department Organization and implementation, ensuring comprehensive implementation of annual indicators; 1.3 inspection: convenes the General Manager Office, through db 82h,01h,81h,0f4h,0d4hdb 0b4h,0a4h,94hdb 0e2h,01h,0e1h,0d4h,0b4hdb 0c4h,0b4h,04hdb 00TABLE2:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90Hend另外的一个C文件。

蜂鸣器程序

蜂鸣器程序

要求:让蜂鸣器响,频率为1KHZ1、延时子程序实现汇编: ORG 0000HSJMP STARTORG 0030HSTART : MOV P2,#11110111B //P2^3控制蜂鸣器 LCALL DELAYMOV P2,#11111111BLCALL DELAYAJMP STARTDELAY :MOV R5,#125L1:NOP //()ms us us us 5.0125211=⨯++ NOPDJNZ R5,L1RET //返回主程序ENDC 语言:#include 〈reg52.h>#define uint unsigned int //宏定义void delay(uint z ) //延时0。

5ms{uint i,j ;for(i=z ;i 〉0;i ——)for(j=55;j 〉0;j ——);}sbit beep=P2^3; //位定义void main(){while (1) //大循环{delay (1); //延时0.5msbeep=~beep; //取反}}2、用定时器1、方式2实现延时方式2最大定时:256⨯1us=0.256ms所以选择定时0。

25ms ,那么循环2次实现0。

5ms 延时 计数值0.25ms/1us=250则256-250=06H汇编: ORG 0000HSJMP STARTORG 0030HSTART:MOV P2,#11110111BLCALL DELAYMOV P2,#11111111BLCALL DELAYAJMP STARTDELAY:MOV R5,#02H //置计数循环初值2 MOV TMOD,#20H //置定时器1方式2MOV TH1,#06H //置定时器初值MOV TL1,#06HSETB TR1 //启动定时器1LP1:JBC TF1,LP2 //查询计数溢出SJMP LP1 //未溢出继续计数LP2:DJNZ R5,LP1 //未到0。

嵌入式蜂鸣器响的程序语句

嵌入式蜂鸣器响的程序语句

嵌入式蜂鸣器响的程序语句摘要:1.嵌入式蜂鸣器的概念与作用2.嵌入式蜂鸣器响的程序语句编写方法3.实例:使用Arduino 编写嵌入式蜂鸣器响的程序4.测试与调试正文:一、嵌入式蜂鸣器的概念与作用嵌入式蜂鸣器是一种可以发出声音的电子元件,通常用于警报、提示等场景。

在各种电子设备中,嵌入式蜂鸣器被广泛应用,例如手机、电脑、汽车等。

通过编写程序控制蜂鸣器响,可以使其发出特定的声音,从而实现人机交互或设备间的通信。

二、嵌入式蜂鸣器响的程序语句编写方法要编写嵌入式蜂鸣器响的程序,首先需要了解所使用的微控制器或开发板的相关接口和寄存器。

以Arduino 为例,可以使用PWM(脉冲宽度调制)输出接口来控制蜂鸣器的响度。

以下是一个简单的示例:```c// 引入所需库#include <Wire.h>// 设置蜂鸣器引脚const int buzzerPin = 9;void setup() {// 初始化蜂鸣器引脚为输出pinMode(buzzerPin, OUTPUT);}void loop() {// 控制蜂鸣器响的程序语句digitalWrite(buzzerPin, HIGH); // 使蜂鸣器响delay(1000); // 延时1 秒digitalWrite(buzzerPin, LOW); // 使蜂鸣器停止响delay(1000); // 延时1 秒}```三、实例:使用Arduino 编写嵌入式蜂鸣器响的程序1.将蜂鸣器连接到Arduino 开发板上。

通常,蜂鸣器的正极连接到开发板的数字引脚,负极连接到地(GND)。

2.将编写好的程序上传到Arduino。

3.上传成功后,开发板会自动执行程序,蜂鸣器会按照程序设定的频率和时长响。

四、测试与调试在实际应用中,可能需要根据不同的场景和需求对蜂鸣器响的程序进行调整。

可以通过修改程序中的延时值、蜂鸣器引脚等参数来进行调试。

蜂鸣器BUZZER的驱动程序设计与原理

蜂鸣器BUZZER的驱动程序设计与原理

蜂鸣器BUZZER的驱动程序设计与原理
1.直流蜂鸣器驱动程序
直流蜂鸣器的驱动是非常简单的,只要在其两端施加额定工作电压,蜂鸣器就发声。

以NPN三极管驱动电路为例,只要在三极管的基极接入高电平,蜂鸣器就能发声。

例如:蜂鸣器每秒钟发声100mS时,三极管基极的驱动波形如下图所示。

2.交流蜂鸣器驱动程序
交流蜂鸣器的驱动相对复杂一点,要在蜂鸣器两端施加额定电压的方波。

蜂鸣器的工作频率范围通常是很窄的,这意味着一个蜂鸣器通常只能工作在其额定频率才会有良好的发声效果(包括声压和音色等)。

有些蜂鸣器的工作频率范围是比较宽的,这样就可以通过调整驱动方波的频率而使蜂鸣器发出音乐,演奏歌曲。

例如:蜂鸣器每秒钟发声100mS时,三极管基极的驱动波形如下图所示。

3.设计原理
本实例采用LPC2103的定时器1产生PWM脉冲控制8050导通与闭合,
使交流蜂鸣器两端产生方波信号,驱动蜂鸣器发声。

三个LED分别显示高、中和低音的状态。

电路原理如下图所示。

END。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

几种驱动蜂鸣器的编程示例
以下介绍几种在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,。

相关文档
最新文档