久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

立即注冊 登錄
返回首頁

uid:203025的個人空間

日志

DS18B20讀取溫度程序代碼段

已有 1392 次閱讀2017-5-23 20:01


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include"reg51.h"
 
#include"d1820.h"
 
int t;
 
uint num;
 
uchar dat; //讀寫數(shù)據(jù)變量
 
uchar a=0;
 
uchar b=0;
 
float tep=0; //讀一個溫度時的溫度轉換中間間
 
uchar data tempbuf[4]=0;//溫度字型顯示中間變量
 
/******************************************************
 
函數(shù)名稱:delay(uint num)
 
返回值:無
參數(shù):uint num 
延時數(shù)據(jù)值
作用:延時
 
*******************************************************/
 
void delay(uint num)
 
{
 
while(num--);
 
}
 
/******************************************************
 
函數(shù)名稱:void Init_DS18B20(void)
 
返回值:無
 
參數(shù):無
 
作用:初始化18B20
 
*******************************************************/
 
void Init_DS18B20(void)
 
{
 
char x=0;
 
DQ=1;
delay(10);//稍作延時
DQ=0;
delay(80);//延時>480us 540us
DQ=1; //拉高總線 15-60us
delay(20);
x=DQ;//讀總線狀態(tài) 為0復位成功,為1則不成功
delay(30);
DQ=1;//釋放總線
}
/******************************************************
函數(shù)名稱:uchar ReadOneChar(void)
返回值:uchar dat
參數(shù): 無
作用:讀取1820一個字節(jié)
*******************************************************/
uchar ReadOneChar(void)
{
uchar i;
uchar dat=0;
for(i=0;i<8;i++)
{
DQ=0;
dat>>=1;
DQ=1;//給脈沖
if(DQ)
{dat|=0x80;}//讀1 /// 讀0右移處理
delay(8);//15us內(nèi)讀完一個數(shù)
}
return(dat);
}
/******************************************************
函數(shù)名稱:void WriteOneChar(uchar dat)
返回值:無
參數(shù): uchar dat
作用:向1820寫一個字節(jié)
*******************************************************/
/////****寫DS18B20***/
//寫0 60us讀完,寫1 30us 內(nèi)讀完
 
void WriteOneChar(uchar dat)
{
uchar i=0;
for(i=0;i<8;i++)
{
DQ=0;
DQ=dat&0x01;//寫所給數(shù)據(jù)最低位
delay(10);
///////////
DQ=1;//給脈沖
dat>>=1;
}
delay(8);
}
/******************************************************
函數(shù)名稱:int ReadOneTemperature(void)
返回值:int t
參數(shù): 無
作用:讀溫度值
*******************************************************/
int ReadOneTemperature(void)
////////***讀取溫度值***********/
//// 每次讀寫均要先復位
{
Init_DS18B20();
WriteOneChar(0xcc);//發(fā)跳過ROM命令
WriteOneChar(0x44);//發(fā)讀開始轉換命令
Init_DS18B20();
WriteOneChar(0xcc);//發(fā)跳過ROM命令
WriteOneChar(0xbe);//讀寄存器,共九字節(jié),前兩字節(jié)為轉換值
a=ReadOneChar(); //a存低字節(jié)
b=ReadOneChar(); //b存高字節(jié)
t=b;
t<<=8;//高字節(jié)轉換為10進制
t=t|a;
tep=t*0.0625;//轉換精度為0.0625/LSB
t=tep*10+0.5;//保留1位小數(shù)并四舍五入****后面除10還原正確溫度值)
return(t);
}
/******************************************************
函數(shù)名稱:uint Temperaturepro(void)
返回值:void
參數(shù): void
作用:溫度處理
*******************************************************/
void Temperaturepro(void)
{
int temp;
temp=ReadOneTemperature();
tempbuf[3]=temp/1000;//百位
tempbuf[2]=temp/100%10;//十位
tempbuf[1]=temp%100/10; //個位
tempbuf[0]=temp%10; //小數(shù)
}

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

返回頂部
主站蜘蛛池模板: 精品国产鲁一鲁一区二区张丽 | 国产免费av在线 | 亚洲福利片 | 欧美一级黄色网 | 天天夜碰日日摸日日澡 | 一二区视频 | www.国产精品| 精品免费国产视频 | 中文字幕日韩三级 | 国产精品久久7777777 | 国产精品成人一区二区三区 | 日韩快播电影网 | 国产精品资源在线观看 | 国产在线精品免费 | 九九热精品在线 | 999久久久 | 久久99成人 | 一区天堂 | 日韩免费高清视频 | 午夜在线观看免费 | 日屁网站 | 亚洲欧美中文字幕在线观看 | www性色| 国产福利在线视频 | 伊人免费视频二 | 日韩和的一区二在线 | 91久久久久久久久久久久久 | 五月天婷婷综合 | 欧美日韩视频 | 2019天天操 | 国产片一区二区三区 | 91在线视频精品 | 在线播放国产视频 | 看av网 | 久草欧美视频 | 产真a观专区 | 成人免费观看视频 | 国产一区二区三区在线看 | 高清视频一区二区三区 | 香蕉婷婷 | 国产探花在线精品一区二区 |