DS18B20温度测量设计实验报告2

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息工程学院

成绩课程设计说明书(论文)

题目: 温度测量

课程名称: 单片机课程设计

专业: 电子信息工程

班级: 电信0901

学生姓名:

学号: 31 16 10

设计地点: 3#北603

指导教师:

设计起止时间:2012年5月2日至2012年5月22日

目录

一、设计功能要求: (3)

二、系统总体设计方案: (5)

1、基本设计思想: (5)

2、实施方案论述: (6)

三、系统分析与设计: (6)

1、程序流程图及说明 (6)

2、温度计的的电路设计 (9)

四、源码清单: (12)

五、改进意见与收获体会: (18)

六、主要参考资料: (19)

一、设计功能要求:

本次的设计主要是利用了数字温度传感器DS18B20测量温度信号,计算后可以在LCD数码管上显示相应的温度值。其温度测量范围为-55~125℃,精确到0.5℃。

本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。数字温度计所测量的温度采用数字显示,控制器使用单片机89C51,测温传感器使用DS18B20,用LCD1602实现温度显示。从温度传感器DS18B20可以很容易直接读取被测温度值,进行转换即满足设计要求。

本次使用的单片机89C51和MCS-51是完全兼容的,是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器。其主要特点如下:

•8位CPU。

•工作频率最高为24M。

•128B数据存储器。

•4KB程序存储器。

•程序存储器的寻址空间为64KB。

•片外数据存储器的寻址空间为64KB。

•128个用户位寻址空间。

•21个字节特殊功能寄存器。

•4个8位的并行I/O接口:P0、P1、P2、P3。

•两个16位定时/计数器。

•两个优先级别的5个中断源。

•1个全双工的串行I/O接口,可多机通信。

•111条指令,喊乘法指令和除法指令。

•较强的位处理能力。

•采用单一+5V电源。

对于89C52而言,不同之处在于:有256B的数据存储器、8K的程序存储器、全双工串行I/O接口、6个中断源、3个16位定时/计数器,工作频率可升直33Mhz。比51拥有更高的性能。

单片机要对DS18B20进行读写,主要通过如下子程序进行驱动。

(1)复位:在使用DS18B20时,首先需要对单片机进行复位。复位时,单片机给DS18B20的单总线至少480us的低电平信号。当DS18B20检测到此复位信号后会在15-60us内给出一个一个存在脉冲。该存在脉冲是是一个60-240us的低电平信号。为了能够接收到此低电平,需要单片机在复位电平结束之后将总线拉高。

(2)ROM指令:包括读ROM指令,指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM 进行操作。其主要目的是为了分辨总线上的多个器件。不过,在本系统中由于只有一个DS18B20,所以不需要进行ID辨识,所以可以采用一条特殊的跳过指令。具体指令可以参看其datasheet。

(3)发送存储器操作指令:在ROM指令发送给DS18B20后,紧接着需要向它发送存储器操作指令,操作指令同样为8位,共六条,分别是写RAM 数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM 中的报警值复制到RAM、工作方式切换。

(4)执行和读写操作:一个存储器操作指令结束后则将进行指令执行或数据读写。如果是进行温度转换,需要等待DS18B20执行其指令,转换时间一般为500us。

DS18B20温度值格式

默认的12位转化后得到的12位数据,存储在18B20的两个8比特的RAM 中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。

如图:

DS18B20常用ROM指令:

指令约定代码功能

二、系统总体设计方案

1、基本设计思想

基本设计方案:根据DS18B20的通讯协议,单片机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM 指令,最后发送RAM 指令,这样才能对DS18B20进行预定的操作。复位要求主CPU 将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU 收到此信号表示复位成功。

于是,给DS18B20不同的时序,可以读取温度传感器的值,根据温度算法算出当时的温度值,在给显示部分,通过LCD 显示出来。

读ROM 33H 读DS1820温度传感器ROM 中的编码(即64位地

符合 ROM 55H 发出此命令之后,接着发出 64 位 ROM 编码,

访问单总线上与该编码相对应的 DS1820 使之

作出响应,为下一步对该 DS1820 的读写作准

备。

搜索 ROM 0FOH 用于确定挂接在同一总线上 DS1820 的个数和

识别 64 位 ROM 地址。为操作各器件作好准备。

跳过 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS1820 发

温度变换命令。适用于单片工作。

告警搜索命令

0ECH

执行后只有温度超过设定值上限或下限的

片子才做出响应。

相关文档
最新文档