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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于STM32的室内温度控制系统.docx

1、基于STM32的室内温度控制系统题 目 基于STM32的室内温度控制系统_ 学生姓名 李枝玲 学号 1213014137_ 所在学院 陕西理工学院_ 专业班级 电子信息工程_ 指导教师 梁芳_ 完成地点 物理与电信工程实验室_ 2016 年 5 月 29 日基于STM32的室内温度控制系统李枝玲(陕西理工学院 物理与电信工程学院 电子信息工程专业 电子1205班,陕西汉中723000)指导教师:梁芳 摘要 本设计是以STM32单片机为核心的温度控制系统。采用DS18B20温度传感器实现对温度的采集,并用TFT液晶屏对温度进行显示。通过对元器件的选择,设计系统的硬件电路,从而设计相关应用程序,制

2、作实物,实现温度采集、显示、控制等功能。结果表明,所设计的温度控制系统基本能够完成所需功能,并且具有测量精准高、实时性好、使用方便等特点。 关键词 温度控制; DS18B20;STM32单片机 Indoor temperature control system based on STM32Zhiling Li (Electronic information engineering, School of physics and telecommunication engineering, Shaanxi University of Technology,Hanzhoung 723000, Sha

3、anxi, 1205)Tutor: Fang LiangAbstract This design is based on STM32 microcontroller as the core of the temperature control system.Using DS18B20 temperature sensor to achieve the temperature of the collection, the use of TFT LCD screen to display the temperature. the hardware circuit of the system is

4、designed through the selection of components; So as to design the related application, make the object, realize the function of temperature acquisition, display, control and other functions.The results show that the designed temperature control system can basically complete the required functions, a

5、nd has the characteristics of high precision, good real-time performance, easy to use, and so on.Keywords temperature control;DS18B20;STM32 single chip microcompute绪论 11 系统总体设计 21.1系统功能要求 21.2系统方案论证 21.3系统设计框图 21.4 具体控制选择 21.4.1 控制器选择 21.4.2 温度传感器 32 硬件设计 42.1硬件构成 42.2 控制模块 42.2.1 STM32简介 42.2.2 STM

6、32的主要优点 52.2.3 STM32开发板 62.3 最小系统设计 72.4 温度采集模块 82.4.1 DS18B20的介绍 82.4.2 DS18B20工作原理介绍 82.4.3 DS18B20使用中的注意事项 92.4.4 DS18B20与STM32单片机的连接电路 92.5 显示模块 102.5.1 TFTLCD液晶显示简介 102.5.2 ALIENTEK 2.8液晶简介 102.6 按键模块 112.7 电源模块 122.8 风机模块 123 系统软件设计 133.1 主程序 133.2 温度采集子程序 143.4 按键子程序 164 系统调试 174.1 硬件调试 174.2

7、 软件调试 174.3 联合调试 174.4 故障分析 175 总结与展望 195.1 总结 195.2 展望 19致谢 20参考文献 21附录A 外文及翻译 22原文 22译文 29附录B 系统电路图 35附录C 实物图 36附录D 程序清单 37绪论在人类的生活环境中,温度扮演着极其重要的角色。特别是在冶金、医药、食品制造和化学制造业等行业尤其显得重要。在适当的温度下生产的产品质量、产量和合格率会大大的提高。有些药品的生产和存储要在很低的温度下进行;石油分馏的过程中在不同的温度下才能分离出汽油、柴油、煤油、硫化物;食品的制造和存储也要在特定的温度下才能保证质量。在农业大棚蔬菜和室内圈养牲畜

8、对于环境温度的要求也很高,大棚蔬菜的温度基本上要保证在2030。鸡舍的育雏期温度要控制在36左右。随着社会生产力和科学技术的发展,工农业生产和生活中对于温度的要求会越来越高,因此能够检测温度变化的温度检测设备出现在人们的视线中。它能使人们能及时看到温度变化的第一手资料,提示温度变化情况,协助人们及时调整,让温度控制更好的服务于整个社会和人们的生活。 近年来随着电子信息技术的飞速发展,人类的生活发生了很大的变化,尤其是随着大规模集成电路的出现,微型计算机应运而生,让人类社会进入了一个崭新的时代。但是因为微型计算机成本较高,在很多工业控制中并不是最好的选择。所以单片机因为价格低廉、可靠性高,性能稳

