《德州学院基于单片机的温度控制系统的设计.doc》由会员分享,可在线阅读,更多相关《德州学院基于单片机的温度控制系统的设计.doc(25页珍藏版)》请在三一办公上搜索。
1、目 录英文目录1 摘要21绪论22 系统方案与论证22.1方案论述 22.2 方案比较43 系统硬件设计43.1 键盘模块53.2 温度控制及超温和超温警报模块63.3 温度控制器件模块73.4 温度测试模块73.5七段数码管显示模块83.6 接口通讯模块 93.7电源输入单元104 系统软件设计114.1 主程序124.2程序代码135 结论 14参考文献14 致谢16附录117附录217DirectoryEnglish table of contents1 Summary21Introduction22 System programs and demonstration22.1Progra
2、m discusses 22.2 Program comparison43 Hardware Design43.1 Keyboard module53.2 Temperature control and over-temperature63.3 Temperature control device module73.4 Temperature test module73.5Seven-Segment LED display module83.6 Interface communication module 93.7Power Input Module104 System software de
3、sign114.1 Main124.2Code135 Conclusion 13References13 Acknowledgements15Appendix117Appendix217基于单片机的温度控制系统的设计(德州学院物理系,山东德州253023)摘 要 本设计以AT89S51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路、PC机与单片机串口通讯电路和一些接口电路 。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在
4、这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、超温报警程序。关键词 AT89S51单片机; DS18B20温度芯片; 温度控制 ;串口通讯1 绪论 温度控制系统广泛应用于社会生活的各个领域 ,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 , 在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。传统的继电器调温电路简单实
5、用 ,但由于继电器动作频繁 ,可能会因触点不良而影响正常工作。控制领域还大量采用传统的PID控制方式,但PID控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。而采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。更能
6、串接多个数字温度传感器DS18B20进行范围的温度检测。2 系统方案与论证 为了能够设计出一种温度连续可调、超调量%20%、温度误差0.5、人-机对话方便的单片机温度控制系统,本设计给出了两部分方案2.1 方案论述温度测量方案:方案一DS18B20是DALLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量范围55125,可编程为912位A/D转换精度,测温分辨率可达0
7、.0625,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。综上,在本系统中我采用温度芯片DS18B20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。在0100摄氏度时,最大线形偏差小于1摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理及控制。 图4-1温度芯片DS18B20方案二采用热电偶温差
8、电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成(如下图),热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D 转换电路,感温电路比较麻烦。 热电偶电路图主控制部分
9、方案:AT89S51 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出
10、(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。由于系统控制方案简单 ,数据量也不大 ,考虑到电路的简单和成本等因素 ,因此在本设计中选用 A TMEL 公司的 A T89S51单片机作为主控芯片。
11、主控模块采用单片机最小系统是由于 A T89S51芯片内含有4 kB的 E2PROM ,无需外扩存储器 ,电路简单可靠 ,其时钟频率为 024 MHz ,并且价格低廉 ,批量价在 10元以内。2.2 方案比较从以上两种方案,容易看出方案二的测温装置可测温度范围宽、体积小,但是线性误差较大。方案一的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案一。3 系统硬件设计单片机温度控制系统硬件部分主要由键盘模块,温度控制及超温和超温警报模块,温度测试模块,温度控制器件电路模块,七段数码管显示模块、接口通讯模块,电源输入模块组成。3.1 键盘模块单片机应用系统中除了复位按
12、键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。 键开关状态的可靠输入 :为了去抖动我采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响在这种行列式矩阵键盘非编码键盘的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图示的4*4键盘,说明线反转法工作原理。首先辨别键盘中有无键
13、按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。键盘共有16个按键,用于方便设定温度。对照图示的4*4键盘,说明线反转法工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,
14、然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。键盘共有16个按键,用于方便设定温度。90 , 数字按键,输入数字0-9;确认 , 设置的确认,修改设置温度时进行确认;清除 设置的清除,修改设置温度时进行删除;开启 开启电源关闭
15、关闭电源F1 显示及设置转换到温度点1,按此按键后,显示预设置温度的数码管闪烁;F2显示及设置转换到温度点2,按此按键后,显示预设置温度的数码管闪烁;表5-1键盘的按键分布P2.00123P2.14567P2.289F1F2P2.3清除开启关闭确定P2.4P2.5P2.6P2.73.2 温度控制及超温和超温警报模块采集的温度经处理后超过规定温度上限时,单片机通过 P1.4 输出控制信号驱动三极管 D1 ,使继电器 K1 开启降温设备 ( 压缩制冷设备 ) :当采集的温度经处理后低于设定温度下限时,单片机通过 P1.5 输出控制信号驱动三极管 D2 ,使继电器 K2 开启升温设备 ( 加热器1)
16、 。当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。具体电路连接如图 5-1 所示。图5-1具体电路连接图 3.3 温度测量模块采用温度芯片DS18B20。使用集成芯片,能够有效的减小外界的干扰,提高测量的精度,简化电路的结构。3.4 温度控制器件模块单片机通过三极管控制继电器的通断,最后达到控制电热器的目的。当温度未达到要求时,单片机发送高电平信号使三极管饱和导通,继电器使电源与电热器接通,电热器加热。温度慢慢升高。当温度上升到预定温度时,单片机发送低电平信号三极管进入
17、截止状态,继电器的弹片打到另一侧,使电热器与电源断开,电热器停止加热。继电器电路中有一个三极管8050的保护电路,即将一个二极管反向接到三机管的两端。连接方法如图5-2所示。 图5-2 单片机控制信号其原理是:当继电器突然断电时,继电器产生很大的反向电流。二极管的作用是将反向电流分流,使流过三级管8050的电流比较小,达到保护三极管8050的作用。3.5 七段数码管显示模块本部分电路主要使用七段数码管和移位寄存器芯片74LS164。单片机通过I2C总线将要显示的数据信号传送到移位寄存器芯片74LS164寄存,再由移位寄存器控制数码管的显示,从而实现移位寄存点亮数码管显示。由于单片机的时钟频率达
18、到12M,移位寄存器的移位速度相当快,所以我们根本看不到数据是一位一位传输的。从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。具体见实际连线图如图5-3。当清除端(CLEAR)为低电平时,输出端(QAQH)均为低电平。 串行数据输入端(A,B)可控制数据。当 A、B 任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下 Q0 为低电平。当 A、B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态,逻辑封装图如图5-3: 图5-3逻辑封装图引出端符号:CLOCK 时钟输入端;CLEAR 同步清除输入端(低电平有效);A,B 串
19、行数据输入端;QAQH 输出端。真值表:表5-2表5-2 真值表 图5-4 实际连线图3.6 接口通讯模块max232资料简介:该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口rs232电平是-10v +10v,而一般的单片机应用系统的信号电压是ttl电平0 +5v,max232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-23
20、2-F电平。主要特点 :1、单5V电源工作2、 LinBiCMOSTM工艺技术3、 两个驱动器及两个接收器4、 30V输入电平5、低电源电流:典型值是8mA6、符合甚至优于ANSI标准 EIA/TIA-232-E及ITU推荐标准V.287、ESD保护大于MIL-STD-883(方 法3015)标准的2000V5 1单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还
21、是用专用芯片更简单可靠。在本设计中采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接,串口通讯具体如图5-5 图5-5 通讯接口连线图3.7 电源输入模块控制系统主控制部分电源需要用5V直流电源供电,其电路如图6-1所示,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。其主要原理是把单相交流电经 过电源变压器、整流电路、滤波电路、稳压电路
22、转换成稳定的直流电压。 由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。本电路使用集成稳压芯片7805解决了电源稳压问题。 4 系统软件设计主程序调用了5个子程序,分别是数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、单
23、片机与PC机串口通讯程序。键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及进入相应的程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码的显示送数,控制系统的显示部分。继电器控制程序:控制继电器动作串口通讯程序:实现PC机与单片机通讯,将温度数据传送给PC机。4.1 主程序程序开始的时候先设置初始化,然后就控制数码管显示当前温度。接着就判断F1、F2按键是否被按下。按下F1进入温度控制点1的程序、按下F2进入温度控制点2的程序。程序控制设置温度的两个数码管闪烁的,此时键盘输入有效。有按键按下的时候进入按键处理程序。按下“确定”按键后,程序进入判断
24、程序和继电器控制程序。继电器动作后,程序回到显示当前程序,并开始循环。4.2 程序代码(详见附录 程序清单)5 结论在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内变化,稳定性好,不振荡,对系统的快速性要求不高。在论文中简单分析了单片机温度控制系统设计过程及实现方法。本系统的测温范围为-1040,温度检测系统根据用户设定的温度范围完成一定范围的温度控制。89S51的时钟最高可达12M,I/O口可达32个,高的时钟频率和丰富的I/O,都为我们实现电路功能提供了非常有利的条件。同时也因为开发环境友好,易用,方便,大大加快本系统设计开发。本制作的设计中使用了继电器控制的只
25、是插座电路,因此,该系统的可扩展性很强。随着插入插座的电器的不同,可以实现许多其它功能的电路。参考文献1曹巧媛主编. 单片机原理及应用(第二版). 北京:电子工业出版社,20022全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编(2001), 北京:北京理工大学出版社,20033何力民编. 单片机高级教程. 北京:北京航空大学出版社,20004金发庆等编. 传感器技术与应用.北京机械工业出版社,20025王锦标,方崇智过程计算机控制北京:清华大学出版社,1997;36406邵惠鹤工业过程高级控制上海:上海交通大学出版社,1997;5862,781017胡寿松自动控制原理
26、北京:国防工业出版社,2000;1031248刘伯春智能PID调节器的设计及应用电子自动化,1995;(3):20259 Katsuhiko OgataModen Control EngineeringPublishing house of electronics industry,2000:1 9620210周润景,张丽娜基于PROTEUS 的电路及单片机系统设计与仿真M北京:航空航天大学出版社 ,2006.P321P32611王忠飞,胥芳MCS-51 单片机原理及嵌入式系统应用M西安:西安电子科技大学出版社,2007P268-27312 刘国钧,陈绍业,王凤翥.图书馆目录.第1版.北京:高
27、等教育出版社,195713 傅承义,陈运泰,祁贵中.地球物理学基础.北京:科学出版社,1985,44714 华罗庚,王元.论一致分布与近似分析.中国科学,1973(4):33935715 张筑生.微分半动力系统的不变集研究:学位论文,北京:数学系统学研究所,1983Microcontroller-based temperature control system design(Department of Physics, Dezhou University, Dezhou, Shandong 253023)Abstract The design AT89S51 microcontroller a
28、s the core temperature control system works and design methods. The temperature signal from temperature chip DS18B20 acquisition and digital signal sent to the microcontroller. This paper introduces the hardware part of the control system, including: temperature detection circuit, the temperature co
29、ntrol circuit, PC and microcontroller serial communication circuit and a number of interface circuits. MCU through signal processing in order to achieve the purpose of temperature control. The article also focuses on the software design, where a modular structure, the main modules: digital tube disp
30、lay program, keyboard scanning and key handler, the temperature signal handler, the relay control program, over-temperature alarm program.Keywords AT89S51 microcontroller; DS18B20 chip temperature; temperature control; serial communication 致 谢 在论文完成之际,我要特别感谢我的指导老师张秀梅的热情关怀和悉心指导。在我撰写论文开题的过程中,张老师倾注了大量的
31、心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的中期过程检查以及成文定稿方面,我都得到了张老师悉心细致的教诲和无私的帮助,特别是她广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我终生受益,在此表示真诚地感谢和深深的谢意。 谢我的班主任刘毅老师,谢谢他在这四年中为我们全班所做的一切,他不求回报,无私奉献的精神很让我感动,再次向他表示由衷的感谢。同时还要谢谢同学们,在我论文设计过程中给予的帮助,使我能够顺利的完成论文设计。最后,感谢我的母校德州学院四年来对我的大力栽培。我还要感谢含辛茹苦抚养我长大的父母,谢谢您们!附录1 系统电路图和pcb板电路图附录2 程序O
32、RG 0000H ;DS18B20.ASM DS18SL EQU 41H ;用于保存读出温度的低8位 DS18SH EQU 40H ;用于保存读出温度的高8位DS18FIG EQU 8H ;是否检测到DS18B20标志位A_BIT1 EQU 31H ;数码管个位数存放内存位置B_BIT1 EQU 32H ;数码管十位数存放内存位置D_BIT1 EQU 35H;数码管百位数存放内存位置DS18CD1 EQU 42H ;DS18CD1-DS18CD8暂存64位ROMDS18CD2 EQU 43H ;从低到高DS18CD3 EQU 44HDS18CD4 EQU 45HDS18CD5 EQU 46HD
33、S18CD6 EQU 47HDS18CD7 EQU 48HDS18CD8 EQU 49HDS1864B EQU 4AHDS18ADS EQU 4BHDS18DQ EQU P1.0 ;30H,31H,32H,33H: X 个位 十位 XMOD7: MOV SP,#60HLCALL GET_TEMPER ;调用读温度子程序LCALL READCODEAJMP MOD7INIT_1820: ;DS18B20初始化SETB DS18DQCLR DS18DQ;延时,500US低MCMOV R7,#250DJNZ R7,$MOV R7,#150DJNZ R7,$SETB DS18DQ ;释放总线LCALL
34、 DELAY60US ;15-60US的等待时间MOV R6,#4SETDSDQ:LCALL DELAY60USJNB DS18DQ,SETDSDQFH ;60-240US内是否有返回信号,为0跳DJNZ R6,SETDSDQMOV R7,#250DJNZ R7,$CLR DS18FIGRETSETDSDQFH:SETB DS18FIGMOV R7,#250DJNZ R7,$MOV R7,#100DJNZ R7,$RET;数据处理程序:TEMP0: INC AAJMP TEMP1TEMPCOV: MOV A,DS18SL ;数据处理子程序TEMPCOVMOV B,#16DIV ABJB B.3
35、,TEMP0TEMP1: MOV 34H,A ;将DS18SL的高四位右移四位,存入34H中(温度值)MOV A,B ;将DS18SL的低四位X10/16得小数后一位数.MOV B,#10MUL ABMOV B,#16DIV ABMOV 30H,A ;将小数后一位数.存入30H中MOV A,DS18SH ;DS18SH中存放高8位数,权重16MOV B,#16MUL ABADD A,34H ;34H中存入温度值的整数部分MOV B,#10DIV ABMOV 31H,B ;个位存入31H中MOV B,#10 ;DIV AB ;MOV 32H,B ;十位存入32H中MOV B,#10 ;DIV A
36、B ;MOV 35H,B ;百位存入33H中MOV A,DS18SHMOV 33H,#10H ;JB ACC.7,EXIT7MOV 33H,#00HEXIT7: RETGET_TEMPER: ;读出转换后的温度值,并显示SETB DS18DQLCALL INIT_1820 ;先复位DS18B20JB DS18FIG,TSS2RET ;判断DS1820是否存在?若DS18B20不存在则返TSS2: MOV DS18ADS,#0DS18JX:LCALL DS18CODPMOV A,DS18ADSADD A,#9MOV DS18ADS,ACJNE A,#63,DS18JXRETDS18CODP:LCALL MRCOVT ;转换指定的DS18B20的温度LCALL MRRDTEDP ;显示温度RETTEMP:LCALL INIT_1820JB DS18FIG,NEXT4RETNEXT4:MOV DS18ADS,#9MOV A,#0CCH ;SKIP ROMLCALL WRITE_1820MOV A,#44H ;温度转换命令LCALL WRITE_1820LCALL DELAY1SLCALL MRRDTEDPRET;写DS18B20的子程序(有具体的时序要求)WRITE_1820: ;写DS1