DS18B20测温模块原理及应用(一)

一、机构及功能的介绍

选自王云著《51单片机》
选自王云著《51单片机》

二、64位ROM、暂存器、EEPROM

在这里插入图片描述

三、DS18B20操作逻辑

在这里插入图片描述

四、初始化、读、写时序.

  1. 单总线初始化时序

选自王云著《51单片机》

/*****初始化DS18B20*****/
unsigned char DS18B20—_init(void)
{
  unsigned char x=0;
  DQ = 1;      //DQ复位
  delay(8);    //稍做延时
  DQ = 0;      //单片机将DQ拉低
  delay(80);   //精确延时,480us-960us,
  DQ = 1;      //拉高总线
  delay(8);     //精确延时,16us-80us  丛从机等待时间
  x = DQ;      //稍做延时后,如果x=0则初始化成功,x=1则初始化失败
  delay(4);
  return x;
}
  1. 写入时序
    选自王云著《51单片机》
void DS18B20_write_char(unsigned char dat)
{
  unsigned char i=0;
  for (i=8; i>0; i--)
  {
    DQ = 0;
    DQ = dat&0x01;
	delay(4);
    DQ = 1;
    dat>>=1;
  }
  delay(4);
}

3、读出时序
选自王云著《51单片机》

//写一个字节到DS18B20    时序包含在函数内,写入一个字节
//dat:要写入的字节
void DS18B20_Write_Byte(u8 dat)     
 {             
    u8 j;
    u8 testb;
	DS18B20_IO_OUT();	//SET PG11 OUTPUT;
    for (j=1;j<=8;j++) 
	{
        testb=dat&0x01;
        dat=dat>>1;
        if (testb) 
        {
            DS18B20_DQ_OUT=0;	// Write 1
            delay_us(2);                            
            DS18B20_DQ_OUT=1;
            delay_us(60);             
        }
        else 
        {
            DS18B20_DQ_OUT=0;	// Write 0
            delay_us(60);             
            DS18B20_DQ_OUT=1;
            delay_us(2);                          
        }
    }
}
————————————————

五、重难点

     **以下问题为51单片机学习过程中发现的,个人觉得比较偏,目前以系统性学习为主,待STM32单片机学习再深入:**
  1. 测量温度范围宽,测量精度高。DS18B20的测量范围为-55~+125℃。在-10~+85℃范围内,精度为±0.5℃。分辨率可编程,DS18B20的测量分辨率可由用户通过程序设定9~12位。其中9~12位对应的温度分辨率分别为0.5℃、0.25℃、0.125℃和0.0625℃。
    .以上为资料上内容,个人认为分辨率为读书精度,以上±0.5为实际DS18B20温度精度 8位CRC:由CRC发生器产生,作为2、
  2. ROM中的前56位编码的校验码。
    (猜测可能性大)个人理解为此CRC码可由暂存器第8byte设置。(很不靠谱猜测,目前找到的搜索匹配程序不可行,理论上可以为搜索DS18B20提供便利,匹配低8位家族码,再跳过中间48位,再匹配最高的8位CRC码,单个工程中的元器件有限,地址完全够用)。
  3. 报警搜索,代码为ECH,主要用于鉴别和定位系统中超出程序设定的报警温度界限的节点。
    报警的状态表现,怎么定位到那一个报警,报警触发条件等
  4. 启动温度转换,代码为44H,用于启动DS18B20进行温度测量,执行温度转换命令后DS18B20保持等待状态。如果主机在这条命令之后跟着发出读时间隙,而DS18B20又忙于温度转换的话,DS18B20将在总线上输出“0”;若温度转换完成,则输出“1”。
    转换温度应该是当执行该命令后,DS18B20将温度数据转换到暂存器中,而不是此命令开始后时刻转换待主机读取。转换开启以后,需要等一会(理论上720us的最大转换时间)再进行读取或其他操作
  5. 读电源,代码为B4H,用于将DS18B20的供电方式信号发送到主机。若在这条命令发出之后发出读时间隙,DS18B20将返回它的供电方式,“0”为寄生电源,“1”为外部电源。
    此状态下,0/1怎么读取,函数怎么写等需要具体了解。初始化,64位ROM匹配或跳过,写入该指令,再判断IO的值
  6. 搜索ROM函数、匹配ROM函数、读出ROM函数需要了解并独立写出。

**//*下一章会将相关程序列出来,尽量自己写

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio测温APP是基于Android Studio开发环境搭建的一个应用程序,用于通过温湿度传感器获取实时温度数据,并将数据显示在手机屏幕上。 该APP的实现过程包括以下几个步骤: 1. 安装配置Android Studio:在Windows系统上安装Java和Android Studio,创建Android Studio工程。 2. 设计界面:使用Android Studio的布局编辑器设计温度显示界面,并为界面添加相应的UI元素,如文本框和按钮。 3. 连接传感器:通过蓝牙模块将温湿度传感器与Android设备连接,确保设备可以获取传感器的数据。 4. 数据处理:在Android Studio中编写代码,通过蓝牙模块接收传感器发送的数据,并进行处理和解析,以获取温度数值。 5. 数据显示:将处理后的温度数据显示在界面的相应位置,可以使用文本框或其他UI元素来显示数据。 6. 功能扩展:根据需求进行功能扩展,例如添加报警功能、数据存储等。 通过以上步骤,就可以在Android Studio中开发一个测温APP,可以实时获取并显示温度数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [STM32F103单片机温湿度等监测Android手机蓝牙APP显示控制设计](https://blog.csdn.net/th971212/article/details/125053053)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Android项目之基于wifi温度显示app (源码 + 说明文档 + 演示视频)](https://download.csdn.net/download/QYgujingjing/87686794)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [STM32F103单片机温湿度光照烟雾监测—Android Studio蓝牙HC05APP显示控制设计(完善版)](https://blog.csdn.net/th971212/article/details/125168265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值