DS18B20温度传感器课程设计报告材料.docx

上传人:b****6 文档编号:7785971 上传时间:2023-01-26 格式:DOCX 页数:23 大小:28.38KB
下载 相关 举报
DS18B20温度传感器课程设计报告材料.docx_第1页
第1页 / 共23页
DS18B20温度传感器课程设计报告材料.docx_第2页
第2页 / 共23页
DS18B20温度传感器课程设计报告材料.docx_第3页
第3页 / 共23页
DS18B20温度传感器课程设计报告材料.docx_第4页
第4页 / 共23页
DS18B20温度传感器课程设计报告材料.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

DS18B20温度传感器课程设计报告材料.docx

《DS18B20温度传感器课程设计报告材料.docx》由会员分享,可在线阅读,更多相关《DS18B20温度传感器课程设计报告材料.docx(23页珍藏版)》请在冰豆网上搜索。

DS18B20温度传感器课程设计报告材料.docx

DS18B20温度传感器课程设计报告材料

合用标准文案

 

单片机课程设计报告

 

设计题目:

DS18B20温度传感器

 

班级:

09电信〔2〕班

 

姓名:

xxx

 

学号:

xxx

 

指导教师:

xxx

 

调试地址:

xxx

 

优异文档

合用标准文案

 

一、归纳3

二、内容3

1、课程设计题目3

2、课程设计目的3

3、设计任务和要求3

4、正文4

〔一〕、方案选择与论证4

三、系统的详尽设计与实现6

〔1〕、系统的整体设计方案6

〔2〕、硬件电路设计6

a、单片机控制模块6

b、温度传感器模块7

四、软件设计13

1、主程序13

2、读出温度子程序13

3、温度变换命令子程序13

4、计算温度子程序14

五、完满程序以下:

14

六、设计领悟19

七、参照文件20

 

优异文档

合用标准文案

 

一、归纳

2021年6月14日随着时代的进步和睁开,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。

本文主要介绍了一个基于89S51单片机的测温系统,详尽描述了利用液晶显示器件传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽解析,特别是数字温度传感DS18B20的数据采集过程。

对各局部的电路也一一进行了介绍,该系统能够方便的实现实现温度采集和显示,并可依照需要任意设定上下限报警温度,它使用起来相当方便,拥有精度高、量程宽、矫捷度高、体积小、功耗低等优点,适合于我们平时生活和工、农业生产中的温度测量,也能够看作温度办理模块嵌入其他系统中,作为其他主系统的辅助扩展。

DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗搅乱能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用远景。

重点词:

单片机AT89C51、DS18B20温度传感器、液晶显示LCD1602。

二、内容

1、课程设计题目

基于DS18B20的温度传感器

2、课程设计目的

经过基于MCS-51系列单片机AT89C51和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,汇编语言的设计;

而且把我们这一年所学的数字和模拟电子技术、检测技术、单片机应用等知识,经过理论联系实质,从题目解析、电路设计调试、程序编制调试到传感器的选定等这一完满的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实责问题,以到达提升学生的综合能力、着手能力、文件资料查阅能力的作用,为毕业设计和今后工作打下一个优异的基础。

3、设计任务和要求

以MCS-51系列单片机为核心器件,组成一个数字温度计,采用数字温度传感器DS18B20为检测器件,进行单点温度检测,检测精度为±0.5摄氏度。

温度显示采用LCD1602显示,两位整数,一位小数。

 

优异文档

合用标准文案

 

系统整体仿真图

 

板上实现收效图

4、正文

〔一〕、方案选择与论证

依照设计任务的整体要求,本系统能够划分为以下几个根本模块,针对各个模

 

优异文档

合用标准文案

 

块的功能要求,分别有以下一些不相同的设计方案:

〔1〕、温度传感模块

方案一:

采用热敏电阻,热敏电阻精度、重复性、可靠性较差,对于检测

1

摄氏度的信号是不合用的,也不能够满足测量范围。

在温度测量系统中,也常采用单片温度传感器,比方AD590,LM35等。

但这些芯片输出的都是模拟信号,必定经过A/D变换后才能送给计算机,这样就使测温系统的硬件结构较复杂。

