当前位置: 首页 > news >正文

图片链接生成网站一链一网一平台

图片链接生成网站,一链一网一平台,人力外包网站,网站认证空间DS18B20简介 DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线(单总线)”接口的温度传感器 这种一线总线就是 三线制 SPI DS18B20的 配置寄存器: TM 是测试位,出厂设置就被设置为0,不需要改动, R1、R…

DS18B20简介

DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线(单总线)”接口的温度传感器
这种一线总线就是 三线制 SPI

DS18B20的 配置寄存器:

TM 是测试位,出厂设置就被设置为0,不需要改动,
R1、R0 是精度位,为设置1
0 1 1 1 1 1 1 1

温度寄存器格式

读取时,低位在前,高位在后,
正温度 高位前5位为 0,负温度 高位前5位为 1
’负温度 取反后 + 1*0.0625 可得到实际温度
如何转换?
以+85度 为例:
数据输出85°,0550h 换算10进制为1360,将这个值*0.0625 = 85度
负温度:-0.5
1111 1111 1111 1000 取反  0000 0000 0000 0111
换算十六进制 0x0007, 加1  0x0008,8*0.0625= 0.5 ,加上符号 -0.5°

DS18B20 时序包括:

初始化时序

写0 、1 时序

读0、1时序

DS18B20发送所有的命令和数据都是字节的低位在前


(1)单总线初始化时序

定义初始化函数:

1、主机输出低电平

2、保持低电平480us~960us

3、释放总线,为高电平

4、拉高电平延时15~60us

// 初始化时序 定义一个函数 复位
void ds18b20_reset(void)
{DS18B20_PORT =0; // 输出低电平delay_10us(75);         // 75*10 750usDS18B20_PORT = 1;// 释放总线delay_10us(2);          // 2*10 延时
}

(2)写时序

写时序包括写1 或 0 ,写时序至少60us,2次独立的写时序需要1us 恢复,

两种写0 写1 都是总线拉低位

写0,主机拉低,延时15us,45us 采样

写1 ,主机输出低电平,延时2us,然后释放总线拉高

(3)读时序

单总线流程

复位→发 SKIP ROM 命令(0XCC)→发开始转换命令(0X44)→延时→复位→发送 SKIP ROM 命令(0XCC)→发读存储器命令 (0XBE)→连续读出两个字节数据(即温度)→结束


软件编程:


// 初始化函数
u8 ds18b20_init(void)
{ds18b20_reset();return ds18b20_check();
}// 复位
void ds18b20_reset(void)
{DS18B20_PORT=0; //拉低 DQdelay_10us(75); //拉低 750usDS18B20_PORT=1; //DQ=1delay_10us(2);  //20US
}// 检测ds18b20 是否存在
u8 ds18b20_check(void)
{u8 time_temp=0;while(DS18B20_PORT&&time_temp<20) //等待 DQ 为低电平{time_temp++;delay_10us(1);}if(time_temp>=20)return 1; //如果超时则强制返回 1else time_temp=0;while((!DS18B20_PORT)&&time_temp<20) //等待 DQ 为高电平{time_temp++;delay_10us(1);}if(time_temp>=20)return 1; //如果超时则强制返回 1return 0;
}// 温度读取函数
float ds18b20_read_temperture(void)
{float temp;u8 dath=0;u8 datl=0;u16 value=0;ds18b20_start();//开始转换ds18b20_reset();//复位ds18b20_check();ds18b20_write_byte(0xcc);//SKIP ROMds18b20_write_byte(0xbe);//读存储器datl=ds18b20_read_byte();//低字节dath=ds18b20_read_byte();//高字节value=(dath<<8)+datl;//合并为 16 位数据if((value&0xf800)==0xf800)//判断符号位,负温度{value=(~value)+1; //数据取反再加 1temp=value*(-0.0625);//乘以精度}else //正温度{temp=value*0.0625;}return temp;
}// 转换温度
void ds18b20_start(void)
{ds18b20_reset();//复位ds18b20_check();//检查 DS18B20ds18b20_write_byte(0xcc);//SKIP ROMds18b20_write_byte(0x44);//转换命令
}

http://www.wangmingla.cn/news/5380.html

相关文章:

  • 动态网站开发实训报告1百度seo流量
  • 局域网内做网站温州网站建设开发
  • 做视频网站如何赚钱seo顾问张智伟
  • 手机做公司网站站长平台
  • 邯郸去哪做网站改版杭州搜索引擎排名
  • 中企动力网站开发汕头seo建站
  • 做网站什么是解析什么是跳转游戏代理免费加盟
  • 目前主流的网站开发语言百度客服转人工
  • wordpress英文企业主题爱站网seo培训
  • 公司网站定位建议高端营销型网站建设
  • 呼和浩特做网站电商运营工资一般多少钱一个月
  • 崇州企业网站建设app搜索优化
  • 网上建立网站百度信息流广告位置
  • 专做韩国代购的网站seo网站排名的软件
  • wordpress 变成垃圾邮件seo超级外链工具
  • 2003建立虚拟网站南京今日新闻头条
  • 个人网站建设软件宁德市
  • 中国广告设计网seo收录查询
  • 南宁网站建设设计制作永久免费制作网页
  • 网站制作软件都是什么网站运营及推广方案
  • 公司网站建设的方案市场推广方案怎么做
  • 如何电话推销客户做网站江门网站优化公司
  • 莫邻在线客服系统网店seo排名优化
  • DW做网站下拉列表怎么做网站策划方案书
  • 北京做网站的公司排行郑州网络seo
  • 做网站设计怎么进企业济南网站制作
  • 没有有知道钓鱼网站在哪儿做网站网页的优化方法
  • 网站推广网络推广金华网站推广
  • 表述网站建设流程正规赚佣金的平台
  • 免费自动建站nba最新排行