在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 自制51單片機(jī)常用頭文件(DS18B20)

            自制51單片機(jī)常用頭文件(DS18B20)

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

            TEMPERATURE.H

            本文引用地址:http://www.biyoush.com/article/201611/317352.htm

            The user function is C51.
            Copyright (c) 1988-2004 Keil Elektronik GmbH sum zhaojun
            All rights reserved.
            --------------------------------------------------------------------------*/
            #ifndef __TEMPERATURE_H__
            #define __TEMPERATURE_H__

            #define uchar unsigned char
            #define uint unsigned int

            sbit DQ = P3^3; // ds18b20單片機(jī)連接口

            uchar data Tp[8]; // 溫度顯示數(shù)據(jù)

            /******************************ds1820程序

            ***************************************/
            /*****************************************************
            函 數(shù) 名:void Delay_DS(uint useconds)
            功 能:DS18B20延時(shí)1微秒
            說 明:DS18B20時(shí)序延時(shí)
            入口參數(shù):useconds
            返 回 值:無
            *****************************************************/
            //延時(shí)
            void Delay_DS(uint useconds)//延時(shí)1微秒
            {
            while (useconds--);
            }

            /*****************************************************
            函 數(shù) 名:void Ow_Reset()
            功 能:DS18B20復(fù)位
            說 明:DS18B20使用時(shí)先要復(fù)位
            入口參數(shù):無
            返 回 值:
            *****************************************************/
            void Ow_Reset()
            {
            DQ = 1; // DQ復(fù)位
            Delay_DS(4); // 延時(shí)
            DQ = 0; // DQ拉低
            Delay_DS(100); // 精確延時(shí)大于480us
            DQ = 1; // 拉高
            Delay_DS(40);
            }

            /*****************************************************
            函 數(shù) 名:uchar Read_byte()
            功 能:從 1-wire 總線上讀取一個(gè)字節(jié)
            說 明:讀總線上的數(shù)據(jù)有嚴(yán)格的時(shí)序
            入口參數(shù):
            返 回 值:value
            *****************************************************/
            uchar Read_byte()
            {
            uchar i = 0;
            uchar value = 0;

            for (i=8; i>0; i--)
            {
            DQ = 0; // 給脈沖信號(hào)
            value >>= 1;
            DQ = 1; // 給脈沖信號(hào)
            if(DQ)
            value |= 0x80;
            Delay_DS(10);
            }

            return (value);
            }

            /*****************************************************
            函 數(shù) 名:void Write_Byte()
            功 能:向 1-WIRE 總線上寫一個(gè)字節(jié)
            說 明:寫總線上的數(shù)據(jù)有嚴(yán)格的時(shí)序
            入口參數(shù):val
            返 回 值:無
            *****************************************************/
            void Write_Byte(uchar val)
            {
            uchar i = 0;

            for (i=8; i>0; i--)
            {
            DQ = 0;
            DQ = val & 0x01;
            Delay_DS(10);
            DQ = 1;
            val >>= 1;
            }
            }

            /*****************************************************
            函 數(shù) 名:void Read_Temperature()
            功 能:讀溫度并放入顯示數(shù)組中
            說 明:
            入口參數(shù):xx,yy
            返 回 值:無
            *****************************************************/
            void Read_Temperature()
            {
            uchar a,b;
            uchar tflag; // 溫度正負(fù)標(biāo)志
            uint tvalue; // 溫度值

            Ow_Reset();
            Write_Byte(0xcc); // 跳過讀序列號(hào)*
            Write_Byte(0x44); // 啟動(dòng)溫度轉(zhuǎn)換

            Ow_Reset();
            Write_Byte(0xcc); // 跳過讀序列號(hào)
            Write_Byte(0xbe); // 讀取溫度

            a = Read_byte(); // 讀出溫度低8位
            b = Read_byte(); // 讀出溫度高8位
            tvalue = b;
            tvalue <<= 8;
            tvalue = tvalue | a;

            if( tvalue < 0x0fff)
            {
            tflag = 0;
            }
            else
            {
            tvalue = ~tvalue + 1;
            tflag = 1;
            }

            tvalue = tvalue*(0.625); // 溫度值擴(kuò)大10倍,精確到1位小數(shù)

            Tp[2] = tvalue%1000/100+0x30; // 十位數(shù)
            Tp[3] = tvalue%100/10+0x30; // 個(gè)位數(shù)
            Tp[4] = 0x2e; // 顯示小數(shù)點(diǎn)
            Tp[5] = tvalue%10+0x30; // 顯示溫度小數(shù)位
            Tp[6] = 0x01; // 顯示自定義字符
            Tp[7]= 0x43; // 顯示字符"C"

            if (tflag == 0)
            {
            Tp[1] = 0x20; // 正溫度不顯示符號(hào)
            }
            else
            {
            Tp[1] = 0x2d; // 負(fù)溫度顯示負(fù)號(hào):-
            }
            if (Tp[2] == 0x30)
            {
            Tp[2] = 0x20; // 如果十位為0,不顯示
            }
            }

            /*****************************************************
            函 數(shù) 名:void Adjust_Res()
            功 能:溫度分辨率調(diào)整
            說 明:此函數(shù)可以對(duì)溫度的顯示進(jìn)行精度調(diào)節(jié).
            入口參數(shù):res
            返 回 值:無
            *****************************************************/
            void Adjust_Res(char res) // res 分別等于 0x1f, 0x3f, 0x5f 溫度讀數(shù)分辨率分別對(duì)應(yīng)
            // 0.5, 0.25, 0.125
            {
            Ow_Reset(); // 復(fù)位
            Write_Byte(0xcc); // 跳過Rom
            Write_Byte(0x4e); // 寫暫存器

            Write_Byte(0x02); // 寫TH
            Write_Byte(0x01); // 寫TL
            Write_Byte(res); // 溫度轉(zhuǎn)換分辨率設(shè)置

            Ow_Reset(); // 復(fù)位
            Write_Byte(0xcc); // 跳過Rom
            Write_Byte(0x48); // 把暫存器內(nèi)容寫到EPRam中
            }

            #endif



            關(guān)鍵詞: 51單片機(jī)頭文件DS18B2

            評(píng)論


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

            關(guān)閉