在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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) > 設計應用 > 單片機C語言電子時鐘加日歷顯示編程

            單片機C語言電子時鐘加日歷顯示編程

            作者: 時間:2016-11-26 來源:網(wǎng)絡 收藏

            else
            {
            if(month==2)
            {
            if(day==28)
            {
            day =1;
            month++;
            }
            else day++;
            }
            else
            {
            if(month==4||month==6||month==9||month==11)
            {
            if(day==30)
            {
            day =1;
            month++;
            }
            else day++;
            }
            else
            {
            if(day==31)
            {
            day =1;
            month++;
            if(month==13)
            {
            month =1;
            year1++;
            if(year1==100)
            {
            year2++;
            }
            }
            }
            else day++;

            }
            }
            }
            hour=0;
            week++;
            }
            if(sw1==0&&week>=7)
            week=0;
            }

            void delay(ms)
            {
            uchar i, k;
            while(ms--)
            for(k=0;k<123;k++);
            for(i=0;i<123;i++);
            }

            void scan_key(void)
            {
            if(cnt==7&&P3_4==0)
            {
            delay(3);
            if(cnt==7&&P3_4==0)
            {
            key4 =0;
            key1 =1; //檢查是第一個鍵按下
            }
            }
            if(sw5==0&&key1==1&&cnt==7&&P3_4==1) //按鍵松手時表示真的按下,sw5判斷此時是什么顯示狀態(tài),時間還是年月日
            {
            sw1 =1; //閃爍分針
            }
            if(sw5==1&&key1==1&&cnt==7&&P3_4==1) //若為年月日則閃爍第一二位
            {
            sw1 =9;
            }
            if(sw1==1&&P3_4==0&&cnt==7) //在時間狀態(tài)第一個鍵又一次按下
            {
            delay(3);
            if(sw1==1&&P3_4==0&&cnt==7)
            {
            key1 =2; //在時間狀態(tài)第一個鍵的第二種狀態(tài)
            }
            }
            if(sw1==9&&P3_4==0&&cnt==7) //在年月日狀態(tài)第一個鍵第二次按下
            {
            delay(3);
            if(sw1==9&&P3_4==0&&cnt==7)
            {
            key1 =9; //在年月日狀態(tài)第一個鍵的第二種狀態(tài)
            }
            }
            if(key1==2&&cnt==7&&P3_4==1) //在時間確認第一個鍵第二次按下
            {
            sw1 =2; // 并閃爍時針
            }
            if(key1==9&&cnt==7&&P3_4==1) //年月日狀態(tài)確認第一個鍵第二次按下
            {
            sw1 =8; // 并閃爍月分
            }
            if(sw1==8&&P3_4==0&&cnt==7) //在年月日狀態(tài)第一個鍵第三次按下
            {
            delay(3);
            if(sw1==8&&P3_4==0&&cnt==7)
            {
            key1 =8; //在年月日狀態(tài)第一個鍵的第三種狀態(tài)
            }
            }
            if(key1==8&&cnt==7&&P3_4==1) //年月日狀態(tài)確認第一個鍵第三次按下
            {
            sw1 =7; // 并閃爍年的后兩位 ///////////////////
            }
            if(sw1==2&&P3_4==0&&cnt==7)
            {
            delay(3);
            if(sw1==2&&P3_4==0&&cnt==7)
            {
            key1 =3;
            }
            }
            if(sw1==7&&P3_4==0&&cnt==7) //在年月日狀態(tài)第一個鍵第四次按下
            {
            delay(3);
            if(sw1==7&&P3_4==0&&cnt==7)
            {
            key1 =7; //在年月日狀態(tài)第一個鍵的第四種狀態(tài)
            }
            }
            if(key1==7&&cnt==7&&P3_4==1) //年月日狀態(tài)確認第一個鍵第四次按下
            {
            sw1 =6; // 并閃爍年的前兩位 ///////////////////
            }
            if(sw1==2&&P3_4==0&&cnt==7)
            {
            delay(3);
            if(sw1==2&&P3_4==0&&cnt==7)
            {
            key1 =3;
            }
            }
            if(key1==3&&cnt==7&&P3_4==1)
            {
            sw1 =3; // 并閃爍星期
            }
            if(sw5==0&&P3_4==0&&cnt==6) //檢查第二個鍵是否按下
            {
            delay(3);
            if(sw5==0&&P3_4==0&&cnt==6)
            {
            key2 =1;
            }
            }
            if(key2==1&&cnt==6&&P3_4==1)
            {
            key2 =0;
            sw2 =1; //在時間狀態(tài)確認第二個鍵按下
            if(sw2==1&&sw1==1) //和sw1的值對比,加分
            {
            min++;
            if(min>=60)
            min =0;
            }
            if(sw2==1&&sw1==2) //和sw1的值對比,加時
            {
            hour++;
            if(hour>=24)
            hour =0;
            }
            if(sw2==1&&sw1==3)
            {
            week++;
            if(week>6)
            week =0;
            }
            }
            if(sw5==1&&P3_4==0&&cnt==6) //在年月日檢查第二個鍵是否按下
            {
            delay(3);
            if(sw5==1&&P3_4==0&&cnt==6)
            {
            key2 =7;
            }
            }
            if(key2==7&&cnt==6&&P3_4==1)
            {
            key2 =0;
            sw2 =1; //確認第二個鍵按下
            if(sw2==1&&sw1==9) //和sw1的值對比,加day
            {
            day++;
            if(day>31)
            day =0;
            }
            if(sw2==1&&sw1==8) //和sw1的值對比,加month
            {
            month++;
            if(month>12)
            month =0;
            }
            if(sw2==1&&sw1==7)
            {
            year1++;
            if(year1>100)
            year1 =0;
            }
            if(sw2==1&&sw1==6)
            {
            year2++;
            if(year2>100)
            year2 =20;
            }
            } //檢查時間狀態(tài)第三個鍵是否按下
            if(sw5==0&&P3_4==0&&cnt==5) //檢查第三個鍵是否按下
            {
            delay(3);
            if(sw5==0&&P3_4==0&&cnt==5)
            {
            key3 =1;
            }
            }
            if(key3==1&&cnt==5&&P3_4==1)
            {
            key3 =0;
            sw3 =1;
            if(sw3==1&&sw1==1)
            {
            if(min<=0)
            min =60;
            min--; //分針減
            }
            if(sw3==1&&sw1==2)
            {
            if(hour<=0)
            hour =24;
            hour--; //時針減
            }
            if(sw3==1&&sw1==3)
            {
            if(week<=0)
            week =7;
            week--;
            }
            }
            if(sw5==1&&P3_4==0&&cnt==5) //在年月日檢查第三個鍵是否按下
            {
            delay(3);
            if(sw5==1&&P3_4==0&&cnt==5)
            {
            key3 =7;
            }
            }
            if(key3==7&&cnt==5&&P3_4==1)
            {
            key3 =0;
            sw3 =7;
            if(sw3==7&&sw1==9)
            {
            if(day<=0)
            day =32;
            day--; //day減
            }
            if(sw3==7&&sw1==8)
            {
            if(month<=0)
            month =13;
            month--; //month減
            }
            if(sw3==7&&sw1==7)
            {
            if(year1<=0)
            year1 =100; //year減
            year1--;
            }
            if(sw3==7&&sw1==6)
            {
            if(year2<=20)
            year2 =100; //year減
            year2--;
            }
            }
            if(P3_4==0&&cnt==4&&sw1!=0&&sw5==0)
            {
            delay(3);
            if(P3_4==0&&cnt==4&&sw1!=0&&sw5==0)
            {
            sw1=0;sec=0;key4=1;key1=0;
            }
            }
            if(P3_4==0&&cnt==4&&sw1!=0&&sw5==1)
            {
            delay(3);
            if(P3_4==0&&cnt==4&&sw1!=0&&sw5==1)
            {
            sw1=0;key4=1;key1=0;
            }
            }
            if(P3_4==0&&cnt==3)
            {
            delay(3);
            if(P3_4==0&&cnt==3)
            {
            key5 =1;
            }
            }
            if(key5==1&&P3_4==1&&cnt==3)
            {
            sw5 =1;
            }
            if(P3_4==0&&sw5==1&&cnt==3)
            {
            delay(3);
            if(P3_4==0&&sw5==1&&cnt==3)
            {
            key5 =0;
            }
            }
            if(P3_4==1&&key5==0&&cnt==3)
            {
            sw5 =0;
            }
            }

            void main(void)
            {
            PCA0MD =0 ;
            XBR1 =0x40 ;
            P0MDOUT =0xFF ;
            P1MDOUT =0xFF ;
            init();
            while(1)
            {
            conv();
            year=year1+year2*100;
            }
            }

            五、調(diào)試及性能分析
            5.1 硬件調(diào)試:主要檢查電路的焊接,有無虛焊,漏焊,然后檢查電路與單片機的聯(lián)線,為了方便自己做了一根數(shù)據(jù)線,然后用萬用表測試,全部導通后進行通電檢測,上電后排查電路板的各點電平是否正常,測試完畢后進行軟件調(diào)試。
            5.2 軟件調(diào)試:主要以以編程序為主,并進行單片機輸出口線高低電平的檢驗。本程序采用C語言編寫,用Keil C51編譯器編程調(diào)試,本程序的難點之一在于讓它閃爍,也就是再其它燈不變的情況下閃爍需要調(diào)整的部分。
            經(jīng)過測試,任務以及要求全部達到,初始化時,時間是1-00:00:00,切換后是20096.08.15,由于時間關系沒能經(jīng)過長時間的驗證性測試,短期測試發(fā)現(xiàn)每一個小時快一秒鐘,只進行了粗調(diào)。

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

            上一頁 1 2 下一頁

            評論


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

            關閉