9、定以及独特的定时、计数功能而被广泛的应用在工业控制,工业生产,家用电器制造等方面,单片机的应用在不断的走向深处,在实时检测与自动控制的单片机应用系统中,单片机一般是用来做核心部件的,由具体的硬件结构与控制对象的特点,和软件相结合来加以完善9。温度是表示物体冷热程度的物理量,工农业生产过程中温度是一个非常重要的参数。温度测量在产品生产,工业设计,能源节约中发挥到了关键性的作用。随着科学技术的进步和生产的需要,温度传感器不断更新和丰富起来。温度作为一个模拟量,如果采用合适的技术和元件,把模拟的温度量转化为数字量虽然说不难,但电路比较复杂,成本也太高。温度测量中测量温度是重点,本设计中单片机温度测量

10、同样如此11。 温度控制系统常用来保持温度恒定或者使温度按照某种规定的程序变化。由于温度自身的一些特点,如惯性大、滞后现象严重、难以建立精确的数学模型等,传统的控制方式由于其控制精度不高、不能及时的跟踪对象特性变化等原因造成控制系统性能不佳。本设计基于这一点,选用具有高性能而又经济的STM32单片机作为控制器,所用算法为位置型PID控制算法,完成了对系统的设计8。本课题的设计方案具有可行性和一定的推广性,若能够应用于实际生产生活中,将会对提高企业自动化水平、降低生产成本、减轻工人劳动强度、提高生活质量等方面起到积极的促进作用。1 系统总体设计1.1系统功能要求该设计主要由单片机最小系统模块,温

11、湿度采集模块、显示模块和键盘模块,报警模块等构成,以STM32单片机作为核心处理器。主要完成的功能有以下几点:对室内温度进行实时检测、可按照指令改变控制参数、将检测的温度显示出来。1.2系统方案论证电路总体可以分为温度采集模块、单片机STM32最小系统模块、电机驱动模块、按键模块以及显示模块等。以STM32单片机最小系统作为核心控制电路,传感器采集温湿度作为STM32 的输入,电机驱动模块、TFTLCD2.8寸液晶屏,以及按键模块作为STM32 的输出。采集温度方面由DS18B20温度传感器来完成,它是一个数字温度传感器、内置模数转换,可直接与单片机相连接。而TFTLCD2.8寸液晶显示屏是插

12、针式,也可以直接与单片机相连接。通过DS18B20传感器采集当前的温湿度值、经单片机将其处理后的数据送到TFTLCD液晶显示屏来进行显示,主要显示测得的实时温度与设定的温度上下限。利用键盘设置温度阈值,如果当前采集的实时温度不在设定的温度阈值范围之内,则由STM32单片机发出指令来控制电机驱动模块,使电机正常工作来实现室内温度控制。1.3系统设计框图功按照系统能的具体要求,在保证实现其功能的基础上,尽可能降低系统成本。总体设计方案围绕上述思想,初步确定系统的方案如图1.1所示 图1.1 功能模块框图1.4 具体控制选择1.4.1 控制器选择方案一:选用STM32F103ZET6单片机该单片机有

13、144个引脚,为32微处理器M3内核,最大时钟频率可达到72MZhz,处理速度快,效率高。其内部有8个定时器,内个能输出4路PWM波,且有六个能能配置4个通道的捕获。同时内部还有多路AD、DA等,配置有SPI、I2C接口等,内部资源极为丰富,用该处理器为设计带来很大方便5。方案二:选用STM32F103RCT6单片机 该单片机有64个引脚,跟上述的STM32ZET6功能极为相似,同样也有多路PWM、输入捕获、AD、DA,配有SPI、I2C等接口,内部资源较为丰富。但是相比STM32ZET6,该单片机体积小,引脚少。内部只有四个定时器(定时器1到定时器4),不过都具有计数、产生PWM波及输入捕获

14、功能5。方案一中STM32F103ZET6管脚太多且体积较大,虽然内部资源丰富,但是好多没用到。而STM32F103RCT6内部不仅集成了设计所需要的功能而且体积小、引脚少,同时相比STM32F103ZET6价格更便宜。所以选用STM32F103RCT6作为主控器。1.4.2 温度传感器方案一:数字温度传感器如DS18B20 该传感器主要特性如下:数据线供电方式是在寄生电源方式下的供电,电压适应的范围比较宽,电压范围为:3.05.5V;DS18B20在和单片机连接时仅仅需一条总线就可以实现DS18B20和单片机双向的通信,它的单线接口方式十分特殊,但也十分方便;多个DS18B20可以并联的在唯

