基于Matlab的一種小型溫度檢測(cè)系統(tǒng)的設(shè)計(jì)
2,基本操作:DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。對(duì)DS18B20 進(jìn)行所有的讀寫操作都是從初始化開始的,主要分為初始化操作,讀操作和寫操作。
基于以上分析,對(duì)DS18B20的編程源碼如下:
Init_DS18B20(void) //初始化函數(shù)
{DQ = 1; //DQ復(fù)位
Delay15(1); //稍做延時(shí)
DQ = 0; //單片機(jī)將DQ拉低
Delay15(32); //精確延時(shí) 大于 480us
DQ = 1; //拉高總線
Delay15(6); //延時(shí)90us
x=DQ; //讀存在脈沖
delay15(20); //延時(shí)約270us
}
Write_DS18B20(unsigned char dat)//寫一個(gè)字節(jié)
{
unsigned char i="0";//定義循環(huán)變量
for (i=0; i8; i++)
{
DQ = 0; //復(fù)位
DQ = dat0x01;//取數(shù)據(jù)的第i位并送出
Delay15(1);//延時(shí)
DQ = 1; //停止
dat>>=1;//右移
}
}
Read_DS18B20(void)//讀一個(gè)字節(jié)
{
unsigned char i="0";
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 復(fù)位
dat>>=1;
DQ = 1; // 給脈沖信號(hào)
if(DQ)
dat|=0x80;//取位脈沖并存入dat
delay15(1);//延時(shí)
}
return(dat);
}
評(píng)論