在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 89S51演奏生日快樂的歌曲c程序

            89S51演奏生日快樂的歌曲c程序

            作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
            程序描述:這個(gè)程序利用89S51演奏生日快樂的歌曲 */

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

            本文引用地址:http://www.biyoush.com/article/201611/315594.htm

            #include

            void delay(unsigned char n); //函數(shù)delay()存在 文件delay.c

            code unsigned song[]={

            0x82,0x01,0x81,0x94,0x84,0xB4,0xA4,0x04,0x82,0x01,0x81,

            0x94,0x84,0xC4,0xB4,0x04, 0x82,0x01,0x81,0xF4,0xD4,0xB4,

            0xA4,0x94,0xE2,0x01,0xE1,0xD4,0xB4,0xC4,0xB4,0x04,

            0x82,0x01,0x81,0x94,0x84,0xB4,0xA4,0x04,0x82,0x01,0x81,

            0x94,0x84,0xC4,0xB4,0x04, 0x82,0x01,0x81,0xF4,0xD4,0xB4,

            0xA4,0x94,0xE2,0x01,0xE1,0xD4,0xB4,0xC4,0xB4,0x04,

            0x00};

            code int note[]={

            0x0000,0xFB03,0xFB8E,0xFC0B,0xFC43,0xFCAB,0xFD08,0xFD32,

            0xFD81,0xFDC7,0xFE05,0xFE21,0xFE55,0xFE83,0xFE99,0xFEC0};

            unsigned char i=0;

            unsigned char hi_note,low_note;

            static void timer1_isr(void) interrupt TF1_VECTOR using 2

            {

            TR1=0;

            TL1=low_note;

            TH1=hi_note;

            TR1=1;

            P3_7=3_7;

            }

            static void timer1_initialize(void)

            {

            EA=0;

            TR1=0;

            TMOD = 0X10;

            ET1=1;

            EA=1;

            }

            void singing()

            {

            unsigned char beat,temp;

            i=0;

            do {

            temp=song[i]; // 讀出樂譜的一個(gè)byte

            if (temp==0) { // 如果是0就表示音樂結(jié)束

            TR1=0; // 停止計(jì)時(shí)計(jì)數(shù)器1

            return; // 返回

            }

            beat=temp & 0x0f; //取出低階的4位,這是拍子

            temp=(temp >> 4) & 0x0f; //取出高階4位當(dāng)成音符的頻率

            if (temp==0) TR1=0; //如果拍子是0就表示休止符

            else {

            hi_note=note[temp] >> 8; //根據(jù)音符的頻率得到Timer1計(jì)數(shù)值

            low_note=note[temp] & 0x00FF;

            TR1=1; //啟動(dòng)計(jì)時(shí)計(jì)數(shù)器1

            }

            delay(beat); // 延遲拍子的時(shí)間

            i++;

            } while(1);

            }

            void main (void) {

            timer1_initialize();

            do {

            singing();

            } while (1); // 無窮循環(huán)

            }



            評論


            技術(shù)專區(qū)

            關(guān)閉