蜂鸣器播放提示音

#include <REGX52.H>
#include "Delay.h"
#include "Key.h"
#include "Nixie.h"
#include "Buzzer.h"

unsigned char KeyNum;

void main()
{
    Nixie(1,0);
    while(1)
    {
        KeyNum=Key();
        if(KeyNum)
        {
            Buzzer_Time(100);
            Nixie(1,KeyNum);
        }
    }
}
蜂鸣器播放音乐

#include <REGX52.H>
#include "Delay.h"
#include "Timer0.h"

//蜂鸣器端口定义
sbit Buzzer=P1^5;

//播放速度,值为四分音符的时长(ms)
#define SPEED    500

//音符与索引对应表,P:休止符,L:低音,M:中音,H:高音,下划线:升半音符号#
#define P    0
#define L1    1
#define L1_    2
#define L2    3
#define L2_    4
#define L3    5
#define L4    6
#define L4_    7
#define L5    8
#define L5_    9
#define L6    10
#define L6_    11
#define L7    12
#define M1    13
#define M1_    14
#define M2    15
#define M2_    16
#define M3    17
#define M4    18
#define M4_    19
#define M5    20
#define M5_    21
#define M6    22
#define M6_    23
#define M7    24
#define H1    25
#define H1_    26
#define H2    27
#define H2_    28
#define H3    29
#define H4    30
#define H4_    31
#define H5    32
#define H5_    33
#define H6    34
#define H6_    35
#define H7    36

//索引与频率对照表
unsigned int FreqTable[]={
    0,
    63628,63731,63835,63928,64021,64103,64185,64260,64331,64400,64463,64528,
    64580,64633,64684,64732,64777,64820,64860,64898,64934,64968,65000,65030,
    65058,65085,65110,65134,65157,65178,65198,65217,65235,65252,65268,65283,
};

//乐谱
unsigned char code Music[]={
    //音符,时值,
    
    //1
    P,    4,
    P,    4,
    P,    4,
    M6,    2,
    M7,    2,
    
    H1,    4+2,
    M7,    2,
    H1,    4,
    H3,    4,
    
    M7,    4+4+4,
    M3,    2,
    M3,    2,
    
    //2
    M6,    4+2,
    M5,    2,
    M6, 4,
    H1,    4,
    
    M5,    4+4+4,
    M3,    4,
    
    M4,    4+2,
    M3,    2,
    M4,    4,
    H1,    4,
    
    //3
    M3,    4+4,
    P,    2,
    H1,    2,
    H1,    2,
    H1,    2,
    
    M7,    4+2,
    M4_,2,
    M4_,4,
    M7,    4,
    
    M7,    8,
    P,    4,
    M6,    2,
    M7,    2,
    
    //4
    H1,    4+2,
    M7,    2,
    H1,    4,
    H3,    4,
    
    M7,    4+4+4,
    M3,    2,
    M3,    2,
    
    M6,    4+2,
    M5,    2,
    M6, 4,
    H1,    4,
    
    //5
    M5,    4+4+4,
    M2,    2,
    M3,    2,
    
    M4,    4,
    H1,    2,
    M7,    2+2,
    H1,    2+4,
    
    H2,    2,
    H2,    2,
    H3,    2,
    H1,    2+4+4,
    
    //6
    H1,    2,
    M7,    2,
    M6,    2,
    M6,    2,
    M7,    4,
    M5_,4,
    
    
    M6,    4+4+4,
    H1,    2,
    H2,    2,
    
    H3,    4+2,
    H2,    2,
    H3,    4,
    H5,    4,
    
    //7
    H2,    4+4+4,
    M5,    2,
    M5,    2,
    
    H1,    4+2,
    M7,    2,
    H1,    4,
    H3,    4,
    
    H3,    4+4+4+4,
    
    //8
    M6,    2,
    M7,    2,
    H1,    4,
    M7,    4,
    H2,    2,
    H2,    2,
    
    H1,    4+2,
    M5,    2+4+4,
    
    H4,    4,
    H3,    4,
    H3,    4,
    H1,    4,
    
    //9
    H3,    4+4+4,
    H3,    4,
    
    H6,    4+4,
    H5,    4,
    H5,    4,
    
    H3,    2,
    H2,    2,
    H1,    4+4,
    P,    2,
    H1,    2,
    
    //10
    H2,    4,
    H1,    2,
    H2,    2,
    H2,    4,
    H5,    4,
    
    H3,    4+4+4,
    H3,    4,
    
    H6,    4+4,
    H5,    4+4,
    
    //11
    H3,    2,
    H2,    2,
    H1,    4+4,
    P,    2,
    H1,    2,
    
    H2,    4,
    H1,    2,
    H2,    2+4,
    M7,    4,
    
    M6,    4+4+4,
    P,    4,
    
    0xFF    //终止标志
};

unsigned char FreqSelect,MusicSelect;

void main()
{
    Timer0Init();
    while(1)
    {
        if(Music[MusicSelect]!=0xFF)    //如果不是停止标志位
        {
            FreqSelect=Music[MusicSelect];    //选择音符对应的频率
            MusicSelect++;
            Delay(SPEED/4*Music[MusicSelect]);    //选择音符对应的时值
            MusicSelect++;
            TR0=0;
            Delay(5);    //音符间短暂停顿
            TR0=1;
        }
        else    //如果是停止标志位
        {
            TR0=0;
            while(1);
        }
    }
}

