导航:首页 > 操作系统 > 蜂鸣器单片机

蜂鸣器单片机

发布时间:2022-01-29 08:04:59

1. 用单片机控制蜂鸣器放音乐

看起来数组应该是音乐数据,其中包括四种数据,就是休止符(每个100毫秒)、歌曲结束符、音阶(给出的是蜂鸣器的震荡周期)、一个音阶持续的时间长度。如果你的晶振是12MHz,按照定时器中断给Count加一来看,音阶持续的时间应该是以10毫秒为单位。
Play_Song函数要求给出参数i,我的看法是这个i是指要播放第几段乐曲,i*217表示每段乐曲都是217个字节。本例中,数组只给出217个字节,所以只有一段乐曲,播放时需要给出参数i=0.

if ( Temp1 == 0xFF ) //休止符
{
TR0 = 0;
Delay_xMs(100);
}
所以休止符每个固定是100毫秒。
如果读到第一个不是休止符或者结束符的字节,那就是音阶,而下一个字节就是这个音阶的长度或者说节拍

while(1)
{
FMQ = ~FMQ;
Delay_xMs(Temp1);
if ( Temp2 == Count )
{
Count = 0;
break;
}
}
这一段是说,如果当前音阶的时间(Temp2次定时器中断,由Count计时)还没完,就每隔Temp1毫秒震动一次蜂鸣器,就形成一个震动频率,这段时间就发出一定音调的乐音。不过我也有疑惑,震荡周期如果以毫秒为单位恐怕只能发出次声波,所以以上对有关Delay_xMs函数时间的估算都可能有问题,还得看Delay_xMs函数的具体定义才行。

2. 单片机蜂鸣器工作原理是什么哪位高手可以指教一下

蜂鸣器工作发声原理:

蜂鸣器的发声原理由振动装置和谐振装置组成,而蜂鸣器又分为无源他激型与有源自激型。

无源他激型蜂鸣器的工作发声原理是:方波信号输入谐振装置转换为声音信号输出。

有源自激型蜂鸣器的工作发声原理是:直流电源输入经过振荡系统的放大取样电路在谐振装置作用下产生声音信号。

电路原理:PORTC.3/T0 作为I/O 口通过三极管Q2 来驱动蜂鸣器LS1,而PORTC.2/PWM0 则作为PWM 输出口通过三极管Q1 来驱动蜂鸣器LS2。另外在PORTA.3 和PORTA.2 分别接了两个按键,一个是PWM 按键,是用来控制PWM 输出口驱动蜂鸣器使用的;另一个是PORT 按键,是用来控制I/O 口驱动蜂鸣器使用的。连接按键的I/O 口开内部上拉电阻。


(2)蜂鸣器单片机扩展阅读:

蜂鸣器的应用领域

蜂鸣器广泛应用领域:计算机行业(主板蜂鸣器,机箱蜂鸣器,电脑蜂鸣器)打印机(控制板蜂鸣器)、复印机、报警器行业(报警蜂鸣器,警报蜂鸣器)、电子玩具(音乐蜂鸣器)、农业、汽车电子设备行业(车载蜂鸣器,倒车蜂鸣器,汽车蜂鸣器,摩托车蜂鸣器)电话机(环保蜂鸣器)、定时器,空调,医疗设备等电声行业。

3. 51单片机蜂鸣器程序是什么

51单片机蜂鸣器程序为:

#include"reg52.h"

typedef unsigned char u8;

typedef unsigned int u16;

sbit beep=P1^5;

void delay(u16 i)

{

while(i--);

}

void main()

{

while(1)

{

beep=~beep;

delay(1000);//控制音调频率

beep=~beep;/控制声音大小

delay(10);

}

}

(3)蜂鸣器单片机扩展阅读:

BUZZER蜂鸣器的分类:

1、按其驱动方式的原理分,可分为:有源蜂鸣器(内含驱动线路,也叫自激式蜂鸣器)和无源蜂鸣器(外部驱动,也叫他激式蜂鸣器)。

2、按构造方式的不同,可分为:电磁式蜂鸣器和压电式蜂鸣器。

3、按封装的不同,可分为:DIP BUZZER(插针蜂鸣器)和SMD BUZZER(贴片式蜂鸣器)。

4、按电流的不同,可分为:直流蜂鸣器和交流蜂鸣器,其中,以直流最为常见压电式蜂鸣器,用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。

电磁式蜂鸣器,主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。

由于两种蜂鸣器发音原理不同,压电式结构简单耐用但音调单一音色差,适用于报警器等设备。而电磁式由于音色好,所以多用于语音、音乐等设备。

4. 单片机 蜂鸣器

9013饱和了吗。R4 8.2K电阻应该去掉,或改8.2K阻值为150K.。

5. 51单片机蜂鸣器程序

#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
ucharpwm,ctl=5;
sbitfmq=P1^0;
bitflag;
voiddelay(uchara)
{
uchari;
while(a--)for(i=0;i<120;i++);
}
voidt0isr()interrupt1
{
pwm++;
if(pwm<=ctl)P0=0xff;
elseP0=0x00;
if(pwm==100)
{
pwm=0;
ctl++;
}
if(ctl==100)flag=1;
}
main()
{
uchari,led;
TMOD=0x02;
TH0=236;
TL0=236;
ET0=1;
EA=1;
while(1)
{
led=0xfe;
for(i=0;i<8;i++)
{
P0=led;
led=led<<1;
delay(200);
}
led=0xff;
delay(200);
led=0x7f;
for(i=0;i<8;i++)
{
P0=led;
led=led>>1;
delay(200);
}
TR0=1;
flag=1;
while(flag);
TR0=0;
}
}

