亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ds18b20.txt

?? 基于51單片機的溫度傳感器DS18B20的程序
?? TXT
字號:
51的DS18B20的C程序.2008年07月17日 星期四 11:09DS18B20溫度傳感器C51程序,無CRC2008-06-30 11:18/********************************************************
* DS18B20溫度傳感器                                   *
*           C51                                                    *
*  2008-06-28     無CRC                        *
********************************************************/

#include "reg51.h"
#include "intrins.h"
#include "DS18B20.h"


/********************************************************
* us延時程序                                                 *
********************************************************/
void Delayus(uchar us)   
{ 
    while(us--); //12M,一次6us,加進入退出14us(8M晶振,一次9us)  
}


/********************************************************
* DS18B20初始化                                         *
********************************************************/
bit Ds18b20_Init(void) //存在返0,否則返1
{
bit temp = 1;
uchar outtime = ReDetectTime; //超時時間
while(outtime-- && temp)
{
   Delayus(10); //(250)1514us時間可以減小嗎
   ReleaseDQ();
   Delay2us();
   PullDownDQ();
   Delayus(100); //614us(480-960)
   ReleaseDQ();
   Delayus(10); //73us(>60)
   temp = dq;
   Delayus(70); //us
}
return temp;
}

/********************************************************
* 寫bit2DS18B20                                        *
********************************************************/
void Ds18b20_WriteBit(bit bitdata)
{
if(bitdata)
{
   PullDownDQ();
   Delay2us();   //2us(>1us)
   ReleaseDQ(); //(上述1-15)
   Delayus(12); //86us(45- x,總時間>60)
}else
{
   PullDownDQ();
   Delayus(12); //86us(60-120)
}
ReleaseDQ();
Delay2us();    //2us(>1us) 
}

/********************************************************
* 寫Byte DS18B20                                       *
********************************************************/
void Ds18b20_WriteByte(uchar chrdata)
{
uchar ii;
for(ii = 0; ii < 8; ii++)
{
   Ds18b20_WriteBit(chrdata & 0x01);
   chrdata >>= 1;
}
}

/********************************************************
* 寫 DS18B20                                              *
********************************************************/
//void Ds18b20_Write(uchar *p_readdata, uchar bytes)
//{
// while(bytes--)
// {
//   Ds18b20_WriteByte(*p_readdata);
//   p_readdata++;
// }
//}


/********************************************************
* 讀bit From DS18B20                                 *
********************************************************/
bit Ds18b20_ReadBit(void)
{
bit bitdata;
PullDownDQ();
Delay2us();   //2us( >1us) 
ReleaseDQ();
Delay8us();   //8us( <15us)
bitdata = dq;
Delayus(7); //86us(上述總時間要>60us)
return bitdata;
}


/********************************************************
* 讀Byte DS18B20                                      *
********************************************************/
uchar Ds18b20_ReadByte(void)
{
uchar ii,chardata;
for(ii = 0; ii < 8; ii++)
{ 
   chardata >>= 1;
   if(Ds18b20_ReadBit()) chardata |= 0x80; 
}
return chardata;
}


/********************************************************
* 讀 DS18B20 ROM                                    *
********************************************************/
bit Ds18b20_ReadRom(uchar *p_readdata) //成功返0,失敗返1
{
uchar ii = 8;
if(Ds18b20_Init()) return 1;
Ds18b20_WriteByte(ReadROM);
while(ii--)
{
   *p_readdata = Ds18b20_ReadByte();
   p_readdata++;
}
return 0;
}


/********************************************************
* 讀 DS18B20 EE                                        *
********************************************************/
bit Ds18b20_ReadEE(uchar *p_readdata) //成功返0,失敗返1
{
uchar ii = 2;

if(Ds18b20_Init()) return 1;
Ds18b20_WriteByte(SkipROM);
Ds18b20_WriteByte(ReadScr);
while(ii--)
{
   *p_readdata = Ds18b20_ReadByte();
   p_readdata++;
}
return 0;
}


/********************************************************
* 溫度采集計算                                             *
********************************************************/
bit TempCal(float *p_wendu) //成功返0,失敗返1 (溫度范圍-55 --- +128)
{
uchar temp[9],ii;
uint tmp;
float tmpwendu;

TR1 = 0;
TR0 = 0;

//讀暫存器和CRC值-----------------------
if(Ds18b20_ReadEE(temp))
{
   TR1 = 1;
   TR0 = 1;
   return 1;
}
//-------------------------------------

    //CRC校驗------------------------------
//
//此處應加入CRC校驗等
//
//
//-------------------------------------


//使溫度值寫入相應的wendu[i]數組中-----
for(ii = i; ii > 0; ii--)  
{
   p_wendu++;
}
i++;
if(i > 4) i = 0;
//-------------------------------------


//溫度正負數處理-----------------------
//

//-------------------------------------


//溫度計算-----------------------------
tmp = temp[1];   //
tmp <<= 8;    //
tmp |= temp[0];   //組成溫度的兩字節合并
tmpwendu = tmp;
*p_wendu = tmpwendu / 16;
//-------------------------------------


//開始溫度轉換-------------------------
if(Ds18b20_Init()) 
{
   TR1 = 1;
   TR0 = 1;
   return 1;
}
Ds18b20_WriteByte(SkipROM);
Ds18b20_WriteByte(Convert);
ReleaseDQ(); //寄生電源時要拉高DQ
//------------------------------------

TR1 = 1;
TR0 = 1;
return 0;
}

