ds18b20温度传感器课程设计_第1页
ds18b20温度传感器课程设计_第2页
ds18b20温度传感器课程设计_第3页
ds18b20温度传感器课程设计_第4页
ds18b20温度传感器课程设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 5 temperature. In addition, test products with five-volt DC power supply, power supply simple. Can be used as greenhouses, bathrooms, libraries and other occasions of temperature detection. Can also serve as components of other products, such as on the electronic clock with electronic thermometers,

2、 temperature control system of temperature acquisition and display, a wide range of useful and inexpensive. Keywords: 51 single DS18B20 electronic thermometer 系统设计分析 单片机: 单片机作为微机的一支重要分支,能全力满足测控对象的测控功能,兼顾数据处理能力。 其特点为: 有优异的性能价格比。 集成度高,体积小,可靠性好。 控制能力强。 低功耗,低电压,便于生产便携式产品。 易扩展。 单片机的应用广泛,本次试验就是很好的一次实例,其次再

3、以下领域也都必须用到单片机: 智能化家用电器。 办公自动化设备。 商业营销设备。 工业自动化控制。 智能化仪表。 智能化通信产品。 汽车电子产品。 航空航天系统和国防军事、尖端武器等。 单片机的软件系统一般分为三种语言编写: 机器语言 汇编语言 高级语言 MCS-51型单片机使用汇编语言。本次试验采用的是实验是用51单片机的汇编语言,汇编语言可以实现高级语言的模块化处理,而且还可以节省编程时间,节省程序空间。 本次试验采用市场上极为普遍的51系列单片机,其中51单片机有很多优点: 性能价格比高; 开发装置多; 国内技术人员熟悉; 芯片功能够用适用; 有众多芯片制造厂商加盟,可广泛选择。 电源:

4、 VCC - 芯片电源,接+5V; VSS - 接地端; 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根, ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:在Vcc掉电情况下,接备用电源。 EA/Vpp:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有EPR

5、OM的芯片,在EPROM编程期间,施加编程电源Vpp。 I/O线:80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。 有4个8位并行I/O口,共32条端线: P0、P1、P2和P3口。每一个I/O口都能用作输入或输出。 用作输入时,均须先写入“1”;用作输出时,P0口应外接上拉电阻。 9 P0口的负载能力为8个LSTTL门电路;P1P3口的负载能力为4个LSTTL门电路。 在并行扩展外存储器或I/O口情况下,P0口用于低8位地址总线和数据总线(分时传送),P2口用于高8位地址总线,P3口常用于第二功

6、能,用户能使用的I/O口只有P1口和未用作第二功能的部分P3口端线。 P3.0 RXD:串行口输入端; P3.1 TXD:串行口输出端; P3.2 INT0:外部中断0请求输入端; P3.3 INT1:外部中断1请求输入端; P3.4 T0:定时/计数器0外部信号输入端; P3.5 T1:定时/计数器1外部信号输入端; P3.6 WR:外RAM写选通信号输出端; P3.7 RD:外RAM读选通信号输出端 10 时钟周期: 80C51振荡器产生的时钟脉冲频率的倒数,是最基本最小的定时信号。 机器周期80C51单片机工作的基本定时单位,简称机周。 机器周期是时钟周期的12倍。 当时钟频率为12MH

7、z时,机器周期为1mS; 当时钟频率为6MHz时,机器周期为2mS。 四、 复位和低功耗工作方式 80C51单片机的工作方式共有四种: 复位方式; 程序执行方式; 低功耗方式; 片内ROM编程(包括校验)方式。 复位方式: 复位条件RST引脚保持2个机器周期以上的高电平。 10 时钟周期: 80C51振荡器产生的时钟脉冲频率的倒数,是最基本最小的定时信号。 机器周期80C51单片机工作的基本定时单位,简称机周。 机器周期是时钟周期的12倍。 当时钟频率为12MHz时,机器周期为1mS; 当时钟频率为6MHz时,机器周期为2mS。 四、 复位和低功耗工作方式 80C51单片机的工作方式共有四种:

8、 复位方式; 程序执行方式; 低功耗方式; 片内ROM编程(包括校验)方式。 复位方式: 复位条件RST引脚保持2个机器周期以上的高电平。 复位电路 贰:单总线数字温度传感器DS18B20 I、单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。 11 II、单总线通常要求外接一个约为 4.7K10K 的上拉电阻,这样,当总线闲置时其状态为高电平。 III、DS18B20的特点: n DS18B20 单线数字温度传感器,即“一线器件”,其具有独特的优点: n ( 1 )采用单总线的接口方式 与微处理器连接时 仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。 单总线具有经

