新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機數字鐘設計

        單片機數字鐘設計

        作者: 時間:2013-04-02 來源:網絡 收藏

        7. C語言源程序

        #include AT89X51.H>

        unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

        0x66,0x6d,0x7d,0x07,

        0x7f,0x6f,0x77,0x7c,

        0x39,0x5e,0x79,0x71,0x00};

        unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7,

        0xef,0xdf,0xbf,0x7f};

        unsigned char dispbuf[8]={0,0,16,0,0,16,0,0};

        unsigned char dispbitcnt;

        unsigned char second;

        unsigned char minite;

        unsigned char hour;

        unsigned int tcnt;

        unsigned char mstcnt;

        unsigned char i,j;

        void main(void)

        {

        TMOD=0x02;

        TH0=0x06;

        TL0=0x06;

        TR0=1;

        ET0=1;

        EA=1;

        while(1)

        {

        if(P0_0==0)

        {

        for(i=5;i>0;i--)

        for(j=248;j>0;j--);

        if(P0_0==0)

        {

        second++;

        if(second==60)

        {

        second=0;

        }

        dispbuf[0]=second;

        dispbuf[1]=second/10;

        while(P0_0==0);

        }

        }

        if(P0_1==0)

        {

        for(i=5;i>0;i--)

        for(j=248;j>0;j--);

        if(P0_1==0)

        {

        minite++;

        if(minite==60)

        {

        minite=0;

        }

        dispbuf[3]=minite;

        dispbuf[4]=minite/10;

        while(P0_1==0);

        }

        }

        if(P0_2==0)

        {

        for(i=5;i>0;i--)

        for(j=248;j>0;j--);

        if(P0_2==0)

        {

        hour++;

        if(hour==24)

        {

        hour=0;

        }

        dispbuf[6]=hour;

        dispbuf[7]=hour/10;

        while(P0_2==0);

        }

        }

        }

        }

        void t0(void) interrupt 1 using 0

        {

        mstcnt++;

        if(mstcnt==8)

        {

        mstcnt=0;

        P1=dispcode[dispbuf[dispbitcnt]];

        P3=dispbitcode[dispbitcnt];

        dispbitcnt++;

        if(dispbitcnt==8)

        {

        dispbitcnt=0;

        }

        }

        tcnt++;

        if(tcnt==4000)

        {

        tcnt=0;

        second++;

        if(second==60)

        {

        second=0;

        minite++;

        if(minite==60)

        {

        minite=0;

        hour++;

        if(hour==24)

        {

        hour=0;

        }

        }

        }

        dispbuf[0]=second;

        dispbuf[1]=second/10;

        dispbuf[3]=minite;

        dispbuf[4]=minite/10;

        dispbuf[6]=hour;

        dispbuf[7]=hour/10;

        }

        }


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 万州区| 阳西县| 翁源县| 清丰县| 日土县| 陆河县| 兴山县| 张掖市| 黄山市| 香格里拉县| 昭平县| 扶风县| 浮山县| 蛟河市| 济阳县| 绵竹市| 奉节县| 通海县| 攀枝花市| 承德市| 福海县| 宾川县| 金川县| 新龙县| 邹城市| 东阿县| 丰台区| 秦安县| 云梦县| 寿光市| 丰镇市| 确山县| 根河市| 宾川县| 开原市| 黄石市| 洛川县| 林甸县| 台中县| 手机| 文昌市|