6. 关于单片机的蜂鸣器

蜂鸣器有直流定压式的,给电就响。如果是这种蜂鸣器,你给的开关频率快,使蜂鸣器不能正常发声。
作电子琴的话不能用这种发声器。应该用扬声器,音箱上用的,只是功率小些0.8-3W的。

7. 单片机蜂鸣器

1、单片机与蜂鸣器连接图已附.

2、通常P1、P2、P3口都可以用来作为控制,P0口也可以,但因其内部无上拉电阻,所以外接时,应接一1K的上拉电阻,其他一样。有源蜂鸣器驱动电路设计,无须外加驱动电路。

3、C语言编程为:

#include<reg51.h>//头文件

sbitd1=P1^2;//位定义,把P1口的P1.2位设为驱动口,当然其它口也可。

voidmain()//主函数

{

d1=0//单片机默认状态为1,不用初始化了,此处直接赋值0则可驱动

};

此为最最简单的电路程序设计。下载后,蜂鸣器一会一直处于鸣叫状态。

你可以加一个延时函数,再把d1口置高,可让它,叫一下关闭。也可以加个while(1)大循环,让它“滴、滴”不停地叫。还可以设置一个按键,按一个亮一下。

随程序的变化,现象也会各不同。

8. 求51单片机蜂鸣器程序

#include<reg51.h>
sbit buzzer = P1^0 ;声明区
void delay(int) ;
void pulse_BZ(int,int,int);声明函数void main(void)
{
while(1)
{
pulse_BZ(500,1,1); 调用发声
delay(1000); 延时1000 X 0.5ms
pulse_BZ(500,1,1);
delay(1000);
pulse_BZ(500,1,1);
delay(1000);
pulse_BZ(200,1,1);
delay(1000);
pulse_BZ(200,1,1);
delay(1000);
}
}void delay(int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<60;j++);
}void pulse_BZ(int count;int TH;int TL)
{
int i;
for(i=o;i<count;i++) //循环count次,时间count x 1ms
{
buzzer=1; //此程序段产生1HZ 信号
delay(TH);
buzzer=0;
delay(TL);
}
}

9. STC51单片机C语言开启蜂鸣器

#include<reg52.h>
sbitbeep=P0^4;

voidmain()
{

beep=0;
while(1);
}

试试这个怎样,单片机在执行完程序之后会回到初始状态,然后再重新执行程序,所以蜂鸣器就会反复的开和关,听起来声音会小很多;加个while(1)死循环,让程序一直保持在beep=0的状态。

10. 怎么使用单片机控制蜂鸣器发声

蜂鸣器有两种,一种是无源的,另一种为有源的,确认的方法为:1)看封装,如果引脚端为PCB板的,一般为无源的,引脚端为树脂灌封的,一般为有源的。2)加电实验,用5V电压点击接触引脚时,只有“哒哒”声的为无源的,发出一个单音响的为有源的。
两种蜂鸣器用单片机的控制方法是一样的,对于无源的,要求单片机送出一组断续的音频信号,使蜂鸣器按要求发声,对于有源蜂鸣器,要求单片机送出一组断续的电脉冲信号,用于分断蜂鸣器的通断状态,而使有源蜂鸣器发出“嘀...嘀”,“嘀...嘀...嘀”等希望的声音。
无源蜂鸣器举例:
/**********************************************************************/
//声响驱动程序 BELL--整点报时(闹钟音两短一长)
/**********************************************************************/
void Beep(void)
{
uint a;//定义变量用于发声的长度设置
uchar b;
for(b=2;b>0;b--){
for(a=200;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
Delay_1us(500);//音调设置延时
}
DelayM(1000);
}
for(a=1000;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
Delay_1us(500);//音调设置延时
}
beep = 1;//音乐结束后扬声器关闭
}
有源蜂鸣器举例:
void main(void)
{
NB=0;//有源蜂鸣器初始不送电
while(1)
{
NB=0;//有源蜂鸣器断电

delay(300);//停一段时间
NB=1;//有源蜂鸣器送电
delay(1000);//响一段时间
}
}

阅读全文

与蜂鸣器单片机相关的资料

热点内容
程序员转正 浏览:208
应用隐私加密忘记密码怎么办 浏览:683
2g视频怎么压缩 浏览:609
康佳电视服务器异常怎么解决 浏览:840
怎么用c语言编译简单的小游戏 浏览:814
服务器如何以域用户登录 浏览:602
安卓os14怎么默认桌面 浏览:549
应用市场下载在哪个文件夹 浏览:895
安卓上的谷歌地图怎么用 浏览:183
安卓命令行打包 浏览:516
编程文字与数字教学视频 浏览:817
如何看手机号码注册哪些app 浏览:413
linux查看总内存 浏览:852
python进程间共享 浏览:438
js如何获取本地服务器地址 浏览:70
gfx什么时候支持安卓十一系统 浏览:942
压缩机90兆帕 浏览:932
程序员调侃语句 浏览:583
不是php函数的是 浏览:1002
压缩文件好处 浏览:787