基于AT89S51单片机的温度控制系统-.doc_第1页
基于AT89S51单片机的温度控制系统-.doc_第2页
基于AT89S51单片机的温度控制系统-.doc_第3页
基于AT89S51单片机的温度控制系统-.doc_第4页
基于AT89S51单片机的温度控制系统-.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

基于at89s51单片机的温度控制系统摘要本文主要介绍了at89s51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片ds18b20采集,并以数字信号的方式传送给单片机。本文介绍了该控制系统的硬件部分,包括:温度检测部分,温度控制电路,pc机与单片机串口通讯电路和一些接口电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、单片机与pc机串口通讯程序。关键字:单片机ds18d20温度芯片 温度控制 串口通讯 一、 方案设计与论证1、 测量部分方案一:采用热敏电阻,可满足40摄氏度至90摄氏度的测量范围,但热敏电阻精度,重复性,可靠性较差,对于检测1摄氏度的信号是不适应的。而且使用热敏电阻,需要用到十分复杂的算法,一定程度上增加了软件实现的难度。方案二:采用温度芯片ds18b20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线性较好。在1-100摄氏度时,最大线性偏差小于1摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理及控制。本制作的最大特点之一就是直接采用温度芯片对温度进行测量,使数据传输和处理简单化。采用温度芯片ds18b20测量温度,体现了作品芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路时更快。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。所以芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。2、 主控制部分方案一:此方案采用at89c51八位单片机实现,单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。但是,at89c51单片机需要用仿真器来实现软硬件的合成在线调试,较为繁琐,很不方便。而且at89c51的地位已经渐渐的被at89s51所代替,逐渐成为历史,事实也证明了at89s51在工业控制上有着广泛的应用。方案二:此方案采用at89s51八位单片机实现。它除了89c51所具有的优点外,还具有可在线编程,可在线仿真的功能,这让调试变得方便。当与凌阳十六位单片机相比时,at89s51八位单片机的价格便宜,再编程方便。而且at89s51在工业控制中有广泛的应用,编程技术及外围功能电路的合使用都很成熟,这对在网上查找相关资料和在图书馆查找相关资料时非常方便的。总结:从上所述实际采用电路方案如下图:工作流程说明:开始,先接通电源,然后将开关打到开的位置,七段数码管显示器就自动显示出当前的温度,并且显示出设定温度的缺省值00,此时继电器不工作。按下pc机max232电平转换芯片at89s518bitcpu键盘电路ds18b20温度芯片数据传输数据显示继电器1加热器1继电器2加热器2f1按键,温度控制系统进入温度控制点1的设置。按下f2按键,温度控制系统则相应进入温度控制点2的设置。这个时候,显示设置温度的数码管闪烁。此时可以通过键盘输入预设置的温度。当按下“确定”按键的时候,单片机就会根据所写入的程序,对系统进行控制。当设置的温度高于当前的温度时,单片机通过继电器控制加热电路连通,温度慢慢上升。当设置的温度低于当前的温度时,单片机通过继电器控制加热电路连通,温度慢慢下降。就这样通过温度芯片的反馈信息,实现水的温度保持在设置温度上,从而达到自动控制温度的功能。二、 各电路的设计1、 键盘电路:单片机应用系统中的键输入单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或是键盘都是以开关状态来设置控制功能或输入数据。键盘有编码和非编码两种。非编码键盘硬件电路极为简单,所以本系统采用。(1) 键输入接口与软件解决的任务a 键开关状态的可靠输入为了去抖动我们采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍然保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响。b 对按键进行编码给定键值或给出键号对于按键无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相应的键值,以实现按键功能程序的散转转移。为使编码间隔小,散转入口地址安排方便,常采用依次序排列的键号。c.选择键盘检测方法对是否有键按下的信息输入方式有中断方式与查询方式两种。(2) 行列式键盘本系统采用行列式键盘,即用i/o口线组成行列式结构,按键设置在行列的交点上。在 按键数较多时,可节省i/o口线。本系统键盘采用的工作方式为编程扫描工作方式,它是利用cpu在完成其他工作的空余,调用键盘扫描子程序,来响应键输入要求。在执行键功能程时,cpu不再响应键输入要求。编程扫描法扫描方式,扫描法是在判定有键按下后逐行(或列)置低电平,同时读入行(或列)状态,如果行(或列)状态出现非全1状态,这时0状态的行与列交点的键就是按下的键。在其他的作品中,要改变设置温度时,每按一次按键,相应位上的数字自加一。当要输入的数字比较大的时候,需要按很多次,使用起来比较麻烦。然而,键盘就很好的解决了这个问题。当要修改设置温度时,只需要按两次按键,再加上“确定”按键即可。所以本电路采用了使用方便的键盘控制电路。键盘的按键分布如下图所示:p2.4f1f2p2.0789p2.1456p2.2123p2.30p2.5p2.6p2.7键盘设定如下:键盘共有14个按键,用于方便设定温度0-9,数字按键,输入数字1-9确认,设置的确认,修改设置温度时进行确认;清除,设置的清除,修改设置温度时进行删除;f1,显示及设置转换到温度点1,按此按键后,显示预设置温度的数码管闪烁;f2,显示及设置转换到温度点2,按此按键后,显示预设置温度的数码管闪烁;采用14按键的键盘代替其他作品的自加1按键和自减1按键,虽然增加了按键的个数,但是却方便了输入所需要设置的温度,使得温度设定操作更为简单。这也是本作品相对于其它作品改进的一个重要方面。2、 加热器控制电路单片机通过三极管控制继电器的通断,最后达到控制电热器的目的。当温度未达到要求时,单片机发送高电平信号使三极管饱和和导通,继电器使电源与电热器接通,电热器加热,温度慢慢升高。当温度升高到预定温度时,单片机发送低电平信号使三极管进入截止状态,继电器的弹片打到另一侧,使电热器与电源断开,电热器停止加热。继电器电路中有一个三极管8050的保护电路,即将一个二极管反向接到三极管的两端,连接方法如图所示。其原理是:当继电器突然断电时,继电器产生很大的反向电流,二极管的作用是将反向电分流,时流过三极管8050的电流比较小,达到保护三极管8050的作用。controltemperature3、 温度测试电路这里我们用到温度芯片ds18b20,使用集成芯片,能够有效的减小外界的干扰。提高测量的精度,简化电路的结构,使用集成芯片,已经慢慢地成为设计电路的一种趋势。本系统使用温度芯片也正是顺应了这一趋势。ds18b20是dallas公司生产的一线式数字温度传感器,具有3引脚0-92小体积封装形式;测温分辨率可达0.0625摄氏度,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个ds18b20可以并联到3根或2根线上,cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较小,可节省大量的引线和逻辑电路。ds18b20支持“一线总线”接口,测量温度范围为-55摄氏度-+125摄氏度,在-10摄氏度85摄氏度范围内,精度为0.5摄氏度。现场温度直接以“一线总线”的数字方式输入。,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量。如:环境控制、设备或过程控制、测温类消费电子产品等。温度芯片ds18b20转换速度快,转换精度高,与微处理器的接口简单,给硬件设计工作带来了极大的方便,能有效地降低成本,缩短开发周期。4、 七段数码管显示电路本部分电路主要使用七段数码管和移位寄存器芯片74ls164.单片机通过i2cc总线将要显示的数据信号传送到移位寄存器芯片74ls164寄存,再由移位寄存器控制数码管的显示,从而实现移位寄存点亮数码管显示。由于单片机的时钟频率达到12m,移位寄存器的移位速度相当快,所以我们根本看不到数据是一位一位传输的。从人类视觉的角度看,就仿佛是全部数码管同步显示的一样。在本系统中使用的移位寄存器74ls164时,是用芯片的贴片封装。贴片封装直接焊接在数码管电路的背面,这样既能实现强大的功能又合理利用电路的空间,而且整个显示电路小巧玲珑,在总安装时方便。采用移位寄存器控制数码管显示出本系统的数据,也是本系统的一个优点。5、 串口通讯电路:51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便的进行串口通讯。进行串口通讯时要满足一定的条件,比如电脑的串口是rs232电平的,而单片机的串口是ttl电平的,两者之间必须有一个电平转换器,我们采用了专用芯片max232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更可靠简单。 我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚接gnd、第二脚接rxd、第3脚接txd。这是最简单的接法,但是对我们来说已经足够使用了,电路如下图所示,max232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚 连接。三、 程序设计概述整个系统的功能是由硬件电路配合软件来实现的,但硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作这的关系。而是执行软件(子程序), 是用来完成各种实质性的功能如测量、计算、显示、打印、通讯等。每个执行软件也就是一个小的功能执行模块。设计者应将各执行模块一一列出,并为每个执行模块进行功能定义和接口定义,各执行模块规划好后,就可以规划监控程序了。 首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和个执行模块之间地调度关系。1、 程序结构分析主程序调用了5个子程序,分别是数码管显示程序、键盘扫描电路及按键处理程序、温度信号处理程序、继电器控制程序、单片机与pc机串口通讯程序。键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及进入相应的程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码管的显示送数,控制系统的显示部分。继电器控制程序:控制继电器动作。串口通讯程序:实现pc机与单片机通讯,将温度数据传送给pc机。 将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上做一下调整,消除寄存器和i/o冲突即可。程序应该尽可能多的使用调用指令代替跳转指令,因为跳转指令使得程序难以看懂各个程序段之间的结构关系。而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便。将功能程序段写入子程序的形式,除了方便调用外,还有一个好处就是以后写程序的时候如果要用到,就可以直接调用这个单元模块。程序结构led 显示数码管显示程序序键盘扫描程序串口通讯程序键值处理程序温度芯片传输数据程序与当前温度相比较程序继电器控制程序开始系统初始化继电器控制温度显示温度数据连pc机是否有按键按键处理比较设置温度与当前温度的大小取温度点f1/f2yesno2,、主程序 程序开始的时候先设置初始化,然后就控制数码管显示当前温度,接着就判断f1,f2按键是否被按下。按下f1进入温度控制点1的程序,按下f2进入温度控制点2的程序。程序控制设置温度的两个数码管闪烁时,此时键盘输入有效。有按键按下的时候进

温馨提示

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

评论

0/150

提交评论