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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1381|回復: 0
打印 上一主題 下一主題
收起左側(cè)

音樂鬧鐘

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:330032 發(fā)表于 2018-5-15 13:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#include<lcd.h>
#include<1302.h>
#include<music_code.h>
#include<SoundPlay.h>
#include<dds.h>
uchar code time[]={'0','1','2','3','4','5','6','7','8','9'};
uchar code get_up[]="Time to Get up!";
uchar code str[]="Never frown,even when you are sad,because you never know who is falling in love with your smile! To the world you may be one person,but to one person you may be the world ";
uchar code menu[4][10]={{"Time Set"},{"Music"},{"Books"},{"Ring Set"}};
void main()
{
        ini();
        open();
        delay(255);
        delay(255);
        delay(255);
        delay(255);
        write_order(0x01);
        init_ds1302();
        set_ds1302(time_add,initial_time);
        while(1)
        {
                read_ring();
                if(ring_time[0]==now_time[0]&&ring_time[1]==now_time[1]&&ring_time[2]==now_time[2])
                {
                        timeup();
                }
                detect();
                write_order(0x80+0x04);               
                for(i=0;menu[key][i]!=0;i++)
                {
                        write_date(menu[key][i]);
                }
                get_ds1302();
                write_order(0x80+0x40);
                write_date(time[now_time[4]>>4]);
                write_date(time[now_time[4]&0x0f]);
                write_date(0x01);
                write_date(time[now_time[3]>>4]);
                write_date(time[now_time[3]&0x0f]);
                write_date(0x00);
                write_date(' ');
                write_date(' ');
                write_date(time[now_time[2]>>4]);
                write_date(time[now_time[2]&0x0f]);
                write_date(':');
                write_date(time[now_time[1]>>4]);
                write_date(time[now_time[1]&0x0f]);
                write_date(':');
                write_date(time[now_time[0]>>4]);
                write_date(time[now_time[0]&0x0f]);
                if(key==2)
                {
               
                        sum=0;
                        book();

                }
                if(key==1)
                {
                        music();

                }
                if(key==3)
                {               
                        alamn();
       
                }
                if(key==0)
                {       
                        time_set();
       
                }
        }
}
void detect()
{
        uchar temp;
        temp=P1;
        temp=temp&0x0f;
        if(temp!=0x0f)
        {
                switch(temp)
                {
                        case 0x0e:
                                while(temp!=0x0f)
                        {
                                temp=P1;
                                temp=temp&0x0f;
                        }
                        if(key==0)
                        {
                                key=4;
                        }
                        key--;
                        flag=1;
                        write_order(0x01);
                        break;
                        case 0x0d:
                                while(temp!=0x0f)
                        {
                                temp=P1;
                                temp=temp&0x0f;
                        }
                        key++;
                        flag=2;
                        if(key==4)
                        {
                                key=0;
                        }
                        write_order(0x01);
                        break;
                        case 0x0b:
                                while(temp!=0x0f)
                        {
                                temp=P1;
                                temp=temp&0x0f;
                        }
                        flag=3;
                        write_order(0x01);
                        break;
                        case 0x07:
                                while(temp!=0x0f)
                        {
                                temp=P1;
                                temp=temp&0x0f;
                        }
                        flag=4;
                        write_order(0x01);
                        break;
                }
        }

}
void page(uchar k)
{
        write_order(0x80);
        for(i=k*32;i<k*32+16&&str[i]!='\0';i++)
        {
                write_date(str[i]);
        }
        write_order(0x80+0x40);
        for(i=k*32+16;i<k*32+32&&str[i]!='\0';i++)
        {
                write_date(str[i]);
        }
}

void book()
{                       
       
                        flag=0;
                        detect();
                        if(flag==3)
                        {
                        flag=0;
                        page(sum);
                        while(flag!=4)
                        {
                                detect();
                                if(flag==1)
                                {
                                        flag=0;
                                        if(sum!=0)
                                        {
                                        sum--;
                                        }
                                        page(sum);
                                }
                                if(flag==2)
                                {
                                        flag=0;
                                        if(sum<5)
                                        {
                                                sum++;
                                        }
                                        page(sum);
                                }
                        }
                        key=2;
                        }
}

