技术文档

单片机蜂鸣器实验 四十六课 普中精灵 蜂鸣器实验 简介#单片机开发

小编 2024-11-24 技术文档 23 0

四十六课 普中精灵 蜂鸣器实验 简介#单片机开发

大家好,这节课来学习一下蜂鸣器实验。

1. 蜂鸣器早在学习五幺单面积的时候就已经接触过,它的应用非常广泛,在生活当中到处可见,像门铃、儿童的一些玩具以及电脑内主板的蜂鸣报警等等都有它的身影。

2. 这节课主要介绍四点,首先来介绍一下蜂鸣器,然后介绍板仔蜂鸣器的电路以及要实现的软件程序和实现现象。首先来看一下蜂鸣器,蜂鸣器是一种采用直流电压供电,广泛应用于电子产品当中作为发声的器件,像前面说的音乐盒、报警器等等。只要涉及到发声的装置通常都会采用蜂鸣器,由此可见它的应用是非常广泛的。

3. 蜂鸣器主要分为两种类型,第一种有有源蜂鸣器,另一种是无源蜂鸣器。有源蜂鸣器在其他 sm 三开奥版的产品当中也涉及过,这种控制方式是最简单的,控制方式类似于 led 的点亮,只要给对应电路的电源,蜂鸣器就能发出声音。而无源蜂鸣器控制相对复杂一点,需要一定频率的脉冲信号。什么是一定频率脉冲信号?频率通常在一点五 k 赫值到五 k 赫值之间。不同厂家的蜂鸣器频率范围可能不同,频率不一样发出的声音也不一样。因此通常用作音乐播出的装置采用的是无源蜂鸣器,比如音乐盒、玩具、音乐盒之类的发声装置。无源蜂鸣器是需要一定频率的脉冲,也就是要让蜂鸣器得掉电流,然后再失去电流,再得到电流,这样往复类似于这样的脉冲波形。

4. 下面这两张图大家有没有认识?哪一张是有源蜂鸣器?哪一张是无源蜂鸣器?从外观来看,拿到蜂鸣器的时候可以看一下蜂鸣器的角,也就是底部。如果看到有裸露的绿色电路板,这种是无源蜂鸣器。如果看到角位这里通过塑胶封装起来的,这种是有源蜂鸣器。所以可以通过外形来区分所使用的蜂鸣器是有源还是无源。这是蜂鸣器的一些简单介绍。

51单片机C语言编程(二)-蜂鸣器和数码管的控制

1、蜂鸣器的发声

/**************************************************************************************

* 蜂鸣器实验 *

实现现象:下载程序后蜂鸣器发声

注意事项:无

***************************************************************************************/

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器

#include<intrins.h>//因为要用到左右移函数,所以加入这个头文件

typedef unsigned int u16; //对数据类型进行声明定义

typedef unsigned char u8;

sbit beep=P1^5;

/*******************************************************************************

* 函 数 名 : delay

* 函数功能 : 延时函数,i=1时,大约延时10us

*******************************************************************************/

void delay(u16 i)

{

while(i--);

}

/*******************************************************************************

* 函 数 名 : main

* 函数功能 : 主函数

* 输 入 : 无

* 输 出 : 无

*******************************************************************************/

void main()

{

while(1)

{

beep=~beep;

delay(200); //延时大约100us 通过修改此延时时间达到不同的发声效果

}

}

2、静态数码管显示实验

/**************************************************************************************

* 静态数码管显示实验 *

实现现象:下载程序后数码管静态显示0。

注意事项:如果不想让点阵模块显示,可以将74HC595模块上的JP595短接片拔掉。

***************************************************************************************/

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16; //对数据类型进行声明定义

typedef unsigned char u8;

sbit LSA=P2^2; //将p2口用LSA代替

sbit LSB=P2^3; //同上

sbit LSC=P2^4; //同上

u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, /*u8就是指无符号字符数*/用typedef说明

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //显示0~F的值

/*******************************************************************************

* 函 数 名 : main

* 函数功能 : 主函数

* 输 入 : 无

* 输 出 : 无

*******************************************************************************/

void main()

{

LSA=0;

LSB=0;

LSC=0; //控制38译码器的Y0输出低电平

P0=smgduan[0];

while(1);

}

3、动态数码管显示

/**************************************************************************************

* 动态数码管显示实验 *

实现现象:下载程序后数码管从右至左显示0-7。

注意事项:如果不想让点阵模块显示,可以将74HC595模块上的JP595短接片拔掉。

***************************************************************************************/

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16; //对数据类型进行声明定义