15、一的三线上,能够实现组网的多点测温功能;全部传感器元件和转换电路就像一只三极管集成在集成电路内,DS18B20在使用的时候不需要任何的外围元件;测温范围55+125,在-10+85时精度在0.5范围内;有912位的可编程的分辨率,相对应的可分辨温度依次为0.5、0.25、0.125和0.0625,因此可以实现高精度测温;9位分辨率时最大可在 93.75毫秒内把温度转换为数字,12位分辨率时最多能在750毫秒内把模拟温度值转换为数字量,速度更快;直接把测量出的数字温度信号的结果输出,可传送CRC校验码,同时用单总线串行方式传递给CPU,抗干扰和纠错能力都较强;负压特性:把电源极性接反的时候,芯片

16、不会因为发热而烧毁,但是也不能正常工作10。方案二:热电阻温度传感器热电阻的测量精度高,性能稳定,使用方便,测量范围比较宽,在高精度、低温测量中占有重要的地位。热电阻传感器主要用于中低温度(-200+650或850)范围的温度测量。常用的工业标准化热电阻有铂热电阻和铜热电阻。铂电阻传感器是利用金属铂(Pt)的电阻值随温度变化而变化的物理特性而制成的温度传感器3。以铂电阻作为测温元件进行温度测量的关键是要能准确地测量出铂电阻传感器的电阻值。铂电阻具有适用范围广、测量范围大、稳定性高、重复性好、价格低廉、使用方便等优点,成为目前工业和实验室中温度测量应用最广泛普遍的传感元件之一,工业中应用较多的热

17、电阻传感器如Pt100。通过比较,虽然方案二测量温度范围比较大,但是由于它的测温原理是电阻值随着温度的改变而不断变化,因此需要设计出非常优良的温度采集电路,其中应包括测温部分,线性化部分,放大部分,A/D转换部分,这就会使外围电路复杂性大大增加。方案一数字式的温度传感器,用一根数据总线就可以和单片机进行通信,使其外围的电路大大简化,测量的精度更加准确。因此在本设计中选择方案一作为温度采集传感器。2 硬件设计2.1硬件构成 硬件主要包括:温度采集模块、单片机STM32最小系统模块、电机驱动模块、按键模块以及显示模块。2.2 控制模块该模块的主要任务是完成单片机所发出的升温或降温操作。单片机STM

18、32F103RCT6做CPU,DS18B20采集温度直接输出数字信号,单片机进行处理与执行。当温度高于设定的温度上限值时,单片机向温度控制执行电路发送降温命令,同时发光二极管绿灯亮,提醒使用者温度过高正在进行降温,启动风机等操作。当温度低于设定的温度的下限时,单片机向温度控制执行电路发送升温命令,同时发光二极管红灯亮,提醒使用者温度过低正在进行升温操作。控制模块如图2.1所示。图2.1 控制模块2.2.1 STM32简介STM32系列是为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:“增强型”STM32F103系列和“基本型”STM3

19、2F101系列。增强型系列的时钟频率能达到72MHz,是同类产品中频率最高的;基本型的时钟频率为36MHz,用16位产品一样的价格得到比16位产品更大的性能,是16位产品的最好选择。两个系列都有内置的32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率为72MHz时,从闪存执行代码来看,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz6。以STM32103RCT6单片机为处理器,该单片机为32位处理器。内核为Cortex-M3,其并行总线结构,嵌套中断向量控制单元,调试系统和它标准的存储映射。嵌套中断向量控制器(Nested Vector

20、Interrupt Controller,简称NVIC)是Cortex-M3处理器中一个比较关键的组件,它为基于Cortex-M3的微控制器提供了标准的中断架构和优秀的中断响应能力,为超过240个中断源提供专门的中断入口,而且可以为每个中断源赋予单独的优先级。采用NVIC可以达到非常快的中断响应速度,从收到中断请求到执行中断服务的第一条指令仅需12个周期。这种极快的响应速度一方面得益于Cortex-M3内核对堆栈的自动处理机制,这种机制是通过固化在CPU内部的微代码实现的。另一方面,在中断请求连续出现的情况下,NVIC使用一种称为“尾链”的技术,使连续而来的中断可以在6个时钟周期内得到服务。在

