日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 技術(shù)學(xué)院 > 熱搜器件
[導(dǎo)讀]頭文件部分:#ifndef __DS18B20_H__#define __DS18B20_H__#define uint8 unsigned char#define uint16 unsigned intsbit DQ=P3^7;uint16 get_temp();#endif程序部分:#include #include "DS18B20.h"#include /******

頭文件部分:

#ifndef __DS18B20_H__

#define __DS18B20_H__

#define uint8 unsigned char

#define uint16 unsigned int

sbit DQ=P3^7;

uint16 get_temp();

#endif

程序部分:

#include

#include "DS18B20.h"

#include

/*********************************************************************

* 函數(shù)名稱:write_byte(uint8 num)

* 功 能:向18B20寫(xiě)數(shù)據(jù)

* 入口參數(shù):要寫(xiě)的一個(gè)字節(jié)的數(shù)據(jù)

* 出口參數(shù):無(wú)

* 返 回 值:無(wú)

********************************************************************/

void write_byte(uint8 num)

{

uint8 i;

uint16 tt;

bit m;

for(i=0;i<8;i++)

{

m=num&0x01;

num>>=1;

DQ=1;

DQ=0;

tt++;

DQ=m;

for(tt=0;tt<7;tt++);

DQ=1;

tt++;

}

}

/*********************************************************************

* 函數(shù)名稱:read_byte()

* 功 能:向18B20讀數(shù)據(jù)

* 入口參數(shù):無(wú)

* 出口參數(shù):無(wú)

* 返 回 值:讀出的一個(gè)字節(jié)數(shù)據(jù)

********************************************************************/

uint8 read_byte()

{

uint8 i,num;

uint16 tt;

bit m;

for(i=0;i<8;i++)

{

DQ=1;

DQ=0;

tt++;

DQ=1;

tt++;

m=DQ;

for(tt=0;tt<7;tt++);

DQ=1;

num>>=1;

if(m)

{

num|=0x80;

}

}

return(num);

}

/*********************************************************************

* 函數(shù)名稱:DS18b20_reset()

* 功 能:18B20復(fù)位

* 入口參數(shù):無(wú)

* 出口參數(shù):無(wú)

* 返 回 值:無(wú)

********************************************************************/

void DS18b20_reset()

{

bit m=1;

uint16 tt;

while(m)

{

while(m)

{

DQ=1;

DQ=0;

for(tt=0;tt<80;tt++);

DQ=1;

for(tt=0;tt<5;tt++);

m=DQ;

}

for(tt=0;tt<50;tt++);

m=~DQ;

}

DQ=1;

}

/*********************************************************************

* 函數(shù)名稱:start_temp()

* 功 能:?jiǎn)?dòng)溫度轉(zhuǎn)換

* 入口參數(shù):無(wú)

* 出口參數(shù):無(wú)

* 返 回 值:無(wú)

********************************************************************/

void start_temp()

{

DS18b20_reset();

write_byte(0xCC); // 發(fā)Skip ROM命令

write_byte(0x44); // 發(fā)轉(zhuǎn)換命令

}

/*********************************************************************

* 函數(shù)名稱:get_temp()

* 功 能:獲取溫度值

* 入口參數(shù):無(wú)

* 出口參數(shù):無(wú)

* 返 回 值:18B20的雙字節(jié)溫度

********************************************************************/

uint16 get_temp()

{

uint8 a,b;

uint16 temp;

DS18b20_reset();

write_byte(0xCC); //發(fā)Skip ROM命令

write_byte(0xBE); //發(fā)read命令

a=read_byte(); //低8位

b=read_byte(); //高8位

temp=b<<8;

temp|=a;

start_temp();

return(temp);

}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