- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 AT89S51单片机系统 的串行扩展; 单片机系统扩展除并行扩展外,串行扩展技术也得到广泛应用。
与并行扩展比,串口器件与单片机相连的I/O口线少(仅需1~4条),极大简化器件间连接,进而提高可靠性;串行接口器件体积小,占用电路板空间小,减少电路板空间和成本。除上述优点外,还有工作电压宽、抗干扰能力强、功耗低、数据不易丢失等特点。因此,目前串行扩展技术在单片机系统中已得到广泛应用。
常用串行扩展接口有I2C(Inter Interface Circuit,内部接口电路)串行总线接口、单总线(1-Wire)接口以及SPI串行外设接口。; 本章介绍上述几种串行接口总线的工作原理及特点,以及串行扩展的典型设计案例。
11.1 单总线串行扩展
单总线(也称1-Wire bus)由美国DALLAS公司推出的外围串行扩展总线。只有一条数据输入/输出线DQ,总线上所有器件都挂在DQ上,电源也通过这条信号线供给。
单总线系统中配置的各种器件,由DALLAS公司提供的专用芯片实现。每个芯片都有64位ROM,厂家对每一芯片都用激光烧写编码,其中存有16位十进制编码序列号,它是器件的地址编号,确保它挂在总线上后,可以唯一被确定。除了;器件的地址编码外,芯片内还包含收发控制和电源存储电路,见图11-1。这些芯片耗电量都很小(空闲时几?W,工作时几mW),工作时从总线上馈送电能到大电容中就可以工作,故一般不需另加电源。;*;11.1.1 单总线器件温度传感器DS18B20简介
单总线应用典型案例是采用单总线温度传感器DS18B20的温度测量系统。
DS18B20是美国DALLAS公司生产的数字温度传感器,体积小、低功耗、抗干扰能力强。可直接将温度转化成数字信号传送给单片机处理,因而可省去传统的信号放大、A/D转换等外围电路。
1. DS18B20的特性
DS18B20测量温度范围?55~+128℃,在?10~+ 85℃范围内,测量精度可达±0.5℃,非常适合于恶劣环境的现场温度测量,也可用于各种狭小空间内设备的测温,如环境控制、过程监测;过程监测、测温类消费电子产品以及多点温度测控系统。
图11-2为单片机与多个带有单总线接口的数字温度传感器DS18B20芯片的分布式温度监测系统,图11-2中多个DS18B20都挂在单片机的1根I/O口线(即DQ线)上。单片机对每个DS18B20通过总线DQ寻址。DQ为漏极开路,须加上拉电阻。
;DS18B20的一种封装形式见图11-2。除DS18B20外,在该数字温度传感器系列中还有DS1820、DS18S20、DS1822等其他型号,工作原理与特性基本相同。
DS18B20每芯片都有唯一64位光刻ROM编码,它是DS18B20地址序列码,目的使每个DS18B20地址都不相同,这样可实现在一根总线上挂接多个DS18B20的目的。;图11-2 单总线构成的分布式温度监测系统; DS18B20片内非易失性温度报警触发器TH和TL可由软件写入用户报警的上下限值。高速暂存器中第5个字节为配置寄存器,可对其更改DS18B20的测温分辨率。配置寄存器的各位定义如下:
其中,TM位出厂时已被写入0,用户不能改变;低5位都为1;R1和R0用来设置分辨率。表11-1列出了R1、R0与分辨率和转换时间的关系。用户可通过修改R1、R0位的编码,获得合适的分辨率。;*; 非易失性温度报警触发器TH、TL以及配置寄存器由9字节的E2PROM高速暂存器组成。高速暂存器各字节分配如下:
当单片机发给DS18B20温度转换命令后,经转换所得温度值以两字节补码形式存放在高速暂存器的第1字节和第2字节。单片机通过单总线接口读得该数据,读取时低位在前,高位在后,第3、4、5字节分别是TH、TL以及配置寄存器的临时副本,每一次上电复位时被刷新。第6、7、8字节未用,为;*; 下面介绍温度转换的计算方法。
当DS18B20采集的温度为+125℃时,输出为0x07d0,则:
实际温度=(0x07d0)/16=(0×163+7×162+13×161+0×160) /16=125℃
当DS18B20采集的温度为-55℃时,输出为0xfc90,由于是补码,则先11位数据取反加1得0x0370,注意符号位不变,也不参加运算,则
实际温度=(0x0370)/6=(0×163+3×162+7×161+0×160)
/16=55℃
注意,负号则需对采集的温度进行判断后,再予以显示。;2. DS18B20的工作时序
D
原创力文档


文档评论(0)