51单片机控制蜂鸣器发SOS国际求救信号声音实验

时间:2023-03-27来源:佚名

说明:本文是51单片机控制蜂鸣器发声实验的高级版,和上个实验差不多,上个实验是控制蜂鸣器发声,本实验可以理解为控制蜂鸣器间断发出不同长度的声音,本文同样重在夯实基础,如果是大神,请自觉飘过。

好了我们言归正传,轮船行驶在辽阔的大海里,当发生意外事故的时候,“SOS”遇难信号便飞向海空,传往四面八方,我们都知道SOS信号是三短,三长,三短(摩尔斯电码),那么我们要如何去控制蜂鸣器发出这样的信号呢?

其实用单片机控制蜂鸣器发SOS声也很简单,原理基本上和上个实验差不多,控制方式稍微会复杂一点点,我们下面会详细介绍。我们同样从硬件和软件两个角度来给大家详细说明。

51单片机控制蜂鸣器发SOS国际求救信号声音实验

硬件部分

蜂鸣器

上个实验我们已经讲得很清楚了,再次不在赘述,不明白的小伙伴可以移步查看。

单片机

其实单片机的控制原理也说过了好多次了,不明白的自行爬楼,找相关文章,控制方式主要还是通过延时函数实现,基本思路如下:单片机开始上电后,蜂鸣器开始鸣响第一声与此同时计数器开始计时,等到记到设定时间,停止鸣响,等到计时结束又开始鸣响,如此循环往复三次即可。

51单片机控制蜂鸣器发SOS国际求救信号声音实验

软件部分及详细注释:

// 功能描述 : 单片机控制蜂鸣器发出SOS求救信号实验

define uChar8 unsigned char

#define uInt16 unsigned int // 宏定义两个变量

sbit BEEP1 = P1^4; //位定义,定义P1.4口位 sbit BEEPP

void DelayMS(uInt16 ValMS) // 定义延时函数

{

uInt16 uiVal,ujVal;

for(uiVal = 0; uiVal < ValMS; uiVal )

for(ujVal = 0; ujVal < 113; ujVal ); // 用FOR循环的两个变量实现延时功能

}

void main() //main主函数,程序开始执行

{ while(1) //WHILE(1)大循环

{ /* **** 三个短声音 **** */

BEEP = 0;DelayMS(100); BEEP = 1;DelayMS(50); BEEP = 0;DelayMS(100);

BEEP = 1;DelayMS(50); BEEP = 0;DelayMS(100); BEEP = 1;DelayMS(50);

/* **** 三个长声音 **** */

BEEP = 0;DelayMS(300); BEEP = 1;DelayMS(50); BEEP = 0;DelayMS(300);

BEEP = 1;DelayMS(50); BEEP = 0;DelayMS(300); BEEP = 1;DelayMS(50);

/* **** 第二个三个短声音 **** */

BEEP = 0;DelayMS(100); BEEP = 1;DelayMS(50); BEEP = 0;DelayMS(90);

BEEP = 1;DelayMS(50); BEEP = 0;DelayMS(100); BEEP = 1;DelayMS(50);

/* **** 以下代码是为了便于区分声音 **** */

DelayMS(1000);

} }

下面开始对代码进行测试验证,通过编译把代码写单片机开发板,实现了"SOS"国际求救信号发声功能,至此代码没问题,实验成功。

51单片机控制蜂鸣器发SOS国际求救信号声音实验

好了,看完了以上的文章,我想你应该明白这个实验的软硬件控制原理了吧,其实没有多难,只要理解了原理,然后多动动手 很轻松就会掌握,其实这个实验效果还有其他方法可以实现,如果你也感兴趣自己动动手用其他代码方式试一下吧!

最后如果有什么问题或者建议请给我留言或者私信啊,看到一定第一时间回复,如果你喜欢我的文章,欢迎关注转发评论哦,我们下期再见!

专注基础,从软硬件两个角度,从零开始带你探寻单片机的神秘世界!

    相关阅读

    三相四线空开的接线图说明

    有关三相四线空开怎么接线的问题,在电路接线过程中,空气开关 是三根线,三相四线也称为动力线,黄绿红或ABC相,把三根火线 接入空开的上桩头。 三相四线空开的接线图 在漏电开...
    2022-12-15
    三相四线空开的接线图说明

    空调铜管裸露在外面有什么影响?

    几十年前安装的空调,铜管都是裸露的,没有现在这么讲究,但制冷制热效果一样杠杠的。先抛开“空调用铜管还是铝管好 ”不说,单从使用者的角度来说,将铜管裸露在外是有影响的...
    2022-12-12
    空调铜管裸露在外面有什么影响?

    空调小管(供液管)结霜是什么原因

    空调空调小管(供液管)结霜,常见原因如下: 1、缺冷媒 当空调中缺少冷媒时,极有可能出现空调结霜 现象。解决办法:及时查漏补漏,添加适量的制冷剂,使空调恢复运行。 2、系统...
    2022-12-12
    空调小管(供液管)结霜是什么原因

    脉冲电子电表怎么偷电,一招教会你偷电方法

    用来偷电的方法有多种,对于脉冲电子表应该怎么偷电,其实这个偷电方法很简单的,只需要拔掉一根线就可以达到偷电的目的了,一起来了解下吧。 脉冲电子电表的偷电方法 说明:...
    2022-12-17
    脉冲电子电表怎么偷电,一招教会你偷电方法

    关了LED灯仍然微亮怎么办,二种方案完美解决微亮(鬼火)问题

    有关LED灯的使用问题,晚上关了LED灯或者节能灯后,会发现仍然有微亮的光线,这种称之为“鬼火”,怎么来解决关了LED灯仍然微亮的问题,这里分享了二种解决方法,加中间继电器...
    2022-12-23
    关了LED灯仍然微亮怎么办,二种方案完美解决微亮(鬼火)问题

    小牛电动车怎么解锁限速,6个步骤帮你搞定解限速问题

    有关小牛电动车解限速的方法,可以破解20公里限速的,破解流程不复杂,只要6个步骤就可以搞定,小牛电动车怎么解锁限速,可以来试一试本文给出的解锁限速的方法。 小牛电动车解...
    2022-12-13
    小牛电动车怎么解锁限速,6个步骤帮你搞定解限速问题

    空调指示灯亮着会不会费电,一年能费多少度电

    对于空调指示灯亮着会不会费电的问题,会费电,这个不用怀疑。无论哪一种电器设备,哪怕是微小的指示灯,也会是费电的,只是费电量微乎其乎,一年消耗的电量可以忽略不计。...
    2022-12-23
    空调指示灯亮着会不会费电,一年能费多少度电

    雅迪电动车怎么解除25码,附详细解限速步骤说明

    雅迪电动车解除25码限速的方法 方法1:先不要打开电源,捏住刹把,调速把转到底,立即打开电源,在捏住刹把状态下连续转动调速把到最大限度3次,第三次调速把转到底保持5至8秒,...
    2022-12-13
    雅迪电动车怎么解除25码,附详细解限速步骤说明

    网站栏目