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

发布者:xi24最新更新时间:2021-12-15 来源: eefocus关键字:51单片机控制  蜂鸣器  SOS 手机看文章 扫描二维码
随时随地手机看文章

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


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


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

在这里插入图片描述

硬件部分


蜂鸣器

上个实验我们已经讲得很清楚了,再次不在赘述,不明白的小伙伴可以移步进阶教程:51单片机控制蜂鸣器发声实验 适合新手查看。


单片机

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

在这里插入图片描述

软件部分及详细注释:

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

#include

#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 引用地址:51单片机控制蜂鸣器发SOS国际求救信号声音实验

上一篇:51单片机用PID算法温度控制器毕业设计
下一篇:51单片机霍尔自行车里程测速仪设计升级版

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved