基于DS18B20温度传感器设计 联系客服

发布时间 : 星期二 文章基于DS18B20温度传感器设计更新完毕开始阅读

四川职业技术学院毕业设计(论文)

协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。

对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。

对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。 3.4.5 DS18B20工作原理

DS18B20是直接数字式高精度温度传感器,其内部含有两个温度系数不同的温敏振荡器,其中低温度系数振荡器相当于标尺,高温度系数振荡器相当于测温元件,通过不断比较两个温敏振荡器的振荡周期得到两个温敏振荡器在测量温度下的振荡频率比值。根据频率比值和温度的对应曲线得到相应的温度值。这种方式避免了测温过程中的A/D转换,提高了温度测量的精度。

DS18B20测温原理如图所示。图中低温度系数晶振的振荡频率受温度影响很小,用来向计数器1提供固定频率的脉冲信号。高温度系数晶振的振荡频率受温度影响较大,随温度的变化而明显改变,其产生的信号作为计数器 2的脉冲输入,用于控制闸门的关 闭时间。初态时,计数器1和温度寄存器被预置在与-55 ℃相对应的一个基值 上。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,在计数器2控制的闸门时间到达之前,如果计数器1的预置值减到0,则温度寄存器的值将作加1运算,与此同时,用于补偿和修正测温过程中非线性的斜率累加器将输出一个与温度变化相对应的计数值,作为计数器1的新预置值,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环,直到计数器2控制的闸门时间到达亦即计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。在默认的配置中,DS18B20的测温分辨率为0.0625 ℃,以12位有效数据表示,其中,高位的 s表示符号位,其数据格式如表1所示。如:0000 0001 1001 0001表示 +25.0625 ℃

第 20 页共 39页

四川职业技术学院毕业设计(论文)

4 软件设计

对于一个电子控制系统来说,程序开始的初始化,控制信号的输入输出及其时序的先后,以及系统逻辑功能在程序中体现,都必须经过非常严密思考,才能在程序上微妙不差的表现出来。下面简单介绍一下本课题程序的设计思想和功能。

4.1系统软件介绍

对于一个控制系统来说,软件部分就是其“思维”过程,就是其工作时序关系的体现,并且规定该系统的功能实现,而本设计的软件部分主要用来实现的功能如下:

1、能够显示当天的温度;

2、六位数码管显示24h内任意想要得到的时间; 3、闹铃由蜂鸣器代替,并且有发光二极管伴随闪烁; 4、能够现实正确的年历日期;

第 21 页共 39页

四川职业技术学院毕业设计(论文)

4.2总程序流程图

开始 初始化 开定时器中断 键盘处理 调时函数 时间处理函数 闹钟调时函数 判断闹铃是否开启 中断控制加1秒 是否响铃 闹铃响 显示

图4.1 总程序流程图

第 22 页共 39页

四川职业技术学院毕业设计(论文)

5 设计调试

调试内容包括应用ISIS软件仿真电路和应用KEIL软件进行程序调试。

5.1应用ISIS软件仿真电路

在ISIS软件中画出原理图,向单片机中加入需要调试的程序的HEX文件,便可以进行调试了。首先向单片机中加发光二极管指示灯程序。电路中的发光二极管指示灯便根据设计设定的方式进行指示:

图5.1 发光二极管的电路仿真

第 23 页共 39页