任务18制作数字温度计概要

上传人:今*** 文档编号:108141981 上传时间:2019-10-22 格式:DOC 页数:17 大小:1.05MB
返回 下载 相关 举报
任务18制作数字温度计概要_第1页
第1页 / 共17页
任务18制作数字温度计概要_第2页
第2页 / 共17页
任务18制作数字温度计概要_第3页
第3页 / 共17页
任务18制作数字温度计概要_第4页
第4页 / 共17页
任务18制作数字温度计概要_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《任务18制作数字温度计概要》由会员分享,可在线阅读,更多相关《任务18制作数字温度计概要(17页珍藏版)》请在金锄头文库上搜索。

1、任务18 制作数字温度计2011年元月26日修改校对完毕任务18制用数字温度计【任务要求】单片机的fosc=11.0592MHz,用P3.7口线作单总线,控制单总线接口芯片DS18B20,用P1、P2两个并行口控制3位数码管的显示,P1口作段选口,P2口作位选口,定时/计数器T1作扫描定时器,使3位数码管扫描显示不超过99的环境温度,其中0号数码管显示温度值的个位,1号数码管显示温度值的十位,2号数码管显示温度的符号。温度为正时,符号位不显示;温度为负时,显示负号“”。【相关知识】任务18所涉及到的新知识主要是单总线接口芯片DS18B20的应用特性。包括DS18B20的引脚功能、单片机与DS1

2、8B20的接口电路、DS18B20的内部结构、DS18B20的操作时序、DS18B20的访问命令和单片机访问DS18B20的方法等。1DS18B20的引脚功能DS18B20是Dallas公司生产的具有单总线接口的数字化温度传感器,其测温范围为-55+125,具有0.5、0.25、0.125和0.0625四种温度转换精度,可以编程选择其测温转换精度,最长温度转换时间为750ms,温度读数为16位的补码数据,具有非易失性的上下限报警温度设定功能,可以编程设定报警温度的上、下限值,广泛地应用于空调、恒温控制器等家用电器以及其它温度报警系统中。DS18B20具有3引脚的T0-92和8引脚的SOP8两种

3、封装形式,各封装形式的引脚分布如图7-76所示,各引脚的功能如表7-19所示。图7-76 DS18B20引脚分布图表7-19 DS18B20引脚功能引脚功 能NC空引脚,不与任何电路相接GND接地脚,接电源地DQ数据输入/输出脚,接单总线VDD可选的供电电源引脚,接正电源或悬空2单片机与DS18B20的接口电路单片机与DS18B20的接口电路如图7-77所示。图7-77 DS18B20与单片机的接口电路图图中,单片机用一根I/O口线作单总线,DS18B20的VDD引脚接+3+5V的外部电源,GND引脚接地,DQ引脚接单总线。在接口电路中,单总线上必须接有一个4.7K10K的上拉电阻,以保证总线

4、空闲时,总线呈高电平状态。【说明】由于单片机的I/O口驱动能力有限,单总线上挂接的DS18B20不能超过8个,否则需要对总线进行驱动。总线上的分布电容也会使信号发生畸变,使用普通电缆时,传输长度不能超过50m,如果使用双绞线传输,传输长度可达到150m。3DS18B20的内部结构DS18B20的内部主要由64位光刻ROM、高速缓存RAM、EEPROM存储器、温度传器、单总线接口、存储与控制逻辑、寄生电源等几部分组成。从编程的角度来说,用户所需要掌握的是其内部存储组织结构和各类访问命令。DS18B20的存储组织包括64位光刻ROM、高速缓存RAM、E2PROM存储器,其中高速缓存RAM与E2PR

5、OM存储器的结构如图7-78所示。图7-78 RAM与EEPROM结构图64位激光ROM:共8个字节,只读不能写,用来保存芯片的ROM序列号,即ID标识码。各器件的ID标识码全球唯一,用作器件寻址。高速缓存RAM:共9个字节,用来存放各类数据。各字节的作用如下:字节0、字节1:存放当前16位的温度转换结果,字节1为高字节,字节0为低字节。其数据为16位补码形式,格式如下: D15 D14 D13D12D11D10D9D8D7D6D5D4D3D2D1D0SSSSS262524232221202-12-22-32-4字节1的内容 字节0的内容各位的含义如下:D15D11:共5位,符号位S,用来表示

6、温度值的正负。S=0:温度值为正,S=1:温度值为负。D10D4:共7位,温度值的整数位。D3D0:共4位,温度值的小数位。这4位并非在所有分辨率下均有效。分辨率为9位时,D3(2-1位)有效,D2D0无效;分辨率为10位时,D3、D2有效,D1、D0无效;分辨率11位时,D3D1有效,D0无效;分辨率为12位时,D3D0均有效。无效位的值为0,有效位的值为实际温度值。字节2、字节3:依次为高温触发器TH和低温触发器TL,用来临时存放用户设定的报警温度的上限值和下限值。DS18B20完成温度转换后,就会将温度测量值与这两个字节中的温度上、下限值相比较,如果测量值高于TH中的值或者低于TL中的值

7、,就会自动地将内部报警标志位置位,该DS18B20就能够响应随后单片机发出的第一个报警搜索命令,否则就不响应报警搜索命令。字节4:配置寄存器,用来临时存放用户设定的配置数据。配置寄存器的结构如下:D7D6D5D4D3D2D1D00R1R011111其中,R1、R0为温度转换精度的选择控制位,它们的取值组合与分辨率的关系如表7-20所示。 表7-20R1R0的取值组合与分辨率的关系R1R0分辨率转换精度最大转换时间009位0.50C93.75ms0110位0.250C187.5ms1011位0.1250C375ms1112位0.06250C750ms从表7-20中可以看出,选用不同的分辨率时,D

