ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:57.91KB ,
资源ID:5625315      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5625315.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能温度控制系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

智能温度控制系统.docx

1、智能温度控制系统 目 录引 言 11 系统的相关介绍 21.1 系统的目的及意义 21.2 设计要求 21.3 系统传感器DS18B20的介绍 21.3.1 DS18B20的主要特性 21.3.2 DS18B20的外形和内部结构 3 2 系统分析设计 42.1 温度控制系统结构图及总述 42.2 系统显示界面方案 42.3 系统输入方案 52.4系统的功能 53 相关软件编译知识介绍 53.1 C语言简介 53.1.1 C语言的优点 53.1.2 C语言缺点 63.2 Keil简介 63.2.1 系统概述 63.2.2 Keil C51单片机软件开发系统的整体结构 74系统流程图设计 74.1

2、主程序流程图 74.2 DS18B20控制程序流程图 84.2.1 DS18B20 复位程序流程图 94.2.2 DS18B20写数据程序流程图 94.2.3 DS18B20读数据程序流程图 104.3 温度读取及转换程序流程图 124.4 MAX7219驱动程序流程图 134.4.1 MAX7219写入一个字节数据程序流程图 134.4.2 MAX7219写入一个字数据程序流程图 15 4.5 数码管温度显示程序流程图 164.6 按键中断服务程序流程图 17 5 电路仿真 195.1 PROTEUS软件介绍 195.2 温度控制系统PROTEUS仿真 196总结 207参考文献 21附录1

3、 源程序代码 22 引 言信息采集(即传感器技术)、信息传输(通信技术)、信息处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。近百年来,温度传感器的发展大致经历了以下三个阶段;(1)传统的分立式温度传感器(含敏感元件);(2)模拟集成温度传感器/控制器;(3)智能温度传感器。目前,国际上新型温度传感器正从由集成化向智能化、网络化的方向发展。 下面介绍的就是两种最常见的温度传感器: (1)集成温度传感器模拟集成温度传感器。集成传感器是将温度传感器集成在一个芯片上、可完成温度测量及模拟信号输出功能的专用IC。

4、模拟集成温度传感器的主要特点是功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等。某些增强型集成温度控制器(例如TC652/653)中还包含了A/D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别。 (2)智能温度传感器智能温度传感器(亦称数字温度传感器)是20世纪90年代中期微电子技术、计算机技术和自动测试技术的结晶。智能温度传

5、感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。智能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。 1 系统的相关介绍1.1 系统的目的及意义温度检测控制系统广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,

6、常用的控制电路根据应用场合和所要求的性能指标有所不并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器DS18B20进行范围的温度检测。因此温度监测是生产自动化的重要

7、任务。因而本设计具有非常实际的生产意义。 1.2 设计要求本设计是基于单片机STC89C52的温度控制。它实现的是温度的监测和控制功能。 可设置报警温度。本设计用DS18B20传感器来检测温度,LED用于显示。MAX7219用来驱动数码显示。设计先通过keil和proteus来联合仿真,然后焊接实物。具体设计要求如下:(1) 使用STC89C52控制器和DS18B20温度传感器,实现温度的检测和显示;(2) 设置默认报警温度为500C,并且能够通过按键设置调高调低报警温度;(3) 当温度高于报警温度时报警灯亮,低于报警温度时控制电阻丝加热;(4) 四位数码管能通过按键交换显示实测温度和报警温度