9、济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。 n ( 2 )测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 + 125 ; 在 -10+ 85°C 范围内,精度为 ± 0.5°C 。 n ( 3 )在使用中不需要任何外围元件。 n ( 4 )持多点组网功能 多个 DS18B20 可以并联在惟一的单线上,实现多点测温。 n ( 5 )供电方式灵活 DS18B20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而

10、使系统结构更趋简单,可靠性更高。 n ( 6 )测量参数可配置 DS18B20 的测量分辨率可通过程序设定 912 位。 n ( 7 ) 负压特性 电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 V、温度值格式 当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在内部存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625/LSB形式表示。温度值格式如下: 可以知道,当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码(在取补),再计算十进制值。如下是一部

11、分温度值对应表。 VI、DS18B20的工作时序 初始化ROM操作指令存储器操作指令数据传输。 其工作时序包括: l 初始化时序 l 写时序 l 读时序 VII、设计分析:鉴于以上资料,本次试验可以有两种方案。第一就是采用以上的资料结合DS18B20用任意一个I/O口作为DS18B20的数据总线,其电源线予以+5v稳定电压供电,GND管教接地。按照单总线的时序,通过把数据总线不断的拉高,拉低,来实现18B20的初始化,写时序和读时序。将从18B20得到的数据进行处理,设置测量范围为0100摄氏度。并且通过四位数码管进行显示。其中数码管采用的是共阳极,驱动电流采用芯片74HC240作为电流驱动。

12、第二种方案就是采用桥式电路,将一个热敏电阻作为电桥的桥臂。温度的改变会引起热敏电阻阻值的变化,从而引起电桥的输出电压的变化,通过AD0809对电桥的输出电压进行采样,将得到数值进行工程量变换,最终通过四位数码管进行显示。两种方案的总体思路都是一样的。本次试验设计,最终确定了第一种方案,即通过DS18B20来完成温度数据的采集。方案论证 有设计分析知道:第一种方案,即DS18B20作为数据采集的温度传感器对于简化实验的硬件电路有着巨大的贡献,可以大大的节约试验成本。一个DS18B20市场价大约6元人民币,而一个AD0809大约需要十元左右,此外电桥电路还需要放大电路,一个放大器大约需要一块钱,总

13、体价格会比DS18B20的电路多出十元钱。而且DS18B20的温度传感器精度高而且可靠,如果使用电桥电路则必须考虑温度的校准问题,DS18B20已经有了温度标准,甚至可以复制,都不会引起计量问题。但是,单总线结构的软件设计会很麻烦,而如果采用AD0809则会大大的减少软件编程的难度。经过优劣取舍,和实验者的硬件条件(没有恒温箱来进行温度校准,缺少编程器和仿真器),最终选择了DS18B20的实验电路是绝对正确的选择。 系统硬件设计 在系统设计分析环节已经简单介绍了系统的硬件设计方案,采用共阳极的四位八段数码管来作为温度显示,而不采用LCD液晶显示屏,因为这样可以大大的节省试验成本,一个四位八段数

14、码管大约要两元钱,而一个LCD大约需要十元钱。作为数码管的驱动,本来可以选则晶体三极管,但是这样会大大的增加硬件电路的复杂程度,而74HC240本身也不过一块钱不会提高电路的成本,所以最终确定了本次试验的硬件电路图如下图所示: 主机首先发出一个480960微秒的低电平脉冲,然后释放总线变为高电平,并在随后的480微秒时间内对总线进行检测,如果有低电平出现说明总线上有器件已做出应答。若无低电平出现一直都是高电平说明总线上无器件应答。 16 做为从器件的DS18B20在一上电后就一直在检测总线上是否有480960微秒的低电平出现,如果有,在总线转为高电平后等待1560微秒后将总线电平拉低60240

15、微秒做出响应存在脉冲,告诉主机本器件已做好准备。若没有检测到就一直在检测 B、对DS18B20的写和读操作 接下来就是主机发出各种操作命令,但各种操作命令都是向DS18B20写0和写1组成的命令字节,接收数据时也是从DS18B20读取0或1的过程。因此首先要搞清主机是如何进行写0、写1、读0和读1的。 写周期最少为60微秒,最长不超过120微秒。写周期一开始做为主机先把总线拉低1微秒表示写周期开始。随后若主机想写0,则继续拉低电平最少60微秒直至写周期结束,然后释放总线为高电平。若主机想写1,在一开始拉低总线电平1微秒后就释放总线为高电平,一直到写周期结束。而做为从机的DS18B20则在检测到

