精华内容
下载资源
问答
  • 51单片机蜂鸣器音乐简谱转换工具
    千次阅读
    2021-05-24 10:02:35

    这部分的歌词是:“长 亭 外, 古 道 边,”;

    这部分的乐谱是:| 5 35 1 - | 6 16 5 - |。

    (注意:乐谱中的1是高音,上边是带点的;还有些音符,应该有下划线,在这里都无法标出。感兴趣的网友应该去查看正规的乐谱。)

    那么,据此就可以写出《送别》前二小节的数据表:

    //--------------------------------------

    code unsigned char sszymmh[] = {

    5, 2, 2, 3, 2, 1, 5, 2, 1, 1, 3, 4,

    //嗦,中音,2个半拍; 咪,中音,1个半拍; 嗦,中音,1个半拍; 哆,高音,4个半拍

    6, 2, 2, 1, 3, 1, 6, 2, 1, 5, 2, 4,

    //啦,中音,2个半拍; 哆,高音,1个半拍; 啦,中音,1个半拍; 嗦,中音,4个半拍

    0, 0, 0};

    //结束标记

    //--------------------------------------

    记住:三个数字一组,代表一个音符。

    第一个数字是1234567之一,代表音符哆来咪发...;

    第二个数字是0123之一,代表低音、中音、高音、超高音;

    第三个数字是半拍的个数,代表时间长度。

    当三个数字都是0,就代表乐曲数据表的结尾。

    用这个数据表,替换掉程序中《世上只有妈妈好》的数据表,本程序就可以播放《送别》的前两小节。

    更多相关内容
  • 基于51单片机蜂鸣器音乐播放器代码,直接在代码中包含头文件,调用函数即可使用,可自行添加歌曲谱播放
  • 51单片机蜂鸣器音乐

    2020-07-04 11:27:14
    通过设置开关频率使蜂鸣器发出不同音节,只需要在程序里调用就可以奏出你想要的音乐。无源蜂鸣器的效果比有源的稍微好一些。
  • 51单片机蜂鸣器唱歌软件 1.zip51单片机蜂鸣器唱歌软件 1.zip51单片机蜂鸣器唱歌软件 1.zip51单片机蜂鸣器唱歌软件 1.zip51单片机蜂鸣器唱歌软件 1.zip51单片机蜂鸣器唱歌软件 1.zip
  • C利用51单片机蜂鸣器演奏音乐,硬件接法:P36控制交流蜂鸣器,发声频率等于P36的方波振荡频率。在本程序中,定时器初始值计算方法:假设音乐频率为 X,晶振为11.0592MHz 一、先求出一个定时周期的时间 1.求机器...
  • 有人说现在可以唱歌的扬声器那么普遍,为什么要用蜂鸣器播放音乐呢?其实用蜂鸣器播放音乐的地方有很多,有些地方需要做一些特别的提示音,如果用扬声器的话成本又划不来,而使用蜂鸣器就十分合适了。同时用这个做...
  • 编写一个能发相应频率声音的子程序。...续的时间时候常常和音乐的拍子有相关性。 最后在主程序中运行子程序通过读rom里面的数组来达到连续播放各种不同音调的音 的目的这样听起来就像一首曲子了。
  • C语言控制51单片机蜂鸣器播放音乐,另附单片机演奏音乐时音调和节拍的确定方法。压缩包内有两个使用51单片机播放音乐的实验程序源代码,供初学者参考。
  • 51单片机蜂鸣器音乐实验(致爱丽丝) 需要蜂鸣器即可,运行前请检查IO口的设置
  • 摘要:VC/C++源码,多媒体技术,51单片机,蜂鸣器 C语言控制51单片机蜂鸣器播放音乐,另附单片机演奏音乐时音调和节拍的确定方法。压缩包内有两个使用51单片机播放音乐的实验程序源代码,供初学者参考。
  • 51单片机+蜂鸣器 播放音乐 4按键换歌
  • 摘要:VC/C++源码,其它分类,51单片机,蜂鸣器 C利用51单片机蜂鸣器演奏音乐,硬件接法:P36控制交流蜂鸣器,发声频率等于P36的方波振荡频率。在本程序中,定时器初始值计算方法:假设音乐频率为 X,晶振为11.0592MHz ...
  • 51单片机蜂鸣器七音【音乐七音】
  • 使用51单片机蜂鸣器输出三首音乐:送别、爬音阶、八月桂花。当然了,可以随意更换乐曲,把谱输入数组就行。在播放过程中,使用外部中断来暂停音乐,使用独立按键来选择音乐。经过调试该程序可行。其中蜂鸣器接p1.5...
  • 51单片机蜂鸣器播放音乐代码

    千次阅读 2021-05-22 11:01:50
    //播放完后暂停一段时间 } } /*两只蝴蝶歌曲*//*******************************************/ #include // 这是 单片机音乐代码生成 生成的代码 #define uchar unsigned char sbit beepIO=P1^5; // 输出 为 P...

    /*生日快乐歌曲*//*******************************************/

    #include

    #define uint unsigned int

    #define uchar unsigned char

    sbit beep = P1^5;

    uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,

    212,212,106,126,159,169,190,119,119,126,159,142,159,0};

    uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,

    9,3,12,12,12,12,12,9,3,12,12,12,24,0};

    //延时

    void DelayMS(uint x)

    {

    uchar t;

    while(x--) for(t=0;t<120;t++);

    }

    void PlayMusic()

    {

    uint i=0,j,k;

    while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)

    { //播放各个音符,SONG_LONG 为拍子长度

    for(j=0;j

    {

    beep=~beep;

    //SONG_TONE 延时表决定了每个音符的频率

    for(k=0;k

    }

    DelayMS(10);

    i++;

    }

    }

    void main()

    {

    beep=0;

    while(1)

    {

    PlayMusic(); //播放生日快乐

    DelayMS(500); //播放完后暂停一段时间

    }

    }

    /*两只蝴蝶歌曲*//*******************************************/

    #include              // 这是  单片机音乐代码生成器  生成的代码

    #define uchar unsigned char

    sbit beepIO=P1^5;                 // 输出 为 P1.5  可以修改 成 其它 IO 口

    uchar m,n;

    uchar code T[49][2]={{0,0},

    {0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B},

    {0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05},

    {0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02},

    {0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81}

    };

    uchar code music[][2]={{0,4},

    {23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},

    {23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,24},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{21,24},

    {23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},

    {23,4},{26,4},{26,16},{26,4},{28,4},{26,4},{23,24},{21,4},{23,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{16,2},{19,2},{19,24},{0,20},

    {26,4},{26,4},{28,4},{31,4},{30,4},{30,4},{28,4},{23,4},{21,4},{21,4},{23,16},{0,4},{23,4},{23,4},{26,4},{28,8},{28,12},{16,4},{23,4},{21,4},

    {21,24},{23,4},{26,4},{26,4},{23,4},{26,8},{0,4},{31,8},{30,4},{28,4},{30,4},{23,8},{0,4},{28,4},{28,4},{30,4},{28,4},{26,4},{23,4},{21,8},{23,4},{21,4},{23,4},{26,16},

    {0xFF,0xFF}};

    void delay(uchar p)

    {

    uchar i,j;

    for(;p>0;p--)

    for(i=181;i>0;i--)

    for(j=181;j>0;j--);

    }

    void pause()

    {

    uchar i,j;

    for(i=150;i>0;i--)

    for(j=150;j>0;j--);

    }

    void T0_int() interrupt 1

    {

    beepIO=!beepIO;

    TH0=T[m][0]; TL0=T[m][1];

    }

    void main()

    {

    uchar i=0;

    TMOD=0x01;  EA=1; ET0=1;

    while(1)

    {

    m=music[i][0];n=music[i][1];

    if(m==0x00)

    {TR0=0;delay(n);i++;}

    else if(m==0xFF)

    {TR0=0;delay(30);i=0;}

    else if(m==music[i+1][0])

    {TR0=1;delay(n);TR0=0;pause();i++;}

    else

    {TR0=1;delay(n);i++;}

    }

    }

    /*祝你平安*//*******************************************/

    #include "reg52.h"

    unsigned char Count;

    sbit _Speak =P1^5 ;

    unsigned char code SONG[] ={      //祝你平安

    0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,

    0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,

    0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,

    0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,

    0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,

    0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,

    0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,

    0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,

    0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,

    0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,

    0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,

    0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,

    0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,

    0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00};

    void Time0_Init()

    {

    TMOD = 0x01;

    IE   = 0x82;

    TH0  = 0xD8;

    TL0  = 0xEF;  //12MZ晶振,10ms

    }

    void Time0_Int() interrupt 1

    {

    TH0 = 0xD8;

    TL0 = 0xEF;

    Count++;   //长度加1

    }

    /*-------------------------------------------------

    功能:1MS延时子程序

    -------------------------------------------------*/

    void Delay_xMs(unsigned int x)

    {

    unsigned int i,j;

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

    {

    for( j =0;j<3;j++ );

    }

    }

    void Play_Song(unsigned char i)

    {

    unsigned char Temp1,Temp2;

    unsigned int Addr;

    Count = 0;      //中断计数器清0

    Addr = i * 217;

    while(1)

    {

    Temp1 = SONG[Addr++];

    if ( Temp1 == 0xFF )          //休止符

    {

    TR0 = 0;

    Delay_xMs(100);

    }

    else if ( Temp1 == 0x00 )   //歌曲结束符

    {

    return;

    }

    else

    {

    Temp2 = SONG[Addr++];

    TR0 = 1;

    while(1)

    {

    _Speak = ~_Speak;

    Delay_xMs(Temp1);

    if ( Temp2 == Count )

    {

    Count = 0;

    break;

    }

    }

    }

    }

    }

    /*-------------------------------------------------

    功能:主程序

    -------------------------------------------------*/

    void main()

    {

    Time0_Init();   //定时器0中断初始化

    while(1)

    {

    Play_Song(0);  //播放

    }

    }

    展开全文
  • 51单片机蜂鸣器代码

    2019-04-12 20:11:33
    51单片机蜂鸣器代码 用于最简单的51单片机基础知识
  • 51单片机蜂鸣器beep

    2022-02-01 09:38:13
    51单片机蜂鸣器beep
  • /************************************************************************[文件名]C51音乐程序(八月桂花)[功能] 通过单片机演奏音乐/**********************************************************************/#...

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

    [文件名]  C51音乐程序(八月桂花)

    [功能]    通过单片机演奏音乐

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

    #include

    #include

    //本例采用89C52, 晶振为12MHZ

    //关于如何编制音乐代码, 其实十分简单,各位可以看以下代码.

    //频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;

    //所以拿出谱子, 试探编吧!

    sbit Beep =  P2^1 ;

    unsigned char n=0;  //n为节拍常数变量

    unsigned char code music_tab[] ={

    0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,

    0x20, 0x40, 0x1C , 0x10,

    0x18, 0x10, 0x20 , 0x10,

    0x1C, 0x10, 0x18 , 0x40,

    0x1C, 0x20, 0x20 , 0x20,

    0x1C, 0x20, 0x18 , 0x20,

    0x20, 0x80, 0xFF , 0x20,

    0x30, 0x1C, 0x10 , 0x18,

    0x20, 0x15, 0x20 , 0x1C,

    0x20, 0x20, 0x20 , 0x26,

    0x40, 0x20, 0x20 , 0x2B,

    0x20, 0x26, 0x20 , 0x20,

    0x20, 0x30, 0x80 , 0xFF,

    0x20, 0x20, 0x1C , 0x10,

    0x18, 0x10, 0x20 , 0x20,

    0x26, 0x20, 0x2B , 0x20,

    0x30, 0x20, 0x2B , 0x40,

    0x20, 0x20, 0x1C , 0x10,

    0x18, 0x10, 0x20 , 0x20,

    0x26, 0x20, 0x2B , 0x20,

    0x30, 0x20, 0x2B , 0x40,

    0x20, 0x30, 0x1C , 0x10,

    0x18, 0x20, 0x15 , 0x20,

    0x1C, 0x20, 0x20 , 0x20,

    0x26, 0x40, 0x20 , 0x20,

    0x2B, 0x20, 0x26 , 0x20,

    0x20, 0x20, 0x30 , 0x80,

    0x20, 0x30, 0x1C , 0x10,

    0x20, 0x10, 0x1C , 0x10,

    0x20, 0x20, 0x26 , 0x20,

    0x2B, 0x20, 0x30 , 0x20,

    0x2B, 0x40, 0x20 , 0x15,

    0x1F, 0x05, 0x20 , 0x10,

    0x1C, 0x10, 0x20 , 0x20,

    0x26, 0x20, 0x2B , 0x20,

    0x30, 0x20, 0x2B , 0x40,

    0x20, 0x30, 0x1C , 0x10,

    0x18, 0x20, 0x15 , 0x20,

    0x1C, 0x20, 0x20 , 0x20,

    0x26, 0x40, 0x20 , 0x20,

    0x2B, 0x20, 0x26 , 0x20,

    0x20, 0x20, 0x30 , 0x30,

    0x20, 0x30, 0x1C , 0x10,

    0x18, 0x40, 0x1C , 0x20,

    0x20, 0x20, 0x26 , 0x40,

    0x13, 0x60, 0x18 , 0x20,

    0x15, 0x40, 0x13 , 0x40,

    0x18, 0x80, 0x00

    };

    void int0()  interrupt 1   //采用中断0 控制节拍

    {  TH0=0xd8;

    TL0=0xef;

    n--;

    }

    void delay (unsigned char m)   //控制频率延时

    {

    unsigned i=3*m;

    while(--i);

    }

    void delayms(unsigned char a)  //豪秒延时子程序

    {

    while(--a);                  //采用while(--a) 不要采用while(a--); 各位可编译一下看看汇编结果就知道了!

    }

    void main()

    { unsigned char p,m;   //m为频率常数变量

    unsigned char i=0;

    TMOD&=0x0f;

    TMOD|=0x01;

    TH0=0xd8;TL0=0xef;

    ……………………

    …………限于本文篇幅 余下代码请从51黑下载附件…………

    展开全文
  • 51内核单片机蜂鸣器实现警笛声c语言
  • 51单片机为主体利用轰鸣播放的音乐
  • 使用无源蜂鸣器播放欢乐颂,程序使用乐谱编辑软件制作
  • 51单片机的生日快乐歌C语言程序 ,51单片机的生日快乐歌C语言程序 ,
  • 51单片机蜂鸣器实现救护车报警声
  • 51单片机 使用蜂鸣器播放简单音乐

    千次阅读 2021-05-22 11:00:52
    MCU型号 STC 89C52RC#include#defineRldTmr(fr)65536-(11059200/12)/(fr<<1)#defineFuDian(n)(n<<1)/3//附点n分音符的换算typedefunsignedcharUCHAR;typedefunsignedintUINT;typedefunsignedlongULONG;...

    MCU型号 STC 89C52RC

    #include

    #defineRldTmr(fr)65536-(11059200/12)/(fr<<1)

    #defineFuDian(n)(n<<1)/3//附点n分音符的换算

    typedefunsignedcharUCHAR;

    typedefunsignedintUINT;

    typedefunsignedlongULONG;

    sbitBUZZ=P1^6;

    UINTcodenoteFreq[]={//中音1-7和高音1-7对应的频率列表

    523,587,659,698,784,880,988,

    1047,1175,1319,1397,1568,1760,1976

    };

    UINTcodetmrRld[]={//中音1-7和高音1-7对应的定时器重载值

    RldTmr(523),RldTmr(587),RldTmr(659),RldTmr(698),RldTmr(784),RldTmr(880),RldTmr(988),

    RldTmr(1047),RldTmr(1175),RldTmr(1319),RldTmr(1397),RldTmr(1568),RldTmr(1760),RldTmr(1976),

    };

    UCHARcodemusicNote[]={//音名

    1,2,3,1,

    1,2,3,1,

    3,4,5,

    3,4,5,

    5,6,5,4,3,1,

    5,6,5,4,3,1,

    1,5,1,

    1,5,1

    };

    UCHARcodenoteDuration[]={//音名对应的时值,4表示4分音符,8表示8分音符,16表示16分音符

    4,4,4,4,

    4,4,4,4,

    4,4,2,

    4,4,2,

    FuDian(8),16,FuDian(8),16,4,4,

    FuDian(8),16,FuDian(8),16,4,4,

    4,4,2,

    4,4,2

    };

    bitenable=1,tmrFlg=0;

    UCHART0RH=0XFF,T0RL=0X00;

    voidDelay(UINTn);

    voidPlayMusic(UCHARspeed);//固定标准为4分音符的速度:例如speed=108表示一分钟扫过108个4分音符

    voidmain(){

    EA=1;

    TMOD=0X01;

    TH0=T0RH;

    TL0=T0RL;

    ET0=1;

    TR0=1;

    while(1){

    PlayMusic(72);

    Delay(40000u);

    }

    }

    voidDelay(UINTn){

    UINTi;

    for(i=0;i}

    voidPlayMusic(UCHARspeed){

    UCHARi;

    UCHARidx;

    UINTcnt=0;

    UINTdurationCnt=0;//当前音符的时值对应的定时器计数

    UINTsoundCnt=0;//当前音符的发声时值对应的计数值

    for(i=0;iwhile(!tmrFlg);

    tmrFlg=0;

    if(cnt==0){

    idx=musicNote[i]-1;

    T0RH=tmrRld[idx]>>8;

    T0RL=tmrRld[idx];

    durationCnt=(ULONG)240*(ULONG)noteFreq[idx]/((ULONG)noteDuration[i]*(ULONG)speed);

    soundCnt=durationCnt-(durationCnt>>2);//当前音符时值的前3/4发声,后1/4静音

    enable=1;

    cnt++;

    }

    else{

    if(cnt==durationCnt){

    cnt=0;

    i++;

    }

    else{

    cnt++;

    if(cnt==soundCnt){

    enable=0;

    }

    }

    }

    }

    }

    voidInterruptTmr0()interrupt1{

    TH0=T0RH;

    TL0=T0RL;

    tmrFlg=1;

    if(enable)

    BUZZ=~BUZZ;

    else

    BUZZ=1;

    }

    展开全文
  • 51单片机实验-蜂鸣器播放音乐

    千次阅读 2021-10-03 19:33:39
    51单片机实验-蜂鸣器播放音乐 题目:编程实现利用单片机使蜂鸣器播放“茉莉花”的乐曲。 学校单片机时写的,利用单片机控制蜂鸣器播放乐曲,开发板上的蜂鸣器可以用三极管驱动,需要根据乐谱来设置当前节拍的发声...
  • reg51.h> #include <stdio.h> sbit beep = P2^3; unsigned char timer0h, timer0l, time; code unsigned char high[] = { 0xF8, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC,//低音1234567 0xFC, 0xFC, 0...
  • 51单片机实例+蜂鸣器音乐播放

    热门讨论 2011-09-21 17:27:21
    该工程实现了51单片机蜂鸣器音乐播放,内有详细注释和程序,完整的工程
  • //单片机开发板型号不同需要修改为所对应的蜂鸣器管脚 uchar code sound[]={0xff, 0x2b,0x30,0x30,0x10,0x2b,0x30,0x30,0x10,0x2b,0x20,0x26,0x20,0x20,0x20, 0x26,0x20,0x2b,0x30,0x30,0x10,0x2b,0x30,0x30,0x10,...
  • 无源蜂鸣器播放《黑人抬棺》.rar

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,564
精华内容 2,225
关键字:

51单片机蜂鸣器音乐

友情链接: jQueryPHTML5.rar