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_单总线协议相关推荐
- [stc89c52] DS18B20基于单总线协议的温度测量
一.单总线协议(1-wire) 1.定义:主机和从机用一根总线进行通信,是一种半双工的通信方式,单线=时钟线+数据线+控制线( +电源线).理想状况下一条总线上的从器件数量几乎不受数量限制. 2.特点 ...
- 51单片机读取DS18B20(单总线)
一.DS18B20简介 DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器,具有功能强大.硬件简单.易扩展.抗干扰性强等特点 测温范围: - ...
- 《嵌入式 - 嵌入式大杂烩》深入理解单总线协议
1单总线简介 目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线.SPI总线和SCI总线.其中I2C总线以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行3线方式 ...
- 51单片机读取DS18B20温度传感器
1.首先我们知道DS18B20是单总线协议,只有一根数据线.所以Data数据线即使发送端又是接收端,同时DS18B20内部接了弱上拉电阻(如图一所示),数据线默认为高电平.有了这些概念,我们就能进行下 ...
- DS18B20数字温度传感器及单总线协议规定
1,DS18B20数字温度传感器的主要特点 通信采用1-Wire接口 每个DS18B20都有唯一的64位序列码储存在板载ROM中 无需外部元件 可从数据线供电,电源范围为3.0V ~ 5.5V. 可测 ...
- 解析单总线协议(1-wire)
一.单总线协议(1-wire) 1.定义:主机和从机通过1根线进行通信,在一条总线上可挂接的从器件数量几乎不受限制. 2.特点:这是由达拉斯半导体公司推出的一项通信技术.它采用单根信号线,既可传输时钟 ...
- 单总线协议(1—wire)
一.单总线协议(1-wire) 1.定义:主机和从机通过1根线进行通信,在一条总线上可挂接的从器件数量几乎不受限制. 2.特点:这是由达拉斯半导体公司推出的一项通信技术.它采用单根信号线,既可传输时钟 ...
- 一文看懂单总线协议(1-wire)
文章目录 一.什么是单总线协议? 1.单总线协议概念及特点 2.硬件结构 3.单总线协议应用 二.单总线协议时序(以DS18B20为例) 1.初始化(复位脉冲 + 存在脉冲) 2.读/写时序 (1)写 ...
- 通信协议--单总线协议
文章目录 一.单总线简介 二.单总线协议 单总线初始化 单总线写入 单总线读取 DS18B20用法 读取温度(仅仅包含整数部分) 读取温度(含小数部分) 一.单总线简介 1.定义:主机和从机通过1根线 ...
最新文章
- unity人物旋转移动代码_Unity3D研究院之脚本实现模型的平移与旋转(六)
- Git相关二三事(git reflog 和彩色branch)【转】
- android英文文献翻译,有关android技术英文文献翻译
- Void void Void用在泛型
- PHP中的加强型接口Traits
- mvp模式 php,Hyper-V - 增强会话模式
- jQuery入门 简单用法
- UISearchBar--改变内部输入框的背景颜色
- mac上配置rails开发环境
- 使用proteus8.9进行跑马灯程序仿真
- html页面根据ip地址跳转页面,一、请编写一个Servlet类,实现当前页面3秒后跳转到其它页面(跳转页面自定)的功能。...
- Laravel 博客开发|生成站点地图
- android-studio安装及android开发环境搭建
- 目标检测+双目测距——基于yolov5
- Excel学习笔记 - 查找表格数据
- Symbian使用TTime类获取系统时间并转换为描述符
- linux wakeup,linux内核3.4基于wakeup
- 机器学习分类问题标签如何做编码
- BLE传输速率以及抓包工具
- Your configuration specifies to merge with the ref from the remote, but no such ref was fetched
热门文章
- SQL中where 1 = 1的用处
- Flowable BPMN 用户手册 (v 6.5.0-SNAPSHOT)
- 国内各大音乐平台歌曲分享
- JavaScript-获得和设置表单的值
- python输入三行数据_3行Python代码就能获取海量数据?
- mysql 空闲几分钟速度变慢,MYSQL 运作一小段时间后,速度变得奇慢。而CPU基本空闲状态...
- java欧洲_java欧洲/明斯克时区问题
- mysql数学函数名_MYSQL 常见数学函数说明
- cstring移除指定字符串_从String中移除空白字符的多种方式!?差别竟然这么大!...
- python生成固定长度随机数_python日记——random模块