新聞中心

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

        單片機(jī)數(shù)字鐘設(shè)計(jì)

        作者: 時(shí)間:2013-04-02 來源:網(wǎng)絡(luò) 收藏

        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 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 许昌市| 阿城市| 那坡县| 新巴尔虎右旗| 东丽区| 德格县| 绥中县| 株洲市| 惠州市| 仁布县| 武威市| 禄劝| 南溪县| 漯河市| 阳西县| 进贤县| 当涂县| 唐海县| 西贡区| 永年县| 民乐县| 海阳市| 神池县| 威远县| 肇东市| 垫江县| 大庆市| 略阳县| 四子王旗| 新平| 磐安县| 乌恰县| 平乡县| 于都县| 县级市| 岢岚县| 富裕县| 浮山县| 油尖旺区| 清苑县| 固安县|