日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

php读取ds18b20,DS18B20_单总线协议

發布時間:2025/3/8 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php读取ds18b20,DS18B20_单总线协议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

.H文件

#ifndef _ONEWIRE_H

#define _ONEWIRE_H

#include "STC15F2K60S2.H"

#include

#define OW_SKIP_ROM 0xcc

#define DS18B20_CONVERT 0x44

#define DS18B20_READ 0xbe

//IC引腳定義

sbit DQ = P1^4;

//函數聲明

extern void Delay_OneWire(unsigned int t);

extern void Write_DS18B20(unsigned char dat);

extern bit Init_DS18B20(void);

extern unsigned char Read_DS18B20(void);

extern void Delay1ms();

extern unsigned char read_temp();

#endif

.C文件

#include "onewire.h"

//單總線延時函數

void Delay_OneWire(unsigned int t)

{

while(t--);

}

void Delay1ms()//@11.0592MHz

{

unsigned char i, j;

_nop_();

_nop_();

_nop_();

i = 11;

j = 190;

do

{

while (--j);

} while (--i);

}

//DS18B20芯片初始化

bit Init_DS18B20(void)

{

bit initflag = 0;

DQ = 1;

Delay_OneWire(12);

DQ = 0;

Delay_OneWire(80);

DQ = 1;

Delay_OneWire(10);

initflag = DQ;

Delay_OneWire(5);

return initflag;

}

//通過單總線向DS18B20寫一個字節

void Write_DS18B20(unsigned char dat)

{

unsigned char i;

for(i=0;i<8;i++)

{

DQ = 0;

DQ = dat&0x01;

Delay_OneWire(5);

DQ = 1;

dat >>= 1;

}

Delay_OneWire(5);

}

//從DS18B20讀取一個字節

unsigned char Read_DS18B20(void)

{

unsigned char i;

unsigned char dat;

for(i=0;i<8;i++)

{

DQ = 0;

dat >>= 1;

DQ = 1;

if(DQ)

{

dat |= 0x80;

}

Delay_OneWire(5);

}

return dat;

}

unsigned char read_temp()

{

unsigned char temp, high, low;

Init_DS18B20();

Write_DS18B20(0xcc);

Write_DS18B20(0x44);

Delay1ms();

Init_DS18B20();

Write_DS18B20(0xcc);

Write_DS18B20(0xbe);

low=Read_DS18B20();

high=Read_DS18B20();

temp=(high<<4)|(low>>4);

return temp;

}

本文分享 CSDN - KGback。

如有侵權,請聯系 support@oschina.cn 刪除。

本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

總結

以上是生活随笔為你收集整理的php读取ds18b20,DS18B20_单总线协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。