12 蜂鸣器发声
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
慧净 2008 年 8 月 8 日
慧净电子网:WWW.HLMCU.COM
慧净小店:http://shop37031453.taobao.com/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit SPK=P2^3; //定义喇叭端口 unsigned char frq;
void DelayUs2x(unsigned char t);//函数声明
void DelayMs(unsigned char t);
下面是一个蜂鸣器发声的实例程序:
/**********************HJ-C52 实验开发板例程************************ * 平台:HJ-C52 V2.0 + Keil U3 + STC89C52RD * 公司:慧净电子科技有限公司 * 淘宝:http://shop37031453.taobao.com * 网站:www.hlmcu.com * 编写:慧净 * 日期:2008-8-08 * QQ : 121350852 398115088 * 晶振:11.0592MHZ * 说明:免费开源,不提供源代码分析,有问题直接到慧净论坛交流 * 论坛:http://hjdz.5d6d.com ******************************************************************/ /*-----------------------------------------------
影响
//TH0=0x00;
//给定初值
//TL0=0x00;
ห้องสมุดไป่ตู้
EA=1;
//总中断打开
ET0=1;
//定时器中断打开
TR0=1;
//定时器开关打开
}
/*------------------------------------------------
主函数
------------------------------------------------*/
while(t--)
{
//大致延时 1mS
DelayUs2x(245);
DelayUs2x(245);
}
}/*------------------------------------------------
定时器中断子程序
------------------------------------------------*/
main()
{
unsigned char i;
Init_Timer0(); //初始化定时器
while(1)
{
for(i=0;i<200;i++)
{
DelayMs(10); //延时 10ms,累加频率值
frq=i;
}
for(i=200;i>0;i--)
{
DelayMs(10); //延时 10ms,累减频率值
void Timer0_isr(void) interrupt 1
{
TH0=0xfe;
//重新赋值
TL0=frq;
//低 8 位值在主程序中不断累加
SPK=!SPK;
//端口电平取反
}
版权声明:(部分资料图片来源网络) 1、本教程为慧净电子会员整理作品,欢迎网上下载、转载、传播、免费共享给 各位单片机爱好者! 2、该教程可能会存在错误或不当之处,欢迎朋友们指正。 3、未经协商便做出不负责任的恶意评价(中评,差评),视为自动放弃一切售后服 务的权利! 4、我们的产品收入一部分是赠送给慈善机构的,以免影响到你的善心.大家好, 才是真的好(双方好评)。
/*------------------------------------------------
定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式 1,16 位定时器,使用"|"符号可以在使用多个定时器时不受
名称:喇叭 内容:模拟消防车发声 ------------------------------------------------*/
慧净电子网:WWW.HLMCU.COM
慧净小店:http://shop37031453.taobao.com/
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HJ-C52 开发板
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HJ-C52 开发板
手把手教你学 51 单片机 C 语言教程 第 12 课 (蜂鸣器发声)
一、蜂鸣器介绍 蜂鸣器有两种:一种是有源蜂鸣器,只要给它加上恒定的电压,就能发声,另一 种是无源蜂鸣器,必须给它加上一定频率的方波或正弦波才能发声,一般实验板 配的是无源蜂鸣器,3G 开发板也不例外,由于驱动蜂鸣器电流要求比较大,所 以我们使用 8550 三极管来放大驱动,电路如下:FM IO 口为 P2.3
frq=i;
}
} } /*------------------------------------------------
uS 延时函数,含有输入参数 unsigned char t,无返回值
慧净电子网:WWW.HLMCU.COM
慧净小店:http://shop37031453.taobao.com/
图 1 蜂鸣器驱动电路原理图 慧净电子网:WWW.HLMCU.COM
慧净小店:http://shop37031453.taobao.com/
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HJ-C52 开发板
图 2 蜂鸣器外形图 注 意:喇叭和蜂鸣器不同,如 果蜂鸣 器直接 加 5V 电源则 发出固定 频率的 声音。掉电后会消失。喇叭不同 ,加 5V 电 压后是不发 声的, 但是器件 处 于最大功 耗状态 ,会有 非常大的热功 耗。长 时间会 烧毁喇叭 。 所 以 使 用 的 时 候 要 注意,如 果不是专门针 对它操作,请断 开它 的输入 信号端 子,防止 误操 作导致 意外损坏。
二、蜂鸣器编程实例 具体编程时我们间隔一段时间将 BZ 线置反,就能输出一个固定频率的方波,让 蜂鸣器响起来。 大家可能会问,给蜂鸣器多少频率的方波呢?首先这个频率必须在音频范围内, 也就是 20Hz 到 20KHZ 之间,但是 20Hz 到 20KHZ 的频率送给蜂鸣器后,只有某一 点的频率是最响的,这个频率称为蜂鸣器的谐振频率,离它越远,蜂鸣器发出的 声音越轻。 3G 开发板配的蜂鸣器的谐振频率是 2KHZ,其半周期是 250us,这样我们就确定了 BZ 口线每延时 250us 就要变反。
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HJ-C52 开发板
unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振 12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS ------------------------------------------------*/ void DelayUs2x(unsigned char t) { while(--t); } /*-----------------------------------------------mS 延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振 12M,精确延时请使用汇编 ------------------------------------------------*/ void DelayMs(unsigned char t) {
下面是有缘人看的,谢谢理解 慧净电子网:WWW.HLMCU.COM
慧净小店:http://shop37031453.taobao.com/
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HJ-C52 开发板
善有善报,恶有恶报,不是不报,时候未到。 从古至今,阴司放过谁,大家得多行善。 行善积德,爱护动物,哪怕小蚂蚁也是生命。 可改变命运,可心想事成,有利保佑子孙后代更昌盛。 学习弟子规,教我们如何做人,看和谐拯救危机,教我们看宇宙。 看为什么不能吃它们,教我们慈悲心,看因果轮回纪录,教我们懂得因果报应。 切勿造恶,种瓜得瓜种豆得豆,一切都有过程,待成熟之时,福德或果报自来找 你。
慧净电子网:WWW.HLMCU.COM
慧净小店:http://shop37031453.taobao.com/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit SPK=P2^3; //定义喇叭端口 unsigned char frq;
void DelayUs2x(unsigned char t);//函数声明
void DelayMs(unsigned char t);
下面是一个蜂鸣器发声的实例程序:
/**********************HJ-C52 实验开发板例程************************ * 平台:HJ-C52 V2.0 + Keil U3 + STC89C52RD * 公司:慧净电子科技有限公司 * 淘宝:http://shop37031453.taobao.com * 网站:www.hlmcu.com * 编写:慧净 * 日期:2008-8-08 * QQ : 121350852 398115088 * 晶振:11.0592MHZ * 说明:免费开源,不提供源代码分析,有问题直接到慧净论坛交流 * 论坛:http://hjdz.5d6d.com ******************************************************************/ /*-----------------------------------------------
影响
//TH0=0x00;
//给定初值
//TL0=0x00;
ห้องสมุดไป่ตู้
EA=1;
//总中断打开
ET0=1;
//定时器中断打开
TR0=1;
//定时器开关打开
}
/*------------------------------------------------
主函数
------------------------------------------------*/
while(t--)
{
//大致延时 1mS
DelayUs2x(245);
DelayUs2x(245);
}
}/*------------------------------------------------
定时器中断子程序
------------------------------------------------*/
main()
{
unsigned char i;
Init_Timer0(); //初始化定时器
while(1)
{
for(i=0;i<200;i++)
{
DelayMs(10); //延时 10ms,累加频率值
frq=i;
}
for(i=200;i>0;i--)
{
DelayMs(10); //延时 10ms,累减频率值
void Timer0_isr(void) interrupt 1
{
TH0=0xfe;
//重新赋值
TL0=frq;
//低 8 位值在主程序中不断累加
SPK=!SPK;
//端口电平取反
}
版权声明:(部分资料图片来源网络) 1、本教程为慧净电子会员整理作品,欢迎网上下载、转载、传播、免费共享给 各位单片机爱好者! 2、该教程可能会存在错误或不当之处,欢迎朋友们指正。 3、未经协商便做出不负责任的恶意评价(中评,差评),视为自动放弃一切售后服 务的权利! 4、我们的产品收入一部分是赠送给慈善机构的,以免影响到你的善心.大家好, 才是真的好(双方好评)。
/*------------------------------------------------
定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式 1,16 位定时器,使用"|"符号可以在使用多个定时器时不受
名称:喇叭 内容:模拟消防车发声 ------------------------------------------------*/
慧净电子网:WWW.HLMCU.COM
慧净小店:http://shop37031453.taobao.com/
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HJ-C52 开发板
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HJ-C52 开发板
手把手教你学 51 单片机 C 语言教程 第 12 课 (蜂鸣器发声)
一、蜂鸣器介绍 蜂鸣器有两种:一种是有源蜂鸣器,只要给它加上恒定的电压,就能发声,另一 种是无源蜂鸣器,必须给它加上一定频率的方波或正弦波才能发声,一般实验板 配的是无源蜂鸣器,3G 开发板也不例外,由于驱动蜂鸣器电流要求比较大,所 以我们使用 8550 三极管来放大驱动,电路如下:FM IO 口为 P2.3
frq=i;
}
} } /*------------------------------------------------
uS 延时函数,含有输入参数 unsigned char t,无返回值
慧净电子网:WWW.HLMCU.COM
慧净小店:http://shop37031453.taobao.com/
图 1 蜂鸣器驱动电路原理图 慧净电子网:WWW.HLMCU.COM
慧净小店:http://shop37031453.taobao.com/
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HJ-C52 开发板
图 2 蜂鸣器外形图 注 意:喇叭和蜂鸣器不同,如 果蜂鸣 器直接 加 5V 电源则 发出固定 频率的 声音。掉电后会消失。喇叭不同 ,加 5V 电 压后是不发 声的, 但是器件 处 于最大功 耗状态 ,会有 非常大的热功 耗。长 时间会 烧毁喇叭 。 所 以 使 用 的 时 候 要 注意,如 果不是专门针 对它操作,请断 开它 的输入 信号端 子,防止 误操 作导致 意外损坏。
二、蜂鸣器编程实例 具体编程时我们间隔一段时间将 BZ 线置反,就能输出一个固定频率的方波,让 蜂鸣器响起来。 大家可能会问,给蜂鸣器多少频率的方波呢?首先这个频率必须在音频范围内, 也就是 20Hz 到 20KHZ 之间,但是 20Hz 到 20KHZ 的频率送给蜂鸣器后,只有某一 点的频率是最响的,这个频率称为蜂鸣器的谐振频率,离它越远,蜂鸣器发出的 声音越轻。 3G 开发板配的蜂鸣器的谐振频率是 2KHZ,其半周期是 250us,这样我们就确定了 BZ 口线每延时 250us 就要变反。
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HJ-C52 开发板
unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振 12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS ------------------------------------------------*/ void DelayUs2x(unsigned char t) { while(--t); } /*-----------------------------------------------mS 延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振 12M,精确延时请使用汇编 ------------------------------------------------*/ void DelayMs(unsigned char t) {
下面是有缘人看的,谢谢理解 慧净电子网:WWW.HLMCU.COM
慧净小店:http://shop37031453.taobao.com/
慧净电子-做人人都买得起的 51 单片机开发板---真诚为你服务,基于 HJ-C52 开发板
善有善报,恶有恶报,不是不报,时候未到。 从古至今,阴司放过谁,大家得多行善。 行善积德,爱护动物,哪怕小蚂蚁也是生命。 可改变命运,可心想事成,有利保佑子孙后代更昌盛。 学习弟子规,教我们如何做人,看和谐拯救危机,教我们看宇宙。 看为什么不能吃它们,教我们慈悲心,看因果轮回纪录,教我们懂得因果报应。 切勿造恶,种瓜得瓜种豆得豆,一切都有过程,待成熟之时,福德或果报自来找 你。