在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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)用 > 時鐘及溫度用74hc164+74ls145數(shù)碼管顯示單片機程序

            時鐘及溫度用74hc164+74ls145數(shù)碼管顯示單片機程序

            作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏



            }
            void keyshu()//設(shè)定鍵函數(shù)
            {

            bit b,d,e;
            b=MINUS;d=ADD;//變量B,D,E分別讀回P0。4~P0。6的狀態(tài)。分別為加一,減一,確認(rèn)鍵
            e=ENTER;
            if(b==0)//減一按鍵按下
            {
            dateshu[seta]--;
            if(dateshu[seta]<0)dateshu[seta]=9;//減到零時自動循環(huán)回九
            b=MINUS;//再讀回鍵值,做松手查檢測
            while(b==0){b=MINUS;display(dateshu[0],dateshu[1],10,seta+1,dateshu[2],dateshu[3],dateshu[4],dateshu[5]);}//松手檢測

            }
            else if(d==0)//加一按鍵按下
            {
            dateshu[seta]++;
            if(dateshu[seta]>9)dateshu[seta]=0;//加到九時自動循環(huán)回零
            d=ADD;//做松手檢測
            while(d==0){d=ADD;display(dateshu[0],dateshu[1],10,seta+1,dateshu[2],dateshu[3],dateshu[4],dateshu[5]);}//松手檢測

            }
            else if(e==0)//確認(rèn)鍵按下
            {
            seta++;
            e=ENTER;
            while(e==0){e=ENTER;display(dateshu[0],dateshu[1],10,seta+1,dateshu[2],dateshu[3],dateshu[4],dateshu[5]);}
            if(seta>5)//如果六位數(shù)值已設(shè)定完畢,測退出設(shè)定狀態(tài)
            {
            seta=0;sec=0;setflag=0;
            sec=dateshu[1]*10+dateshu[0];//分別將設(shè)定好的值,賦給時秒變量,設(shè)定生效
            min=dateshu[3]*10+dateshu[2];//分別將設(shè)定好的值,賦給分變量,設(shè)定生效
            hour=dateshu[5]*10+dateshu[4];//分別將設(shè)定好的值,賦給時變量,設(shè)定生效

            }
            }

            }
            void main()

            本文引用地址:http://www.biyoush.com/article/201612/324565.htm

            {
            init();//各外圍元件及CPU初始化
            delay10us(150);//進(jìn)入大循環(huán)時的延時
            while(1)

            {

            key();//檢測功能鍵有無按下
            if(setflag==0)//如果設(shè)定功能未進(jìn)入,則顯示實時時鐘
            {
            timer();//時間運算函數(shù)
            display(dateshu[0],dateshu[1],10,10,dateshu[2],dateshu[3],dateshu[4],dateshu[5]);//顯示實時時鐘
            }
            else//如果進(jìn)入了功能設(shè)定函數(shù)
            {
            keyshu();//讀取鍵值
            display(dateshu[0],dateshu[1],10,seta+1,dateshu[2],dateshu[3],dateshu[4],dateshu[5]);//顯示實時設(shè)定
            }
            if((dateshu[0]==3)&&(dateshu[1]%2==0))//每隔十秒溫度讀取顯示一次
            {uchar i;//顯示延時用
            dqrsr();//初始化
            if(dqflag==1)//檢測存在脈沖
            {

            dqwrite(0xcc);//跳過ROM操作

            dqwrite(0x44);//開始溫度轉(zhuǎn)換
            while(!DS1820DQ);//延時等待溫度轉(zhuǎn)換完畢
            dqrsr();//初始化
            if(dqflag==1)
            {
            uchar temper;//溫度變量
            dqwrite(0xcc);//跳過ROM操作
            dqwrite(0xbe);//讀取數(shù)據(jù)指令

            temperl=dqread();//讀取低字節(jié)溫度值
            temperh=dqread();//讀取高字節(jié)溫度值
            temperl=temperl>>4;//移去低四位的溫度值
            temperh=temperh<<4;//移去讀回的符號號
            temper=temperl+temperh;//將處理后的高字節(jié)溫度和低字節(jié)溫度值相加
            for(i=250;i>0;i--)display(temper%10,temper/10,temper/100,10,10,10,10,10);//延時顯示實時溫度

            }
            }


            }
            }








            }
            void time0(void) interrupt 1
            {

            TH0=(65536-50000)/256;
            TL0=(65536-50000)%256;//定時器零重賦初值
            tim++;
            if(tim==20)
            {
            tim=0;//tim==20時,為50MS*20=1S
            sec++;
            }

            }





            上一頁 1 2 下一頁

            評論


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

            關(guān)閉