1、 毕业设计题 目 温度测量与报警系统的设计 学生姓名 学号 所在院(系) 物理与电信工程学院 专业班级 电子信息科学与技术1203 指导教师 完成地点 博远楼1012室 2016年6月5日陕西理工学院毕业设计 温度测量与报警系统的设计(陕西理工学院物理与电信工程学院电子信息科学与技术专业电信1203班,陕西,汉中 723000)指导教师:摘 要以STC89C51 单片机为核心的温度控制系统,以芯片 DS18B20 为温度采集系统,以LCD1602为显示系统,结合无线通信电路和一些接口电路完成了温度测量与报警系统的设计。基于STC89C51 单片机的环境温度检测系统不仅可以第一时间将信息达给管理
2、人员, 让其实时了解情况,而且还节省了不必要的人才资源浪费。温度的测量及控制,在工农业生产及日常生活中具有重要意义。关键词温度测量;报警系统;设计The design of detection and demonstration about temperature Li (Grade12,Class03,Major Electronic Information Science and Technology,School of Physics and Telecommunication Engineering,Shaanxi University of Technology, Hanzhong,
3、723000 Shaanxi )Tutor: HuanAbstractThis design take STC89C51 monolithic integrated circuit as core temperature control systems. Chip DS18B20 as temperature acquisition system, LCD1602 display system,In combination with the wireless communication circuit and some interface circuit of temperature meas
4、urement and alarm system design.Microcontroller based STC89C51 ambient temperature detection system can not only reach the first time information to managers, allowed real-time to understand the situation, but also saves personnel unnecessary waste of resources.Measurement and control of temperature
5、, and has important significance in industrial and agricultural production and daily life. Key wordstemperature measurement, alarm system, design目 录1引言11.1 研究目的及意义11.2 研究现状及发展趋势11.3 主要研究内容22 设计方案22.1 系统基本方案22.1.1 单片机芯片22.1.2 温度传感器22.1.3显示电路32.2系统设计框图32.3 模块功能介绍33 硬件电路43.1 STC89C51单片机最小系统43.2温度检测电路53
6、.3显示电路63.4 硬件电路64系统软件设计74.1 温度检测电路流程图74.2 显示电路流程图84.3键盘电路流程图94.4仿真结果及作品指标95结语10致谢11参考文献12附录A:实物图13附录B:程序清单131引言1.1 研究目的及意义随着时代的发展,科学的进步,各行各业高性能的设备越来越多,对于温度的要求也日益增高,传统的温度检测是依靠着人工轮流值班,巡回查看等传统方式来测量并记录环境情况。在传统的温度检测模式下,存在着效率低和科学性差等不足。而温度检测系统可以轻松解决由于上述方法造成的不能及时管理等问题。以单片机为基础的环境温度检测系统不仅仅可以及时的将信息传达给管理人员, 让其第
7、一时间了解情况,而且还可以节省人力资源,提高效率。单片机由于成本低、功耗低、抗干扰能力强、使用方便、微型化、扩展灵活、质量轻、控制能力强和体积小等优点比专用处理器更加适合用于嵌入式系统中,所以现代人类生活中几乎每一件电子机械产品之中都会集成有单片机。现今,单片机已经渗透到我们生活中的各个领域,包括航空航天、家用电器、医用设备、仪器仪表、专用设备的智能化的管理以及过程控制等领域。应用单片机对温度进行控制,不仅可以提高被控温度的技术指标,而且具有控制方便和组态简单的优点。1.2 研究现状及发展趋势虽然温度控制系统已经在国内得到了广泛的应用,但就国产的温度控制器来说,总体发展水平不高,与日本、美国、
8、德国等国家生产的温度控制器依然存在较大的差距。一般而言,成熟的温控产品常采用常规的PID控制器及“点位”控制器,而这两种控制器仅能适应要求不高的温度系统的控制,应用于较高控制场合的自适应、智能化控制仪表,现今国内技术还未成熟,能够广泛应用并形成商品化的控制仪表甚少。伴随国内经济的迅猛发展,特别是在加入WTO之后,我国政府以及企业对此给予高度重视,加强对相关企业的重视,建立国家、企业研发中心,加大在此方面的研究力度,促进了国内仪表业的迅速发展。数字温度计采用温度传感器(如热敏电阻,半导体,热电偶,铂电阻等),用电信号(如电压、电流)的变化代替温度的变化,电信号的变化和温度的变化有一定的关系,例如
9、一定的曲线关系或者线性关系等,而电信号可以通过模数转换电路将模拟信号转换为数字信号,再将数字信号传输给处理单元,例如PC机或单片机等,处理单元通过内部的软件计算将温度和数字信号关联起来,就成为了可以显示的温度数值,如25.0,最后再经过显示单元,如电脑屏幕、LCD或者LED等显示出来便于观察,这样便完成了数字温度计基本的测温功能。国内外相应技术的发展状况温度传感器技术:第一阶段:传统分立式的温度传感器此阶段温度传感器主要通过利用非电量同电量之间的转换完成温度测量,其代表为热电偶传感器。这里提到的热电偶传感器是过去在工业温度监控当中使用最为广泛的温度传感器,因其工作原理的特殊性需要在测量温度过程
10、当中将其与被测对象直接完成接触,这样可以不受中间传导介质的影响。热电偶传感器具备拥有较高精度以及测量范围相对广泛等特点1。第二阶段:模拟集成温度传感器所谓模拟集成温度传感器主要是利用硅半导体集成工艺制作而成,因此又称之为硅半导体传感器或者单片性的集成温度传感器。这种技术的模拟集成温度传感器诞生于20世纪80年代,其已经实现将温度测量传感器集成在一个芯片上并且能够完成诸如温度监测或者模拟信号正常输出等功能。其主要特点可以概括为功能简单(因为只能测量温度)、监测温度的误差较小、成本低廉、响应速度相对较快、能够传输距离较远、体积小巧功耗低等。结合其特点模拟集成温度传感器十分适用于远距离的测温系统,这
11、样不需要进行一些非线性校准并且外围电路设计简单可靠2;第三阶段:智能温度传感器现今,国际上的先进温度传感器正在从传统的模拟式向智能化、数字式以及高度集成化的方向发展。新型的智能温度传感器具有高安全性、高可靠性、拥有高测量精度、总线标准化以及多功能性等特点。智能温度传感器可以自主实现温度数据采集而且具备一定的数据处理功能,可以实现高度集成化的温度采集功能,极大的减少了相关系统的功能电路设计。1.3 主要研究内容温度测量与报警系统是一款简单实用的迷你数字温度计,所采用的元件包括LCD1602字符液晶一个,单片机STC89C51,传感器DS18B20,电容电阻若干。所用传感器DS18B20是美国DA
12、LLAS半导体公司生产的智能温度传感器,可以实现“一线总线”接口,测量温度范围-55C+125C。在-10+85C范围内,精度为0.5C。最高分辩率可达0.06253。现场的温度直接采用“一线总线”的数字方式传输,大大增强了系统的抗干扰能力。在对恶劣环境的现场温度测量中依然适用,如:环境控制、设备或过程控制、测温类消费电子产品等。主控制器即单片机部分,用于存储程序和控制电路;LCD显示部分是用1602字符液晶显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到L
13、CD1602上显示。并支持硬件手动配置温度上下限,通过4个键实现温度上限和下限设置,超过此上下限即实现报警功能。2 设计方案2.1 系统基本方案2.1.1 单片机芯片方案一:采用STC89C51芯片作为硬件核心。STC89C51内部具有8KB ROM 存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C51可以通过串口下载4。方案二:选用AT89S51,AT89S51片内拥有8K字节程序存储空间,256字节的数据存储空间没有EEPROM存储空间,这也与MCS-51系列单片机完全兼容,并且具有在线编程可擦除技术。两种方案均能够满足设
14、计要求,比较而言,STC89C51的价格比ATS89C51便宜,而且抗干扰性更加优秀,因此本次设计选用STC89C51更加合适。2.1.2 温度传感器方案一: 因为此次设计的是测温电路,所以考虑到可以采用热敏电阻之类的器件,利用这类器件的感温效应,然后将跟随被测温度变化的电压或者电流信号采集起来,进行模数转换,再应用单片机对采集的数据进行处理之后,在显示电路上,被测温度就可以显示出来,此种设计方案需要用到模数转换电路,感温电路实施过程比较麻烦。方案二:可以考虑使用温度传感器,在设计单片机电路的时候,往往都是使用传感器,所以考虑到采用一只温度传感器 DS18B20。这种传感器,可以很方便的直接读
15、取被测的温度值,进行转换,就可以实现设计需求,由此可见,此方案较方案一简单。比较方案一和方案二,两种方案都完全能够满足此次设计的需要,但是,从设计方法来看,采用方案二,电路设计,软件设计都比较简单,所以采用方案二更加合理。2.1.3显示电路方案一:使用数码管显示,数码管是由多个发光二极管封在在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。有共阴,共阳两种。方案二:采用液晶显示屏lcd1602显示,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每
16、行之间也有间隔,起到了字符间距和行间距的作用5。对两种方案比较之后,将选用第二种方案,液晶显示屏lcd1602操作简单,可以直接对1602的引脚直接操作。综上各方案所述,对此次设计的方案选定: 采用STC89C51单片机作为主控制系统;采用DS18B20为传感器;采用lcd1602液晶显示屏。2.2系统设计框图在该温度控制系统中STC89C51 单片机与温度传感器DS18B20,LCD1602以及按键模块等连接,系统上电后,STC89C51单片机驱动温度传感器DS18B20 工作,进行温度数据采集,传输。STC89C51单片机在接到温度传感器DS18B20 传送过来的温度数据后,进行操作,一方
17、面送至LCD显示模块进行温度显示,通过4个键实现温度上限和下限设置,超过此上下限即实现报警功能。系统设计框图如下:图2.1 系统原理框图2.3 模块功能介绍温度控制器硬件模块主要由以下四个模块组成:单片机模块,温度传感器模块,显示模块,按键模块。单片机模块主要功能是实现硬件系统中各个模块功能之间的相互协调,输出执行,数据的处理等功能,其中单片机最小系统包括复位电路与起振电路。温度传感器模块的作用是将测量到的温度采集并传输到单片机,LCD1602显示模块主要将温度在液晶显示屏中显示出来,按键模块共有四个按键,作用分别是设置,温度+1C,温度-1C,确认。3 硬件电路本设计是一款简易,实用的小型数
18、字温度计,设计中需要的主要元件包括:温度传感器DS18B20,单片机STC89C51,LCD1602字符液晶一个以及电容电阻若干。温度传感器使用美国DALLAS半导体公司生产的智能温度传感器DS18B20,此传感器支持“一线总线”接口,测温范围为-55C+125C。在-10+85C范围之内时,精度为0.5C。最高分辩率可以达到0.0625。现场温度直接采用“一线总线”的数字方式传输,使系统的抗干扰性大大增强。适合进行恶劣环境的现场温度测量,如:测温类消费电子产品、设备或过程控制以及环境控制等。单片机部分是主控制器,用于控制电路和存数程序;LCD显示部分使用1602字符液晶显示温度;在传感器部分
19、,使用温度传感器,作用是采集温度并且进行温度转换;复位部分,即复位电路。系统运行的总过程是,首先温度传感器采集到外部的环境温度,并进行A/D转换之后传给单片机,再经过单片机的处理判断后将温度传递到显示模块,由显示模块显示。本设计的测温范围是-55C+125C,测试精度为1C,并且支持温度正负提示,设计中软件的预设上限温度为30C,下限温度为20C,而且设计支持硬件手动设置温度上下限,只需通过4个按键就可以实现上限温度和下限温度的设置,当超过温度上下限时即可以实现报警功能。63.1 STC89C51单片机最小系统(一)STC89C51引脚介绍7 主电源引脚(2根)VCC(Pin40):电源输入,
20、接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚)
21、,共32根。P0口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.7图3.1 STC89C51封装图(二)单片机最小系统单片机的最小系统中还包含了晶振电路和复位电路。晶振电路是单片机最小系统的重要组成部分之一。一般典型的晶振是取11.0592MHz(原因是能够准确地得到9600Bd和19200Bd,用于有串口通讯的场合)/12MHz(产生准确的的US级
22、时歇,容易定时操作)。特别注意:关于31脚(EA/Vpp),当接高电平的时候,单片机在复位之后将从内部ROM的0000H开始执行;当接到低电平时候,复位之后将从外部ROM的0000H开始执行。单片机最小系统的另一重要组成部分是复位电路。主要作用是,在单片机系统运行的过程中,当系统受到环境干扰而出现程序错乱之时,可按下复位键,内部的程序便从头重新开始执行。复位电路的工作原理是当单片机的RST引脚接到2us以上的电平信号时,只需使电容的充放电时间大于2US,就可以实现复位,因此电路中的电容值是允许变化的。按键按下系统复位,是电容处于短路电路当中,释放了所有的电能,电阻两端的电压增加而引起的。单片机
23、最小系统中的复位电路的极性电容的大小是影响单片机复位时间的直接因素,常采用的是1030uF,51单片机最小系统电容的值越大则所需复位时间就越短。3.2温度检测电路DS18B20的数字数据输出与温度检测都集成在一个芯片上,所以抗干扰力很强。DS18B20的一个工作周期包括温度检测与数据输出两个部分。在了解DS18B20工作流程之前我们需要了解其内部存储器资源。18B20总共有三种形态的存储器资源,它们分别是:ROM只读存储器,作用是存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),接来下的48位是芯片唯一的序列号,末尾的8位是以上56的位的CRC码(冗余校验)。
24、数据在出产时已经设置,不由用户更改。DS18B20共64位ROM。RAM数据暂存器,作用是内部计算以及数据存取,数据在掉电后会丢失,DS18B20共有9个字节RAM,每个字节为8位。前两个字节是温度转换之后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像,在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,目的是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B
25、20共3位EEPROM,并在RAM都存在镜像,以方便用户操作8。3.3显示电路LCD1602的介绍:LCD内部结构:由CGRAM(自建字型产生器)、DDRAM(数据显示存储器)、CGROM(内含字型产生器)、指令寄存器、数据寄存器、地址计数器、指令译码器等组成。LCD显示原理:利用旋光效应对光进行偏转,再利用偏振片滤去不需要透过光的相应像素,从而实现图像显示。LCD驱动原理:分成两大步,即写指令,写数据,其中写数据之前要找到显示的位置9。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以
26、显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形10。LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。根据电路的要求,分析之后各个引脚的所接位置:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,使用时可以通过一个103电位器调整对比度。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。在电路中接P26。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。根据电路程序的分析,直接接
27、地。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。此处接到P25。第714脚:D0D7为8位双向数据端。从P00到P07接口。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。相应所得到的电路图:图3.2 LCD1602电路图3.4 硬件电路整体设计电路图如下:图3.3 整体设计电路图4系统软件设计此次系统软件采用C语言编写,主程序主要由温度采集部分,温度处理部分,数据显示部分,键盘处理部分四部分组成,系统通电后首先初始化系统,依次实现温度采集、温度处理、数据显示、键盘处理四部分功能。温度采集部分主要任务是完成温度测试点的温度数据采集任务
28、;温度处理部分的作用主要是将已经采集到的温度数据和用户设定的各点上下限的温度数值进行比较处理,并且判断此数值是否已经超出设定的上下限值,若超出则led灯亮报警;数据显示部分主要完成温度数据的显示,显示方式可以根据设计要求显示;键盘处理部分主要完成用户设置系统参数,与显示部分结合,实现用户与系统之间的人机接口。4.1 温度检测电路流程图DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。DS18B20的工作时序包括初始化时序、写时序和读时序三部分。所以主机控制DS18B20完成温度转换必须经过以下三个步骤:1.每一次在读写之前需对DS18B20进行复位;2.在复位成功
29、之后需要发送一条ROM指令;3.最后必须发送RAM指令11。这样就可以对DS18B20进行预定的操作。程序流程图如下:图4.1 温度采集模块流程图4.2 显示电路流程图lcd1602液晶显示模块基本技术:主要的功能 包括:1.40通道点阵LCD 驱动; 2.可选择当作列驱动或行驱动12; 3.输入/输出信号:输出,可以产生202个LCD驱动波形;输入,能够接受控制器送出的串行数据以及控制信号,偏压(V1V6); 4. 通过单片机控制可以将测得的频率信号读数显示出来。程序流程图如下:图4.2 显示模块流程图4.3键盘电路流程图键盘扫描概述:第一,确定键盘编码方案:采用非编码键盘还是编码键盘。第二
30、,确定键盘的工作方式:采用中断或者查询方式输入键操作信息。最后,设计硬件电路。在非编码键盘系统中,键抖动的消除,键闭合和键释放的信息的获取,键值查找以及一些保护措施的实施等任务,都是由软件来完成的。1.监测有无键按下;键的是否闭合,反映到电压上便是呈现出高电平或者是低电平,因此通过检测电平的高低状态,就可以确认按键是否按下13。2.确定是哪个键按下。一.编程扫描方式:当单片机空闲之时,才调用键盘扫描子程序,不断的扫描键盘,等待用户从键盘上输入数据或命令,来响应键盘的输入请求。二.定时扫描工作方式:单片机对键盘的扫描也可以使用定时扫描的方式,即每经过一定的时间间隔对键盘进行一次扫描。三.中断工作
31、方式:只有当键盘有键按下的时候,才执行键盘扫描程序且执行该按键功能程序,若没有键按下,单片机将不扫描键盘14。程序流程图: 图4.3 按键模块流程图 4.4仿真结果及作品指标仿真图如下:图4.4 仿真图本设计可以实现的温度测量范围是-55C+125C,精度为1C,支持温度正负提示,软件预设的上限温度为30C,下限温度为20C,而且支持硬件手动配置上下限温度,可以使用4个按键实现温度上限和下限的设置,超过温度上下限即实现报警功能。5结语 本次设计基本满足了设计要求,在此次设计的过程中,遇到了很多困难,特别是在基准的选择时花费了我很多的时间,在多方面比较之后,选择了温度传感器DS18B20,实践证
32、明使用此温度传感器的测温系统测温准确,应用方便灵活,而且电路简单。应用前景广阔,在常温测量中有很大的优势。如在工业、空调系统、智能楼宇等领域的温度测量中可以有广泛的应用。在本次的设计中,我将理论与实践相结合,在实践中不断丰富自己的理论知识,最终完成了温度测量与报警系统的设计,该设计测试良好,满足设计要求。系统调试主要是以程序为主。硬件方面的调试比较简单,首先仔细检查电路连接完全正确,然后使用万用表进行测试或通电检测,检测无误。软件方面的调试,首先编写显示程序并且进行硬件的正确性检验,然后分别对主函数、DS18B20复位函数、DS18B20写字节函数、DS18B20读字节函数、温度计算转换函数、
33、显示函数等程序进行编程以及调试。因为DS18B20与单片机采用的是串行数据传送,所以,在对DS18B20进行读写编程时一定严格的保证读写时序,否则将导致无法读取测量结果。本程序使用的是单片机C语言编写,采用Keil4编译器编程调试。当软件调试到可以显示温度值,并且在当温度发生变化时(例如用手去接触),能够显示温度发生改变就基本完成。虽然我的设计还存在不足,但是最重要的是在完成设计的过程中我学到了很多东西,首先我对单片机的应用有了更深一步的了解,单片机有很多系列,怎么选择适合自己设计需要的单片机十分重要。对单片机的编程是此次设计当中尤为重要的一个部分,此次设计中单片机编程部分我采用的是C语言,让
34、我对C语言的使用有了进一步的提高。再者,经过这次对温度测量与报警系统的设计,让我学会了怎么样思考问题,刚刚开始做的时候感觉比较茫然,不知道从何开始,更不知道该怎么完成设计,后来通过查询文献,借鉴前辈的设计思路,加之自己的想法,成功完成本次设计。现在我学习到不管做多难的事情都要清楚的知道自己的目的,并为此努力学习,在学习的过程中总结经验。在本次设计的过程中遇到很多问题,但是失败并不可怕,因为在失败过后总能学习到很多东西。最后,通过完成这次毕业设计也增强了自己的自信心,事实证明,只要努力就会有收获。但我也同时认识到自己还有很多不足,我需要更加努力提升自己,让自己站得更高,看得更远。脚踏实地,认真严
35、谨,从点滴做起的学习态度,不怕苦不怕累、坚持不懈、勇敢直前的精神是我在这次设计中最大的收益。我想这是对我学习成果的一次检验,更是对我学习能力的一次提升,对我未来的学习以及工作都有很大的帮助。致谢时间很快,本次毕业设计的完成也标志着我在大学的学习生涯的结束。心中一时激动万千,有对大学生活的恋恋不舍、对大学中各位老师的真切感激,还有着对即将转换角色步入职场的茫然。大学生活转眼即逝,大学教给了我很多东西,这将是我一生取之不尽的宝贵财富。在经过这几个月的不懈努力后,我的毕业设计终于完成了,首先要感谢学校对我的培育之恩,在学校四年期间我学会了很多知识,这将对我在以后的工作和学习产生深远而持久的影响。还有
36、对在毕业设计中给予我无私帮助和指导的黄朝军老师以及帮助过我的同学表示衷心的感谢。在做毕业设计的这段时间里,黄老师不但给我们传授分析问题和解决问题的办法,并指出了正确的努力方向和设计思路。这是黄老师自始至终的热心指导和督促,我才能够顺利完成本次毕业设计。同时,身边的很多同学给了我许多的帮助。在此,我向关心过帮助过我的同学致以诚挚的谢意!当然这也不单单是这次毕业设计,更是大学四年的学习和生活,有你们很温暖。自上大学以来,在这四年里,每位老师总是辛勤工作,耐心的教导着我,使我在大学中综合素质的提高、专业理论知识的学习和实践工作能力等各方面受益匪浅。在毕业设计和论文写作中,我得到了许多同学的关怀,指导
37、和帮助,没有他们的帮助,我的论文和设计是不可能顺利成功完成的,在这里,我再次向我的各位老师和各位同学表示最诚挚的感谢!参考文献1王旭.基于FPGA的温度传感报警系统设计M.北京:高等教育出版社,2014:16-24.2李永.医用体温监测系统研究J.现代电子技术,2011.(11):89-95.3李湘白.温室温湿度相关控制理论研究及控制设备研制M.宁夏:宁夏大学,2010:3-35.4郑永坤.电力系统接地线在位检测系统的研发与应用M.山东:山东轻工业学院,2011:27-37.5王琪琳,赵英涛.新型数字多路温度巡检仪的设计J.西南民族大学学报,2013,29(4):435-441.6叶钢.基于D
38、S18B20温度控制系统的设计J.电子测量与仪器学报,2007,26(4):31-32.7钟承尧,严世胜. 单片机汉字显示系统的设计J.电脑与电信,2009(24):76-77.8W.Perruquetti and J.P. Barbot, Sliding Mode Control in Engineering. New YorkM, NY: marcel Dekker, 2002,24(5):224-226. 9汪 红. 电子技术M. 北京: 电子工业出版社,2013:40-4510Veridian Inc. GRAS for STK Users Manual and Tutorial M.
39、 USA Veridian Inc,2012:74-82 11 徐爱钧.单片机高级语言C51应用程序设计M.北京:电子工业出版社,2002:52-63 12 谢自美.电子线路设计.实验.测试(第二版)M.武汉:华中科技大学出版社,2000:33-70 13 郭天祥.51单片机C语言教程M.北京:电子工业出版,2009:13-17 14 阎石.数字电子技术基础M.北京:高等教育出版社,2006:23-29附录A:实物图附录B:程序清单第 22 页 共 22 页#include #include intrins.hsbit BUZZER = P10; /蜂鸣器接口3.7脚sbit LED1= P1
40、1; /高温报警灯sbit LED2= P12; /低温报警灯sbit SET_KEY= P37; /设置按键sbit JIA_KEY= P36; /加键sbit JIAN_KEY= P35; /减键sbit QUEREN_KEY= P34; /确认设置按键#define LCD1602_DATAPINS P0 /LCD1602数据口sbit LCD1602_E=P22; /LCD1602使能端口sbit LCD1602_RW=P21; /读写选择端口sbit LCD1602_RS=P20; /数据/命令选择端口sbit DSPORT=P30; /DS18B20数据口char HTemp =
41、50; /报警高温度值char LTemp = 0; /报警低温度值float CurTemp = 0.0; /当前测量的温度值int readVal = 0; /从DS18B20读取的数据,该数据用来转换成当前测量的温度值unsigned int TimeoutNum = 0;/定时器计时次数unsigned char setKeyVal = 1;unsigned char jiaKeyVal = 1;unsigned char jianKeyVal = 1;unsigned char querenKeyVal = 1;unsigned char SetMode = 0; /模式变量#def
42、ine NORMAL_MODE0 /正常运行模式#define SET_H_TEMP_MODE1 /设置报警温度高温值#define SET_L_TEMP_MODE2 /设置报警温度低温值sfr IAP_DATA = 0xE2; /STC内部存储器数据寄存器sfr IAP_ADDRH = 0xE3; /STC内部存储器地址高8位寄存器sfr IAP_ADDRL = 0xE4; /STC内部存储器地址低8位寄存器sfr IAP_CMD = 0xE5; /STC内部存储器命令寄存器sfr IAP_TRIG = 0xE6; /STC内部存储器触发命令寄存器sfr IAP_CONTR = 0xE7;
43、/STC内部存储器控制寄存器#define CMD_IDLE 0 /待机命令#define CMD_READ 1 /读字节命令#define CMD_PROGRAM 2 /写字节命令#define CMD_ERASE 3 /擦除扇区命令#define ENABLE_IAP 0x81 /if SYSCLK20MHzIAP控制命令#define HTEMP_ADDRESS 0x2000 /上线温度存储地址,2000存储上线温度符号(0负 1正);2001存储上线温度值#define LTEMP_ADDRESS 0x2002 /下线温度存储地址,2002存储下线温度符号(0负 1正);2003存储下
44、线温度值/*在51单片机12MHZ时钟下的延时函数*/void Delay10us(unsigned int c); /误差 0us/*LCD1602写入8位命令子函数*/void LcdWriteCom(unsigned char com);/*LCD1602写入8位数据子函数*/void LcdWriteData(unsigned char dat);/*LCD1602初始化子程序*/void LcdInit();/*LCD1602显示程序*/void LcdDisplay();/*在51单片机12MHZ时钟下的延时函数*/void Delay1ms(unsigned int );/*DS18B20初始化子程序*/unsigned char Ds18b20Init();/*DS18B20写字节数据程序*/void Ds18b20WriteByte(unsigned char com);/*DS18B20读字节数据程序*/unsigned char Ds18b20ReadByte();/*DS18B20寄存器转温度临时值*/void Ds18b20ChangTemp();/