.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_单总线协议相关推荐

  1. [stc89c52] DS18B20基于单总线协议的温度测量

    一.单总线协议(1-wire) 1.定义:主机和从机用一根总线进行通信,是一种半双工的通信方式,单线=时钟线+数据线+控制线( +电源线).理想状况下一条总线上的从器件数量几乎不受数量限制. 2.特点 ...

  2. 51单片机读取DS18B20(单总线)

    一.DS18B20简介 DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器,具有功能强大.硬件简单.易扩展.抗干扰性强等特点 测温范围: - ...

  3. 《嵌入式 - 嵌入式大杂烩》深入理解单总线协议

    1单总线简介 目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线.SPI总线和SCI总线.其中I2C总线以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行3线方式 ...

  4. 51单片机读取DS18B20温度传感器

    1.首先我们知道DS18B20是单总线协议,只有一根数据线.所以Data数据线即使发送端又是接收端,同时DS18B20内部接了弱上拉电阻(如图一所示),数据线默认为高电平.有了这些概念,我们就能进行下 ...

  5. DS18B20数字温度传感器及单总线协议规定

    1,DS18B20数字温度传感器的主要特点 通信采用1-Wire接口 每个DS18B20都有唯一的64位序列码储存在板载ROM中 无需外部元件 可从数据线供电,电源范围为3.0V ~ 5.5V. 可测 ...

  6. 解析单总线协议(1-wire)

    一.单总线协议(1-wire) 1.定义:主机和从机通过1根线进行通信,在一条总线上可挂接的从器件数量几乎不受限制. 2.特点:这是由达拉斯半导体公司推出的一项通信技术.它采用单根信号线,既可传输时钟 ...

  7. 单总线协议(1—wire)

    一.单总线协议(1-wire) 1.定义:主机和从机通过1根线进行通信,在一条总线上可挂接的从器件数量几乎不受限制. 2.特点:这是由达拉斯半导体公司推出的一项通信技术.它采用单根信号线,既可传输时钟 ...

  8. 一文看懂单总线协议(1-wire)

    文章目录 一.什么是单总线协议? 1.单总线协议概念及特点 2.硬件结构 3.单总线协议应用 二.单总线协议时序(以DS18B20为例) 1.初始化(复位脉冲 + 存在脉冲) 2.读/写时序 (1)写 ...

  9. 通信协议--单总线协议

    文章目录 一.单总线简介 二.单总线协议 单总线初始化 单总线写入 单总线读取 DS18B20用法 读取温度(仅仅包含整数部分) 读取温度(含小数部分) 一.单总线简介 1.定义:主机和从机通过1根线 ...

最新文章

  1. unity人物旋转移动代码_Unity3D研究院之脚本实现模型的平移与旋转(六)
  2. Git相关二三事(git reflog 和彩色branch)【转】
  3. android英文文献翻译,有关android技术英文文献翻译
  4. Void void Void用在泛型
  5. PHP中的加强型接口Traits
  6. mvp模式 php,Hyper-V - 增强会话模式
  7. jQuery入门 简单用法
  8. UISearchBar--改变内部输入框的背景颜色
  9. mac上配置rails开发环境
  10. 使用proteus8.9进行跑马灯程序仿真
  11. html页面根据ip地址跳转页面,一、请编写一个Servlet类,实现当前页面3秒后跳转到其它页面(跳转页面自定)的功能。...
  12. Laravel 博客开发|生成站点地图
  13. android-studio安装及android开发环境搭建
  14. 目标检测+双目测距——基于yolov5
  15. Excel学习笔记 - 查找表格数据
  16. Symbian使用TTime类获取系统时间并转换为描述符
  17. linux wakeup,linux内核3.4基于wakeup
  18. 机器学习分类问题标签如何做编码
  19. BLE传输速率以及抓包工具
  20. Your configuration specifies to merge with the ref from the remote, but no such ref was fetched

热门文章

  1. SQL中where 1 = 1的用处
  2. Flowable BPMN 用户手册 (v 6.5.0-SNAPSHOT)
  3. 国内各大音乐平台歌曲分享
  4. JavaScript-获得和设置表单的值
  5. python输入三行数据_3行Python代码就能获取海量数据?
  6. mysql 空闲几分钟速度变慢,MYSQL 运作一小段时间后,速度变得奇慢。而CPU基本空闲状态...
  7. java欧洲_java欧洲/明斯克时区问题
  8. mysql数学函数名_MYSQL 常见数学函数说明
  9. cstring移除指定字符串_从String中移除空白字符的多种方式!?差别竟然这么大!...
  10. python生成固定长度随机数_python日记——random模块