新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)數(shù)字鐘程序

        單片機(jī)數(shù)字鐘程序

        作者: 時(shí)間:2012-12-31 來源:網(wǎng)絡(luò) 收藏

        /*void display(void)
        {
        P1=0x7f;P2=0xff;SBUF=0x00;
        P1=_crol_(P1,1);SBUF=disdata[date%10];delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);if(date/10) SBUF=disdata[date/10]; else SBUF=0x00;delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);SBUF=disdata[month%10];delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);if(month/10) SBUF=disdata[month/10]; else SBUF=0x00;delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);SBUF=disdata[year%10];delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);SBUF=disdata[year/10%10];delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);SBUF=disdata[year/100%10];delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);SBUF=disdata[year/1000];delayX1ms(1);SBUF=0x00;
        P1=0xff;P2=0x7f;
        P2=_crol_(P2,1);SBUF=disdata[sec%10];delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);SBUF=disdata[sec/10];delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);SBUF=disdata[min%10];delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);SBUF=disdata[min/10];delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);SBUF=disdata[hour%10];delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);if(hour/10) SBUF=disdata[hour/10]; else SBUF=0x00;delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);SBUF=disdata[weekday()];delayX1ms(1);SBUF=0x00;

        }


        void display2(uchar a)
        {
        P1=0x7f;P2=0xff;SBUF=0x00;
        P1=_crol_(P1,1);if(a=='d') SBUF=0x00;else SBUF=disdata[date%10];delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);if(a=='d') SBUF=0x00;else{if(date/10) SBUF=disdata[date/10];else SBUF=0x00;}delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);if(a=='m') SBUF=0x00;else SBUF=disdata[month%10];delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);if(a=='m') SBUF=0x00;else{if(month/10) SBUF=disdata[month/10]; else SBUF=0x00;}delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);if(a=='y') SBUF=0x00;else SBUF=disdata[year%10];delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);if(a=='y') SBUF=0x00;else SBUF=disdata[year/10%10];delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);if(a=='y') SBUF=0x00;else SBUF=disdata[year/100%10];delayX1ms(1);SBUF=0x00;
        P1=_crol_(P1,1);if(a=='y') SBUF=0x00;else SBUF=disdata[year/1000];delayX1ms(1);SBUF=0x00;
        P1=0xff;P2=0x7f;
        P2=_crol_(P2,1);if(a=='S') SBUF=0x00;else SBUF=disdata[sec%10];delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);if(a=='S') SBUF=0x00;else SBUF=disdata[sec/10];delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);if(a=='M') SBUF=0x00;else SBUF=disdata[min%10];delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);if(a=='M') SBUF=0x00;else SBUF=disdata[min/10];delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);if(a=='H') SBUF=0x00;else SBUF=disdata[hour%10];delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);if(a=='H') SBUF=0x00;else {if(hour/10) SBUF=disdata[hour/10]; else SBUF=0x00;}delayX1ms(1);SBUF=0x00;
        P2=_crol_(P2,1);SBUF=disdata[weekday()];delayX1ms(1);SBUF=0x00;

        }*/

        void change(void)//這個程序?qū)懙暮軄y,其實(shí)應(yīng)該有更簡單的方法
        {
        bit a=0;
        uint b=0,c=0;
        while(!P3_2);
        while(1)
        {if(!P3_3)
        {delayX1ms(10);
        if(!P3_3)
        {while(!P3_3)
        {if(++c>=1000)
        {c=0;
        display();
        while(!P3_3)
        {display();if(++c>=10)
        {c=0;
        if(++min>=60)min=0;
        display();
        }
        }
        }
        }
        if(++min>=60)min=0;
        c=0;
        }
        a=1;
        b=0;
        }
        else
        {if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        if(a)display();
        else display2('M');
        if(++b>=20)
        {b=0;
        a=!a;
        }
        }
        if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        }

        while(1)
        {if(!P3_3)
        {delayX1ms(10);
        if(!P3_3)
        {while(!P3_3)
        {if(++c>=1000)
        {c=0;
        display();
        while(!P3_3)
        {display();if(++c>=10)
        {c=0;
        if(++hour>=24)hour=0;
        display();
        }
        }
        }
        }
        if(++hour>=24)hour=0;
        c=0;
        }
        a=1;
        b=0;
        }
        else
        {if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        if(a)display();
        else display2('H');
        if(++b>=20)
        {b=0;
        a=!a;
        }
        }
        if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        }

        while(1)
        {if(!P3_3)
        {delayX1ms(10);
        if(!P3_3)
        {while(!P3_3)
        {if(++c>=1000)
        {c=0;
        display();
        while(!P3_3)
        {display();if(++c>=10)
        {c=0;
        if(++date>daysofmonth())date=1;
        display();
        }
        }
        }
        }
        if(++date>daysofmonth())date=1;
        c=0;
        }
        a=1;
        b=0;
        }
        else
        {if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        if(a)display();
        else display2('d');
        if(++b>=20)
        {b=0;
        a=!a;
        }
        }
        if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        }

        while(1)
        {if(!P3_3)
        {delayX1ms(10);
        if(!P3_3)
        {while(!P3_3)
        {if(++c>=1000)
        {c=0;
        display();
        while(!P3_3)
        {display();if(++c>=10)
        {c=0;
        if(++month>12)month=1;
        display();
        }
        }
        }
        }
        if(++month>12)month=1;
        c=0;
        }
        a=1;
        b=0;
        }
        else
        {if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        if(a)display();
        else display2('m');
        if(++b>=20)
        {b=0;
        a=!a;
        }
        }
        if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        }

        while(1)
        {if(!P3_3)
        {delayX1ms(10);
        if(!P3_3)
        {while(!P3_3)
        {if(++c>=1000)
        {c=0;
        display();
        while(!P3_3)
        {display();if(++c>=10)
        {c=0;
        if(++year>=2100)year=2000;
        display();
        }
        }
        }
        }
        if(++year>=2100)year=2000;
        c=0;
        }
        a=1;
        b=0;
        }
        else
        {if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        if(a)display();
        else display2('y');
        if(++b>=20)
        {b=0;
        a=!a;
        }
        }
        if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        }
        while(1)
        {if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        if(a)display();
        else display2('S');
        if(++b>=20)
        {b=0;
        a=!a;
        }
        if(!P3_3)
        {delayX1ms(10);
        if(!P3_3)
        sec=0;
        }
        if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
        }

        }

        uchar weekday(void)
        {uint a=year-1;
        uint b=0;
        uchar i;
        for(i=1;imonth;i++)
        b+=monthdata[i-1];
        b+=date;
        if(month>2isleap())
        b++;
        i=(a+a/4-a/100+a/400+b)%7;
        if(i)return i;
        else return 8;
        }

        uchar daysofmonth(void) reentrant
        {if(month!=2) return monthdata[month-1];
        else if(isleap()) return 29;
        else return 28;
        }

        bit isleap(void) reentrant
        {return (year%4==0year%100!=0||year%400==0);
        }

        到這里這個c程序就完畢了程序很長而且沒什么注釋,希望大家慢慢搞定。有什么問題可在本站論壇提出,馬上為您解決。

        單片機(jī)相關(guān)文章:單片機(jī)教程


        單片機(jī)相關(guān)文章:單片機(jī)視頻教程


        單片機(jī)相關(guān)文章:單片機(jī)工作原理



        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 武夷山市| 闽清县| 若羌县| 香格里拉县| 玉田县| 沧源| 饶平县| 沁阳市| 富蕴县| 农安县| 黑水县| 新河县| 东明县| 固始县| 黄冈市| 文昌市| 双流县| 陆河县| 来宾市| 竹溪县| 临武县| 桓台县| 株洲县| 周宁县| 玛多县| 从江县| 济阳县| 台安县| 施甸县| 中方县| 芒康县| 闵行区| 赫章县| 通化市| 屯门区| 西城区| 郴州市| 高州市| 增城市| 扶沟县| 菏泽市|