基于DS18B20的温度测量系统设计文档格式.doc
《基于DS18B20的温度测量系统设计文档格式.doc》由会员分享,可在线阅读,更多相关《基于DS18B20的温度测量系统设计文档格式.doc(18页珍藏版)》请在冰豆网上搜索。
![基于DS18B20的温度测量系统设计文档格式.doc](https://file1.bdocx.com/fileroot1/2022-10/2/f92e9d2b-05a7-42d8-bd98-11b3c94f65ec/f92e9d2b-05a7-42d8-bd98-11b3c94f65ec1.gif)
DS18B20与STC89C52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
关键词:
单片机;
DS18B20;
温度传感器;
数字温度计;
STC89C52
目录
摘要.........................................................1
引言.........................................................3
一、方案介绍.................................................3
1、显示部分..................................................3
2、温度采集..................................................5
3、方案流程图...............................................5
二、总体方案设计............................................6
1、硬件设计................................................6
1.1温度采集设计............................................6
1.2温度显示设计.............................................6
2、软件设计................................................7
2.1DS18B20程序设计.........................................7
2.2显示部分程序设计.........................................8
三、实验调试过程.............................................10
1、软件调试..................................................10
1.1显示部分调试............................................10
四、心得体会.................................................10
五、致谢.....................................................11
六、参考文献.................................................12
七、附录.....................................................12
附录一程序代码............................................12
附录二仿真电路图..........................................18
引言
在日常生活及工农业生产中经常要涉及到温度的检测及控制,传统的测温元件有热点偶,热敏电阻还有一些输出模拟信号得温度传感器,而这些测温元件一般都需要比较多的外部硬件支持。
其硬件电路复杂,软件调试繁琐,制作成本高,阻碍了其使用性。
因此美国DALLAS半导体公司又推出了一款改进型智能温度传感器——DS18B20。
本设计就是用DS18B20数字温度传感器作为测温元件来设计数字温度计。
本设计所介绍的数字温度计与传统温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示。
本设计显示精度为1,只能用于日常生活粗测。
该设计控制器使用单片机STC89C51,测温传感器使用DS18B20,显示器使用液晶显示。
一、方案介绍
1、显示部分
显示部分是本次设计的重要部分,一般有以下两种方案:
方案一:
采用LED显示,分静态显示和动态显示。
对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,可靠性也较低。
对于动态显示方式,虽可以避免静态显示的问题,占用单片机IO口少,节约资源,而且接线简单。
方案二:
采用LCD显示。
LCD液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功耗小等优点,对于信息量多的系统,是比较适合的。
鉴于该系统信息量少,我们采用方案一。
2、温度采集
由于现在用品追求多样化,多功能化,给系统加上温度测量显示模块,能够方便人们的生活,使该设计具有人性化。
本次实验是设计列车车轴实时温度检测系统,所以我们采用温度传感器DS18B20,用DS18B20测温度就无需外接A/D转换电路,其输出的温度值就是已经经过了A/D转换,已经是数字量了。
DS18B20可以满足从-55摄氏度到+125摄氏度测量范围,且DS18B20测量精度高,精度为0.0625摄氏度,固有的测温分辨率为0.5℃,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。
基于DS18B20的以上优点,我们决定选取DS18B20来测量温度。
3、方案流程图
温度传感器DS18B20集成了A/D转换的功能,所以在连接单片机时无需进行A/D转换电路的连接,将采集的温度数据经过DS18B20的处理将温度值输出给单片机,通过单片机的控制输出使数码管显示,倘若实测的温度大于人为设置的温度时,单片机I/O口P3.0输出高电平,使报警系统工作报警。
流程图如图1.3所示:
DS18B20温度传感器
80C51
单片机
四位一体
数码管
图1.3流程图
二、总体方案设计
1、硬件设计
1.1温度采集设计
温度传感器采用DSl8820,其是一种单总线智能型温度传感器,只有三线接口,分别为地线(GND)、数据线(DQ)、电源线(VCC)。
DSl8820输出信号为数字信号,处理器与DSl8820通过数据线(DQ)来完成双向通信,因此采用DSl8820使得电路十分简单。
温度变换功率可以来源于外电源,也可以来源于数据总线,总线本身也可以向所挂接的DSl8820供电。
DSl8820的电压范围为+3.0~+5.5V,测温范围为-55~+125℃,固有的测温分辨率为0.5℃,最高精度可达0.0625℃,最大的转换时间为200ms。
一条总线上面可以挂接多个DSl8820实现多点测温。
本实验温度路数只有一路,所以单独使用一个+5V电源对DS18B20供电。
引脚图如图2.1.1(a),元件图如图2.1.1(b):
图2.1.1(a)图2.1.1(b)
1.2温度显示设计
在实验中,我们采用四位一体LED共阴极数码管显示,段选端由单片机P0口控制,之间外接上拉电阻。
理想情况下单片机P0口输出的高电平为+5V,足以使数码管点亮,但在实际接线中,要接一个上拉电阻,这样才能使数码管正常工作。
数码管的位选端与单片机P2口连接,通过程序控制P2口输出高低电平来控制数码管位选。
图2.12(a)、图2.1.2(b)分别为数码管引脚图和实物图:
图2.1.1(a)数码管引脚图2.1.2(b)实物图
2、软件设计
2.1DS18B20程序设计
对于DS18B20的程序编写要特别注意时序问题,如果采用C语言编程,其对时序要求很严,倘若时序错误会导致单片机读不到数据,或是读到的数据都是错误的,更严重就是传感器不工作,无法进行温度采集;
汇编语言对时序要求没有那么严格,因为程序运行每一条汇编语句都会有一个机器周期。
下面就是DS18B20各个状态下得时序介绍:
1、DS18B20复位初始化时序
先通过单片机把DQ电平拉低,即DQ=0,然后通过一个480us到960us的延时,再拉高电平等待15us,当对传感器进行复位操作时,成功了则DS18B20会自动将DQ拉低,此时单片机对DQ温度值进行读取;
倘若不成功则DQ一直保持高电平,单片机无法从DS18B20读取温度值。
复位时序如图2.2.1(a)所示:
图2.2.1(a)DS18B20复位初始化时序图
2、写DS18B20温度时序
写周期一开始做为主机先把总线拉低1微秒表示写周期开始。
随后若主机想写0,则继续拉低电平最少60微秒直至写周期结束,然后释放总线为高电平。
若主机想写1,在一开始拉低总线电平1微秒后就释放总线为高电平,一直到写周期结束。
而做为从机的DS18B20则在检测到总线被拉低等待15微秒然后从15us到45us开始对总线采样,在采样期内总线为高电平则为1,若采样期内总线为低电平则为0。
温度写时序如图2.2.1(b):
图2.2.1(b)写DS18B20温度时序图
3、读DS18B20温度时序
先将DQ电平拉低,然后单片机再将DQ电平拉高,如果DQ的数据是“1”时,则单片机在采样时就会采到一个高电平;
如果在DQ的数据变成了“0”,则说明DS18b20自动将电平拉低,单片机采样时就会得到一个低电平。
温度读时序如图2.2.1(c):
图2.2.1(c)读DS18B20温度时序图
2.2显示部分程序设计
显示有静态显示和动态显示,两者区别在于静态显示接线多,用到的IO口多,所以对单片机资源浪费大,但是其编程简单;
动态显示接线少,占用的IO口少,资源利用充分,但是其编程比较复杂。
本实验采用动态显示,采用四位一体共阴极数码管,段选端用P0口控制,位选端用P2口控制,显示图如图2.2.2(a)所示
图2.2.2(a)显示图
因此,整个的程序流程图如图2.2.2(b),单片机上电,进行单片机初始化,之后进行DS18b20的初始化,将原有的温度擦除。
初始化完成后,当总线接收到从高电平到低电平的脉冲时