您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 《数字式温度计的设计》毕业设计
摘要随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该高精度数字式温度计采用了由DALLAS公司生产的单线数字温度传感器DS18B20,它具有独特的单线总线接口方式。本毕业论文详细的介绍了单线数字温度传感器DS18B20的测量原理、特性以及在温度测量中的硬件和软件设计,该温度计具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。二、总体方案设计1、数字温度计设计方案论证2.1.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。2.1.2方案二进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。2.2方案二的总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。2、硬件设计1.1工作原理及硬件框图基于DS18B20的温度测量装置电路图如图1所示,包括单片机最小系统、温度传感器、和显示电路。温度传感器DS18B20将被测环境温度转化成带符号的数字信号(以十六位补码形式,占两个字节),单片机对接收到的数字信号进行标度变换,转换成实际的温度值并送数码管显示。DS18B20传感器可置于离装置150米以内的任何地方。STC89C51是整个电路装置的控制核心,STC89C51内带4K字节的FlashROM,用户程序存放在此。图2系统硬件框图3、系统分析:本设计主要的任务是单片机软件的设计,而软件中的核心在于单片机与集成温度传感器DS18B20接口程序的设计,另外一点便是对数码管扫描显示的理解与运用。由于DS18B20集成了温度数据采集、模数转换于一体,因此外围电路非常简单。在进行软件设计前,须对该芯片反复研究,掌握其核心内容,其实程序在厂家提供的应用资料中也可以找到,关键是要对其工作过程的理解。对数码管扫描显示的程序设计,只要理解了其显示的工作原理,也不是可以掌握的。3.1、制作重点:★读取DS18B20的时序由于对DS18B20传感器数据的读取有一定的时序要求,因此在编写软件时要特别注意,先反复读懂该器件的读、写时序,然后根据所选用的晶振计算出机器周期的时间,为了使计算简单,在设计时将晶振选用12M,因为51系列单片机一个机器周期正好是12个时钟周期,因此选用12M晶振时,一个机器周期正好是1微秒,这样计算时间比较方便。★对读取数据的处理从DS18B20芯片的资料中可以看出,其数据存储器的分配为:存储数据与温度的对应关系见下表:从以上的分析可以看出,温度值存储于两个字节单元中,温度与存储器的对应关系为:整个温度值由16位二进制数表示,最高的5位为符号为,为零时代表正的温度值,为“1”时,代表的是负温度值,真正表示温度的是后11位数据,最低的四位表示小数位,其中0单元的高四位和1单元的低四位组合正好形成测得的温度整数值,这样我们在对读取的数据在进行处理时,只需将0单元的高四位和1单元的低四位通过重新组合,形成一个新的8位数据,这个数据便是测得的温度数值,但这是个16进制的数据,要输出10进制数进行显示,要进行相应的转换操作,至于将16进制数转换成10进制数据的汇编程序。★数码扫描输出的处理为了节省单片机端口,输出显示采用扫描的方式进行。利用人眼对光的停留效应,通过电子开关的控制,节合显示数据的配合,完成三位数码管的扫描显示。4、温度测量电路目前市面上的数字温度传感器有很多,比如DS18B20、MAX6575、DS1722、MAX6635等。用DS18B20可使系统结构更简单,可靠性更高。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。DS18B20的外形如图2所示,有三个引脚,引脚定义:DQ为数字信号输入/输出端,GND为电源地,VDD为外接供电电源输入端(在寄生电源接线方式时接地)。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。DS18B20与单片机的接口电路很简单,如下图3所示。DS18B20的DQ即2号端于单片机P26口相接,另外两个管脚一个接5V电源,另外一个管脚接地。上拉电阻为5.1K的上拉电阻,分别接于单片机的EA/VP端与P2.7口。上拉电阻作用主要是若温度传感器开路或没接时,能起到上拉作用,使之为高电平,使后读电路保护作用。4.3单片机最小系统4.3.1单片机选型在本次设计中,主要用单片机STC89C51来控制。STC89C51是与8051兼容的CHMOS微控制器。其FLASH存储器容量为2KB。与CHMOS工艺的89C51一样,支持软件选择的空闲和掉电两种节电运行方式。性能如下:8位CPU工作电压范围2.7~6V全静态工作方式:0Hz~24Hz;一个可编程串行口;有片内精密模拟比较器;2KB的FLASH存储;128B的数据存储器;15根输入/输出线;2个16位定时/计数器;5个中断源,2个优先级。STC89C51的FLASH存储器编程:STC89C51单片机提供了2KB的片内FLASH程序存储器,它允许在系统改写或用非易失性存储器编程器编程。FLASH存储器加密位:STC89C51单片机有2个加密位。可以编程(P)或不编程(U)以获得不同的加密功能。4.3.2最小系统图4单片机最小系统时钟复位电路如图4所示,采用12MHz的晶振。复位电路采用了微分型复位电路。复位电路的基本功能是:系统上电时提供复位信号直至系统电源稳定后撤销复位信号为可靠起见电源稳定后还要经一定的延时才撤销复位信号以防电源开关或电源插头分-合过程中引起的抖动而影响复位,有效的防止系统有时会出现一些不可预料的现象,如无规律可循的“死机”、“程序走飞”等。4.4显示电路主要采用四位一体共阳极LED数码管组成,采用动态法显示,直接显示当前环境温度。P0口接数码管的段码,P1.0-P1.3接数码管的位线。按钮开关可选择小数点后显示一位或两位。4.5电源电路市电220V经过变压器T1降压,得到一个交流的16v电压,再经过四个整流二极管整流、C5滤波得到直流电压,最后经过三端集成稳压管稳压,得到一个稳定的5V直流电压。2软件设计在此系统中,主要包括温度测量、显示、键盘。最主要的程序是温度测量部分。2.1系统主流程图系统上电后,首先对DS18B20进行初始化设置,接着对DS18B20发出SKIPROM指令(即跳过ROM存储器)延时5ms后,对DS18B20发出启动温度转换命令,然后,从DS18B20的暂存储器中读出温度数据,接着对该数据进行转换,转换成当前环境温度。最后将实际温度与设置温度比较,超过限制则发出报警。2.2温度测量设计通过STC89C51芯片的一个通用I/O口就可以实现对智能温度测量模块DS18B20的控制。读取DS18B20测量的温度主要是通过初始化命令、ROM功能命令、存储器功能命令、温度转换命令、读存储器命令等组成。冷端温度补偿三、系统软件算法分析程序命令时序总线命令序列如下:第一步:初始化第二步:ROM命令(跟随需要交换的数据)第三步:功能命令(跟随需要交换的数据)每次访问单总线器件,必须严格遵守这个命令序列,如果出现序列混乱,则一线器件不会响应单片机。基于一线上的所有传输过程都时以初始化开始的,初始化过程由单片机发出的复位脉冲和DS18B20的响应的应答脉冲组成。应答脉冲使单片机知道,总线上有1-WIRE设备,且准备就绪。系统中CPU采用12MHz晶振,DQ端接P2.6。RESET子程序RESET:CLRP2.6;拉低总线至少480us,否则在温度较高时会无法完成复位。MOVR2,#130;在调试过程中发现延时520uS,测温值可到110℃,达到D1:DJNZR2,D1;DS18B20的技术参数。SETBP2.6;释放总线MOVR2,#20D4:DJNZR2,D4JBP2.6,D0;总线若为低,则复位成功;否则复位失败,返回。MOVR2,#110D2:DJNZR2,D2;延时等待复位过程结束RET在单片机检测到应答(presence)脉冲后,就可以发ROM命令,命令长度为8位。该命令字要通过1-WIRE通信协议规定的严格的写时隙(Writetimeslots),逐位写到一线上,DS18B20会自动接收到这些命令,并准备响应相应的操作。本系统是单点使用,故只须用到SKIMROMCOMMAND(0CCH),这样单片机可以同时访问总线上的所有设备,而无须发出任何ROM代码信息。例如,单片机在发出SKIPROM命令后跟随CONVENTT(功能COMMAND)即启动温度转换命令(44H),值得注意的是:若SKIPROM命令后跟的是READSCRATCHPAD(0BEH)命令(包含其他读操作命令),则该系统只能用于单点系统,否则将由于多个节点都响应该命令而引起数据冲突。在单片机发出ROM命令后,接着就可以发送功能命令,然后DS18B20就开始执行命令,本单点应用系统中主要用到CONVENTT和READSCRATCHPAD在执行READSCRATCHPAD命令时,单片机可以通过发送RESET脉冲在任何时候中断数据传输。读、写时序在对DS18B20进行ROM或功能命令字的写入及对其进行读出操作时,都要求按照严格的1-WIRE通信协议(时序),以保证数据的完整性。其中有写0、写1、读0和读1时序。在这些时序中,都由单片机发出同步信号,并且所有的命令字和数据在传输的过程中都是字节的LSb在前,这一点于基于其他总线协议的串行通信格式(比如SPI、等)不同,它们通常是字节的MSb在前。读时序DS18B20仅在单片机发送读时隙(READSLOT)时才发送数据,所以单片机在发送READSCRATCHPAD命令后必须立即产生读时隙。所有的读时隙都要至少保持60us,并且在两个读时隙间至少要有1us的恢复时间。单片机通过把总线拉低至少1us来做为一个读时隙的开始,DS18B20的输出数据在读时序下降沿过后15us内有效,所以在此期间单片机应释放总线,进入读数据状态以便读取数据,15us后一线总线被上拉电阻拉为高电平,程序延时等待读时隙结束
本文标题:《数字式温度计的设计》毕业设计
链接地址:https://www.777doc.com/doc-2838547 .html