void Timer0_Routine() interrupt 1
{
    if(FreqTable[FreqSelect])    //如果不是休止符
    {
        /*取对应频率值的重装载值到定时器*/
        TL0 = FreqTable[FreqSelect]%256;        //设置定时初值
        TH0 = FreqTable[FreqSelect]/256;        //设置定时初值
        Buzzer=!Buzzer;    //翻转蜂鸣器IO口
    }
}

51蜂鸣器播放提示音和音乐(完整代码可附赠Proteus仿真)相关推荐

  1. 51LED呼吸灯(完整代码可附赠Proteus仿真)

    #include <REGX52.H> sbit LED=P2^0; void Delay(unsigned int t) {     while(t--); } void main() ...

  2. 51LCD1602显示屏(完整代码可附赠Proteus仿真)

    #include <REGX52.H> #include "LCD1602.h" #include "Delay.h" void main() { ...

  3. 51单片机 蜂鸣器播放提示音

    主函数 #include <REGX52.H> #include "Delay.h" #include "Key.h" #include " ...

  4. html 消息通知声音,ajax实现web页面的消息实时提醒时播放提示音

    在应用系统的开发过程中,经常要使用到新消息的提醒功能,比如说后台有一个告警消息,web页面就会实时的收到这个告警的消息,且发出提示音. 这其实就是涉及到两个方面的知识,一个是http实时消息的推送,在 ...

  5. php播放一个提示音,ajax实现web页面的消息实时提醒时播放提示音

    在应用系统的开发过程中,经常要使用到新消息的提醒功能,比如说后台有一个告警消息,web页面就会实时的收到这个告警的消息,且发出提示音. 这其实就是涉及到两个方面的知识,一个是http实时消息的推送,在 ...

  6. 如何在html自动播放提示音,ajax实现web页面的消息实时提醒时播放提示音

    在应用系统的开发过程中,经常要使用到新消息的提醒功能,比如说后台有一个告警消息,web页面就会实时的收到这个告警的消息,且发出提示音. 这其实就是涉及到两个方面的知识,一个是http实时消息的推送,在 ...

  7. LabVIEW播放提示声音或者音乐

    使用LabVIEW播放提示声音或者音乐,可在LabVIEW中右键鼠标:函数→声音→输出,选择相应的函数,如下图所示: 播放提示声音或者音乐流程为:播放文件.判断播放是否结束以及最后播放结束释放资源,如 ...

  8. python3 def download_python3下载抖音视频的完整代码

    python3下载抖音视频的代码如下所示: # -*- coding:utf-8 -*- from contextlib import closing import requests, json, r ...

  9. html4播放mp3,在网页播放MP3、WMA音乐的代码

    一.在网页播放MP3.WMA音乐的代码(极速模式和兼容模式都显示) border="0" width="460" height="68" t ...

  10. FPGA VHDL语言实现FIR低通滤波器,包含完整代码,可在modelsim仿真 可仿真

    FPGA VHDL语言实现FIR低通滤波器,包含完整代码,可在modelsim仿真 可仿真,可在FPGA开发板硬件实现 ID:94150683735518602yqgo

最新文章

  1. C#字符串与享元(Flyweight)模式
  2. caffe 人脸关键点检测_全套 | 人脸检测 人脸关键点检测 人脸卡通化
  3. Android N混合编译与对热补丁影响深度解析
  4. Java 集合 ArrayList 需要知道的几个问题
  5. JS function立即调用的几种写法
  6. 如何在logcat中获取多个tag标签的过滤信息
  7. CSS自学笔记(9):CSS拓展(二)
  8. 神州数码DCWS学习日志
  9. C#1所搭建的核心基础
  10. GNU make manual 翻译( 一百八十七)
  11. python-enurmate
  12. BeanDefinitionRegistryPostProcessor是什么?
  13. 锐捷自动定时启动,开机自动认证校园网 教程
  14. 六、矩阵键盘的扫描原理与基本应用
  15. java+ElementUI前后端分离旅游项目第五天 移动端开发上
  16. CubieBoard6(S500,armhf)安装ROS过程
  17. C语言编程实现Euclid GCD算法 作业
  18. 内容领先地位无法撼动,腾讯音乐与环球续约将共建新厂牌
  19. IOS天气预报(美化)
  20. 当我开始爱自己——卓别林

热门文章

  1. resnet的演化(res2net,resnext,se-resnet,sk-resnet,resnest)
  2. microsoft store 安装包_LOL英雄联盟手游官方安装包
  3. Java常用到的快捷键
  4. 无水印的html5制作软件,ScreenToGif-开源、简单、无水印的gif动图制作软件
  5. 远程控制别人计算机,如何远程控制别人的电脑?手把手教你远程操控别人的电脑!...
  6. 陪集编码(Coset coding)
  7. java命令执行的三种方式
  8. 项目日报模板_笔杆子材料:写作技巧之如何写好日报、周报、月报(一)
  9. 转载:vc6.0 打开文件的时候出现Microsoft Visual C++:MSDEV.EXE 应用程序错误
  10. 使用js调用摄像头拍照