新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > DS18B20延時(shí)函數(shù)版

        DS18B20延時(shí)函數(shù)版

        作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏

        //---------讀1字節(jié)函數(shù)------------
        uchar readbyte()
        {
        uchar i,byte=0;
        for(i=0;i<8;i++)
        {
        Dq=0;
        byte>>=1;
        Dq=1;
        if(Dq)
        {
        byte=byte|0x80;
        }
        delay34us();
        }
        return byte;
        }

        //-----------寫1字節(jié)函數(shù)--------
        void writebyte(uchar byt)
        {
        uchar i;
        for(i=0;i<8;i++)
        {
        Dq=0;
        Dq=byt&0x01;
        delay34us();
        Dq=1;
        byt>>=1;
        }
        }

        //---------溫度讀取函數(shù)--------
        uint readtemp()
        {
        uint temp=0;
        uchar TH,TL;
        if(init18b20()!=3)return 1;//啟動(dòng)失敗返回值1
        writebyte(0xcc);
        writebyte(0x44);
        ;;
        if(init18b20()!=3)return 1; //啟動(dòng)失敗返回值1
        writebyte(0xcc);
        writebyte(0xbe);
        TL=readbyte();
        TH=readbyte();
        temp=TH;
        temp<<=8;
        temp=temp+TL;
        temp=temp*0.0625*10; //乘以10取出小數(shù)部分
        return temp;
        }


        //------------主函數(shù)----------

        void main()
        {
        uint num=0;
        TMOD=0x50;
        TH1=0xff;
        TL1=0x60;
        EA=1;
        ET1=1;
        TR1=1;
        rst(); //看門狗
        while(1)
        {
        start:num=readtemp();
        if(num==1) //啟動(dòng)失敗數(shù)碼管最高位設(shè)置為1
        {
        warning=1; //啟動(dòng)失敗報(bào)警變量設(shè)置為 1
        P0=seg7[1];
        P2=0xfe;
        delay(40);
        goto start; //啟動(dòng)失敗重新啟動(dòng)判斷,直到成功才顯示溫度數(shù)值,然后啟動(dòng)判斷失敗1消失。
        }
        rst();//看門狗
        warning=num;
        P0=seg7[num/100];
        P2=0xdf;
        delay(10);
        P0=seg7[num%100/10];
        dec=0;
        P2=0xbf;
        delay(10);
        P0=seg7[num%100%10];
        dec=1;
        P2=0x7f;
        delay(10);
        }
        }


        上一頁(yè) 1 2 下一頁(yè)

        關(guān)鍵詞: DS18B20延時(shí)函

        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 瑞丽市| 临潭县| 罗城| 永兴县| 壶关县| 鞍山市| 灌云县| 喜德县| 高雄县| 涿鹿县| 宜昌市| 开江县| 赤城县| 泽库县| 中西区| 昔阳县| 石狮市| 舞阳县| 民县| 沂水县| 长治县| 江都市| 睢宁县| 佛学| 桃源县| 沾化县| 太白县| 沁阳市| 玛沁县| 岳西县| 平凉市| 那坡县| 湘西| 新巴尔虎左旗| 额尔古纳市| 长丰县| 和平县| 高阳县| 长子县| 宁武县| 新乐市|