8、。1.3 系统传感器DS18B20的介绍1.3.1 DS18B20的主要特性 (1)适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。 (2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 (3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。 (4)DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内. (5)温范围55+125,在-10+85时精度为0.5 (6)可编程 的分辨率为912位,对应的可分辨温度分别为

9、0.5、0.25、0.125和0.0625,可实现高精度测温。 (7)在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。 (8)测量结果直接输出数字温度信号,以一 线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。 (9)负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。 1.3.2 DS18B20的外形和内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM 、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图1.3.2.1: 图

10、1.3.2.1 DS18B20的外形及管脚排列 2 系统分析设计 2.1 温度控制系统结构图及总述本设计实际上是模仿饮水机的工作原理。它是采用DS18B20温度传感器测试环境温度,经过CPU数据处理,用LED数码管来显示温度。该设计可设置预期温度。当温控开关打开时,若测得环境温度低于设定温度,则继电器吸合,启动电热丝工作;若测得环境温度高于设定温度,则继电器释放,电热丝停止工作。 单片机(89C52)主控制器 图2.1.1系统总框图 2.2 系统显示界面方案该系统要求完成温度的显示以及按键操作时的实时显示功能。基于上述原因,本次设计考虑了两种方案:方案一:完全采用LCD液晶显示。这种方案显示精

11、确,可方便的显示各种英文字符,温度符号,正负号等,但实现复杂,且须完成大量的软件工作。方案二:完全采用数码管显示。这种方案优点是实现简单。缺点是功能较少,只能显示有限的符号和数码字符。根据本设计的要求,方案二已经满足了要求,所以本次设计采用方案二以实现系统的显示功能。2.3 系统输入方案这里同样讨论了两种方案:方案一:采用8155扩展I/O口、键盘及显示等。该方案的优点是使用灵活可编程,并且有RAM及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。方案二:直接在I/O口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的端口资源还比较多。 由于该系统是对设定报警温度的控制,只需

12、用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。 2.4系统的功能 能完成对系统温度的监测及控制,并且能够对被控现场的温度进行智能调节,以保持被控现场温度基本不变。该系统如果应用于现实生活具有很强的实用意义。 3 相关软件编译知识介绍 3.1 C语言简介 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言 。具体应用比如单片机以及嵌入式系统开

13、发。3.1.1 C语言的优点 C语言现在被广泛应用于单片机以及嵌入式系统的开发,它具有如下一些优点: (1)简洁紧凑、灵活方便; (2)运算符丰富; (3)数据类型丰富 ; (4)C是结构式语言; (5)语法限制不太严格,程序设计自由度大; (6)允许直接访问物理地址,对硬件进行操作; (7)生成目标代码质量高,程序执行效率高; (8)适用范围大,可移植性好 。 3.1.2 C语言缺点C语言是一种较汇编语言高级的语言,但相对于汇编这种直接面向机器的语言来说,它的处理效率较会变低。3.2 Keil简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,

14、与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。3.2.1 系统概述Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看

15、一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 3.2.2 Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成

16、库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 4系统流程图设计软件总体设计主要完成各部分的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化,发送显示数据,同时对键盘进行扫描,等待外部中断,以及根据所需要的功能进行相应的操作。4.1主程序流程图 本设计是模拟温度控制系统,主程序通过调用读取温度子程序和显示子程序,来实时扫描并显示系统温度;并通过调用温度控制子程序将测得的

17、温度与系统所设的报警温度比较进而对温度进行控制。通过扫描中断口检查是否有按键按下,调用相应的按键扫描子程序来进行对应的设置。主程序如下:void main(void) EA=1; /开中断总开关 EX0=1; /允许INT0中断 IT0=1; /下降沿产生中断 text_rst(); /第一次使用数码管测试 while(1) T_Current=GetTemperature(); /温度值传给T_time temperature_display(T_Current); /显示温度 if(T_Current0; i-) DQ = 0; DQ = dat&0x01; delay(10); DQ =

18、 1; dat=1; 开始循环控制变量i=8 i=0? Y NDQ=dat&0x01延时DQ=1dat=1结束图4.2.2 DS18B20写数据程序流程图 4.2.3 DS18B20读数据程序流程图DS18B20读数据程序流程图如图4.2.3所示。DS18B20读数据程序如下: ds18b20read(void) /读DS18B20的程序 unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; dat=1; DQ = 1; if(DQ) dat|=0x80; delay(8); return(dat); 开始 循环控制

19、变量i=8dat=0 i=0? Y NDQ=0;dat1;DQ=1 Y DQ=1? Ndat|=0x80延时返回dat 值结束图4.2.3 DS18B20读数据程序流程图4.3 温度读取及转换程序流程图温度读取及转换流程图如图4.3.1所示。温度读取及转换具体程序如下: GetTemperature(void) /从DS18B20中读出两个字节的温度数据 uchar symbol; unsigned int temperature; unsigned char a=0; unsigned char b=0; unsigned int t=0; ds18b20rst(); ds18b20writ

20、e(0xCC); ds18b20write(0x44); ds18b20rst(); ds18b20write(0xCC); ds18b20write(0xBE); a=ds18b20read(); b=ds18b20read(); t=b; t=8; /进行精度转换 t=t|a; if(t0x0fff)symbol=0; else t=t+1; symbol=1; temperature=t*0.625; if(symbol=1) temperature=-temperature; return(temperature); 开始DS18B20初始化启动温度转换读取当前实际温度值处理读取的温度

21、值Y 温度大于0? N 符号标志为0 符号为1,按正温度处理 返回处理后的温度值 结束图4.3.1 温度读取及转换程序流程图4.4 MAX7219驱动程序流程图4.4.1 MAX7219写入一个字节数据程序流程图写入一个字节数据程序流程图如图4.4.1所示。 开始 循环控制变量i=8 code1=ch&0x80 ch=ch1 code1=1? Y DIN=1,给上升沿 N DIN=0,给上升沿 结束 图4.4.1 MAX7219写入一个字节数据程序流程图 具体程序如下: void write_byte(uchar ch) uchar i,code1; _nop_(); _nop_(); _no

22、p_(); for(i=0;i8;i+) code1=ch&0x80; ch=ch1; if(code1) DIN=1; CLK=0; CLK=1; else DIN=0; CLK=0; CLK=1; 4.4.2 MAX7219写入一个字数据程序流程图写入一个字节数据程序流程图如图4.4.1所示。开始LOAD=0延时写地址延时写数据延时LOAD=1结束图4.4.2 MAX7219写入一个字数据程序流程图 具体程序如下: void write7219(uchar addr,uchar number) LOAD=0; _nop_(); _nop_(); _nop_(); write_byte(ad

23、dr); _nop_(); _nop_(); _nop_(); write_byte(number); _nop_(); _nop_(); _nop_(); LOAD=1; 4.5 数码管温度显示程序流程图数码管温度显示程序流程图如图4.5.1所示。具体程序如下: temperature_display(int temperature_x) uchar symbol; if(temperature_x0) symbol=1; temperature_x=-temperature_x; else symbol=0; switch(symbol) case 0:DisBuffer0=0x0f;br

24、eak; case 1:DisBuffer0=0x0a;break; DisBuffer1=temperature_x/100; DisBuffer2=(temperature_x%100)/10; DisBuffer2=DisBuffer2|0x80; DisBuffer3=temperature_x%10; if(DisBuffer1=0x00) DisBuffer1=0x0f; write7219(0x01,DisBuffer0); write7219(0x02,DisBuffer1); write7219(0x03,DisBuffer2); write7219(0x04,DisBuff

25、er3); 开始 温度小于0? Y symbol=1 Nsymbol=0显示符号位显示十位显示个位显示小数位结束图4.5.1 数码管温度显示程序流程图4.6 按键中断服务程序流程图按键中断服务程序流程图如图4.6.1所示。具体程序如下: int0() interrupt 0 using 0 temperature_display(T_Original); key_v = 0x07; for(;) if(key() delayms(10); if(key() key_v = key_s; if(key_v & 0x01) = 0) T_Original=10+T_Original; temper

26、ature_display(T_Original); else if(key_v & 0x02) = 0) T_Original=T_Original-10; temperature_display(T_Original); else if(key_v & 0x04) = 0) goto EXIT; EXIT:temperature_display(T_Current); 中断入口 K1键按下? Y 报警温度加一, 显示报警温度 N K2键按下? Y 报警温度减一, 显示报警温度 NK3键按下退出按键程序,显示当前温度中断返回图4.6.1 按键中断服务程序流程图 5 电路仿真5.1 PROTE

27、US软件介绍Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。5.2 温度控制系统PROTEUS仿真系统仿真图如图5.2.1所示。 图5.2.1 系统仿真图 6总结用单片机实现系统温度控制,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1