在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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) > 設(shè)計應(yīng)用 > 單片機制作的時鐘程序

            單片機制作的時鐘程序

            作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
            今天完成的一個用單片機制作的時鐘程序,
            /****************************************************************
            *工程名:帶秒顯示時鐘單片機程序 *
            *單片機:STC89C52 *
            *電路板:http://www.51hei.com/150a.htm *
            *目 的:學(xué)習(xí)單片機編程 *
            *是 間:2012-11-25星期五 *
            *作 者:張杉峰 *
            *修 訂:功能有待完善,下邊我還加上調(diào)整時間的功能 *
            *****************************************************************/
            #include
            #define uint unsigned int
            #define uchar unsigned char
            sbit wei=P2^7; //位鎖存器使能端定義
            sbit duan=P2^6; //段鎖存器使能端定義
            sbit led=P1^4; //這個是我買的實驗板上的led使能端控制位
            //定義需要的為變量...
            uchar code duan_table[]={
            0x3f,0x06,0x5b,0x4f,
            0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,
            0x39,0x5e,0x79,0x71,0x00
            };//數(shù)碼管從1——F顯示編碼表,記得最后一個分號哦...
            uchar a,xiaoshi,fenzhong,miao,miao1,miao2,xiao1,xiao2,fen1,fen2; //定義要用到的變量,記得一個字符都不要寫錯哦...
            void dispay(uchar miao1,uchar miao2,uchar fen1,uchar fen2,uchar xiao1,uchar xiao2); //顯示函數(shù)什么,一定要記得什么哦...
            void delay(uchar x);
            void init()//初始化函數(shù)
            {
            TMOD=0X01; //定時計數(shù)器工作模式,工作于16位定時器計數(shù)器模式
            TH0=(65536-50000)/256; //十六位寄存器高八位賦初值
            TL0=(65536-50000)%256; //............低八位賦初值
            EA=1; //開總中斷
            ET0=1; //開定時器計數(shù)器0中斷
            TR0=1; //啟動定時器/計數(shù)器0
            }
            void main()
            {
            init(); //調(diào)用初始化函數(shù)
            while(1)
            {
            if(a==20) //判斷是否定時到1秒鐘
            {
            a=0; //到一秒a清零
            miao++; //讓秒加1
            if(miao==60) //判斷秒是否到60
            {
            miao=0; //秒到60,讓"miao"清零
            fenzhong++; //讓分鐘自加1
            if(fenzhong==60) //判斷分鐘是否到60
            {
            fenzhong=0; //分鐘到60,讓"fenzhong"清零
            xiaoshi++; //讓小時加1
            if(xiaoshi==24) //判斷小時是否到24
            {xiaoshi=0;} //到24,讓"xiaoshi"清零,從零點從新走動...
            }
            }
            xiao1=xiaoshi/10;
            xiao2=xiaoshi%10; //上面一行和這一行是把小時的兩位分離出來,比如23,分解成2和3;下面幾行一樣就不解釋了
            fen1=fenzhong/10;
            fen2=fenzhong%10;
            miao1=miao/10;
            miao2=miao%10;
            }
            dispay(miao1,miao2,fen1,fen2,xiao1,xiao2);
            }
            }
            void dispay(uchar miao1,uchar miao2,uchar fen1,uchar fen2,uchar xiao1,uchar xiao2)
            {
            duan=1;
            P0=duan_table[xiao1];
            duan=0;
            P0=0xff;
            wei=1;
            P0=0xfb;//第三個LED亮,小時高位
            wei=0;
            delay(2);
            duan=1;
            P0=duan_table[xiao2];
            duan=0;
            P0=0xff;
            wei=1;
            P0=0xf7; //第四個LED亮,小時低位
            wei=0;
            delay(2);
            duan=1;
            P0=duan_table[fen1];
            duan=0;
            P0=0xff;
            wei=1;
            P0=0xef; //第五個LED亮,分鐘高位
            wei=0;
            delay(2);
            duan=1;
            P0=duan_table[fen2];
            duan=0;
            P0=0xff;
            wei=1;
            P0=0xdf; //第六個LED亮,分鐘低位
            wei=0;
            delay(2);
            duan=1;
            P0=duan_table[miao1];
            duan=0;
            P0=0xff;
            wei=1;
            P0=0xbf; //第七個LED亮,秒高位
            wei=0;
            delay(2);
            duan=1;
            P0=duan_table[miao2];
            duan=0;
            P0=0xff;
            wei=1;
            P0=0x7f;
            wei=0;
            delay(2);
            }
            void delay(uchar x)
            {
            uchar bb,dd;
            for(bb=x;bb>0;bb--)
            for(dd=110;dd>0;dd--);
            }
            void timer0() interrupt 1
            {
            TH0=(65536-50000)/256;
            TL0=(65536-50000)%256;
            a++;
            }


            關(guān)鍵詞: 單片機時鐘程序STC89C5

            評論


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

            關(guān)閉