




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除摘要随着计算机科学的发展,计算机已深入地渗透到我们的生活中,要想学好温度测控,由于温度测控是基于单片机知识的,因此我们只有扎扎实实的把单片机知识学好。现今,我们的生活环境和工作环境中,由单片机构成的微型系统在为我们服务。单片机在工业控制,尖端武器,通信设备,信息处理,家用电器等各测,控领域的应用中独占鳌头。时下,家用电器和办公设备的智能化,遥控化,模糊控制化已成为世界潮流,而这些高性能无一不是靠单片机来实现的,同时在使用单片机的前提下我们也还要用到A/D数模转换。我们作为21世纪的大学生必须具备单片机知识。现在随着社会对人才素质要求的不断提高,我们也要不断的充实自己,以适应社会的发展。温度传感器及有关电路将温度转化为电脉冲的脉宽,单片机将测得的脉冲宽度的值转化为与之对应的温度值。DS-18B20数字温度传感器就是我设计的其中的一个电源器件。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,测温传感器使用DS18B20,用4位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。目录一 概述-23二 整体方案-232.1设计任务-4三.硬件电路设计-43.1单片机控制电路-43.2温度采集模块-63.3显示模块-103.4报警模块-11 3.5串口通讯电路上位机模块-11123.6硬件制作图解-1213四软件系统设计-13144.1程序流程图-13144.2基本显示原理-14154.3 DS18B20汇编程序-1415五.系统调试-1617六.总结-1617七.致谢-1718八.附件-1819九.参考文献-27291、概述TS-18B20数字温度传感器,该产品采用美国DALLAS公司生产的 DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 温度传感器可编程的分辨率为912位 温度转换为12位数字格式最大值为750毫秒 用户可定义的非易失性温度报警设置 应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。在做这个设计之前,我查了许多的资料,其中TS-18B20数字温度传感器的卓越性能深深的吸引了我,所以我决定这次的设计就用它来实现测温的功能。2、整体方案 TS-18B20数字温度传感器,该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。作为一种数字化温度传感器,DS18B20测温时无需任何外部元件,可直接输出912位(含符号位)的被测温度值,测温范围为一55 +125;在一1O+85 范围内测量精度为05 ,输出测量分辨率可调,最高可达0062 5,图2.1是整体框图。 图2.1 整体框图21设计任务以单片机为核心,设计单片机最小系统,构成数字式温度计,能够实现实时温度的显示。1、 实现1路实时温度的显示,显示位数为3位,显示精度0.1;2、 利用DS18B20作为集成温度传感器,选择相应变送电路;3、 设计单片机主程序、温度变换程序、显示程序等;4、 尽可能降低设计的成本;3、硬件电路设计3.1单片机控制电路表1 DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 AT89s51的特点及特性:40个引脚,4k bytes flash片内程序存储器,128 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。 此外,at89s51设计和配置了振荡频率可为0hz并可通过软件设置省电模式。空闲模式下,cpu暂停工作,而ram定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有pdip、tqfp和plcc等三种封装形式,以适应不同产品的需求。主要功能特性: 兼容mcs-51指令系统 4k可反复擦写(1000次)isp flash rom 32个双向i/o口 4.5-5.5v工作电压 2个16位可编程定时/计数器 时钟频率0-33mhz 全双工uart串行中断口线 128x8bit内部ram 2个外部中断源 低功耗空闲和省电模式 中断唤醒省电模式 3级加密位 看门狗(wdt)电路 软件设置空闲和省电功能 灵活的isp字节和分页编程 双数据寄存器指针由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的初始化 (1) 先将数据线置高电平“1”。 (2) 延时(该时间要求的不是很严格,但是尽可能的短一点) (3) 数据线拉到低电平“0”。 (4) 延时750微秒(该时间的时间范围可以从480到960微秒)。 (5) 数据线拉到高电平“1”。 (6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。 (7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。 (8) 将数据线再次拉高到高电平“1”后结束。 DS18B20的写操作 (1) 数据线先置低电平“0”。 (2) 延时确定的时间为15微秒。 (3) 按从低位到高位的顺序发送字节(一次只发送一位)。 (4) 延时时间为45微秒。 (5) 将数据线拉到高电平。 (6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。 (7) 最后将数据线拉高。 DS18B20的读操作 (1)将数据线拉高“1”。 (2)延时2微秒。 (3)将数据线拉低“0”。 (4)延时15微秒。 (5)将数据线拉高“1”。 (6)延时15微秒。 (7)读数据线的状态得到1个状态位,并进行数据处理。 (8)延时30微秒。3.2温度采集模块温度采集模块采用Dallas公司的DS18B20温度传感器,该温度传感器是1-Wire通信,输出形式是开漏输出,所以要接10K的上拉电阻,才能保证通信正常,数据线接单片机P3口。温度采集精度采用默认的12位精度,最小分辨率可以达到0.0625。图3.2.1是Dallas公司的DS18B20温度传感器的内部结构图,。图3.2.1 DS18B20内部结构图DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理如图3.2.2所示。图3.2.2 DS18B20测温原理 DS18B20的初始化 (1) 先将数据线置高电平“1”。 (2) 延时(该时间要求的不是很严格,但是尽可能的短一点) (3) 数据线拉到低电平“0”。 (4) 延时750微秒(该时间的时间范围可以从480到960微秒)。 (5) 数据线拉到高电平“1”。 (6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。 (7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。 (8) 将数据线再次拉高到高电平“1”后结束。 DS18B20的写操作 (1) 数据线先置低电平“0”。 (2) 延时确定的时间为15微秒。 (3) 按从低位到高位的顺序发送字节(一次只发送一位)。 (4) 延时时间为45微秒。 (5) 将数据线拉到高电平。 (6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。 (7) 最后将数据线拉高。 DS18B20的读操作 (1)将数据线拉高“1”。 (2)延时2微秒。 (3)将数据线拉低“0”。 (4)延时15微秒。 (5)将数据线拉高“1”。 (6)延时15微秒。 (7)读数据线的状态得到1个状态位,并进行数据处理。 (8)延时30微秒。把DS18B2连接上单片机后,其发挥的作用就是:采集外部的温度数据,并温度转化为电脉冲的脉宽,单片机将测得的脉冲宽度的值转化为与之对应的温度值。图3.2.3是其测量温度的流程图;图3.2.4是DS18B20在电路中的连接图。图3.2.3 测量温度的流程图图3.2.4 DS18B20电路图附:*温度转换程序*TEMPER_COV: MOV A,#0F0H ANL A,TEMPER_L ; 舍去温度低位中小数点后的四位温度数值SWAP AMOV TEMPER_NUM,AMOV A,TEMPER_LJNB ACC.3,TEMPER_COV1 ; 四舍五入去温度值,INC TEMPER_NUM ;D3为1则加1,为0则舍去TEMPER_COV1: MOV A,TEMPER_H ; 高位ANL A,#07H ;温度寄存器的高字节只有后3位有效SWAP AORL A,TEMPER_NUM ; 拼装MOV TEMPER_NUM,A ; 保存变换后的温度数据CALL BIN_BCDRET表1 DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收,数据和命令的传输都是低位在先。3.3显示模块温度显示模块采用4位共阳数码管,段选接P0口,位选接P1.0P1.3,第一位显示R,前面三位显示温度值,精确到0.1。如图3.3.1所示图3.3.1 4位共阴数码管附:*显示子程序*DISP: MOV A,R0 ;转换结果低位ANL A,#0FHACALL DSEND ;显示MOV A,R0SWAP AANL A,#0FH ;转换结果高位ACALL DSEND ;显示RETDSEND: MOV DPTR,#SGTB1MOVC A,A+DPTR ;取字符MOV SBUF,AJNB TI,$CLR TI RET3.4报警模块报警模块采用最简单的蜂鸣器电路部分,如图3.4所示本设计采软件处理报警,利用有源蜂鸣器进行报警输出,采用直流供电。当所测温度超过获低于所预设的温度时,数据口相应拉高电平,报警输出。(也可采用发光二级管报警电路,如过需要报警,则只需将相应位置1,当参数判断完毕后,再看报警模型单元ALARM 的内容是否与预设一样,如不一样,则发光报警)报警电路硬件连接如图3.4所示: 开始初始化示化获取温度值与温度上限比较报警转换并显示YES? 图 3.4.1 硬件电路图图3.4.2 报警流程图3.5串口通讯电路AT89C51有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换。采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对本设计来说已经足够使用了,电路如下图所示:程序界面:运行界面:3.56硬件制作图解制作过程要求有足够的细心和耐心,千万不要急于求成,每天花点时间做,这样可以保证自己不会因疲倦而导致频繁出错。尽量做到零错误,否则检查起来会很麻烦。一直追求美观和制作工艺,虽然焊接较麻烦,但仍然没有采用“飞线一团糟”的焊接方式,较好地利用了细金属导线和质量较好的漆包线。图3.56.1是温度传感的面板部分;图3.56.2是背面焊接部分。 图3.56.1 温度传感器设计面板 图3.56.2 背面焊接4、 软件系统设计4.1 程序流程图初始化DS18B20匹配ROM命令发一个DS18B20序列号等待1us读当前DS18B20温度开始所有DS18B20都访问完毕?存在一个DS18B20?发搜索ROM命令读并存储当前DS18B20序列号跳过ROM命令初始化DS18B20温度转换命令初始化DS18B20YNYN初始化DS18B20匹配ROM命令发一个DS18B20序列号等待1ms转换结束读当前DS18B20温度开始所有DS18B20都访问完毕?存在一个DS18B20?发搜索ROM命令读并存储当前DS18B20序列号跳过ROM命令初始化DS18B20初始化DS18B20YNYN4.2基本显示原理单片机中经常使用7 段LED 来显示数字,也就是用7 个LED 构成字型“8”,并另外用一个圆点LED 来显示小数点,也就是说一共有8 个LED,构成了“8.”的字型。7 段LED 分共阴级和共阳极两种,共阴级7 段LED 的原理图和管脚配置,共阳级7 段LED 的原理图和管脚配置。实际中,各个型号的7 段LED 的管脚配置可能不会是一样的,在实际应用中要先测试一下各个管脚的配置,再进行电路原理图的设计。共阳极7 段LED 是指发光二极管的阳极连接在一起为公共端的7 段LED,而共阴极7 段LED 是指发光二极管的阴极连接在一起为公共端的7 段LED。一个7段LED 由8 个发光二极管组成,其中7 个发光二极管构成字型“8”的各个笔划(ag),另一个发光二极管为小数点(dp)。当在某一段发光二极管上施加一定的正向电压时,该段LED 即被点亮;不加电压则为暗。以共阳极7 段LED 为例,若是要显示“5.”,则需要在VCC 上加上电压,向dp、g、f、e、a 送出00010010 的信号,就能显示出来。4.3 DS18B20汇编程序单总线读写操作;温度传感器DS1820 的汇编程序;一次数据传输为四步:初始化、传送ROM命令、传送RAM命令、数据交换;当命令者检测到器件存在时首先发送1个ROM命令;总线信号:初始化、写1、写0、读信号TEMPER_L DATA 36H ;温度寄存器的低位TEMPER_H DATA 35H ;温度寄存器的高位TEMPER_NUM DATA 60H ;保存温度值FLAG BIT 00H ;器件是否存在的标志位,器件存在由软件置1,否则清0DQ BIT P1.0 ORG 0000HAJMP START; /*主程序*/ *ORG 0030HSTART: MOV SP,#70HCALL GET_TEMPER ;读取温度值CALL TEMPER_COV ;读取转换后的温度值MOV R0,ACALL DISPCALL DELAYAJMP START5、系统调试DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: 1、较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此 ,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。2、在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个 DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。3、连接DS1820的总线电缆是有长度限制的。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考 虑总线分布电容和阻抗匹配问题。4、在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。6、总结 每次实践设计,只要有一点点的突破,只要能够学到一点的新鲜知识,都让我感觉学习单片机是多么的有乐趣。就是这样,我才能在学习单片机的道路上走的欢快、持久。 通过这次培训及此次设计,进一步提高在实践中研究问题、发现问题、解决问题的能力,但也存在不足之处,对知识涉及不广、积累不够、研究不深,还需要持之以恒的努力。 在这次设计中通过查阅大量的相关资料,详细了解了DS18B20的工作原理、led的显示原理,在不断地实践与理论中运用这些知识,明确的研究目标。同时使我明白了实践是学习收获的唯一途径。致谢此次培训设计中,又认识很多有志的同学,和他们交流让我领略了不一样的思维,不一样的为人处世的方式,和他们交流让我欢喜雀跃。虽然短暂得培训只有一个月,而且一个月后我们可能不在联系,但感谢他们的帮助。最辛苦的当属老师们了,谢谢贺老师那么认真的讲课,都忘记了下课的时间,让我每次听课的时候都感觉到有新的血液注入我体内,感谢王老师对我们的认真负责,每天按时点名签到,没来的还打电话问候,是这样的老师让我每天都坚持早起。我会记得在这一个月里培训的点点滴滴。8.附件;*; /*取得温度子程序*/ *;*;GET_TEMPER: SETB DQ CALL CHECK ; MOV A,#0CCH ; 跳过ROM匹配(当总线上只有一个器件时可跳过读ROM命令)CALL DSWRITE ; 写入命令MOV A,#44H ; 发出温度转换命令CALL DSWRITENOPCALL DELAYCALL DELAYCALL CHECK MOV A,#0CCH ; 跳过ROM匹配CALL DSWRITE MOV A,#0BEH ; 发出读温度命令CALL DSWRITECALL DSREAD ;读取温度的低位MOV R0,#TEMPER_LMOV R0,A ;存入TEMPER_LCALL DSREAD ;读取温度的低位DEC R0 ;存入TEMPER_HMOV R0,ARET;*; /*读DS18B20的程序,从DS18B20中读出一个字节的数据*/ *;*;DSREAD: MOV R2,#8READ1: CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#01DJNZ R3, $MOV C, DQMOV R3, #23DJNZ R3, $RRC ADJNZ R2, READ1RET;*; /*写DS18B20序子程序*/ *;* ; DSWRITE: MOV R2,#8CLR CWRITE1: CLR DQMOV R3,#6 ;延时12USDJNZ R3,$RRC AMOV DQ,CMOV R3,#23 ;46USDJNZ R3,$SETB DQNOPDJNZ R2,WRITE1SETB DQRET;*; /*检查器件是否存在子程序*/ *;*; CHECK: CALL DSINIT; 初始化JB FLAG,CHECK1 ; 检查标志位判断器件是否存在AJMP CHECK ; 若DS18B20不存在则继续检测CHECK1: CALL DELAY1RET ;*; /*BCD码转换子程序*/ *;* ; BIN_BCD: MOV DPTR,#TEMP_TABMOV A,TEMPER_NUMMOVC A,A+DPTRMOV TEMPER_NUM,ARET ;*; /*初始化子程序程序*/;初始化时序是由总线发出一个复位信号,然后由器件发 *;出一个应答信号,表示该器件存在,并准备好开始工作;* DSINIT: SETB DQNOPCLR DQ ;总线发一个复位信号MOV R0,#80HDJNZ R0,$ ; 延时SETB DQ ;拉高总线准备检测MOV R0,#25H ;延时DJNZ R0,$JNB DQ,INIT2 ;检测是否有应答信号,有应答信号跳转AJMP INIT3 ; 延时INIT2: SETB FLAG ; 置标志位,表示DS1820存在AJMP INIT4INIT3: CLR FLAG ; 清标志位,表示DS1820不存在AJMP INIT5INIT4: MOV R0, #6BH DJNZ R0, $ ; 延时INIT5: SETB DQ ;拉高总线RET; ;*; /*配置程序*/ *;* ; RE_CONFIG: JB FLAG,RE_CONFIG1 ; 若DS18B20存在,转RE_CONFIG1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业互联网平台生物识别技术在智能家居行业的应用趋势报告
- 人工智能通识 课 件 第四章:AI背后的那些事儿:风险、监管与责任
- 2025年湖南省永州市中考适应性考试物理试题(含答案)
- 《抵押合同》模板
- 计算机组成原理 课件 3 存储系统
- 《美术的力量》课件 2025-2026学年浙人美版(2024)初中美术八年级上册
- 巡察整改业务培训会课件
- 输电线路红外测温课件
- 尾板车安全操作培训课件
- 输液泵的培训课件
- 依法治校视角下高校后勤管理法律风险的识别与化解策略
- 2025年法学专业基础课程试题及答案
- 腰椎管狭窄症病例讨论
- 部编版语文(2024)二年级上册第一单元综合素养测评A卷(含答案)
- 工程质量事故案例课件
- 多囊卵巢综合症及护理方法
- 2025年城市更新与历史文化街区保护相结合的社区治理模式研究报告
- DB1311T 091-2025 旧水泥混凝土路面多锤头碎石化施工技术规范
- 前臂骨折护理查房
- 经济数学微积分 杨慧卿 第4版 教案 第1-3章 函数、极限与连续;一元函数微积分;一元函数积分学
- 脑卒中护理新进展
评论
0/150
提交评论