2022年温度控制系统毕业论文 .pdf
绪论随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决1。传统的控制方式以不能满足高精度,高速度的控制要求,如温度控制表温度接触器,其主要缺点是温度波动范围大,由于他主要通过控制接触器的通断时间比例来达到改变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 48 页 - - - - - - - - - 1 温度控制及单片机发展历程温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位” 控制及常规的 PID 控制器为主, 它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少2。随着我国经济的发展及加入WTO ,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家、企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和 CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL 的 Z80 是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳3。早期的单片机都是8 位或 4 位的。其中最成功的是INTEL 的 8031 ,因为简单可靠而性能不错获得了很大的好评。此后在8031 上发展出了 MCS51 系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了 16 位单片机, 但因为性价比不理想并未得到很广泛的应用。90 年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的 ARM 系列的广泛应用, 32 位单片机迅速取代16 位单片机的高端地位, 并且进入主名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 48 页 - - - - - - - - - 流市场。而传统的8 位单片机的性能也得到了飞速提高,处理能力比起80 年代提高了数百倍。目前,高端的32 位单片机主频已经超过300MHz ,性能直追 90 年代中期的专用处理器,而普通的型号出厂价格跌落至1 美元,最高端的型号也只有10 美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。 而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的 Windows和 Linux操作系统。1.1 课题背景及研究意义近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。1.2 课题的设计目的1. 巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。2. 培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。3. 通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。1.3 课题的主要工作本课题的温度传感器DS18B20 ,此传感器课读取被测量温度值,进行转换。主要工作研究重点是设计一种基于单片机的数字温度测量及报警系统。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 48 页 - - - - - - - - - 利用数字温度传感如下:1. 测温范围 55 +125 ,固有测温分辨率 0.5 。2. 精度误差小于 1。3. LCD1602液晶显示。4. 两路温度测量及报警功能。5. 实现报警提示蜂鸣器及LCD 发光二极管。1.4 本文研究内容电子温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即 A/D转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者 PC 机等, 处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0 摄氏度,然后通过显示单元,如LED ,LCD 或者电脑屏幕等显示出来给人观察。这样就完成了电子温度计的基本测温功能。本文是基于 AT89S51单片机,采用数字温度传感器DS18B20 ,利用 DS18B20不需要 A/D转换,可直接进行温度采集显示,报警的电子温度计设计。包括传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 48 页 - - - - - - - - - 2 系统总体方案及硬件设计2.1 电子温度计设计方案论证由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的, 所以可以采用一只温度传感器DS18B20 ,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。2.2 总体设计框图温度计电路设计总体设计方框图如图2.1 所示,控制器采用单片机AT89C52 ,温度传感器采用 DS18B20 ,LCD1602实现温度显示。图 2.1 总体设计框图2.2.1 主控制器AT89C52 单片机时钟震荡电路LCD1602显示模块温度门限报警电路温度检测电路名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 48 页 - - - - - - - - - 单片机 AT89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,适合便携手持式产品的设计使用。AT89C52单片机芯片具有以下特性:1) 指令集合芯片引脚与Intel 公司的 8052 兼容;2) 4KB 片内在系统可编程FLASH 程序存储器;3) 时钟频率为 033MHZ ;4) 128 字节片内随机读写存储器(RAM );5) 6 个中断源, 2 级优先级;6) 2 个 16 位定时 / 记数器;7) 全双工串行通信接口;8) 监视定时器;9) 两个数据指针;2.2.2 LCD1602显示模块显示电路采用 LCD1602显示模块,接 P0 口。LCD1602主要技术参数:显示容量 :16 2个字符芯片工作电压 :4.5 5.5V 工作电流 :2.0mA(5.0V) 模块最佳工作电压 :5.0V 字符尺寸 :2.95 4.35(W H)mm 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 48 页 - - - - - - - - - 2.2.2.1 引脚功能说明:LCD1602 采用标准的 14 脚(无背光)或 16脚(带背光)接口,各引脚接口说明如表2.1 所示4:表2.1 引脚接口说明表编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 数据2 VDD 电源正极10 D3 数据3 VL 液晶显示偏压11 D4 数据4 RS 数据/ 命令选择12 D5 数据5 R/W 读/ 写选择13 D6 数据6 E 使能信号14 D7 数据名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 48 页 - - - - - - - - - 第1脚:VSS 为地电源。第2脚:VDD 接5V 正电源。第3脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K 的电位器调整对比度。第4脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和 R/W 共同为低电平时可以写入指令或者显示地址,当RS 为低电平 R/W 为高电平时可以读忙信号,当RS 为高电平 R/W 为低电平时可以写入数据。第6脚:E 端为使能端,当 E 端由高电平跳变成低电平时,LCD1602 显示模块执行命令。第714 脚:D0 D7 为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。2.2.2.2 LCD1602的指令说明及时序LCD1602 显示模块内部的控制器共有11 条控制指令,如表 2.2 所示5:表2.2 控制命令表序号指令RS R/D7 D6 D5 D4 D3 D2 D1 D0 7 D0 数据15 BLA 背光源正极8 D1 数据16 BLK 背光源负极名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 48 页 - - - - - - - - - W 1 清显示0 0 0 0 0 0 0 0 0 1 2 光标返回0 0 0 0 0 0 0 0 1 * 3 置输入模式0 0 0 0 0 0 0 1 I/D S 4 显示开 / 关控制0 0 0 0 0 0 1 D C B 5 光标或字符移位0 0 0 0 0 1 S/C R/L * * 6 置功能0 0 0 0 1 DL N F * * 7 置字符发生存贮器地址0 0 0 1 字符发生存贮器地址8 置数据存贮器地址0 0 1 显示数据存贮器地址9 读忙标志或地址0 1 BF 计数器地址10 写数到 CGRAM 或DDRAM )1 0 要写的数据内容11 从 CGRAM 或 DDRAM读数1 1 读出的数据内容LCD1602 显示模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明: 1为高电平、 0为低电平)指令1:清显示,指令码 01H, 光标复位到地址 00H 位置。指令2:光标复位,光标返回到地址00H 。指令3:光标和显示模式设置I/D :光标移动方向,高电平右移,低电平左移S 屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 48 页 - - - - - - - - - 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C :高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL :高电平时为 4位总线,低电平时为 8位总线 N:低电平时为单行显示,高电平时双行显示F: 低电平时显示 5x7 的点阵字符,高电平时显示 5x10的点阵字符。指令7:字符发生器 RAM 地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF :为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10 :写数据。指令11 :读数据。与 HD44780 相兼容的芯片基本操作时序表如表2.3 所示6。表2.3 基本操作时序表读状态输入RS=L,R/W=H ,E=H 输出D0 D7= 状态字写指令输入 RS=L ,R/W=L ,D0 D7= 指令码,E=高脉冲输出无读数据输入RS=H ,R/W=H ,E=H 输出D0 D7= 数据名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 48 页 - - - - - - - - - 写数据输入 RS=H ,R/W=L ,D0 D7= 数据,E=高脉冲输出无读写操作时序如图 2.2 和图2.3 所示:图 2.2 读操作时序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 48 页 - - - - - - - - - 图2.3 写操作时序2.2.2.3LCD1602 的 RAM 地址映射及标准字库表LCD1602 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2.4 是 LCD1602 的内部显示地址。图2.4 LCD1602内部显示地址例如第二行第一个字符的地址是40H ,那么是否直接写入40H 就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7 恒定为高电平 1 所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B (C0H)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 48 页 - - - - - - - - - 在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。LCD1602液晶模块内部的字符发生存储器 (CGROM )已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等, 每一个字符都有一个固定的代码, 比如大写的英文字母“A” 的代码是 01000001B(41H ) , 显示时模块把地址41H 中的点阵字符图形显示出来, 我们就能看到字母“A” 。2.2.3 温度传感器DS18B20温度传感器是美国DALLAS 半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12 位的数字值读数方式。 DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信,无须经过其它变换电路;多个 DS18B20可以并联在惟一的三线上,实现多点组网功能;内含 64 位经过激光修正的只读存储器ROM ;可通过数据线供电,内含寄生电源,电压范围为3.05.5 ;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;测温范围为 -55 -+125 ,测量分辨率为0.0625 采用单总线专用技术,DS18B20采用 3 脚 PR35 封装或 8 脚 SOIC 封装,其内部结构框图如图2.5所示7。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 48 页 - - - - - - - - - 图 2.5 DS18B20内部结构64 位 ROM 的结构开始 8 位是产品类型的编号,接着是每个器件的惟一的序号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH 和 TL,可通过软件写入用户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM 和一个非易失性的可电擦除的 EERAM 。高速暂存 RAM 的结构为 8 字节的存储器,结构如图2.6 所示。头 2 个字节包含测得的温度信息,第3 和第 4 字节 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。第5 个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。 DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图 2.6 所示。低 5 位一直为 1,TM 是工作模式位,用于设置DS18B20在工作模式还是在测试模式, DS18B20出厂时该位被设置为0,用户要去改动, R1 和 R0决定温度转换的精度位数,来设置分辨率。温度LSB 温度MSB TH 用户字节 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 48 页 - - - - - - - - - 图 2.6 DS18B20字节定义由下面表 2.4 可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存 RAM 的第 6、7、8 字节保留未用,表现为全逻辑1。第 9 字节读出前面所有 8 字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性。当 DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2 字节。单片机可以通过单线接口读出该数据, 读数据时低位在先, 高位在后, 数据格式以 0.0625 /LSB形式表示。当符号位 S=0 时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位 S=1 时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。TL 用户字节 2 配置寄存器保留保留保留CRC 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 48 页 - - - - - - - - - 表 2.4 DS18B20温度转换时间表DS18B20完成温度转换后,就把测得的温度值与RAM 中的 TH 、TL 字节内容作比较。若 TTH 或 TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索8。在 64 位 ROM 的最高有效字节中存储有循环冗余检验码(CRC )。主机 ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20的 CRC 值作比较,以判断主机收到的ROM 数据是否正确。DS18B20的测温原理是这样的 ,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变, 所产生的信号作为减法计数器2 的脉冲输入。 器件中还有一个计数门,当计数门打开时, DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器1、温度寄存器中, 计数器 1 和温度寄存器被预置在 55 所对应的一个基数值。减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到 0 时,温度寄存器的值将加1,减法计数器 1 的预置将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到 0 时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。表 2.5 一部分温度对应值表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 48 页 - - - - - - - - - 温度/ 二进制表示十六进制表示+125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H +25.0625 0000 0001 1001 0000 0191H +10.125 0000 0000 1010 0001 00A2H +0.5 0000 0000 0000 0010 0008H 0 0000 0000 0000 1000 0000H -0.5 1111 1111 1111 0000 FFF8H -10.125 1111 1111 0101 1110 FF5EH -25.0625 1111 1110 0110 1111 FE6FH -55 1111 1100 1001 0000 FC90H 2.3 系统整体硬件电路设计2.3.1 主板电路名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 48 页 - - - - - - - - - 系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,单片机主板电路如图2.7 所示:图2.7 单片机主板电路2.3.2 显示电路显示电路只用 P0口,采用 LCD1602 显示模块。图 2.8 温度显示电路名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 48 页 - - - - - - - - - 2.3.3 温度采集电路通过 DS18B20电路可以对温度进行采集,根据图2.9 所示:图 2.9 温度采集电路名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 48 页 - - - - - - - - - 3 系统软件设计3.1 主程序设计整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块9。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。主程序流程见图3.1 。否是开始初始化判断温度是否在设定范围内红灯亮绿灯亮显示温度名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 48 页 - - - - - - - - - 图3.1 主程序流程图3.2 DS18B20初始化DS18B20 初始化流程图见图 3.2 。C51寄存器初始化温度转换命令18B20存在?读取温度温度数据处理温度显示报警温度比较超出范围?开始YNYN结束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 48 页 - - - - - - - - - 图3.2 DS18B20初始化流程图3.3 数据测试将温度传感器与冰水混合物接触,经过充分搅拌达到热平衡后调节系统,使显示读数为 0.00 (标定 0);利用气压计读出当时当地的大气压强,并根据大气压强和当地重力加速度计算出当时的实际压强;根据沸点与压强的关系查出沸点温度10。把温度传感器放入沸水中,待显示读数稳定后重新调节,使显示器显示读数等于当地当时沸点温度后工作结束。该温度计的量程为-55 125,读数精度为 0.5 ,实际使用一般在 0 100。 采用 0 50和 50 100的精密水银温度计作检验标准, 对设计的温度计进行测试,其结果表明能达到该精度要求。3.4 仿真结果设置温度上限为28.5 度,温度下限为23.5 度。1. 如图 3.3 所示。此时温度时24 度和 25 度,正常范围内,绿灯亮,温度正常。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 48 页 - - - - - - - - - 图 3.3 仿真 1 2. 如图 3.4 所示。此时温度为24 度和 22 度,由于 22 度低于下限温度,红灯闪亮,蜂鸣器响,实现报警。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 48 页 - - - - - - - - - 图 3.4 仿真 2 3.如图 3.5 所示。此时温度为 25 度和 30 度,30 度不在所设范围内, 红灯闪亮,报警。图 3.5 仿真 3名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 48 页 - - - - - - - - - 结论将本文设计的电子温度计制作成实物,只要开机运行则能立即监测所测对象的温度,测量范围较大,制作成本低,程序运行稳定。不过受限于八位A/D转换器转换精度不够,在测量范围内最小仅能分辨2温差,很难满足一些高精度测量。为此可以改用 12 位甚至更高分辨率的A/D转换器以提高温差分辨率,满足更高的测试要求。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 48 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 48 页 - - - - - - - - - 致谢本论文是在老师的悉心指导和热情关怀下完成的。陈老师渊博学识、严谨的治学态度及随和的为人给我留下了难以忘怀的印象,这将使我受益终身。在此我由衷地感谢陈老师对我们的帮助,也非常感谢系领导对我们的关怀。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 48 页 - - - - - - - - - 参考文献1 黄维翼单片机应用与项目实践M 清华大学出版社, 2010 2 王质朴吕运朋 MCS-51单片机原理接口及应用 M 北京理工大学出版社, 2009 3 陈杰,黄鸿传感器与检测技术M 高等教育出版社, 2002 4 彭伟单片机 C 语言程序设计实训100 例M 电子工业出版社, 2009 5 李俊松 21 世纪的光电子科学 N科学时报, 2002-02-20(10 )6 康华光,陈大钦,张林电子技术基础模拟部分M 高等教育出版社, 2005 7 Paul Scherz,夏建生,王仲奕实用电子元器件与电路基础M 电子工业出版社,2009 8 周永东基于 DS18B20的单片机数字温度计 J 微电子学, 2007 (5):65-66 9 陈超华,王会进用Keil C51开发大型嵌入式 J 2003,23 (11):140-143 10 刘国强,唐东红,李兴伟等基于AT89C51单片机的高精度测温系统的研制J 仪器仪表学报, 2005 ,26 (ZL):258-259 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 48 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 29 页,共 48 页 - - - - - - - - - 附录 A: 程序清单#include #define uchar unsigned char #define uint unsigned int sbit DQ=P10;/DS18B20与单片机连接口sbit DQ1=P11;/DS18B201与单片机连接口sbit RS=P25; sbit RW=P26; sbit EN=P27; sbit beef = P34; sbit P36 = P36; sbit P37 = P37; unsigned char code str1=1:; unsigned char code str2=H:; unsigned char code str3=2:; unsigned char code str4=L:; unsigned char code str5=23.5; / 最低温门限unsigned char code str6=28.5; / 最高温门制名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 48 页 - - - - - - - - - uchar data disdata4; uchar data disdata14; uint temp,temp1,tempL=23.5,tempH=28.5; uint tvalue,tvalue1;/温度值uchar tflag,tflag1;/温度正负标志/*LCD1602程序*/ void delay1ms(unsigned int ms)/延时 1 毫秒(不够精确的)unsigned int i,j; for(i=0;ims;i+) for(j=0;j0;i-) DQ = 0; /给脉冲信号dat=1; DQ = 1; /给脉冲信号if(DQ) dat|=0 x80; delay_18B20(10); return(dat); uchar DS1820rd1()/*读数据 */ / 读第二个温度传感器/ unsigned char j=0; unsigned char dat1 = 0; for (j=8;j0;j-) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 37 页,共 48 页 - - - - - - - - - DQ1= 0; /给脉冲信号dat1=1; DQ1= 1; /给脉冲信号if(DQ1) dat1|=0 x80; delay_18B20(10); return(dat1); void DS1820wr(uchar wdata)/*写数据 */ unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata&0 x01; delay_18B20(10); DQ = 1; wdata=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 38 页,共 48 页 - - - - - - - - - void DS1820wr1(uchar wdata1)/*写数据 */ / 写第二个温度传感器/ unsigned char j=0; for (j=8; j0; j-) DQ1= 0; DQ1= wdata1&0 x01; delay_18B20(10); DQ1= 1; wdata1=1; read_temp()/*读取温度值并转换 */ uchar a,b; DS1820rst(); DS1820wr(0 xcc);/*跳过读序列号 */ DS1820wr(0 x44);/*启动温度转换 */ DS1820rst(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 39 页,共 48 页 - - - - - - - - - DS1820wr(0 xcc);/*跳过读序列号 */ DS1820wr(0 xbe);/*读取温度 */ a=DS1820rd(); b=DS1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tvalue0 x0fff) tflag=0; else tvalue=tvalue+1; tflag=1; tvalue=tvalue*(0.625);/温度值扩大 10 倍,精确到 1 位小数return(tvalue); read_temp1()/*读取温度值并转换 */ / 读第二个温度传感器 / uchar c,d; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 40 页,共 48 页 - - - - - - - - - DS1820r