久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1511|回復: 0
打印 上一主題 下一主題
收起左側

51單片機音樂播放,交流貼

[復制鏈接]
跳轉到指定樓層
樓主
ID:347544 發(fā)表于 2018-6-8 13:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg51.h>
#include <intrins.h>
#include <yinyue.h>
#define uchar unsigned char
#define uint unsigned int
sbit beep=P2^0;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
uchar code led[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
uchar code led1[]={0x01,0x83,0xc7,0xef,0xff};
uchar tone_H, tone_L, times, i=0, j, temp, x;
uchar beat_H=(65536-62500)/256;
uchar beat_L=(65536-62500)%256;
bit flag,flag1;
void play(uchar *song,uchar *beat);
void display_led();
void delay(uint m)
{
while(--m);
}
void init()
{
  flag1=1;
  beep=0;
  EA=1;
  ET0=1;
  ET1=1;
  TMOD=0x11;
}
void main()
{
        init();
        while(1)
        {
                if(flag1)
                        {
                                if(key1==0)
                                {
                                        delay(3000);
                                        play(song1,beat1);
                                }else
                                        if(key2==0)
                                        {
                                                delay(3000);
                                                play(song2,beat2);
                                        }else       
                                                if(key3==0)
                                                {
                                                        delay(3000);
                                                       play(song3,beat3);
                                               }
                }else
                        display_led();
          }
        }
        void play(uchar  *song,uchar  *beat)
         {
                while(song[i]!=15)
                 {
                          P0=0xff;
                          times=beat[i];   
                        flag=0;                                               
                        tone_H=(65536-tone[song[i]]-6)/256;
                        tone_L=(65536-tone[song[i]]-6)%256;
                        TH0=tone_H;   
                        TL0=tone_L;
                        TH1=beat_H;   
                        TL1=beat_L;
                          TR0=1;   
                        TR1=1;
                        while(flag==0);
                        i++;
                        TR0=0;
                        TR1=1;
                        flag1=0;
                }
        }
        void display_led()
        {
                for(x=0;x<2;x++)
                {
                        for(j=0;j<8;j++)
                        {
                                P1=led[j];
                                delay(50000);
                        }
                        delay(5000);
                        for(j=0;j<5;j++)
                        {
                                P1=led1[j];
                                delay(50000);
                        }
                        delay(5000);
                        for(j=0;j<5;j++)
                        {
                                P1=led1[4-j];
                                delay(50000);
                        }
                        delay(10000);
                        for(j=0;j<6;j++)
                        {
                                P1=0x00;
                                delay(20000);
                                P1=0xff;
                                delay(20000);
                        }
                }
                P1=0x00;
                delay(50000);
                flag1=1;
        }
        void timer0() interrupt 1
        {
                TH0=tone_H;
                TL0=tone_L;
                if(flag==1)
                        TR0=0;
                else
                        beep=~beep;
        }
        void timer1() interrupt 3
        {
                TH1=beat_H;
                TL1=beat_L;
                if(times==0)
                {
                        flag=1;
                        TR1=0;
                }
                times--;
        }

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久中文字幕视频 | 一区二区三区亚洲 | 91视频网址 | 日韩精品在线视频免费观看 | 国产高清无av久久 | 天天色综| 特级特黄特色的免费大片 | av黄色在线观看 | 国产一区二区三区免费 | 综合国产 | 四虎成人免费视频 | 国产精品不卡 | 九九免费| 久久久久国产精品一区 | 一区二区福利视频 | 99pao成人国产永久免费视频 | 羞羞视频在线免费 | 精品一区二区三区91 | 久久久www成人免费无遮挡大片 | 特级黄一级播放 | 成人在线中文字幕 | 成年免费大片黄在线观看一级 | 日韩高清不卡 | 日韩亚洲视频在线 | 国产一区影院 | 国产最新网址 | 精品国产乱码久久久久久丨区2区 | 欧美日韩国产在线 | 国产成人免费视频网站视频社区 | 影音先锋男 | 一片毛片| 日韩激情在线 | 一区二区久久精品 | 久久99精品久久久久婷婷 | 国产高清视频一区 | 在线精品一区二区三区 | 久久久久久久一区 | 国产一区二区在线播放 | 欧美一级黄视频 | 欧美黄在线观看 | 天天干天天爽 |