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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自己編的一段代碼,怎么樣可以加一段鬧鐘,求大神

[復制鏈接]
跳轉到指定樓層
樓主
ID:193544 發表于 2017-4-25 20:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
        uchar code table0[]=" 2017-4-25  TUE ";
        uchar code table1[]="    00:00:00";
        uchar code table2[]="  201405204106  ";
        uchar code table3[]="DianXin GaoXiang";
        uchar code table4[]="MONTUEWEDTHUFRISATSUN";
        uchar count,s1num;
        char miao,fen,shi,ri,yue,flag,flag_di,flag1,amiao,afen,ashi;
        uint nian;
        sbit lcd_rs = P2^5;
        sbit lcd_rw = P2^6;
        sbit lcd_en = P2^7;
        sbit s1=P3^0;        //主按鍵
        sbit s2=P3^1;        //加
        sbit s3=P3^2;        //減
        sbit s4=P3^3;        //開啟鬧鐘
        sbit beep=P2^0;   //
        sbit Output_squ=P3^6;       

        void delay(uint z)//延時子函數
        {
                uint x,y;
                for(x=z;x>0;x--)
                        for(y=110;y>0;y--);
        }
        void write_com(uchar com)//寫命令函數
        {
                lcd_rs = 0;
                P0= com;
                delay(5);
                lcd_en=1;
                delay(5);
                lcd_en=0;
        }
        void write_date(uchar date)//寫數據函數
        {
                lcd_rs = 1;
                P0= date;
                delay(5);
                lcd_en=1;
                delay(5);
                lcd_en=0;
        }
        void init()//初始化函數
        {       
            int num;
                shi=0;
                fen=0;
                miao=0;
                ri=25;
                yue=4;
                nian=2017;
                lcd_en=0;
                lcd_rw=0;
                write_com(0x38);//顯示設置模式
                write_com(0x0c);//00001100開顯示,不顯示光標,光標不閃爍
            write_com(0x06);//00000110地址指針加一,整屏不移動
                write_com(0x01);//清屏
                write_com(0x80);
                for(num=0;num<16;num++)//顯示數字201405204106
                {
                        write_date(table2[num]);
                        delay(100);
                }
                write_com(0x80+0x40);
                for(num=0;num<16;num++)//顯示DianXin GaoXiang
                {
                        write_date(table3[num]);
                        delay(100);       
                }
                delay(500);
                write_com(0x01);
                write_com(0x80);
                for(num=0;num<16;num++)//顯示日期
                {
                        write_date(table0[num]);
                        delay(5);
                }
                write_com(0x80+0x40);
                for(num=0;num<12;num++)//顯示時間
                {
                        write_date(table1[num]);
                        delay(5);
                }
                TMOD=0x51;//啟動定時器中斷
                TH0=0X3C; //50ms
                TL0=0XB0;
                TH1=0X00;
                TL1=0X00;
                EA=1;
                ET0=1;
                TR0=1;//打開定時器0
                TR1=1; //打開定時器0
        }
        void write_sfm(uchar add,uchar date)//寫時分秒函數
        {       
                uchar shi,ge;
                shi=date/10;
                ge=date%10;
                write_com(0x80+0x40+add);
                write_date(0x30+shi);
                write_date(0x30+ge);
        }
        void write_nyr(uint add,uint date)//寫年月日函數,此處若用uchar范圍只有0-255
        {                                                                  //不夠,改用uint(0-65535)
                uint qian,bai,shi,ge;
                qian=date/1000;
                bai=date%1000/100;
                shi=date%100/10;
                ge=date%10;
                write_com(0x80+add);
                write_date(0x30+qian);
                write_date(0x30+bai);
                write_date(0x30+shi);
                write_date(0x30+ge);
        }
        void write_yr(uchar add,uchar date)//寫月日函數
        {       
                uchar shi,ge;
                shi=date/10;
                ge=date%10;
                write_com(0x80+add);
                write_date(0x30+shi);
                write_date(0x30+ge);
        }
        void keyscan()//按鍵掃描函數
        {
                int m,n;
                if(s1==0)
                {
                        delay(5);
                        if(s1==0)//按鍵1光標移位掃描
                        {
                                s1num++;
                                if(s1num==1)
                                {       
                                    while(!s1);//等待按鍵松手
                                        write_com(0x80+0x40+10);
                                        TR0=0;//關閉定時器
                                        write_com(0x0f);  //開顯示,顯示光標,光標閃爍
                                }
                                if(s1num==2)
                                {
                                        while(!s1);
                                        write_com(0x80+0x40+7);       
                                }
                                if(s1num==3)
                                {
                                        while(!s1);
                                        write_com(0x80+0x40+4);
                                }
                                if(s1num==4)
                                {
                                        while(!s1);
                                        write_com(0x80+3);       
                                }
                                if(s1num==5)
                                {
                                        while(!s1);
                                        write_com(0x80+6);
                                }
                                if(s1num==6)
                                {
                                        while(!s1);
                                        write_com(0x80+9);
                                }
                                if(s1num==7)
                                {
                                        while(!s1)
                                        write_com(0x80+13);
                                }
                                if(s1num==8)
                                {
                                        while(!s1);
                                        s1num=0;
                                        write_com(0x0c);
                                        TR0=1;//開定時器
                                }       
                        }
                }
                if(s1num!=0)
                {       
                        if(s2==0)//按鍵2加功能
                        {
                                delay(5);
                                if(s2==0)
                                {
                                        while(!s2);
                                        if(s1num==1)//秒加
                                        {
                                                miao++;
                                                if(miao==60)
                                                {
                                                        miao=0;
                                                }
                                                write_sfm(10,miao);
                                                write_com(0x80+0x40+10);                       
                                        }
                                        if(s1num==2)//分加
                                        {
                                                fen++;
                                                if(fen==60)
                                                {
                                                        fen=0;
                                                }
                                                write_sfm(7,fen);
                                                write_com(0x80+0x40+7);
                                        }
                                        if(s1num==3)//時加
                                        {
                                                shi++;
                                                if(shi==24)
                                                {
                                                        shi=0;       
                                                }
                                                write_sfm(4,shi);
                                                write_com(0x80+0x40+4);
                                        }
                                        if(s1num==4)//年加
                                        {
                                                nian++;
                                                if(nian==10000)
                                                {
                                                        nian=2000;
                                                }
                                                write_nyr(1,nian);
                                                write_com(0x80+3);
                                        }
                                        if(s1num==5)//月份加
                                        {
                                                yue++;
                                                if(yue==13)
                                                {
                                                        yue=1;
                                                }
                                                write_yr(6,yue);
                                                write_com(0x80+6);
                                        }
                                        if(s1num==6)//日期加
                                        {
                                                ri++;
                                                if(ri==29&&yue==2&&!((nian%4==0&&nian%100!=0)||nian%400==0))
                                                {
                                                        ri=1;//平年
                                                }
                                                if(ri==30&&yue==2&&((nian%4==0&&nian%100!=0||nian%400==0)))
                                                {
                                                        ri=1;//閏年
                                                }
                                                if(ri==31&&(yue==4||yue==6||yue==9||yue==11))
                                                {
                                                        ri=1;
                                                }
                                                if(ri==32)
                                                {
                                                        ri=1;
                                                }
                                                write_yr(9,ri);
                                                write_com(0x80+9);
                                        }
                                        if(s1num==7)//星期加
                                        {
                                                m=m+3;
                                                if(m==21)
                                                        m=0;
                                                write_com(0x80+12);
                                                for(n=m;n<m+3;n++)
                                                {
                                                        write_date(table4[n]);
                                                        delay(5);
                                                }
                                                write_com(0x80+13);       
                                        }
                                }
                        }
                        if(s3==0)//按鍵3減功能
                        {
                                delay(5);
                                if(s3==0)
                                {
                                        while(!s3);
                                        if(s1num==1)//秒減
                                        {
                                                miao--;
                                                if(miao==-1)
                                                {
                                                        miao=59;
                                                }
                                                write_sfm(10,miao);
                                                write_com(0x80+0x40+10);
                                        }
                                        if(s1num==2)//分減
                                        {
                                                fen--;
                                                if(fen==-1)
                                                fen=59;
                                                write_sfm(7,fen);
                                                write_com(0x80+0x40+7);
                                        }
                                        if(s1num==3)//時減
                                        {
                                                shi--;
                                                if(shi==-1)
                                                        shi=23;
                                                write_sfm(4,shi);
                                                write_com(0x80+0x40+4);
                                        }
                                        if(s1num==4)//年減
                                        {
                                                nian--;
                                                if(nian==1999)
                                                        nian=2000;
                                                write_nyr(1,nian);
                                                write_com(0x80+3);
                                        }
                                        if(s1num==5)//月份減
                                        {
                                                yue--;
                                                if(yue==0)
                                                        yue=12;
                                                write_yr(6,yue);
                                                write_com(0x80+6);       
                                        }
                                        if(s1num==6)//日減
                                        {
                                                ri--;
                                                if(ri==0)
                                                {
                                                        if(yue==2&&!((nian%4==0&&nian%100!=0)||nian%400==0))
                                                        {
                                                                ri=28;//平年
                                                        }
                                                        if(yue==2&&((nian%4==0&&nian%100!=0||nian%400==0)))
                                                        {
                                                                ri=29;//閏年
                                                        }
                                                        if(yue==4||yue==6||yue==9||yue==11)
                                                        {
                                                                ri=30;
                                                        }
                                                        if(yue==1||yue==3||yue==5||yue==7||yue==9||yue==11)
                                                                ri=31;
                                                }
                                                write_yr(9,ri);
                                                write_com(0x80+9);
                                        }
                                        if(s1num==7)//星期減
                                        {
                                                m=m-3;
                                                if(m==0)
                                                        m=21;
                                                write_com(0x80+12);
                                                for(n=m;n-3<m;n++)
                                                {
                                                        write_date(table4[n-3]);
                                                        delay(5);
                                                }
                                                write_com(0x80+13);               
                                        }
                                }
                        }
                }
        }
        void main()
        {
                int i,j;
                init();
                while(1)
                {
                         keyscan();
                        if(TL1==8)
                        {        TH1=0X00;
                                TL1=0X00;
                                miao++;
                                if(miao==60)
                                {
                                        miao=0;
                                        fen++;
                                        if(fen==60)
                                        {
                                                fen=0;
                                                shi++;
                                                if(shi==24)
                                                {
                                                        shi=0;
                                                        ri++;
                                                        j=j+3;
                                                        if(j==21)
                                                                j=0;
                                                        write_com(0x80+12);
                                                        for(i=j;i<j+3;i++)
                                                        {
                                                                write_date(table4[i]);
                                                                delay(5);
                                                        }
                                                        if(ri==29&&yue==2&&!((nian%4==0&&nian%100!=0)||nian%400==0))
                                                        {
                                                                ri=1;yue++;//平年
                                                        }
                                                        if(ri==30&&yue==2&&((nian%4==0&&nian%100!=0||nian%400==0)))
                                                        {
                                                                ri=1;yue++;//閏年
                                                        }
                                                        if(ri==31&&(yue==4||yue==6||yue==9||yue==11))
                                                        {
                                                                ri=1;yue++;
                                                        }
                                                        if(ri==32)
                                                        {
                                                                ri=1;yue++;
                                                        }
                                                        if(yue==13)
                                                        {
                                                                yue=1;
                                                                nian++;
                                                                if(nian==10000)
                                                                {
                                                                        nian=2000;
                                                                }
                                                                write_nyr(1,nian);
                                                        }
                                                        write_yr(6,yue);
                                                }
                                                write_yr(9,ri);
                                                write_sfm(4,shi);
                                        }
                                        write_sfm(7,fen);       
                                }
                                write_sfm(10,miao);
                     }                       
                }                       
        }
        void timer() interrupt 1
        {
                TH0=0X3C;
                TL0=0XB0;
                Output_squ=~Output_squ;
        }

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国外成人在线视频 | 国产精品久久久久久久久久免费看 | 免费大黄视频 | 亚洲网站观看 | 国产色婷婷久久99精品91 | 国产精品一区二区三 | 精品久久99| 羞羞免费网站 | 九色av | 久久精品99 | 国产精品久久久久久吹潮 | av一区二区三区 | 欧洲亚洲一区二区三区 | h视频免费在线观看 | 色www精品视频在线观看 | 欧美日韩一区二区在线播放 | 午夜精品一区二区三区在线 | 亚洲精品99999 | 国产亚洲精品成人av久久ww | 精品毛片| 夜色www国产精品资源站 | 麻豆视频国产在线观看 | www.色53色.com | 欧美二区在线 | 国产精品自拍视频网站 | 亚洲欧美日韩精品久久亚洲区 | 精品国产91乱码一区二区三区 | 男人的天堂在线视频 | 欧美极品一区二区 | 国产最新精品视频 | 蜜桃av鲁一鲁一鲁一鲁 | 日韩视频观看 | 久久国内精品 | 亚洲激精日韩激精欧美精品 | 国产精品99久久免费观看 | 97国产精品视频 | 亚洲一二三区不卡 | 亚洲精品一区二区冲田杏梨 | 中文在线视频观看 | 欧美午夜精品 | 中文字幕在线观看精品 |