别的,这种测温系统难以实现多点测温,也要用到复杂的算法,必然程度上也增加了软件实现的难度。

方案二:

采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。

便于单片机办理及控制,节约硬件电路。

且该芯片的物理化学性很牢固,此元件

线形性能好,在0—100摄氏度时,最大线形偏差小于1摄氏度。

DS18B20的最

大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器

AT89C51组成的温度装置,它直接输出温度的数字信号到微控制器。

每只DS18B20拥有一个独有的不能更正的64位序列号,依照序列号可接见不相同的器件。

这样

一条总线上可挂接多个DS18B20传感器,实现多点温度测量,轻松的组建传感网络。

综上解析,我们采用第二种方案。

 

温度传感模块仿真图

(2)、显示模块

方案一:

采用8位段数码管,将单片机获得的数据经过数码管显示出来。

该方案简单易行,但所需的元件很多,且不简单进行操作,可读性差,一旦设定后很难再参加其他的功能,显示格式受限制,且大耗电量大,不宜用电池给系统供电。

方案二:

采用液晶显示器件,液晶显示平稳、省电、雅观,更简单实现题目要求,对后续的园艺通兼容性高,只要将软件作更正即可,可操作性强,也易于读数,采用RT1602两行十六个字符的显示,能同时显示其他的信息如日期、时间、星期、温度。

综上解析,我们采用了第二个方案

 

优异文档

合用标准文案

 

显示模块仿真图

三、系统的详尽设计与实现

〔1〕、系统的整体设计方案

采用AT89S52单片机作为控制核心对温度传感器DS18B20控制,读取温度信号并进行计算办理,并送到液晶显示器LCD1602显示。

依照系统设计功能的要求,确定系统由3个模块组成:

主控制器、测温电路和显示电路。

数字温度计整体电路结构框图如图下所示。

 

