新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機驅動溫感的18B20.h文件

        單片機驅動溫感的18B20.h文件

        作者: 時間:2016-11-30 來源:網絡 收藏
        DS18B20是世界上第一個單線通訊的12位二進制數字溫度傳感器。工作電壓從3.0~5.5V,測量溫度范圍從-55℃~125℃,具有最高±0.0625℃的分辨率。

        DS18B20數字溫度傳感器封裝后可應用于多種場合。封裝后的DS18B20可用于電纜溝測溫,高爐水循環測溫,鍋爐測溫,機房測溫,農業大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設備數字測溫和控制領域。
        利用單片機完全可以讀取DS18B20所測量到的二進制數字溫度,測溫步驟:1、復位;2、跳過讀序列號命令(總線只有一個DS18B20);3、啟動溫度轉換;4、延時;5、讀取溫度;6、處理測量到的二進制數據;7、顯示。
        為方便調用我封裝為了一個18b20.h文件下載地址:http://www.51hei.com/f/18b20h.rar可以任意調用.
        下面是18B20.h程序:

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

        sbit DQ=P3^3;
        void delay_50us(uint t)
        {
        unsigned char j;
        for(;t>0;t--)
        for(j=19;j>0;j--);
        }

        void delay_8us(uint t)
        {
        while(--t);
        }

        void delay_3us()
        {
        ;
        ;
        }

        void write_ds18b20(uchar value)
        {
        uchar i=0;
        for(i=0;i<8;i++)
        {
        DQ=1;
        delay_3us();
        DQ=0;
        delay_8us(2);
        if (value & 0x01) DQ=1; //
        delay_50us(1);
        delay_8us(2);
        value>>=1;
        }
        DQ=1; //
        }

        uchar read_ds18b20(void)
        {
        uchar i=0;
        uchar value = 0;
        for (i=0;i<8;i++)
        {
        value>>=1;
        DQ=0;// DQ_L;
        delay_3us();
        DQ=1; //
        delay_8us(2);
        if(DQ==1) value|=0x80;
        delay_8us(6);
        }
        DQ=1;
        return value;
        }

        void rest_ds18b20(void)
        {
        rest:delay_3us();
        delay_3us();
        DQ=1;
        delay_3us();
        DQ=0;
        delay_50us(11);
        DQ=1;
        delay_8us(5);
        if(DQ==1)
        return;
        delay_50us(2);
        if(DQ==1)
        return;
        else
        goto rest;
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 靖州| 黔西县| 梨树县| 剑川县| 蛟河市| 肥乡县| 新化县| 新田县| 宜兴市| 井陉县| 霍邱县| 尼勒克县| 通江县| 玉田县| 黑龙江省| 昌都县| 陈巴尔虎旗| 珲春市| 谢通门县| 扎兰屯市| 南平市| 来宾市| 水城县| 璧山县| 紫金县| 衡山县| 松滋市| 北票市| 嘉峪关市| 抚顺县| 江华| 永定县| 新和县| 万年县| 平乡县| 永嘉县| 双柏县| 饶河县| 公安县| 三亚市| 石家庄市|