欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
ds1820.h頭文件下載
[打印本頁(yè)]
作者:
das
時(shí)間:
2015-4-18 04:02
標(biāo)題:
ds1820.h頭文件下載
基于msp430單片機(jī)的溫度驅(qū)動(dòng)ds1820.h頭文件下載:
#include <msp430x14x.h>
uint temp_value;
uint temp,E1,E2,E3; //定義的變量,顯示數(shù)據(jù)處理
//*************************************************************************
// DS18B20初始化
//*************************************************************************
unsigned char DS18B20_Reset(void) //初始化和復(fù)位
{
unsigned char i;
DQ_OUT;
DQ_CLR;
delay_us(500); //延時(shí)500uS(480-960)
DQ_SET;
DQ_IN;
delay_us(80); //延時(shí)80uS
i = DQ_R;
delay_us(500); //延時(shí)500uS(保持>480uS)
if (i)
{
return 0x00;
}
else
{
return 0x01;
}
}
//*************************************************************************
// DS18B20讀一個(gè)字節(jié)函數(shù)
//*************************************************************************
unsigned char ds1820_read_byte(void)
{
unsigned char i;
unsigned char value = 0;
for (i = 8; i != 0; i--)
{
value >>= 1;
DQ_OUT;
DQ_CLR;
delay_us(4); //*延時(shí)4uS
DQ_SET;
DQ_IN;
delay_us(10); //*延時(shí)10uS
if (DQ_R)
{
value|=0x80;
}
delay_us(60); //*延時(shí)60uS
}
return(value);
}
//*************************************************************************
// 向18B20寫一個(gè)字節(jié)函數(shù)
//*************************************************************************
/*DS18B20字節(jié)寫入函數(shù)*/
void ds1820_write_byte(unsigned char value)
{
unsigned char i;
for (i = 8; i != 0; i--)
{
DQ_OUT;
DQ_CLR;
delay_us(4); //延時(shí)4uS
if (value & 0x01)
{
DQ_SET;
}
delay_us(80); //延時(shí)80uS
DQ_SET; //位結(jié)束
value >>= 1;
}
}
//*************************************************************************
// 發(fā)送溫度轉(zhuǎn)換命令
//*************************************************************************
/*啟動(dòng)ds1820轉(zhuǎn)換*/
void ds1820_start(void)
{
DS18B20_Reset();
ds1820_write_byte(0xCC); //勿略地址
ds1820_write_byte(0x44); //啟動(dòng)轉(zhuǎn)換
}
//*************************************************************************
// DS8B20讀取溫度信息
//*************************************************************************
unsigned int ds1820_read_temp(void)
{
unsigned int i;
unsigned char buf[9];
DS18B20_Reset();
ds1820_write_byte(0xCC); //勿略地址
ds1820_write_byte(0xBE); //讀取溫度
for (i = 0; i < 9; i++)
{
buf[i] = ds1820_read_byte();
}
i = buf[1];
i <<= 8;
i |= buf[0];
temp_value=i;
temp_value=(uint)(temp_value*0.625); //不是乘以0.0625的原因是為了把小數(shù)點(diǎn)后一位數(shù)據(jù)也轉(zhuǎn)化為可以顯示的數(shù)據(jù)
//比如溫度本身為27.5度,為了在后續(xù)的數(shù)據(jù)處理程序中得到BCD碼,我們先放大到275
//然后在顯示的時(shí)候確定小數(shù)點(diǎn)的位置即可,就能顯示出27.5度了
return i;
}
//*************************************************************************
// 溫度數(shù)據(jù)處理函數(shù)
//*************************************************************************
void data_do(uint temp_d)
{
uint A2t;
E1=temp_d/100; //分出百,十,和個(gè)位
A2t=temp_d%100;
E2=A2t/10;
E3=A2t%10;
}
復(fù)制代碼
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1