單片機(jī)·DS18B20溫度傳感器
1.“一線(xiàn)總線(xiàn)”數(shù)字化溫度傳感器。(一線(xiàn)掌握好時(shí)序,比較簡(jiǎn)單)
2. 3~5V寬電壓工作范圍
3. 分辨9-12位可調(diào)
二、DS18B20的正確接線(xiàn)
面對(duì)著扁平的那一面,左負(fù)右正,一旦接反就有可能燒毀,也是溫度顯示85°C的原因。
且只有一根I/O線(xiàn),注意讀寫(xiě)時(shí)序 。
三、DS18B20時(shí)序介紹
1)復(fù)位
輸入
t0-t1時(shí)刻:復(fù)位脈沖 480-960us ;
t1-t2時(shí)刻:釋放總線(xiàn) 15-60us ;
檢測(cè)
t2-t3時(shí)刻:虛線(xiàn)部分由DS18B20控制,60-240us低電平則表示復(fù)位成功,否則失敗 ;
t3-t4時(shí)刻:釋放總線(xiàn)
2)寫(xiě)操作
寫(xiě)0時(shí)序
輸入
t0-15us:保持低電平,輸入0;
檢測(cè)
15-60us:檢測(cè)i/o是否為低電平 ;
輸入間隔>1us
寫(xiě)1時(shí)序
輸入
t0-15us:拉高電平,輸入1;
檢測(cè)
15-60us:檢測(cè)i/o是否為高電平
輸入間隔>1us
3)讀操作
t0-t1:保持4us低電平
t1-15us:DS18B20或者上拉電阻起作用,低電平或者高電平讀出
15us-60us:釋放總線(xiàn)
三、DS18B20的溫度
1.DS18B20的溫度格式表
一共是16位,我們用前5位表示符號(hào)位,后11位表示數(shù)值
2.DS18B20的溫度數(shù)據(jù)表
125℃/2000 = 0.0625
當(dāng)符號(hào)位為0時(shí),表示正數(shù),0.0625*hex得到溫度的值 ;
當(dāng)符號(hào)位為1時(shí),表示負(fù)數(shù),將所得到的(數(shù)值取反+1)*0.0625得到溫度的值;
四、程序
1.啟動(dòng)溫度轉(zhuǎn)換
1)復(fù)位DS18B20;
2)發(fā)出Skip Rom命令(CCH)【僅適用于只有一個(gè)DS18B20】 ;
3)發(fā)出convert命令(44H)
2.讀取溫度
1)復(fù)位DS18B20;
2)發(fā)出Skip Rom命令(CCH);
3)發(fā)出convert命令(BEH);
4)讀2字節(jié)的溫度 ;
5)溫度格式轉(zhuǎn)換 ;
程序
main.h
# ifndef _MAIN_H_
# define _MAIN_H_
# include
# include
sbit DQ = P3^2 ;
sbit RS = P1^0 ;
sbit RW = P1^1 ;
sbit EN = P1^5 ;
sbit BUSY = P0^7;
typedef unsigned char uint8 ;
typedef unsigned int uint16 ;
typedef int int16 ;
#define nops() {_nop_();_nop_();_nop_();_nop_();}
#endif
main.c
# include "main.h"
void delay(uint16 n)
{
while(n--) ;
關(guān)鍵詞:
單片機(jī)DS18B20溫度傳感
相關(guān)推薦
技術(shù)專(zhuān)區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車(chē)電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論