//////////DS18B20.h/////////////////////////

/********************************************************
* I/O口定義                                                    *
********************************************************/
sbit dq = P1^3;
sbit dv = P1^4; //DS18B20強上拉電源


/********************************************************
* 命令字定義                                                 *
********************************************************/
#define uchar unsigned char
#define uint unsigned int


#define ReleaseDQ()   dq = 1;   //上拉/釋放總線
#define PullDownDQ() dq = 0;   //下拉總線

#define Delay2us()   _nop_();_nop_(); //延時2us,每nop 1us
#define Delay8us()   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

//設置重復檢測次次數,超出次數則超時
#define     ReDetectTime    20


//ds18b20命令
#define     SkipROM      0xCC
#define     MatchROM     0x55
#define     ReadROM      0x33
#define     SearchROM    0xF0
#define     AlarmSearch 0xEC

#define     Convert      0x44
#define     WriteScr     0x4E
#define     ReadScr      0xBE
#define     CopyScr      0x48
#define     RecallEE     0xB8
#define     ReadPower    0xB4


/********************************************************
* 函數                                                            * 
********************************************************/
void Delayus(uchar us);    
//void Dog(void);
bit Ds18b20_Init(void); //DS18B20初始化,存在返0,否則返1
void Ds18b20_WriteBit(bit bitdata);   //寫bit2DS18B20
void Ds18b20_WriteByte(uchar chrdata); //寫Byte DS18B20
void Ds18b20_Write(uchar *p_readdata, uchar bytes); //寫 DS18B20
bit Ds18b20_ReadBit(void);   //讀bit From DS18B20
uchar Ds18b20_ReadByte(void); //讀Byte DS18B20
bit Ds18b20_ReadRom(uchar *p_readdata); //讀 DS18B20 ROM:成功返0,失敗返1
bit Ds18b20_ReadEE(uchar *p_readdata); //讀 DS18B20 EE :成功返0,失敗返1
bit TempCal(float *p_wendu); //成功返0,失敗返1 (溫度范圍-55 --- +128)
 
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女视频在线观看| 日韩一区二区免费在线观看| 午夜欧美电影在线观看| 久久综合色天天久久综合图片| 菠萝蜜视频在线观看一区| 蜜臀91精品一区二区三区| 自拍偷拍亚洲激情| 国产午夜精品一区二区三区视频 | 日韩在线一区二区三区| 国产欧美精品一区二区色综合 | 日韩免费高清视频| 91福利在线播放| 成人免费视频一区| 国产一区二区三区久久久| 肉色丝袜一区二区| 一区二区三区在线免费| 中文字幕免费不卡| 久久久久久久久一| 亚洲在线中文字幕| 日本一区二区电影| 国产亚洲精品aa午夜观看| 欧美电视剧在线看免费| 欧美久久久久久久久| 欧美丝袜丝nylons| 91在线观看高清| 成人爱爱电影网址| 成人免费毛片app| 国产精品亚洲视频| 国产一区二区三区蝌蚪| 韩国女主播成人在线观看| 男人的j进女人的j一区| 视频一区中文字幕国产| 亚洲va在线va天堂| 亚洲第一精品在线| 亚洲午夜精品一区二区三区他趣| 成人免费一区二区三区在线观看| 国产精品免费av| 国产精品第13页| 最新中文字幕一区二区三区 | 日韩一区在线播放| 日本一区二区不卡视频| 国产精品嫩草影院av蜜臀| 国产女人水真多18毛片18精品视频| 久久久久久久久岛国免费| 久久久99久久| 国产人伦精品一区二区| 国产精品嫩草影院com| 亚洲欧美偷拍卡通变态| 一区二区三区久久| 天堂av在线一区| 久久99久久精品| 国产精品996| av网站免费线看精品| 在线精品视频一区二区| 欧美日韩精品一区二区三区蜜桃| 欧美日本一区二区三区四区| 日韩一区二区在线看| 精品国产免费久久| 国产欧美日韩一区二区三区在线观看| 中文字幕在线一区免费| 亚洲精品乱码久久久久久久久 | 777奇米成人网| 日韩欧美一级精品久久| 国产欧美精品一区二区三区四区| 国产精品福利一区二区三区| 亚洲一区在线观看网站| 久久99精品一区二区三区| 成人福利在线看| 欧美日韩一区二区三区四区| 久久综合色播五月| 亚洲日本中文字幕区| 偷拍与自拍一区| 国产成人av电影| 欧美日韩高清一区二区| 久久精品视频一区| 樱花影视一区二区| 麻豆91精品91久久久的内涵| 波多野结衣在线一区| 欧美日韩免费一区二区三区| 久久亚洲欧美国产精品乐播| 曰韩精品一区二区| 九九久久精品视频| 99国产一区二区三精品乱码| 欧美精品第1页| 国产精品三级在线观看| 天天av天天翘天天综合网色鬼国产| 国产九色sp调教91| 精品视频免费看| 国产日韩三级在线| 日本中文字幕一区二区有限公司| 丁香桃色午夜亚洲一区二区三区 | 国产丝袜欧美中文另类| 亚洲一区av在线| 国产99久久久久久免费看农村| 欧美性videosxxxxx| 亚洲国产精品av| 免费av网站大全久久| 91福利视频久久久久| 久久久久国产精品人| 视频一区中文字幕国产| 色综合天天视频在线观看| 欧美不卡一二三| 亚洲成人资源在线| 一本色道久久综合亚洲aⅴ蜜桃| 久久一夜天堂av一区二区三区| 亚洲成人av电影| 99精品欧美一区| 国产欧美日韩亚州综合| 久久电影国产免费久久电影 | 色婷婷香蕉在线一区二区| 久久久久久久网| 麻豆精品视频在线观看免费 | 亚洲人午夜精品天堂一二香蕉| 日韩不卡免费视频| 色天使色偷偷av一区二区| 亚洲国产高清aⅴ视频| 久久91精品国产91久久小草| 91精品国产综合久久国产大片| 夜夜爽夜夜爽精品视频| 99re热视频这里只精品| 国产日韩精品久久久| 激情综合色综合久久综合| 欧美日高清视频| 亚洲综合精品自拍| 91国模大尺度私拍在线视频| 亚洲欧洲av色图| 不卡一区中文字幕| 中文在线免费一区三区高中清不卡| 国产在线不卡一卡二卡三卡四卡| 欧美电影免费观看高清完整版在线观看 | 久久综合精品国产一区二区三区| 天堂成人国产精品一区| 欧美日韩aaaaaa| 日韩av中文字幕一区二区三区| 欧美三级一区二区| 日韩激情av在线| 日韩欧美一区二区在线视频| 日本午夜一区二区| 欧美一卡二卡三卡| 精品一区二区在线视频| 日韩欧美国产综合| 国产一区二区三区蝌蚪| 久久精品亚洲国产奇米99| 成人午夜激情影院| 国产精品成人免费精品自在线观看| 成人avav影音| 亚洲精品国产a| 欧美三电影在线| 日本欧美肥老太交大片| 精品乱码亚洲一区二区不卡| 韩国欧美国产1区| 国产精品久久一级| 色婷婷av一区二区三区软件 | 精品一区二区在线视频| 久久精品一区二区| 99久久精品国产一区| 亚洲综合精品久久| 欧美日韩高清一区二区| 九色综合狠狠综合久久| 国产精品久久久久久久蜜臀| 91偷拍与自偷拍精品| 亚洲线精品一区二区三区八戒| 91精品在线免费| 国产很黄免费观看久久| 中文字幕一区二区三| 欧美日韩一区二区三区在线| 男男视频亚洲欧美| 国产人伦精品一区二区| 色94色欧美sute亚洲线路一ni| 日韩精品国产欧美| 日本一区二区三级电影在线观看| 91在线视频观看| 丝袜国产日韩另类美女| 久久精品一区二区三区四区| 日本韩国一区二区| 久久99国产精品久久| 17c精品麻豆一区二区免费| 欧美日韩亚州综合| 国产精品69久久久久水密桃| 亚洲欧美激情插| 亚洲精品一区二区三区99| 9久草视频在线视频精品| 五月激情综合色| 国产精品久久久久久久第一福利| 精品视频在线免费看| 国产久卡久卡久卡久卡视频精品| 夜夜嗨av一区二区三区四季av| 精品成人一区二区| 日本韩国欧美三级| 国产一区二区伦理片| 亚洲一区二区不卡免费| 国产欧美一区二区三区在线看蜜臀| 欧美伊人精品成人久久综合97 | 欧美美女视频在线观看| 成人一级黄色片| 免费人成在线不卡| 亚洲欧美色综合| 26uuu精品一区二区| 欧美日韩一二区| 一本高清dvd不卡在线观看|