16、总线被拉底后等待15微秒然后从15us到45us开始对总线采样,在采样期内总线为高电平则为1,若采样期内总线为低电平则为0。 对于读数据操作时序也分为读0时序和读1时序两个过程。读时隙是从主机把单总线拉低之后,在1微秒之后就得释放单总线为高电平,以让DS18B20把数据传输到单总线上。DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。若要送出1则释放总线为高电平。主机在一开始拉 17 低总线1微秒后释放总线,然后在包括前面的拉低总线电平1微秒在内的15微秒时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0。采样期内总线为高电平则确

17、认为1。完成一个读时序过程,至少需要60us才能完成DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,如果出现序列混乱, 1-WIRE 器件将不响应主机,因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。根据 DS18B20 的协议规定,微控制器控制 DS18B20 完成温度的转换必须经过以下 4 个步骤 : ()每次读写前对 DS18B20 进行复位初始化。复位要求 主 CPU 将数据线下拉 500us ,然后释放, DS18B20 收到信号后等待 16us60us 左右,然后发出60us240us 的存在低脉冲,主 CPU 收到此信号后表示复位成功。 ()

18、发送一条 ROM 指令现在我们要做的是让DS18B20进行一次温度的转换,那具体的操作就是: 1、主机先作个复位操作, 2、主机再写跳过ROM的操作(CCH)命令, 3、然后主机接着写个转换温度的操作命令,后面释放总线至少一秒,让DS18B20完成转换的操作。在这里要注意的是每个命令字节在写的时候都是低字节先写,例如CCH的二进制为11001100,在写到总线上时要从低位开始写,写的顺序是“零、零、壹、壹、零、零、壹、壹”。整个操作的总线状态如下图。 读取RAM内的温度数据。同样,这个操作也要接照三个步骤。 1、主机发出复位操作并接收DS18B20的应答(存在)脉冲。 2、主机发出跳过对ROM

19、操作的命令(CCH)。 3、主机发出读取RAM的命令(BEH),随后主机依次读取DS18B20发出的从第0一第8,共九个字节的数据。如果只想读取温度数据,那在读完第0和第1个数据后就不再理会后面DS18B20发出的数据即可。同样读取数据也是低位在前的。整个操作的总线状态如下图:由以上分析,可以知道系统总的设计程序图如下:即中程序为: MAIN: LCALL INIT_18B20 ;初始化18B20 LCALL RE_CONFIG1 ;写18B20 LCALL GET_TEMPER ;读18B20 AJMP CHANGE ;数据处理显示并返回MAIN 其中INIT_18B20为DS18B20的初

20、始化程序,其作用是对DS18B20进行初始化,使其能够开始工作。 LCALL RE_CONFIG1为 INIT_18B20为DS18B20的写程序,主要任务是对DS18B20进行设置,比如设置其上下报警值,采用多少位计数等等。 LCALL GET_TEMPER程序是DS18B20的读程序,是把DS18B20采集得到的读到单片机当中,放到28H,29H单元。 CHANGE为数据处理和显示模块,完成的功能有三个:将得到的两字节十六位数据进行处理,得到八位的显示数据。将处理的一字节数据拆分显示。返回MAIN函数,进行无限循环。所以CHANGE函数的流程图细分为: 21 甲、其中的数据处理的思路为:

21、具体程序如下: MOV A,29H MOV C,28H.0 将28H中的最低位移入C RRC A MOV C,28H.1 RRC A MOV C,28H.2 RRC A 22 MOV C,28H.3 RRC A MOV 29H,A 乙、显示模块的思路如下具体程序如下: DISPLAY: MOV R0,#29H MOV R1,#40H MOV A,R0 DA A MOV R0,A DF:MOV A,R0 SWAP A ANL A,#0FH MOV R1,A 23 MOV A,R0 ANL A,#0FH INC R1 MOV R1,A MOV P2,#05H ;显示第一个 MOV P1,#0FEH ;第一个管显示 LCALL DELAY ;调用延时 MOV P2,#0FFH ;消影 M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论