21、中断的压栈阶段,更高优先级的中断可以不耗费任何额外的CPU周期就能完成嵌入低优先级中断的动作。具体的细节后面我会继续总结的。用户可以通过设置CPU自动进入低功耗状态,而使用中断来将其唤醒,CPU在中断时间来临之前会一直保持睡眠状态7。Cortex-M3的CPU支持两种运行模式:线程模式(Thread Mode)与处理模式(Handler Mode)并且需要注意的是,这两种模式都拥有各自独立的堆栈。这种设计使得开发人员可以进行更为精密的程序设计,对实时操作系统的支持也就更好了。Cortex-M3处理器还包含了一个24位可自动重装载定的定时器,可以为内核(RTOS)提供一个周期中断。在指令集方面,

22、ARM7和ARM9都有两种指令集(32位指令集和16位指令集),而Cortex-M3系列处理器支持Thumb-2指令集。由于Thumb-2指令集融合了Thumb指令集和ARM指令集,使得32位指令集的性能和16位指令集的代码密度之间取得了平衡5。 专业嵌入式、单片机技术实训。而且,ARM Thumb-2 专门为C/C+编译器设计,这就意味着Cortex-M3系列处理器的开发应用可以全部在C语言环境中完成。STM32微控制器的推出标志着ST公司在两条产品主线(低价位主线和高性能主线)上迈出了重大一步。STM32最初发布时有14个不同型号,分为两个版本:最高CPU时钟为72MHZ的“增强型”和最高

23、CPU时钟为36MHZ的“基本型”。这些不同STM32型号里内置的Flash最大可达128KB,SRAM最大为20KB,在STM32发布之初,配置更大Flash,RAM和更复杂外设的版本就已经在规划之中了。不管是什么版本,什么型号的STM32器件,它们在引脚功能和应用软件上是兼容的。这就使得开发人员在使用STM32系列微控制器时,不必改动PCB就可以根据需要随意更换器件型号。乍一看STM32的设备配备,与往日熟悉的51单片机倒有几分相似。一般,STM32都会配备常见外设,诸如多通道ADC,通用定时器,I2C总线接口,SPI总线接口,CAN总线接口,USB控制器,实时时钟RTC等。但是,它的每一

24、个外部设备都具有独特之处。例如,12位精度的ADC具备多种转换模式,并带有一个内部温度传感器,带有双ADC的STM32器件,还可以使两个ADC同时工作,从而衍生出了更为高级的9种转换模式;STM32的每一个定时器都具备4个捕获比较单元,而且每个定时器都可以和另外的定时器联合工作以生成更为精密的时序;STM32有专门为电机控制而设的高级定时器,带有6个死区时间可编程的PWM输出通道,同时其带有的紧急制动通道可以在异常情况出现时,强迫PWM信号输出保持在一个预订好的安全状态;SPI接口含有一个硬件CRC单元,支持8位字节和16位半字数据的CRC计算。在对SD或MMC等存储介质进行数据存取时相当有用

25、。而且,STM32还包含了7个DMA通道。没恶搞通道都可以用来在设备与内存之间进行8位,16位,32位数据的传输。每个设备都可以向DMA控制器请求发送或者接收数据。STM32内部总线仲裁器和总线矩阵将CPU数据接口和DMA通道之间的连接大大的简化了,这就意味着DMA通道单元是很灵活的其使用方法简单,足以应付微控制器应用中常见的数据传输要求。2.2.2 STM32的主要优点使用ARM最新、先进的构架Cortex-M3内核出色的实时性能出色的功率控制出众和创新的外设最大程度的集成整合易于开发,可使产品快速进入市场STM32硬件的特色接口:I/O:输入/输出口低功耗模式、定时器/计数器、输入捕获PW

26、M:脉宽调变A/D:模/数转换DMA:直接存储器存取USART、SPI:单个程序启动BOOT:2.2.3 STM32开发板STM32开发板如图2.2所示4STM32F103RCT6,TQFP64,FLASH:256K,SRAM:40K1个JTAG/SWD调试的下载口1个电源指示灯(蓝色)2个状态指示灯(DS0:红色,DS1:绿色)1个红外接收头1个IIC接口的EEPROM芯片,24C02,容量256字节一个SPIFLASH芯片,W25X16,容量2M字节1个DS18B20温度传感器预留接口一个标准的2.4 / 2.8英寸液晶屏接口,支持触摸屏1个OLED模块的接口1个USB SLAVE接口,用