void alamn()
{
                        flag=0;
                        detect();
                        if(flag==3)
                        {
                                flag=0;
                                while(flag!=4)
                                {                                       
                                        write_order(0x80+0x02);
                                        write_date(time[move[0]]);
                                        write_date(time[move[1]]);
                                        write_date(':');
                                        write_date(time[move[2]]);
                                        write_date(time[move[3]]);
                                        detect();
                                        if(flag==1)
                                        {
                                                flag=0;
                                                move[1]++;
                                               
                                                if(move[1]==10)
                                                        {
                                                                move[1]=0;
                                                                move[0]++;
                                                        }
                                               
                                                if(move[0]==2)
                                                {
                                                        if(move[1]==4)
                                                        {
                                                                move[1]=0;
                                                                move[0]=0;
                                                        }
                                                }
                                                ringgo[2]=move[0]<<4|move[1];
                                        }
                                        if(flag==2)
                                        {
                                                flag=0;
                                                move[3]++;
                                                if(move[3]==10)
                                                {
                                                        move[3]=0;
                                                        move[2]++;
                                                        if(move[2]==6)
                                                        {
                                                                move[2]=0;
                                                        }
                                                }
                                                ringgo[1]=move[2]<<4|move[3];
                                        }
                                        if(flag==3)
                                        {
                                                set_ds1302(alamn_add,ringgo);
                                                flag=4;
                                        }
                                       
                                }
                                key=3;
                        }
}

void time_set()
{
                        flag=0;
                        detect();
                        if(flag==3)
                        {
                                flag=0;
                                while(flag!=4)
                                {                                       
                                        write_order(0x80+0x02);
                                        write_date(time[set[0]]);
                                        write_date(time[set[1]]);
                                        write_date(':');
                                        write_date(time[set[2]]);
                                        write_date(time[set[3]]);
                                        detect();
                                        if(flag==1)
                                        {
                                                flag=0;
                                                set[1]++;
                                               
                                                        if(set[1]==10)
                                                        {
                                                                set[1]=0;
                                                                set[0]++;
                                                        }
                                               
                                                if(set[0]==2)
                                                {
                                                        if(set[1]==4)
                                                        {
                                                                set[1]=0;
                                                                set[0]=0;
                                                        }
                                                }
                                                timego[2]=set[0]<<4|set[1];
                                        }
                                        if(flag==2)
                                        {
                                                flag=0;
                                                set[3]++;
                                                if(set[3]==10)
                                                {
                                                        set[3]=0;
                                                        set[2]++;
                                                        if(set[2]==6)
                                                        {
                                                                set[2]=0;
                                                        }
                                                }
                                                timego[1]=set[2]<<4|set[3];
                                        }
                                        if(flag==3)
                                {
                                        set_ds1302(time_add,timego);
                                        flag=4;
                                }
                                }
                                key=0;       
                        }
}

void timeup()
{       
                        write_order(0x01);
                        write_order(0x80+0x00);
                        for(i=0;get_up[i]!='\0';i++)
                        {
                                write_date(get_up[i]);
                        }
       
                                InitialSound();
                                switch(ring_song)
                                                {
                                                        case 0:Play(tale,0,3,300);break;
                                                        case 1:Play(coral,0,3,300);break;
                                                        case 2:Play(Meet,0,3,300);break;
                                                        case 3:Play(Love,0,3,340);break;
                                                }
                                write_order(0x01);
}

void music()
{
        if(flag==3)
                        {
                                flag=0;       
                                write_order(0x01);                                                       
                                while(flag!=4)
                                {
                                                detect();
                                                write_order(0x80);
                                                for(i=0;song[key][i]!='\0';i++)
                                        {                                               
                                                write_date(song[key][i]);
                                        }
                                        if(flag==3)
                                        {
                                                InitialSound();
                                                switch(key)
                                                {
                                                        case 0:Play(tale,0,3,300);break;
                                                        case 1:Play(coral,0,3,300);break;
                                                        case 2:Play(Meet,0,3,300);break;
                                                        case 3:Play(Love,0,3,340);break;
                                                }
                                                ring_song=key;
                                                while(!esc);
                                        }                             
                                }
                                write_order(0x01);
                                key=1;       
                        }
}


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

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 视频在线观看一区二区 | 国产高清精品一区 | 成人在线观看免费 | www.亚洲一区二区三区 | 九九亚洲 | 精品国产一区二区国模嫣然 | 日韩欧美一区二区三区四区 | 日韩成人精品一区 | 国产高清视频一区 | 国产精品久久久久久久久久久久 | 国产精品揄拍一区二区 | 日韩中文字幕在线视频 | 久久久成人一区二区免费影院 | 亚洲激情综合 | 久久精品色欧美aⅴ一区二区 | 成人免费大片黄在线播放 | 成人欧美一区二区三区在线观看 | 伊人色综合久久久天天蜜桃 | 久久久精品视频免费 | 成年人黄色一级毛片 | 在线视频一区二区三区 | 毛片一区二区 | 精品国产乱码久久久久久丨区2区 | 久久伊人在| 亚洲精品天堂 | 在线观看国产视频 | 日韩欧美一区二区三区免费看 | 中文字幕在线观看精品 | 91美女在线 | 免费毛片网站 | 亚洲天堂影院 | 日本涩涩视频 | 九九久久精品 | 韩日精品视频 | 成人影视网址 | 久久久激情 | 日韩av高清 | 久久久久se | 久久国产一区二区三区 | 91在线看片 | 成人99|