typedef unsigned char u8;

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值

/*******************************************************************************

* 函 数 名 : delay

* 函数功能 : 延时函数,i=1时,大约延时10us

*******************************************************************************/

void delay(u16 i)

{

while(i--);

}

/*******************************************************************************

* 函 数 名 : DigDisplay

* 函数功能 : 数码管动态扫描函数,循环扫描8个数码管显示

*******************************************************************************/

void DigDisplay()

{

u8 i;

for(i=0;i<8;i++)

{

switch(i) //位选,选择点亮的数码管,

{

case(0):

LSA=0;LSB=0;LSC=0; break;//显示第0位

case(1):

LSA=1;LSB=0;LSC=0; break;//显示第1位

case(2):

LSA=0;LSB=1;LSC=0; break;//显示第2位

case(3):

LSA=1;LSB=1;LSC=0; break;//显示第3位

case(4):

LSA=0;LSB=0;LSC=1; break;//显示第4位

case(5):

LSA=1;LSB=0;LSC=1; break;//显示第5位

case(6):

LSA=0;LSB=1;LSC=1; break;//显示第6位

case(7):

LSA=1;LSB=1;LSC=1; break;//显示第7位

}

P0=smgduan[i];//发送段码

delay(100); //间隔一段时间扫描

P0=0x00;//消隐

}

}

/*******************************************************************************

* 函 数 名 : main

* 函数功能 : 主函数

* 输 入 : 无

* 输 出 : 无

*******************************************************************************/

void main()

{

while(1)

{

DigDisplay(); //数码管显示函数

}

}

相关问答

单片机蜂鸣器 的工作原理是什么?请详细说一下可以的话-ZOL问答

单片机本身是没有蜂鸣器的。单片机外接的蜂鸣器通常是有压电陶瓷片、驱动电路和谐振腔组成,通电(加额定电压)就叫。单片机的引脚通常通过一个三极管驱动可接蜂...

单片机蜂鸣器 怎么响?

需要进行以下步骤:首先,在程序中定义好蜂鸣器所连接的引脚,然后将这个引脚设置为输出模式。接着,将这个引脚输出高电平或低电平,控制蜂鸣器的通断。如果将...

为什么 单片机实验 蜂鸣器 一直滴答滴答的响?

单片机实验中蜂鸣器一直滴答滴答响的原因可能有以下几种:1.CPU管脚程序没有初始化,导致蜂鸣器无法正常工作。2.驱动电路出现问题,例如使用的是有源蜂鸣器...

单片机蜂鸣器 不响怎样检查并排除?

1、蜂鸣器没有安装前就不响,这是属蜂鸣器自身质量不行2、蜂鸣器焊接后出现没音或时响时不响,这种情形可能是焊接过程中运用的烙铁功率过大(建议用20-30W的烙...

51 单片机蜂鸣器 怎么才会响?

1蜂鸣器会响2蜂鸣器会响是因为51单片机通过控制IO口的高低电平来控制蜂鸣器的工作状态。当IO口输出高电平时,蜂鸣器内部的驱动电路会被激活,产生声音;当IO口...

51 单片机蜂鸣器 隔一秒响一次程序?

完整的源程序:#includedefineuintunsignedintsbitspk=P1^2;//与喇叭相连接的单片机引脚的定义voiddelayms(uint);...wh...

普中科技的HC6800 单片机 开发板的 蜂鸣器 该怎么使它响,只要响...

蜂鸣器已经在板子的PCB上连接好了,P1.4,你要是想单独连接,不是有个蜂鸣器的跳线帽么,把那个拔下来,左边是蜂鸣器,右边是P1.4,你把左边接到你想接的IO上。那个蜂...

单片机 蜂鸣器 发声成曲调,具体程序示范有没有以供参考的? ...

这个我做过,你如果对单片机有很好的了解,其实曲调就是用定时器的延时和平常的延时函数构成的!!

单片机 怎么控制 蜂鸣器 的声音时长?

单片机只有驱动无源蜂鸣器时才可以控制音调。改变驱动引脚输出方波的频率,就可以调整音调。如果采用延时法产生方波,那就改变延时时间;如果采用定时器法,那就...

pcb中 蜂鸣器 单片机 中怎么布线?

在单片机中布线蜂鸣器时,首先需要确定蜂鸣器的引脚连接方式,通常有两种:主动蜂鸣器和被动蜂鸣器。对于主动蜂鸣器,一端连接到单片机的IO口,另一端连接到电...

猜你喜欢