27、于USB通信1个插SD卡的接口1个PS/2接口,外接鼠标、键盘等1组5V电源供应/接入口图2.2 STM32开发板1组3.3V电源供应/接入口1个启动模式的配置选择接口2个2.4G的无线通信接口(24L01和JF24C)1个复位按键,用来对MCU和LCD进行复位3个功能按键,其中WK_UP兼具唤醒功能1个电源开关,控制整个板的电源除晶振占有的IO口外,其余所以得IO全部引出,其中GPIOA和GPIOB按顺序引出2.3 最小系统设计单片机要正常工作必须电源电路提供电源,通过震荡电路产生时钟周期,同时为了防止系统异常还需加上复位电路,可手动让系统重新工作。(1)震荡电路震荡电路用的是8M晶振,因为

28、STM32内部可以通过锁相环可以进行倍频,变为最高72MHZ的频率,所以外部接8MHZ晶振,经过倍频可达到72MHZ1。其电路如图2.3所示。其电路主要有晶振、电容和电阻组成。其中OSDIN 和OSDOUT为STM32外部时钟电路引脚。通过震荡电路产生时钟从该管脚输入作为处理器时钟源。图2.3 振荡电路(2)复位电路图2.4 复位电路Stm32是低电平复位并且每次上电是会复位一次,所以系统上电之后默认情况下其RST脚应该为高电平。其电路如图2.4所示。R1位上拉电阻,REST为单片机复位引脚,当按键K1按下RST引脚输出低电平,此时系统复位;当复位按键K1没按下时,由于RST直接接在上拉电阻上

29、,默认为高电平,所以系统正常工作。2.4 温度采集模块 该模块主要采用温度传感器DS18B20来实现对温度的采集。DS18B20将采集来的模拟温度信号转换为数字信号,传送给单片机进行处理。2.4.1 DS18B20的介绍 DS18B20引脚图如图2.5所示。 图2.5 DS18B20引脚图DS18B20功能特点:1.独特的单线接口方式,与单片机的通信只需要一根I/O线,在一根线上可以挂接多个DS18B20。2.每个DS18B20都有它的序列号,我们是根据序列号来访问相应的器件,具有一个独有的,不可更改的64位的序列号。3.低压供电,电源范围为3-5V,可本地供电,也能直接通过数据线提供电源(即

30、寄生电源2方式)。4.在-10C至+85C范围内的可以达到精度为0.5摄氏度,测温的范围为55+125摄氏度。5.用户可以根据自己的设计设定报警的上下限温度。6.它转换12位的温度信号为数字信号的最大时间为750毫秒,可编辑的数据位9-12位。7.DS18B20的分辨率为9-12位,可由用户通过EEPROM设置。8.DS18B20可以把检测到的模拟温度值直接转化为数字量,并且通过串行通信方式传送给单片机。2.4.2 DS18B20工作原理介绍DS18B20的测温原理:低温度系数的晶振,产生的频率脉冲信号给计数器1,它的振荡频率受温度影响较小。高温度系数的晶振,振荡频率受温度影响较大,会随着温度

31、的变化而改变,产生的频率脉冲信号给计数器2。把温度寄存器和计数器1先设置在55所对应的一个基数值。低温晶振的脉冲,通过计数器1进行减法计数,计数器1的值降到0时,计数器1的预设值会重新装入,此时温度寄存器的值加1.计数器1重新开始计数,就这样循环,停止温度寄存器值的累加时计数器2的计数值到0,所测温度就为此时温度寄存器中的数值10。DS18B20的测温原理框图如图2.6所示。DS18B20写操作:1.把数据线先置为低电平0。2.延时的时间为15ms。3.从低位到高位的发送字节数据(一次只能发送一位)。4.延时45ms。5.将数据线拉到高电平1。6.重复上面(1)到(6)的操作,直到整个字节全部发送完为止。7.最后把数据线拉到高电平1。图2.6 DS18B20的测温原理框图DS18B20读操作:1.先把数据线拉高“1”。2.延时2ms。3.数据线拉低“0”。4.延时15ms。

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

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