8、S18B20的温度转换时间不同。在实际应用中,应根据需要合理地选择分辨率,以便提高DS18B20的温度转换速度。字节5字节7:保留字节。字节8:CRC校验字节,其内容为高速缓存RAM的前8个字节内容的冗余循环校验值。E2PROM存储器:共3个字节,分别与高速缓存RAM的字节2(TH)、字节3(TL)、字节4(配置寄存器)相对应,用来保存用户对DS18B20的设定值。【说明】单片机读写温度触发数据或配置数据时,是对高速缓存RAM中的对应字节进行读写。复制高速缓存RAM命令0x48是将RAM中这3个字节的内容保存到E2PROM中。复制这3个字节数据时,必须在DS18B20复位之前一次性地复制完毕,

9、否则本次复制数据全部无效。每次上电复位时DS18B20都会自动地用E2PROM中的内容分别对这3个字节进行刷新。4DS18B20的操作时序DS18B20的访问操作包括初始化操作、读数操作和写数操作,这3种操作时序是编写DS18B20访问程序的基础。初始化时序初始化的作用是确定系统中是否存在DS18B20,如果存在,则初始化成功,可以进行后续的读写操作。否则,初始化失败,不可进行后续的读写访问。在单总线通信中,这一过程也叫启动单总线通信阶段。初始化的时序图如图7-79所示。图7-79启动通信时序图初始化的时序参数如表7-21所示。表7-21初始化的时序参数参数含义参数值单位最小典型最大tRST单

10、片机产生的启动脉冲的宽度480960stREC单片机的接收数据阶段持续时间480960stDLDS18B20发送应答信号的延迟时间1560stACKDS18B20产生的应答信号的脉冲宽度60240s从图7-79中可以看出,初始化的过程如下:单片机先在单总线上产生宽度为tRST的低电平,用来启动设备联络,然后产生由低到高的上升沿,单片机释放总线,并进入接收模式阶段。接收模式阶段的持续时间tREC为480s960s。DS18B20在单片机产生由低到高的上升沿后,再过tDL时间就向总线上发出宽度为tACK的低电平,此低电平为DS18B20的应答信号。单片机在tACK时间段内读总线上的信号电平,如果读

11、到总线上有低电平的应答脉冲,则表示系统中有DS18B20在线,启动单总线通信成功。再过tRECtDLtACK时间后就可以对DS18B20进行后续的读写操作,否则启动单总线通信失败,不可进行后续的读写操作。设单片机用P1.0口线充当单总线,单总线的定义如下:sbitdq=P10;/定义单总线从初始化过程中可以看出,初始化单总线的方法是,单片机先拉低总线(dq=0),延时500s后释放总线(dq=1),过60s后读总线上的应答信号,再过500s后结束初始化过程。在读总线上的应答信号时,若读得总线为低电平,则表示系统中有DS18B20在线,初始化成功,否则初始化失败。初始化流程图如图7-80所示。图

12、7-80初始化流程图初始化程序如下:bitinit_ow(void)bitflag;/定义位变量dq=0;/拉低总线,启动单总线通信delay500us();/延时500s(低电平宽500s)dq=1;/产生上升沿,释放总线delay60us();/延时60sflag=dq;/读总线上的应答信号delay500us();/延时500s,保证高电平持续时间为480s960sreturnflag;/返回应答,便于后续程序判断【说明】DS18B20是典型的单总线接口芯片,其操作时序也是单总线的操作时序,初始化程序以及后续介绍的读写程序也适合其他单总线接口芯片。读数操作时序单片机从DS18B20中读数

13、时,DS18B20是以字节为单位向单总线发送数据的,先发送低位,后发送高位。单片机从DS18B20中读取一位数据的时序如图7-81所示。图7-81读一位数据时序图读一位数据的时序参数如表7-22所示。表7-22读一位数据的时序参数参数含义参数值单位最小典型最大tSRD单片机产生的启动读脉冲的宽度1tSRD15stDDS18B20发送数据的时间153060stRDC单片机读一位数据时,读数期持续时间60stREC读恢复期持续时间1s图7-81和表7-22传达了以下信息:单片机从DS18B20中读取一位数据分为读数期和读恢复期2个阶段。读数期内完成一位数据的读,读数期从单片机产生由高到低的下降沿开

14、始,持续的时间tRDC60s。单片机从DS18B20中读取一位数据时,首先通过单总线向DS18B20发送一个启动脉冲,启动脉冲为低电平有效,宽度tSRD为1stSRD15s。DS18B20在单片机发送由高到低的下降沿后,过tD 时间就将内部数据移送到总线上,15stD60s。单片机必须在产生下降沿后15s内释放总线,并在tD时间从总线上读取DS18B20移送的数据。读数期结束后进入读恢复期,读恢复期内单片机释放总线,DS18B20准备发送下一位数据,读恢复期的持续时间tREC1s。根据读数时序,单片机从DS18B20中读取一个字节数据的流程图如图7-82所示。图7-82字节读流程图字节读程序如下:ucharrdbyte(void)uchari,m;for(i=0;i1;if(dq)m=m|0x80;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号