新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機--電子時鐘(C51)

        單片機--電子時鐘(C51)

        作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
        //簡單電子時鐘的C程序代碼,沒有消隱,沒有按鍵功能

        //author:helloword

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

        #include

        #defineuintunsignedint

        #defineucharunsignedchar

        sbitsegoe=P1^3;//數(shù)碼管的使能控制端,低電平有效

        sbitduanxuan=P1^4;//數(shù)碼管的段選控制,7段發(fā)光LED顯示

        sbitweixuan=P1^5;//數(shù)碼管的位選控制,8個數(shù)碼管的選擇

        ucharcodesmg_duan[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)碼管段選碼表,我們的數(shù)碼管是共陰極數(shù)碼管

        ucharcodesmg_wei[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

        uinttime_flag=20;

        uintsecond=0;

        uintminute=02;

        uinthour=10;

        voiddisplay();

        voiddelay(uint);

        voidmain()

        {

        TMOD=0x01;

        TH0=(65536-50000)/256;

        TL0=(65536-50000)%6;

        TR0=1;

        ET0=1;

        EA=1;

        segoe=0;

        while(1)

        display();

        }

        voidInt_T0(void)interrupt1

        {

        TH0=(65536-50000)/256;

        TL0=(65536-50000)%6;

        time_flag--;

        if(time_flag==0)

        {

        second++;

        time_flag=20;

        }

        }

        voiddisplay()

        {

        uintsec_1,sec_2;

        uintmin_1,min_2;

        uinthou_1,hou_2;

        weixuan=1;

        P0=smg_wei[2];

        weixuan=0;

        duanxuan=1;

        P0=0x40;

        duanxuan=0;

        delay(3);

        weixuan=1;

        P0=smg_wei[5];

        weixuan=0;

        duanxuan=1;

        P0=0x40;

        duanxuan=0;

        delay(3);

        if(second<60)

        {

        sec_2=second/10;

        sec_1=second;

        weixuan=1;

        P0=smg_wei[0];

        weixuan=0;

        duanxuan=1;

        P0=smg_duan[sec_1];

        duanxuan=0;

        delay(3);

        weixuan=1;

        P0=smg_wei[1];

        weixuan=0;

        duanxuan=1;

        P0=smg_duan[sec_2];

        duanxuan=0;

        delay(3);

        }

        if(minute<60)

        {

        min_2=minute/10;

        min_1=minute;

        weixuan=1;

        P0=smg_wei[3];

        weixuan=0;

        duanxuan=1;

        P0=smg_duan[min_1];

        duanxuan=0;

        delay(3);

        weixuan=1;

        P0=smg_wei[4];

        weixuan=0;

        duanxuan=1;

        P0=smg_duan[min_2];

        duanxuan=0;

        delay(3);

        }

        if(hour<24)

        {

        hou_2=hour/10;

        hou_1=hour;

        weixuan=1;

        P0=smg_wei[6];

        weixuan=0;

        duanxuan=1;

        P0=smg_duan[hou_1];

        duanxuan=0;

        delay(3);

        weixuan=1;

        P0=smg_wei[7];

        weixuan=0;

        duanxuan=1;

        P0=smg_duan[hou_2];

        duanxuan=0;

        delay(3);

        }

        if(second==60){minute++;second=0;}

        if(minute==60){hour++;minute=0;second=0;}

        if(hour==24){second=0;minute=0;hour=0;}

        }

        voiddelay(uintz)

        {

        uinti,j;

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

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

        }



        關(guān)鍵詞: 單片機電子時鐘C5

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 鄂伦春自治旗| 武邑县| 策勒县| 伊春市| 小金县| 黄浦区| 英超| 通州市| 大竹县| 吉隆县| 澳门| 彩票| 海宁市| 武汉市| 西乌| 微博| 新竹市| 通江县| 义马市| 资兴市| 长汀县| 法库县| 若羌县| 蓬莱市| 唐海县| 银川市| 鱼台县| 新巴尔虎右旗| 江都市| 科技| 永丰县| 桐梓县| 满洲里市| 湾仔区| 武宁县| 岳阳县| 镇原县| 灵寿县| 容城县| 辽阳县| 盐城市|