(2〕、硬件电路设计a、单片机控制模块

该模块由AT89C51单片机组成在设计方面,AT89C51的EA接高电平,其外

围电路供应能使之工作的晶振脉冲、复位按键,四个I/O分别接8路的单列IP座方便与外面设备连接。

当AT89C51芯片接到来自温度传感器的信号时,其内部程序将依照信号的种类进行办理,而且将办理的结果送到显示模块,发送控制信号控制各模块。

 

优异文档

合用标准文案

 

b、温度传感器模块

DS18B20相关资料

 

1、DS18B20原理与解析

DS18B20是美国DALLAS半导体公司继DS1820此后最新推出的一种改良型智能温度传感器。

与传统的热敏电阻对照,它能够直接读出被测温度而且可依照实

际要求经过简单的编程实现9~12位的数字值读数方式。

能够分别在93.75ms

和750ms内完成9位和12位的数字量,而且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线〔单线接口〕读写,温度变换功率本源于数据总线,总线自己也能够向所挂接的DS18B20供电,而无需额外电源。

所以使用DS18B20可使系统结构更趋简单,可靠性更高。

他在测温精度、变换时间、传输距离、分辨率等方面较DS1820有了很大的改良,给用户带来了更方便的使用和更令人满意的收效。

以下是DS18B20的特点:

〔1〕独到的单线接口方式:

DS18B20与微办理器连接时仅需要一条口线即可实现微办理

器与DS18B20的双向通讯。

〔2〕在使用中不需要任何外面元件。

〔3〕可用数据线供电,电压范围:

+3.0~+5.5V。

〔4〕测温范围:

-55-+125℃。

固有测温分辨率为0.5℃。

〔5〕经过编程可实现9-12位的数字读数方式。

〔6〕用户可自设定非易失性的报警上下限值。

〔7〕支持多点组网功能,多个DS18B20能够并联在独一的三线上,实现多点测温。

〔8〕负压特点,电源极性接反时,温度计不会因发热而烧毁,但不能够正常工作。

 

优异文档

合用标准文案

 

2、DS18B20的测温原理

DS18B20的测温原理上图所示,图中低温度系数晶振的振荡频率受温度的影响

很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温

度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图

中还隐含着计数门,当计数门翻开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。

计数门的开启时间由高温度系数振

荡器来决定,每次测量前,第一将-55℃所对应的基数分别置入减法计数器1和温度存放器中,减法计数器1和温度存放器被预置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度存放器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,这样循环直到减法计数器2计数到0时,停止温度存放器值的累加,此时温度存放器中的数值即为所测温度。

图中的斜率累加器用于补偿和修正测温过

程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就

重复上述过程,直至温度存放器值到达被测温度值,这就是DS18B20的测温原

理。

别的,由于DS18B20单线通讯功能是分时完成的,他有严格的时隙看法,

所以读写时序很重要。

系统对DS18B20的各种操作必定按协议进行。

操作协议

为:

初始化DS18B20〔发复位脉冲〕→发ROM功能命令→发储藏器操作命令→

办理数据。

DS18B20工作过程一般依照以下协议:

初始化——ROM操作命令

——储藏器操作命令——办理数据

①初始化

单总线上的所有办理均从初始化序列开始。

初始化序列包括总线主机发出一复

位脉冲,接着由隶属器件送出存在脉冲。

存在脉冲让总线控制器知道DS1820在总线上且已准备好操作。

②ROM操作命令

一旦总线主机检测到隶属器件的存在,它便能够发出器件ROM操作命令之一。

所有ROM操作命令均为8位长。

这些命令以下:

ReadROM(读ROM)[33h]

此命令赞同总线主机读DS18B20的8位产品系列编码,独一的48位序列号,

以及8位的CRC。

此命令只幸亏总线上仅有一个DS18B20的情况下能够使用。

 

优异文档

合用标准文案

 

果总线上存在多于一个的隶属器件,那么当所有从片企图同时发送时将发生数据矛盾的现象〔漏极开路会产生线与的结果〕。

MatchROM(吻合ROM)[55h]

此命令后继以64位的ROM数据序列,赞同总线主机对多点总线上特定的DS1寻址。

只有与64位ROM序列严格吻合的DS18B20才能对后继的存贮器操作命令作出响应。

所有与64位ROM序列不符的从片将等待复位脉冲。

此命令在总线上有单个或多个器件的情况下均可使用。

SkipROM(跳过ROM)[CCh]

在单点总线系统中,此命令经过赞同总线主机不供应64位ROM编码而接见

储藏器操作来节约时间。

若是在总线上存在多于一个的隶属器件而且在SkipROM命令此后发出读命令,那么由于多个从片同时发送数据,会在总线上发生

数据矛盾〔漏极开路下拉会产生线与的收效〕。

SearchROM(找寻ROM)[F0h]

当系统开始工作时,总线主机可能不知道单线总线上的器件个数也许不知道

其64位

ROM编码。

找寻ROM命令赞同总线控制器用消除法鉴别总线上的所有从机的64位编码。

AlarmSearch(告警找寻)[ECh]

此命令的流程与找寻ROM命令相同。

但是,仅在近来一次温度测量出现告警的情况下,DS18B20才对此命令作出响应。

告警的条件定义为温度高于TH或低

于TL。

只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值也许改变TH或TL的设置,使得测量值再一次位于赞同的范围之内。

储藏在EEPROM内的触发器值用于告警。

③储藏器操作命令

WriteScratchpad〔写暂储存藏器〕[4Eh]

这个命令向DS18B20的暂存器中写入数据,开始地址在地址2。

接下来写入

的两个字节将被存到暂存器中的地址地址2和3。

能够在任何时辰发出复位命令

来中止写入。

ReadScratchpad〔读暂储存藏器〕[BEh]

这个命令读取暂存器的内容。

读取将从字节0开始,素来进行下去,直到第9〔字节8,CRC〕字节读完。

若是不想读完整部字节,控制器能够在任何时间发出复位命令来中止读取。

CopyScratchpad〔复制暂储存藏器〕[48h]

这条命令把暂存器的内容拷贝到DS18B20的E2储藏器里,即把温度报警触发字节存入非易失性储藏器里。

若是总线控制器在这条命令此后随着发出读时间

隙,而DS18B20又正在忙于把暂存器拷贝到E2储藏器,DS18B20就会输出一个

“0〞,若是拷贝结束的话,DS18B20那么输出“1〞。

若是使用寄生电源,总线控制器必定在这条命令发出后马上起动强上拉并最

少保持10ms。

ConvertT〔温度变换〕[44h]

这条命令启动一次温度变换而无需其他数据。

温度变换命令被执行,此后DS18B20保持等待状态。

若是总线控制器在这条命令此后随着发出读时缝隙,而DS18B20又忙于做时间变换的话,DS18B20将在总线上输出“0〞,假设温度变换完成,那么输出“1〞。

若是使用寄生电源,总线控制器必定在发出这条命令后马上起

 

优异文档

合用标准文案

 

动强上拉,并保持500ms。

RecallE2〔重新调整E2〕[B8h]

这条命令把储藏在E2中温度触发器的值重新调至暂储存藏器。

这种重新调出的操作在对DS18B20上电时也自动发生,所以只要器件一上电,暂储存藏器内就有了有效的数据。

在这条命令发出此后,对于所发出的第一个读数据时间片,器件会输出温度变换忙的表记:

“0〞=忙,“1〞=准备就绪。

ReadPowerSupply〔读电源〕[B4h]

对于在此命令发送至DS18B20此后所发出的第一读数据的时间片,器件都会给出其电源方式的信号:

“0〞=寄生电源供电,“1〞=外面电源供电。

④办理数据

DS18B20的高速暂储存藏器由9个字节组成,其分配如图3所示。

当温度变换命

令宣布后,经变换所得的温度值以二字节补码形式存放在高速暂储存藏器的第0和第1个字节。

单片机可经过单线接口读到该数据,读取时低位在前,高位在后。

 

DS18B20温度数据表

 

上表是DS18B20温度采集转变后获得的12位数据,储藏在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,若是测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可获得实质温度;若是温度小于0,

这5位为1,测到的数值需要取反加1再乘于0.0625即可获得实质温度。

温度变换计算方法举例:

比方当DS18B20采集到+125℃的实质温度后,输出为07D0H,那么:

实质温度=07D0H

╳0.0625=2000╳0.0625=1250C。

比方当DS18B20采集到-55℃的实质温度后,输出为FC90H,那么应先将11位数据位取反加1得370H〔符号位不变,也不作为计算〕,那么:

实质温度=370H╳0.0625=880╳0.0625=550C。

2、显示模块LCD1602资料〔这里主要介绍下指令说明及时序〕

 

优异文档

合用标准文案

 

1602液晶模块内部的控制器共有

11条控制指令,如表10-14所示:

序号

指令

RS

R/WD7

D6

D5

D4

D3

D2

D1

D0

1

清显示

0

0

0

0

0

0

0

0

0

1

2

光标返回

0

0

0

0

0

0

0

0

1

*

3

置输入模式

0

0

0

0

0

0

0

1

I/D

S

4

显示开/关控制

0

0

0

0

0

0

1

D

C

B

5

光标或字符移位

0

0

0

0

0

1

S/C

R/L

*

*

6

置功能

0

0

0

0

1

DL

N

F

*

*

7

置字符发生计贮器地

0

0

0

1

字符发生计贮器地址

8

置数据存贮器地址

0

0

1

显示数据存贮器地址

9

读忙标志或地址

0

1

BF

计数器地址

10

写数到CGRAM

0

要写的数据内容

DDRAM〕

1

11

从CGRAM或DDRAM

1

读出的数据内容

读数

1

 

表10-14:

控制命令表

 

1602液晶模块的读写操作、屏幕和光标的操作都是经过指令编程来实现的。

〔说明:

1为高电平、0为低电平〕

指令1:

清显示,指令码01H,光标复位到地址00H地址。

 

指令2:

光标复位,光标返回到地址00H。

 

指令3:

光标和显示模式设置I/D:

光标搬动方向,高电平右移,低电平左移S:

屏幕上所有文字可否左移也许右移。

高电平表示有效,低电平那么无效。

 

指令4:

显示开关控制。

D:

控制整体显示的开与关,高电平表示开显示,低电

平表示关显示C:

控制光标的开与关,高电平表示有光标,低电平表示无光标B:

控制光标可否闪烁,高电平闪烁,低电平不闪烁。

 

指令5:

光标或显示移位S/C:

高电平时搬动显示的文字,低电平时搬动光标。

 

优异文档

合用标准文案

 

指令6:

功能设置命令DL:

高电平时为4位总线,低电平时为8位总线N:

低电平时为单行显示,高电平时双行显示F:

低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。

指令7:

字符发生器RAM地址设置。

 

指令8:

DDRAM地址设置。

 

指令9:

读忙信号和光标地址BF:

为忙标志位,高电平表示忙,此时模块不能够接收命令也许数据,若是为低电平表示不忙。

 

指令10:

写数据。

 

指令11:

读数据。

 

与HD44780相兼容的芯片晌序表以下:

读状态

输入

RS=L,R/W=H,E=H

输出

D0—D7=状态字

写指令

输入

RS=L,R/W=L,D0—D7=指令码,E=输出

高脉冲

读数据

输入

RS=H,R/W=H,E=H

输出

D0—D7=数据

写数据

输入

RS=H,R/W=L,D0—D7=数据,E=输出

高脉冲

 

表10-15:

根本操作时序表

 

读写操作时序如图10-55和10-56所示:

 

图10-55读操作时序

 

优异文档

合用标准文案

 

图10-56写操作时序

 

四、软件设计

系统程序主要包括主程序、读出温度子程序、温度变换子程序、计算温度子程序、显示等等。

1、主程序

主要功能是完成DS18B20的初始化工作,并进行读温度,将温度转变为为压缩BCD码并在显示器上显示传感器所测得的实质温度。

2、读出温度子程序

读出温度子程序的主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,校验有错时不进行温度数据的改写。

其程序流程图以以下列图所示。

 

3、温度变换命令子程序

温度变换命令子程序主若是发温度变换开始命令,当采用12位辩白率时变换

 

优异文档

合用标准文案

 

时间约为750ms,在本程序设计中采用1s显示程序延时法等待变换的完成。

流程图图以下

 

4、计算温度子程序

计算温度子程序将RAM中读取值进行BCD码的变换运算,并进行温度值正负的判断。

流程图以下:

 

五、完满程序以下:

 

#include

#include

 

优异文档

合用标准文案

 

typedefunsignedcharuint8;

#defineuintunsignedint

#defineucharunsignedchar

sbitDQ=P3^3;//定义DQ引脚为

ucharcodeBw[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};//百位编码

ucharcode

Xsw[16]={0x30,0x31,0x31,0x32,0x33,0x33,0x34,0x34,0x35,0x36,0x36,0x37,0x38,0

x38,0x39,0x39};//小数位编码

sbitRS=P2^0;

sbitRW=P2^1;

sbitEN=P2^2;

sbitBUSY=P0^7;

ucharwendu;

uchartemp_g,temp_d;

unsignedcharcodeword1[]={"Temperature:

"};

voiddelay(uintxms)

{

uinti,j;

for(i=xms;i>0;--i)

for(j=110;j>0;--j);

}

voidDelayus(intt)//在11.059MHz的晶振条件下调用本函数需要24μs,此后

每次计数需16μs

{

ints;

for(s=0;s

}

等待繁忙标志

voidwait(void)

{

P0=0xFF;

do

{

RS=0;

RW=1;

EN=0;

EN=1;

}while(BUSY==1);

EN=0;

}

写数据

 

优异文档

合用标准文案

 

voidw_dat(uint8dat)

{

wait();

EN=0;

P0=dat;

RS=1;

RW=0;

EN=1;

EN=0;

}

写命令

voidw_cmd(uint8cmd)

{

wait();

EN=0;

P0=cmd;

RS=0;

RW=0;

EN=1;

EN=0;

}

发送字符串到LCD

voidw_string(uint8addr_start,uint8*p)

{

w_cmd(addr_start);

while(*p!

='\0')

{

w_dat(*p++);

}

}

初始化1602

voidInit_LCD1602(void)

{

w_cmd(0x38);//16*2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1