基于单片机的实时温度监控系统毕业论文_第1页
基于单片机的实时温度监控系统毕业论文_第2页
基于单片机的实时温度监控系统毕业论文_第3页
基于单片机的实时温度监控系统毕业论文_第4页
基于单片机的实时温度监控系统毕业论文_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

湖南农业大学毕业设计(论文)中文摘要本课题研究的是基于AT89S52型单片机控制的水温智能监控系统,以AT89S52单片机为核心,采用了温度传感器DS18B20进行温度检测。文章首先阐述了用单片机进行水温监控系统一些特性优点,以及它的现状与发展前景。然后又对系统总体设计方案的进行了深入分析。系统总体设计方案包括了系统硬件设计与系统软件设计两大部分。硬件部分用的是ATMEL公司的AT89S52单片机、温度传感器DS18B20、LCD等。而且在本设计中有对其原理、结构方面的详细的论证。软件环境主要使用了利用Keil和Protues软件进行联合仿真。该系统实现了自动控制,使水温变化情况可以进行动态的显示,并能在一定的范围内由人工设定。在本文的最后是对整个系统性能测试和分析的报告。关键词:AT89S52单片机;DS18B20数字温度传感器;水温监测系统;软硬件设计AbstractWhat this topic AT89S52 SCM water temperature intelligent observation system.The single computer AT89S52 is used as a core in this designs, the DS18B20digital temperature sensor is used to measure the water temperature. The topic account many feature and advantages about the SCM water temperature intelligent observation system,and it is present situation and prospect .In this article among is to the system overall project design thorough analysis.The system overall project design has included the system hardware design and the system software designs two major parts. What hardware part is ATMEL companys AT89S52 SCM. DS18B20 digital temperature sensor, the LCD ;And discusses the principle and hardware structure.The software enviroment is Keil and Protues emulator. It realization of the automatic control system, The water temperature stuation can be showed on the microcomputer monitor system and may be set at some degree by manpower. In this article is finally to the overall system performance test and the analysis report.Keywords:AT89S52 SCM;Water temperature Control system;DS18B20digital temperature sensor;Hardware and software design目 录第一章 前言31.1论文来源及其研究背景31.2设计内容及要求4第二章 系统设计52.1总体方案设计52.2硬件各单元方案论证和选择52.2.1温度传感部分52.2.2显示部分62.2.3键盘输入部分72.2.4加热驱动控制电路部分92.2.5报警电路102.2.6电源电路11第三章 主要器件介绍123.1单片机AT89S52介绍123.2温度传感器DS18B20介绍153.3光电耦合器MOC3031M介绍19第四章 软件设计214.1主程序设计214.2温度检测模块程序设计224.3按键模块的软件设计244.4温度报警提示设计24第五章 系统仿真调试255.1总体硬件仿真电路图255.2 AT89S52端口定义265.3硬件仿真图及分析27第六章 结论30谢辞31参考文献32附录一:外文资料翻译33附录二:主程序49第一章 前 言1.1论文来源及其研究背景温度是工业生产和生活中常见的被控参数,对温度的控制效果直接影响到许多产品的质量及使用寿命,及时准确地得到温度信息并对其进行适时的控制,在许多工业场合中都是重要的环节。水温的变化影响各种系统的自动运作,例如冶金、机械、食品、化工各类工业中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的水处理温度要求严格控制。对于不同控制系统,其适宜的水质温度总是在一个范围。超过这个范围,系统或许会停止运行或遭受破坏,所以我们必须能实时获取水温变化。对于,超过适宜范围的温度能够报警。同时,我们也希望在适宜温度范围内可以由检测人员根据实际情况加以改变。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。因此如何使用单片机对温度进行实时、有效的检测与控制是一个重要的研究课题。近年来,随着电子技术和信息技术的发展,微型计算机的发展也越来越快,其中单片机作为计算机的一个独特分支,打破了微型计算机按逻辑功能划分芯片结构的传统概念。单片机在一块芯片上集成CPU,ROM,RAM、I/0接口,定时器/计数器和中断系统等功能部件,构成一个完整的微型计算机。由于单片机体积小、重量轻、噪声低、可靠性高,具有很强的灵活性,而且价格便宜,抗干扰能力强,开发效率高,易于产品化,它的应用已深入到工业、农业、国防、科研以及日常生活用品(家电、玩具)等各种领域。因此,我们选择设计一个简易的水温控制系统,采用单片机进行控制的水温自动控制电路,使系统能简单的实现温度的控制及显示。该系统综合运用了微机原理、自动控制原理、模拟电子技术、数字控制技术、键盘和显示技术、汇编程序语言等诸多方面的知识,是对所学知识的一次综合测试。并且通过软件编程能实现各种控制算法,使系统具有控制精度高的特点,对实现对水温的自动控制,具有重大的现实意义。1.2设计内容及要求由于现代工艺越来越多的需要对实时温度进行监测和控制,而且需要的精度越来越高。所以温度控制系统引起国内外许多有关人员的重视,得到了十分广泛的应用。温度控制系统发展迅速,而且成果显著。设计并制作一个智能水温自动监控系统,实现由常温开始加热,在达到设定温度时进行恒温控制的功能。基本要求:1、控制对象为自来水,体积0.53L2、以单片机为主要控制芯片。3、温度设定范围:70-90,最小区分度为1。4、控制精度:温度控制的静态误差1。5、用十进制数码显示实际水温。6、具有通信能力,可接受其他数据设备发来的命令,或将结果传送到其他数据设备。第二章 系统设计2.1总体方案设计本系统是一个以单片机为核心的温度监控系统,系统的总体框图如下。BS18B20温度传感器AT89C51单片机 显示部分输入部分报警部分自来水光电耦合器驱动加热装置图2-1:系统框图该系统利用温度传感器采集温度信号,然后被送到单片机中,并显示在LCD上,单片机把它同由键盘实现的给定温度进行比较,再由单片机根据控制策略给出PWM输出量,然后将输出量送驱动电路驱动加热装置和报警装置,从而构成了实时闭环系统。实现方案的技术路线:用按键输入标准温度值,用LCD实现显示实时水温度和输入的标准温度值,用DS18B20温度传感器进行水温度的检测,用光电耦合器moc3031m驱动加热装置完成加热调节,用Keil和Protues软件进行联合仿真,用C51语言完成软件编程。2.2硬件各单元方案论证和选择硬件设计部分先找寻各单元电路最合适的设计方案,再进行单元电路设计。2.2.1温度传感部分要求对温度和与温度有关的参量进行检测,还应保证其精确性和实时性。方案1:采用热敏电阻。这种电阻是利用温度敏感的半导体材料制成,其阻值随温度变化有明显的改变。负温度系数热敏电阻器通常是有锰、钴的氧化物烧制成半导体陶瓷制成。其特点是,在工作温度范围内电阻阻值随温度是升高而降低。可满足40-90测量范围,但热敏电阻精度、重复性、可靠性较差,不适于检测小于1的信号;而且线性度很差,不能直接用于A/D转换,应该用硬件或软件对其进行线性化补偿。方案2:采用集成温度传感器,如常用的A/D590和LM35。AD590是电流型温度传感器。这种器件以电流作为输出量指示温度,其典型的电流灵敏度是1uA/K。输出电流与他所感受的温度成线性关系,工作电压可以从+4+30V范围内选用,测温范围为55+150。它与大多数其他形式的温度传感器相比不存在线性化问题,它是二端器件,使用非常方便,作为一种高电阻电流源,它不需要严格考虑传输线上的电压信号损失和噪声干扰问题,因此特别适合作为远距离测量或控制作用。 由于AD590是电流型传感器,经过电阻转换为电压值。需要多路模拟开关控制温度采样信号并有放大器放大和A/D转换器将模拟量转换为数字量,这样就有许多硬件电路,且价格较高。方案3:采用DS18B20单总线式数字温度传感器。DS18B20是美国DALLAS公司生产的单总线式温度传感器。它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等明显的优点,特别适合于构成多点温度测控系统,可以直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。它的温度测量范围为55+125,可编程为912位A/D转换精度,测温分辨率可以达到0.0625。被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可以在远端引入,也可以采用寄生电源方式产生,多个DS18B20可以并联到三根或两根线上,CPU只需一根断口线就能与多个DS18B20通信,占用单片机的断口少,可以大大节省引线和逻辑电路。方案选择:选择方案3。理由:当前的温度传感器已经完全进入数字时代,它直接输出温度值的数字量,省去了繁琐的转换并节省了大量的硬件电路,而且精度可以做得很高。2.2.2显示部分通常的显示器多选择LED数码显示器和LCD液晶显示器。LED有7段或8段和“米”字段之分。这种显示器有共阳极和共阴极两种。方案1:采用LED静态显示方式。在这种方式下,各位LED显示器的共阳极或共阴极连接在一起并接地(或接电源正),每位的段选线分别与一个8位的锁存器的输出相连,各个LED的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止,正因为如此,静态显示器的亮度都较高。若用I/O接口,这需要占用N*8位I/O接口(N为LED显示器的个数)。这样的话,如果显示器的个数较多,那使用的I/O接口就更多,因此在显示位数较多的情况下一般都不采用静态显示。方案2:采用LED数码显示器动态显示。动态扫描显示接口电路是把所有LED显示器的8个字段AG、DP的同名端连在一起,而每一个数码管的公共端COM是各自独立的受I/O线控制。CPU向字段输出口送出字形码时所有显示器接受到相同的字形码,但究竟显示哪一位则取决于公共端,而这一端是由I/O轮流控制的。所谓的动态显示就是采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。其电路简单,同样的功率驱动小,显示亮度不及静态显示,且占用I/O口和CPU资源较多。方案3: 采用LCD液晶显示用LCD液晶显示,需要学习其专用的驱动控制芯片,比如HD61203,虽软件实现较为复杂,价格昂贵。但其低压微功耗、平板型结构、被动显示型(无眩光,不会引起眼睛疲劳)、显示信息量大(因为像素可以做得很小)、易于彩色化(在色谱上可以非常准确的复现)、无电磁辐射(对人体安全,利于信息保密)。方案选择:选择方案3。理由:I/O口占用较少,且显示更安全、人性化。2.2.3 键盘输入部分方案1:采用4*4矩阵键盘输入。这种接口方式适用于按键数量较多的场合,它由行线和列线组成,按键位于行列的交叉点上。矩阵键盘的工作原理是按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V上。平时无按键按下时行线处于高电平状态,而当有按键按下时,行线电平状态将由与此电平相连的列线决定。列线电平如果为低,则行线电平为低;列线电平为高则行线电平也为高。由于矩阵键盘中行、列线为多键共用,各案件均影响该键所在行和列的电平,因此,各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并做适当处理才能决定闭合键的位置。对于矩阵键盘,按键是位置由行号和列号唯一决定,所以分别对行号和列号进行二位制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。但这种编码对不同行的键,离散性大,并且编码的复杂难度与键盘的个数成正比,因此不适合用在输入量小的设计中。图2-2:矩阵式键盘方案2:采用独立式按键接口。这种方式是各种按键相互独立,每个按键各接一根输入线,一根线上的按键工作状态是不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断是哪个按键被按下了。示意图如下:图2-3:独立式按键独立式按键电路配置灵活,软件简单。但每个按键需占用一个输入口线在按键数量较多时需要较多的输入口线且电路结构复杂。故此种键盘适用于按键较少的或操作速度高的场合。独立式按键电路按键直接与单片机I/O口连接,通过读I/O口,判断各I/O口线的电平状态,即可识别出按下的键盘。方案选择:选择方案2。理由:减少单片机的I/O口使用,设计简单。配置灵活,软件简单。虽然每个按键需要占用一根输入口线,但该设计所用按键较少。2.2.4加热驱动控制电路部分采用开关量控制,如继电器、双向可控硅、光耦等,控温快速,但是双向可控硅驱动电路比较麻烦,调试也麻烦,如用现成的固态继电器(其实就是把双向可控硅和驱动电路放在一起的)价格十分昂贵。如用继电器时要注意起电感的反向电动势,和开关触点对电源的影响,以及开关脉冲对整个电路的影响等。应该加入必要的防止干扰的措施。方案1:采用单向晶闸管。这是一种大功率半导体器件,它既有单向导电的整流作用,又有可以控制开关的作用。利用它可以用较小的功率控制较大的功率。在交、直流电动机调速系统、调功系统、随动系统和无触点开关等方面均获得了广泛的运用。这种晶闸管与二极管不同的是,当两端加正向电压而控制极不加电压时,晶闸管并不导通,其正向电流很小,处于正向阻断状态;当加上正向电压、控制极上(与阴极间)也加上一正向电压时,晶闸管便进入导通状态,这时管压降很小(1V左右)。这时即使控制电压消失,忍保持导通状态,所以控制电压没必要一直存在,通常采用脉冲形式,以降低触发功耗。它不具有自关断能力,要切断负载电流,只有使阳极电流减小到维持电流以下,或加上反向电压实现关断。若要在交流回路中应用,当电流过零或进入负半周期时,自动关断,为了使其再次导通,必须重加控制信号。方案2:采用光耦合双向可控硅驱动电路。这种器件是一种单片机输出与可控硅之间较理想的接口器件,它由输入和输出两部分组成,输入部分是一个砷化镓发光二极管,该二极管在5mA-15mA正向电流下发出足够强度的红外光,触发输出部分。输出部分是一个硅光敏双向可控硅,在红外线的作用下可双向导通。光电耦合器也常用于较远距离的信号隔离传输。一方面光耦合器可以起到隔离两个系统地线的作用,使两个系统的电源相互独立,消除地电位不同所产生的影响。另一方面,光耦合器的发光二极管是电流驱动器件,可以形成电流环路的传送形式。由于电流环电路的低阻抗电路,对噪音的敏感度低,因此提高通讯系统的抗干扰能力。常用于有噪音干扰的环境里传输信号。图2-4:光耦合双向可控硅驱动加热电路方案选择:选择方案2。理由:达到同样的加热效果,开关量控制容易,通讯系统的抗干扰能力强。2.2.5报警电路由于AT89S52单片机P3.7口输出驱动能力小,无法直接接蜂鸣器。所以,加一个PNP三极管,用其共发射极接法,为蜂鸣器提供驱动电流。当P3.7口输出为低时,三极管导通,基极电流得到放大,蜂鸣器发出声音;当P3.7口输出为高时,三极管截止,蜂鸣器不发声。在仿真电路中,用发光二极管代替蜂鸣器作为报警提示,充分突出了紧急提示信号的特点。图2-5:报警电路2.2.6 电源电路由于系统工作电压为5V,所以采用原边交流220V输入,副边12V的变压器进行降压,再经桥式整流电路整流,由2200uF电容进行滤波,经7805稳压块进行5V稳压,可使电源满足系统电源的要求。其原理图如图所示。图2-6:电源电路第三章 主要器件介绍3.1单片机AT89S52介绍AT89S52单片机是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。AT89S52的管脚排列如下图所示。图3-1:AT89S52的管脚排列图(1)AT89S52功能特性描述AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和计时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。表1:P1口引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。表2:P3口端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。(2)AT89S52与AT89S51的区别除了89S51/52具有ISP下载线和看门狗以外,应该和89C51/52基本是一样的。89S51:4KROM、128BRAM、4个中断源、2个定时器。89S52:8KROM、256BRAM、5个中断源、3个定时器(比51多出的定时器具有捕获功能)。3.2温度传感器DS18B20介绍DS18B20数字温度计是美国DALLAS半导体公司继DSl820之后最新推出的一种改进型智能数字温度传感器。具有独特的单总线接口,仅需要占用一个通用I/O端口即可完成与微处理器的通信;在1085温度范围内具有0.5精度;用户可编程设定912位的分辨率。它是DALLAS半导体公司生产的1Wire,即单线智能温度传感器,体积小的特点。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过编程实现912位的数字值读数方式;可以分别在93.75ms和750ms内完成9位和12位的数字量;从DSl8B20读出信息或写入DSl8B20信息仅需要1根口线(单线接口);温度变换功率来源于数据总线,总线身也可以向所挂接的DSl8B20供电,而无需额外电源。使用DSl8B20可使系统结构更趋简单,可靠性更高。以上特性使得DSl8B20非常适用于构建高精度、多点温度测量系统。(1).DS18B20性能特点具有独特的单总线接口,仅需要占用一个通用I/O端口即可完成与微处理器的通信。即采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(16位二进制数,含符号位)。测温范围为-55-+125,测量分辨率为0.0625。内含64位经过激光修正的只读存储器ROM。适配各种单片机或系统机。用户可分别设定各路温度的上、下限。内含寄生电源。DS18B20继承了DS1820的全部优点,并做了如下改进:1、供电范围扩大为3.0-5.5V。2、温度分辨力可编程。3、转换速率有很大提高。4、内部存储器映射关系发生变化。5、具有电源反接保护电路。6、体积减小一半。对我们使用来说最大的不同就是DS18B20可以程序设定912位的分辨率数字值,而DS1820为固定的9位数字值,且温度转换时的延时时间由2s减为750ms。(2).DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。图3-2:DS18B20引脚分布图(3).DS18B20内部存储资源DS18B20的内部存储资源分为8个字节的ROM、9个字节的RAM、3个字节的EEPROM如下表。表3:DS18B20的内部存储资源ROM(8个字节)A1A2A3A4A5A6A7A8RAM(9个字节)B1B2B3B4B5B6B7B8B9EEPROM(3个字节)C1C2C31、ROM:在DS18B20内部光刻了一个长度为64bit的ROM,这个编码是器件的身份识别标志。如下表所示。表4:DS18B20的ROM64位激光ROM8位CRC编号48位序列号8位产品系列编码MSB LSB MSB LSB MSB LSB64位光刻ROM的排列是:开始(最低)8位是产品类型标号,对于DS18B20来说就是(28H),接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。2、RAM:高速暂存存储器(RAM)由9个字节组成,包含了8个连续字节。如下表所示。表5:DS18B20暂存寄存器分布寄存器内容字节地址温度值低位(LS Byte)0温度值高位(MS Byte)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5、6、7CRC校验值8前两个字节是测得的温度信息,第一个字节的内容是温度温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是温度高限TH、温度低限TL暂存区,第五个字节是配置寄存器暂存区,第6、7、8字节是系统保留用,就相当于DS18B20的运算内存,第九个字节是冗余检验字节。DS18B20所检测的温度用二进制表示,前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。如下表所示。表6:所测温度转换为实际温度值的举例TEMPERATUREDIGITAL OUTPUT(Binary)DIGITAL OUTPUT(Hex)+1250000 0111 1101 000007D0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00010191h+10.1250000 0000 1010 001000A2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000FFF8h-10.1251111 1111 0101 1110FF5Eh-25.06251111 1110 0110 1111FE6Fh-551111 1100 1001 0000FC90h例如+125的数字输出为07D0H,十进制是2000,乘以0.0625就等于125。同样+25.0625的数字输出为0191H,十进制为401,乘以0.0625就得出25.0625了。-55的数字输出为FC90H,因为符号位为1,先将1111110010010000取反,得1101101111,再加一得1101110000,十进制为880,乘以0.0625就得55,为负值,即55。(3)、DS18B20控制方法在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。DS18B20有六条控制命令。如下表所示。表7:RAM指令表指令约定代码操作说明温度转换44H启动DS18B20进行温度转换读暂存器BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到E2RAM中新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPUCPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。3.3光电耦合器MOC3031M介绍光耦合双向可控硅驱动器是一种单片机输出与双向可控硅之间较理想的接口器件,它由输入和输出两部分组成,输入部分是一个砷化镓发光二极管,该二极管在5mA15mA正向电流下发出足够强度的红外光,触发输出部分。输出部分是一个硅光敏双向可控硅,在红外线的作用下可双向导通。该器件为六引脚双列直插式封装。(1).MOC3031M功能特性光电耦合器是以光为媒介传输电信号的一种“电-光-电”转换器件。它由发光源和受光器两部分组成。把发光源和受光器组装在同一密闭的壳体内,彼此间用透明绝缘体隔离。发光源的引脚为输入端,受光器的引脚为输出端,常见的发光源为发光二极管,受光器为光敏二极管、光敏三极管等。光电耦合器的种类较多,常见的有光电二极管型、光电三极管型、光敏电阻型、光控晶闸管型、光电达林顿型、集成电路型等。在光电耦合器输入端加电信号使发光源发光,光的强度取决于激励电流的大小,此光照射到封装在一起的受光器上后,因光电效应而产生了光电流,由受光器输出端引出,这样就实现了“电-光-电”的转换。在光电耦合器内部,由于发光二极管和受光器之间的耦合电容很小(2pF以内),所以共模输入电压通过极间耦合电容对输出电流的影响很小,因而共模抑制比很高。光电耦合器可作为线性耦合器使用。在发光二极管上提供一个偏置电流,再把信号电压通过电阻耦合到发光二极管上,这样光电晶体管接受到的是在偏置电流上增、减变化的光电信号,其输出电流将随输入的信号电压作线性变化。光电耦合器也可以工作在开关状态,传输脉冲信号。在传输脉冲信号时,输入信号和输出信号之间存在一定的延迟时间,不同结构的光电耦合器输入、输出延迟时间相差的很大。图3-3:光耦合双向可控硅驱动加热电路 (2).仪器测试光电耦合器的测试1、 用万用表判断好坏,断开输入端电源,用R1k档测1、2脚电阻,正向电阻为几百欧,反向电阻几十千欧,3、4脚间电阻应为无限大。1、2脚与3、4脚间任意一组,阻值为无限大,输入端接通电源后,3、4脚的电阻很小。调节RP,3、4间脚电阻发生变化,说明该器件是好的。注:不能用R10k档,否则导致发射管击穿。2、 简易测试电路,当接通电源后,LED不发光,使2脚为低电平时,LED会发光,调节RP、LED的发光强度会发生变化,说明被测光电耦合器是好的。第四章 软件设计4.1主程序设计通过单片机软件设计,系统通过键盘扫描,设定系统所需的恒定水温,同时在LCD1602上显示设定的恒定的水温,温度传感器将检测到的水温送到单片机中,也在LCD1602中显示,然后单片机将两数值进行比较,检测的水温高于恒定水温时,继电器断电停止加热,否则继电器继续导通继续加热。此时可以在LCD1602上看到当两温度相等时,可以听到蜂鸣器报警和二极管发光闪烁。开始调用LCD显示程序实际值高于设定值否调用温度采集程序程序调用LCD显示程序用按键设定恒值初始化启动加热报警停止加热YN图4-1: 主程序流程图4.2温度检测模块程序设计本系统采用了DS18B20数字式温度传感器检测水温,它和单片机之间仅靠一条信号线交换数据。为了不引起逻辑上的冲突,所有从器件的1-Wire总线接口都是漏极开路的,因此在使用时必须对总线外加上拉电阻(一般取5k左右)。主机对1-Wire总线的基本操作分为复位、读和写三种,其中所有的读写操作均为低位在前高位在后。复位、读和写是1-Wire总线通信的基础,下面具体详细介绍这3种操作的时序要求。1.1-Wire总线的复位:复位是1-Wire总线通信中最为重要的一种操作,在每次总线通信之前主机必须首先发送复位信号。产生复位信号时主机首先将总线拉低480960s然后释放,由于上拉电阻的存在,此时总线变为高电平。1-Wire总线器件在接收到有效跳变的1560s内会将总线拉低60240s。图4-2 初始化时序2.1-Wire总线的写操作:由于只有一条I/O线,主机1-Wire总线的写操作只能逐位进行,连续写8次即可写入总线一个字节。向1-Wire总线写1bit至少需要60s,同时还要保证两次连续的写操作有1s以上的间隔。若待写位wbit为0则主机拉低总线60s然后释放,写0操作完成。若待写位wbit为1,则主机拉低总线并在115s内释放,然后等待60s,写1操作完成。图4-3 写一个字节时序3.1-Wire总线的读操作:与写操作类似,主机对1-Wire总线的读操作也只能逐位进行,连续读8次,即可读入主机一个字节。从1-Wire总线读取1bit同样至少需要60s,同时也要保证两次连续的读操作间隔1s以上。图4-4 读一个字节时序根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 DS18B20工作过程一般遵循以下协议:初始化ROM操作命令存储器操作命令处理数据。在DS18B20的程序设计中,我们也以此协议的顺序来编写程序。程序流程图如下:开始DS18B20初始化发送跳过ROM命令 发送温度转换命令延时DS18B20初始化发送跳过ROM命令 发送读存储器命令转换温度值并输出返回图4-5:温度检测子程序流程图4.3按键模块的软件设计本系统按键采用独立式键盘,低电平有效,并采用软件延时消抖措施。4.4温度报警提示设计本设计仿真电路中用灯来代替蜂鸣器来实现报警电路,人为设定一温度值,当在LCD1602上看到检测温度超出设定温度时,可以听到蜂鸣器报警提示声音。第五章 系统仿真调试5.1总体硬件仿真电路图硬件电路包括单片机(AT89S52)、温度检测电路(传感器DS18B20)、独立键盘、显示电路(LCD1602)、温度控制电路(PWM输出)和超温报警电路。硬件仿真图如下:图5-1:整体硬件仿真电路图5.2 AT89S52端口定义 图5-2:AT89S52 引脚分布图1.DS18B20的1引脚接地GND,DQ脚接AT89S52 P1.7口,3脚接电源VCC2.报警系统接AT89S52的P3.7口。3.按键开关分别接AT89S52的 P3.2,P3.3口。4.串口显示模块中的714引脚分别接AT89S52的P2.0P2.7口;显示模块的1脚和3脚接GND,2脚接VCC。其RS、R/W、E端分别接AT89S52的P3.0口、P3.1和P3.4口。5.温控模块中,P3.5、P3.6口为加热、降温电路控制信号的输入端。6.RST为复位信号输入端,高电平有效。5.3 硬件仿真图及分析本设计可任意在70到90度内设定恒温,当外界温度超出或低于设定温度时,启动加热或制冷装置直至水温到达设定的恒温温度。打开PROTEUS软件界面,利用按盘设置恒温温度为70度。1、 当温度低于70度时,D1发亮,说明开始启动电热器加热。其仿真电路图如下。图5-3:温度低于70时2、 当水温温度为高于70度时,D2亮,说明制冷电机开始启动。此时D3也亮,即报警电路开始报警,提示需要冷却水温使其保持恒温70度。即停止加热。其仿真电路图如下。图5-4:温度高于70度3、 当水温温度为70度时,D3亮,停止加热或制冷,以保持设定恒温70度。其仿真电路图如下。图5-5:温度为70度在本设计中,可在温度70度到90度之间任意设定恒温温度。同理,在设定温度为90度时,实际水温高于设定温度,蜂鸣器(D3)开始报警且停止加热;实际水温低于设定温度,便开始加热。 第六章 结 论本系统包括温度采集、显示输出、键盘输入、温度控制和超温报警几个功能。采用AT89C51单片机作为主控器,功能完善、抗干扰能力强;用DS18B20单总线式数字温度传感器采集温度,测温分辨率达到0.0625,测温分辨率达满足设计要求;LCD分别显示实测温度和设置温度,直观清楚;输入采用自制独立键盘,操作方便;实测温度超过温度限制是自动报警。所以本设计基本实现了设计要求。 谢 辞在此论文完成之际,我要向所有关心本次设计和我们小组的老师、同学表示由衷的感谢。他们对于这次设计的顺利完成提供了巨大的帮助。特别感谢我的指导老师胡敏老师,从课题的选择到最终的完成,胡敏老师给予我很多指导和帮助。胡老师治学严谨,学识渊博,思想深邃,为我营造了一种良好的精神氛围。置身胡老师的指导过程中,不仅我的思想观念焕然一新,也改善了我的思考方式,而且还明白了许多做人道理。其朴实无华、平易近人的人格魅力,令我倍感温馨。无形中对毕业设计充满了信心。微言寸语岂能祥诉感激之情,只好铭记心中,唯有虔诚的祝福导师合家欢乐,一生平安。同时,也将祝福送给每一位帮助我的师长,感谢机电系老师在这期间在毕业设计中对我的帮助和鼓励,同时感谢我班同学在我的毕业设计过程其中对我莫大鼓励与帮助。他们给予了我无以计数的帮助。最后感谢机电系给我们提供的良好的设计环境。参考文献1余锡存,曹国华.单片机原理及接口技术M.西安:西安电子科技大学出版社,2006.12杨宁,胡学军.单片机与控制技术M.北京:北京航空航天大学出版社,2005.33徐爱钧.8051单片机实践教程M.北京:电子工业出版社,2005.34范立南,李雪飞,尹授远.单片微型计算机控制系统设计M.北京:人民邮电出版社,2004.35付家才.单片机控制工程实践技术M.北京:化学工业出版社,2004.56刘建辉,冀长鹏.单片机智能控制技术M.北京:国防工业出版社,2007.47康华光,陈大钦.电子技术基础模拟部分(第四版)M.北京:高等教育出版社,19988宋亚伟.基AT89S51单片机的温度采集控制系统.机械与电子J,2OO8年第8期:52-5498位微控制器AT89S52. 10沙占友.单片机外围电路设计M.北京:电子工业出版社,200311潘新民.单片微型计算机实用系统设计M.北京:人民邮电出版社,199212黄晓波.基于AT89S52单片机与DS18B20的温度监控系统.微计算机信息J.2004年第24卷第10期

温馨提示

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

最新文档

评论

0/150

提交评论