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

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

?? ds18b20溫度傳感器c51程序,無crc.txt

?? DS18B20 Temperature Sensor C51 procedures, without CRC
?? TXT
字號:

/********************************************************
* DS18B20溫度傳感器                                   *
*           C51                                                    *
* yajou 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一区二区三区免费野_久草精品视频
一区二区三区在线免费| 久久综合九色综合97婷婷 | 亚洲成人手机在线| 91理论电影在线观看| 亚洲精品国产精华液| 欧美色男人天堂| 日韩激情av在线| 日韩三级伦理片妻子的秘密按摩| 麻豆91精品视频| 国产免费久久精品| 欧美在线免费观看亚洲| 天堂久久久久va久久久久| 日韩欧美国产三级| 成人性色生活片免费看爆迷你毛片| 中文字幕在线观看一区| 欧洲视频一区二区| 精品一区二区三区久久| 国产精品乱码人人做人人爱 | 免费成人在线播放| 国产清纯美女被跳蛋高潮一区二区久久w | 一区二区三区精品在线观看| 欧美精品视频www在线观看| 日韩中文字幕1| 国产欧美日韩综合| 欧美日韩一区二区三区视频| 国精产品一区一区三区mba桃花| 国产精品久久久久毛片软件| 欧美视频中文字幕| 国产九色精品成人porny| 尤物视频一区二区| 精品国产凹凸成av人导航| 91丨porny丨户外露出| 免费久久99精品国产| 国产精品对白交换视频 | 国产精品理论片在线观看| 欧美理论在线播放| 国产二区国产一区在线观看| 亚洲一区在线免费观看| 久久精品一区二区三区四区| 欧美撒尿777hd撒尿| 懂色av中文字幕一区二区三区| 亚洲国产日韩综合久久精品| 国产日韩欧美综合一区| 欧美日韩的一区二区| jlzzjlzz欧美大全| 欧美日韩国产精品成人| 国产成人精品亚洲777人妖| 午夜视频在线观看一区二区| 国产精品天美传媒沈樵| 日韩一区二区麻豆国产| 欧美视频三区在线播放| 不卡一区二区三区四区| 国产在线视视频有精品| 日韩福利视频导航| 一区二区激情小说| 国产精品久久久久毛片软件| 久久久久久影视| 日韩三级在线观看| 337p亚洲精品色噜噜| 91久久久免费一区二区| 成人av在线资源网站| 国产一区在线不卡| 激情六月婷婷久久| 五月天视频一区| 亚洲国产精品一区二区www在线| 国产精品系列在线| 亚洲国产经典视频| 国产性色一区二区| 久久久久久9999| 欧美精品一区二区久久婷婷| 欧美一级搡bbbb搡bbbb| 在线不卡的av| 制服丝袜激情欧洲亚洲| 欧美二区在线观看| 欧美性欧美巨大黑白大战| 色婷婷久久久久swag精品| 91丝袜美腿高跟国产极品老师| 国产综合成人久久大片91| 久久不见久久见免费视频1| 日本欧美一区二区三区| 免费在线一区观看| 久久成人精品无人区| 国产一区二区电影| 成人精品在线视频观看| 91在线精品一区二区三区| 91视频91自| 精品视频一区 二区 三区| 欧美男男青年gay1069videost| 欧美中文字幕一二三区视频| 欧美日韩电影在线播放| 欧美日韩情趣电影| 欧美一级专区免费大片| 久久色中文字幕| 国产精品免费网站在线观看| 成人免费在线视频| 亚洲3atv精品一区二区三区| 日韩和欧美一区二区| 九色porny丨国产精品| 国产激情一区二区三区桃花岛亚洲| 国产成人日日夜夜| 色综合视频一区二区三区高清| 在线日韩国产精品| 日韩一区二区麻豆国产| 国产免费成人在线视频| 亚洲一区二区精品3399| 美腿丝袜一区二区三区| 懂色av中文一区二区三区| 在线视频一区二区免费| 日韩精品综合一本久道在线视频| 国产清纯白嫩初高生在线观看91| 亚洲天堂成人在线观看| 免费的国产精品| a在线播放不卡| 日韩午夜av电影| 国产精品国产三级国产aⅴ入口| 亚洲午夜电影在线观看| 国产一区二区精品在线观看| 色综合天天综合在线视频| 日韩欧美在线1卡| 亚洲欧洲精品一区二区三区不卡 | 免费在线视频一区| 成人av资源网站| 91麻豆精品国产无毒不卡在线观看| 日韩欧美一区二区视频| 亚洲蜜桃精久久久久久久| 毛片av中文字幕一区二区| 91网上在线视频| 久久久久99精品一区| 亚洲一区二区精品久久av| 成人一区在线看| 欧美电影免费观看高清完整版在 | 国产成人a级片| 欧美日韩国产区一| 亚洲欧美综合在线精品| 蜜桃久久久久久久| 一本大道av伊人久久综合| 2023国产精品自拍| 日韩精品一卡二卡三卡四卡无卡 | 97久久超碰国产精品| 精品播放一区二区| 日韩国产精品久久久久久亚洲| 91免费视频网| 国产欧美一区二区精品秋霞影院| 日本视频一区二区| 欧美三级蜜桃2在线观看| 国产精品高潮呻吟久久| 久久精品国产一区二区三| 欧美片网站yy| 亚洲一区二区精品久久av| 99re热视频这里只精品| 国产欧美日韩亚州综合| 国产在线日韩欧美| 精品国产百合女同互慰| 久久精品久久精品| 91精品国产欧美一区二区| 午夜私人影院久久久久| 欧美亚洲国产一区在线观看网站| ●精品国产综合乱码久久久久| 国产成人亚洲综合色影视 | 欧美激情一区在线观看| 黄色资源网久久资源365| 日韩一卡二卡三卡| 日本在线播放一区二区三区| 欧美福利视频一区| 亚洲成a人在线观看| 欧美日韩精品一区视频| 亚洲国产精品一区二区久久| 欧美色图免费看| 天堂久久久久va久久久久| 精品视频999| 日韩国产成人精品| 欧美一级理论片| 热久久免费视频| 精品国产露脸精彩对白| 韩国女主播成人在线观看| 精品国产1区2区3区| 国产成人亚洲精品狼色在线| 国产精品青草久久| 一本色道a无线码一区v| 亚洲成人免费电影| 555www色欧美视频| 精品在线一区二区三区| 国产日韩欧美一区二区三区综合| 成人丝袜高跟foot| 亚洲乱码中文字幕综合| 欧美高清视频不卡网| 久久超碰97中文字幕| 国产精品五月天| 色乱码一区二区三区88| 秋霞av亚洲一区二区三| 精品欧美乱码久久久久久 | 蜜桃av一区二区三区| 久久久久久久电影| 99精品一区二区| 亚洲成av人影院| 久久一夜天堂av一区二区三区| 成人免费毛片aaaaa**| 亚洲一区中文日韩| 欧美精品一区二区三区久久久| 97精品久久久午夜一区二区三区|