新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機做的數碼管電子日歷

        51單片機做的數碼管電子日歷

        作者: 時間:2016-11-30 來源:網絡 收藏

        void year_display()
        {
        int year_qian,year_bai,year_shi,year_ge;
        year_qian=year/1000;
        year_bai=year%1000/100;
        year_shi=year%1000%100/10;
        year_ge=year%10;

        本文引用地址:http://www.104case.com/article/201611/323804.htm

        if(flag==6&&p!=1)
        p++;
        else
        {
        p=0;
        dula=1;
        P0=~table[year_ge];
        dula=0;
        wela2=1;
        P1=0x00;
        wela2=0;
        wela1=1;
        P1=0x08;
        wela1=0;
        delay(1);
        dula=1;
        P0=0xff;
        dula=0;

        dula=1;
        P0=~table[year_shi];
        dula=0;
        wela2=1;
        P1=0x00;
        wela2=0;
        wela1=1;
        P1=0x04;
        wela1=0;
        delay(1);
        dula=1;
        P0=0xff;
        dula=0;

        dula=1;
        P0=~table[year_bai];
        dula=0;
        wela2=1;
        P1=0x00;
        wela2=0;
        wela1=1;
        P1=0x02;
        wela1=0;
        delay(1);
        dula=1;
        P0=0xff;
        dula=0;

        dula=1;
        P0=~table[2];
        dula=0;
        wela2=1;
        P1=0x00;
        wela2=0;
        wela1=1;
        P1=0x01;
        wela1=0;
        delay(1);
        dula=1;
        P0=0xff;
        dula=0;
        wela1=0;
        }
        }
        void control()
        {
        if(!key_ch)
        {
        delay(5);
        if(!key_ch)
        {
        flag++;
        if(flag==7)
        flag=0;
        }
        }
        while(!key_ch);
        if(flag==1&&key_add==0)
        {
        while(!key_add);
        sec++;
        if(sec==60)
        sec=0;
        }
        if(flag==1&&key_minus==0)
        {
        while(!key_minus);
        sec--;
        if(sec==-1)
        sec=59;
        }

        if(flag==2&&key_add==0)
        {
        while(!key_add);
        min++;
        if(min==60)
        min=0;
        }
        if(flag==2&&key_minus==0)
        {
        while(!key_minus);
        min--;
        if(min==-1)
        min=59;
        }

        if(flag==3&&key_add==0)
        {
        while(!key_add);
        h++;
        if(h==24)
        h=0;
        }
        if(flag==3&&key_minus==0)
        {
        while(!key_minus);
        h--;
        if(h==-1)
        h=23;
        }

        if(flag==4&&key_add==0)
        {
        while(!key_add);
        date++;
        if(date==29)
        if((year%4!=0)&&(month==2))
        date=1;
        if(date==30)
        if((year%4==0)&&(month==2))
        date=1;
        if(date==31)
        if((month==4)||(month==6)||(month==9)||(month==11))
        date=1;
        if(date==32)
        if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
        date=1;
        }

        if(flag==5&&key_add==0)
        {
        while(!key_add);
        month++;
        if(month==13)
        month=1;
        }
        if(flag==5&&key_minus==0)
        {
        while(!key_minus);
        month--;
        if(month==0)
        month=12;
        }

        if(flag==6&&key_add==0)
        {
        while(!key_add);
        year++;
        if(year==99)
        year=1;
        }
        if(flag==6&&key_minus==0)
        {
        while(!key_minus);
        year--;
        if(year==0)
        year=99;
        }
        }

        void T0_rpt() interrupt 1
        {
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        i++;
        time();
        }

        void time()
        {
        if(i==20)
        {
        i=0;
        sec++;
        if(sec==60)
        {
        sec=0;
        min++;
        if(min==60)
        {
        min=0;
        h++;
        if(h==24)
        {
        h=0;
        min=0;
        sec=0;
        date++;
        if(date==29)
        if((year%4!=0)&&(month==2))
        {
        date=1;
        month++;
        if(month==13)
        {
        month=1;
        year++;
        }
        }
        if(date==30)
        if((year%4==0)&&(month==2))
        {
        date=1;
        month++;
        if(month==13)
        {
        month=1;
        year++;
        }
        }
        if(date==31)
        if((month==4)||(month==6)||(month==9)||(month==11))
        {
        date=1;
        month++;
        if(month==13)
        {
        month=1;
        year++;
        }
        }
        if(date==32)
        if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
        {
        date=1;
        month++;
        if(month==13)
        {
        month=1;
        year++;
        }
        }
        }
        }
        }
        }
        }


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 尤溪县| 纳雍县| 青铜峡市| 永丰县| 娱乐| 诸城市| 深水埗区| 泰和县| 剑阁县| 黎城县| 宜春市| 东兴市| 酒泉市| 桓仁| 呼伦贝尔市| 女性| 泌阳县| 建宁县| 德清县| 万全县| 石台县| 凤台县| 伊春市| 鄂尔多斯市| 达拉特旗| 班戈县| 长寿区| 章丘市| 交城县| 云龙县| 遂昌县| 西盟| 济阳县| 冕宁县| 阿拉善左旗| 会理县| 库车县| 东乡族自治县| 宿迁市| 天峨县| 云阳县|