51单片机用无源蜂鸣器播放凤凰传奇神曲

来源:互联网 发布:163 smtp设置 端口 编辑:程序博客网 时间:2024/04/28 19:24
#include"Buzzer_music.h" //左边发射极uchar time_h,time_l;sbit BUZZER = P2^3; void main(){    uchar i,j;    P2M1 = 0X00;    P2M0 = 0XFF;    TMOD = 0x01;    ET0 = 1;    EA = 1;//  TR0 = 1;    i = 0;    j = 0;    while(1)    {        while(display[i][1] != 0xff)        {//          if(display[i][0] == 0xff)//          {//              TR0 = 0;//              Delay_ms(100);//          }//          else//          {                time_h = m_note[display[i][0]][0];                time_l = m_note[display[i][0]][1];                TH0 = time_h;                TL0 = time_l;                ET0 = 1;                TR0 = 1;                Delay_ms(1000);                TR0 = 0;                ET0 = 0;                BUZZER = 0;//          }            Delay(display[i][1]);            i++;        }        i = 0;    }} void Timer0() interrupt 1{    TR0 = 0;    TH0 = time_h;    TL0 = time_l;    BUZZER = ~BUZZER;    TR0 = 1;}

#include<12C5A60S2.h>#define uchar unsigned char#define uint  unsigned int#define REST    36          //休止符#define A       0          //低音1#define AB      1          //低音1.5#define B       2          //低音2#define BC      3          //低音2.5#define C       4          //低音3#define D       5          //低音4#define DE      6          //低音4.5#define E       7          //低音5#define EF      8          //低音5.5#define F       9          //低音6#define FG      10          //低音6.5#define G       11          //低音7#define L       12          //中音1#define LM      13          //中音1.5#define M       14          //中音2#define MN      15          //中音2.5#define N       16         //中音3#define O       17          //中音4#define OP      18          //中音4.5#define P       19          //中音5#define PQ      20          //中音5.5#define Q       21          //中音6#define QR      22          //中音6.5#define R       23          //中音7#define S       24          //高音1#define SU      25          //高音1.5#define U       26          //高音2#define UV      27          //高音2.5#define V       28          //高音3#define W       29          //高音4#define WX      30          //高音4.5#define X       31          //高音5#define XY      32          //高音5.5#define Y       33          //高音6#define YZ      34          //高音6.5#define Z       35          //高音7  //乐谱(最炫民族风)uchar code display[][2] = {{N,8},{F,4},{F,4},{L,8},{N,8},{M,4},{M,2},{N,2},{M,4},{L,4},{M,4},{L,4},{F,8},{N,8},{F,4},{F,4},{L,8},{N,8},{P,4},{M,2},{N,2},{M,4},{L,4},{M,4},{L,4},{G,4},{E,4},{N,8},{F,4},{F,4},{L,8},{N,8},{M,4},{M,2},{N,2},{M,4},{L,4},{M,4},{L,4},{F,4},{E,4},{N,8},{F,4},{F,4},{L,8},{N,8},{P,4},{N,4},{0xff,24},//前奏{F,8},{F,4},{E,4},{F,8},{F,4},{L,4},{L,8},{M,4},{L,4},{F,8},{0xff,8},{L,8},{L,4},{E,4},{L,4},{M,4},{N,4},{P,4},{P,4},{N,4},{M,8},{N,8},{0xff,8},{Q,4},{Q,4},{Q,4},{E,4},{N,4},{N,8},{L,4},{F,4},{F,4},{F,4},{N,4},{M,8},{0xff,8},{N,4},{N,4},{P,4},{N,4},{M,4},{N,4},{M,4},{L,4},{F,8},{E,8},{F,8},{0xff,8},{F,8},{F,4},{E,4},{F,8},{F,4},{L,4},{L,8},{M,4},{L,4},{F,8},{0xff,8},{L,8},{L,4},{E,4},{L,4},{M,4},{N,4},{P,4},{P,4},{N,4},{M,8},{N,8},{0xff,8},{Q,4},{Q,4},{Q,4},{E,4},{N,4},{N,8},{L,4},{F,4},{F,4},{F,4},{N,4},{M,8},{0xff,8},{N,4},{N,4},{P,4},{N,4},{M,4},{N,4},{M,4},{L,4},{F,8},{E,8},{F,8},{0xff,8},{N,4},{N,4},{P,4},{N,4},{N,4},{P,4},{P,4},{Q,4},{S,4},{Q,4},{P,8},{Q,8},{0xff,8}, //此处有变调{F,8},{F,4},{E,4},{F,8},{L,8},{M,4},{N,2},{M,2},{L,4},{M,4},{M,8},{0xff,8},{F,4},{Q,4},{Q,4},{P,4},{M,4},{N,2},{M,2},{L,4},{M,4},{M,8},{0xff,8},{0xff,16},{L,4},{F,4},{F,4},{L,4},{M,8},{E,4},{E,4},{N,4},{P,4},{N,4},{M,4},{L,8},{0xff,8},{F,4},{L,4},{M,4},{N,4},{M,4},{L,4},{E,4},{C,4},{F,8},{0xff,8},{0xff,16},//{F,8},{F,4},{E,4},{F,8},{L,8},{M,4},{N,2},{M,2},{L,4},{M,4},{M,8},{0xff,8},{F,4},{Q,4},{Q,4},{P,4},{M,4},{N,2},{M,2},{L,4},{M,4},{M,8},{0xff,8},{0xff,16},{L,4},{F,4},{F,4},{L,4},{M,8},{E,4},{E,4},{N,4},{P,4},{N,4},{M,4},{L,12},{L,4},{F,4},{L,4},{M,4},{N,4},{P,4},{N,4},{N,4},{P,4},{Q,8},{0xff,8},{Q,8},{0xff,8},{0,0xff},}; //音阶uchar code m_note[][2] = {{248,136},{248,243},{249,88},{249,184},{250,18},{250,103},{250,184},{251,3},{251,75},{251,143},{251,206},{252,11},{252,67},{252,121},{252,172},{252,219},{253,9},{253,51},{253,91},{253,129},{253,165},{253,199},{253,231},{254,5},{254,33},{254,60},{254,85},{254,109},{254,132},{254,153},{254,173},{254,192},{254,210},{254,227},{254,243},{255,2},{0,0},}; //音符(1对应三十二分音符,32对应全音符)void Delay(uchar x){    uint i,j;    for(i = 0;i < x;i++)        for(j = 0;j < 10000;j++);} void Delay_ms(uint x){    uint i,j;    for(i = 0;i < x;i++)        for(j = 0;j < 120;j++);}