基于STM32F103的恒温系统的设计docx.docx
《基于STM32F103的恒温系统的设计docx.docx》由会员分享,可在线阅读,更多相关《基于STM32F103的恒温系统的设计docx.docx(34页珍藏版)》请在冰豆网上搜索。
![基于STM32F103的恒温系统的设计docx.docx](https://file1.bdocx.com/fileroot1/2023-1/12/14e701c4-2b18-483d-a660-4b1095fa40f8/14e701c4-2b18-483d-a660-4b1095fa40f81.gif)
基于STM32F103的恒温系统的设计docx
.
中国矿业大学计算机学院
2013级本科生课程报告
课程名称信科专业综合实践
报告时间2016.09.20
学生姓名张谊坤
学号08133367
专业电子信息科学与技术
任课教师王凯
Word文档
.
任课教师评语
任课教师评语(①对课程基础理论的掌握;②对课程知识应用能力的评价;③对课程报告相关实
验、作品、软件等成果的评价;④课程学习态度和上课纪律;⑤课程成果和报告工作量;⑥总体评价
和成绩;⑦存在问题等):
成绩:
任课教师签字:
年月日
Word文档
.
摘要
针对目前温度控制在生产生活中被广泛应用,而传统的温度控制系统是由功能繁杂的大量分离器件构成,为了节约成本、提高系统的可靠性,本文设计了一种基于STM32F103T6的温度控制系统。
本设计是基于DS18B20的温度控制系统,以STM32F103ZET6为控制系统核心,通过嵌入式系统设计实现对温度的显示和控制功能。
在该系统中,为了减小干扰的影响,用均值滤波算法对采样数据进行处理之后再进行温度
判定等一系列操作的依据。
设计中,基本上实现了该系统的功能,通过DS18B20采集温度数据,使用LCD屏幕来显示相关的信息,能够通过加热和降温将温度控制在恒定的范围内,并可以手动设置恒温范围,温度超出限制后会有声光报警。
关键词:
STM32F103,均值滤波,恒温控制,DS18B20
Word文档
.
1绪论.................................................................................................................................................................................
1.1选题的背景及意义1
1.2设计思想.................................................................................................................................................................
1.3实现的功能2
2硬件设计........................................................................................................................................................................
2.1硬件平台.................................................................................................................................................................
2.2硬件设计模块图3
2.3温度传感器DS18B204
2.4LCD屏幕8
2.5DC5V散热风扇10
2.6加热片10
3软件设计11
3.1软件平台11
3.2软件设计模块图12
3.3主程序流程图12
3.4子程序流程图14
3.4.1恒温控制子程序流程图14
3.4.2flag标志设置子程序流程图15
3.4.3温度设置子程序流程图16
3.4.4温度读取函数流程图17
3.4.5均值滤波程序流程图18
3.4.6显示函数程序流程图19
4调试分析19
4.1硬件调试20
4.2软件测试20
4.3功能实现分析21
5实验总结21
参考文献23
Word文档
.
1绪论
1.1选题的背景及意义
21世纪是科学技术高速发展的信息时代,电子技术、嵌入式技术的应用已经是非常广泛,伴随着科学技术和生产的不断发展,在生产生活中需要对各种参数进行温度测量。
因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度控制和测量也成为了生活生产中频繁使用技术,同时它们在各行各业中也发挥着非常重要的作用。
如在日趋发达的工业领域之中,利用测量与控制温度来保证生产的正常运行;在农业生产中,用于保证蔬菜大棚的恒温保产等;在科学研究中,往往也需要一个恒温的环境作为实验的保障。
温度值是表征物体冷热程度的一个物理量,温度的测量则是工农和业生产过程中一个很重要也普遍的参数。
温度的测量及控制对保证产品的质量、提高生产的效率、
节约能源、安全生产、促进经济的发展起到非常重要的作用。
因为温度测量的普遍性,使得温度传感器的数量在各种传感器中居首。
并且随着科学技术与生产的不断发展,
温度传感器的种类仍然在不断增加和丰富以来满足生产生活中的各种需要。
在嵌入式温度控制系统中的关键是温度的测量、温度的控制和温度的保持,温度是工业控制对象中主要的被控参数之一。
因此,嵌入式要对温度的测量则是对温度进行有效及准确的测量,并且能够在工业生产中得广泛的应用,尤其在机械制造、电力工程化工生产、冶金工业等重要工业领域中,担负着重要的测量任务。
在日常工作和生活中,也被广泛应用于空调器、电加热器等各种室温测量及工业设备的温度测量。
但温度是一个模拟量,需要采用适当的技术和元件,将模拟的温度量转化为数字量,才生使用计算机进行相应的处理。
1.2设计思想
恒温系统应用于各种工业或者民用领域,如何精确地控制温度成为一个非常重要的研究问题。
本系统需要利用STM32来控制各器件的工作情况,使传感器维持在一个固定的温度上。
本文所研究的课题是基于嵌入式的恒温控制系统设计,实现了温度的实时监测与控
制。
温度控制部分,提出了用DS18B20、STM32F103ZET6和LCD的硬件电路完成对室温的实时检测及显示,利用DS18B20与嵌入式系统连接由软件与硬件电路配合来实现对加热片和散热风扇的实时控制。
从DS18B20读出或写入DS18S20信息仅需要一根口线,
其读写及其温度变换功率来源于数据线,该总线本身也可以向所挂接的DS18B20提供电源,不需要额外电源。
同时DS18S20能提供九位温度精度,它无需任何外围硬件便可方便地构成温度检测系统。
加热片通过带有继电器的电路驱动,由嵌入式开发板的一根口线控制并供电,继电器需要嵌入式开发板提供额外的电源。
DC5V散热风扇的实时控制也仅
Word文档
.
仅需要一根口线,由开发板供电,不需要外加电源。
而且本次的设计主要实现温度监测,
超温报警,温度控制,超过设定的门限值时自动启动加热和散热装置等功能。
而且还要以STM32开发板为主机,使温度传感器通过一根口线与嵌入式开发板相连接,再加上温度
控制部分和人机交互部分来共同实现温度的监测与控制。
1.3实现的功能
(1)能够连续测量环境的温度值,用LCD屏幕来显示环境的实际温度。
(2)能够设定恒温的温度范围,初始范围是30℃~33℃。
(3)能够实现温度自动控制,如果设定温度在30℃~33℃,则能使温度保持恒定在
30℃~33℃。
(4)使用嵌入式STM32F103ZET6控制,通过输入按键来控制恒温范围的设定值,数值采用LCD屏幕显示。
(5)温度超出范围时能够实现声光报警:
LED灯和数码管闪烁,蜂鸣器报警。
2硬件设计
2.1硬件平台
本次设计的硬件平台选用的是STM32系列的F103ZET6嵌入式开发板。
STM芯片根
据容量分为三大类:
LD(小于64K),MD(小于256K),HD(大于256K),STM32F103ZET6
类属第三类。
具有如下特点:
1.基于ARMCortex-M3核心的32位微控制器,LQFP-144封装.
2.512K片内FLASH(相当于硬盘),64K片内RAM(相当于内存),片内FLASH支持
在线编程(IAP).
3.高达72M的频率,数据,指令分别走不同的流水线,以确保CPU运行速度达到最大
化.
4.通过片内BOOT区,可实现串口下载程序(ISP).
5.片内双RC晶振,提供8M和32K的频率.
6.支持片外高速晶振(8M),和片外低速晶振(32K).其中片外低速晶振可用于CPU的实
Word文档
.
时时钟,带后备电源引脚,用于掉电后的时钟行走.
7.42个16位的后备寄存器(可以理解为电池保存的RAM),利用外置的纽扣电池,和实现
掉电数据保存功能.
8.支持JTAG,SWD调试.配合廉价的J-LINK,实现高速低成本的开发调试方案.
9.多达80个IO(大部分兼容5V逻辑),4个通用定时器,2个高级定时器,2个基本定时器,3
路SPI接口,2路I2S接口,2路I2C接口,5路USART,一个USB从设备接口,一个CAN接
口,SDIO接口,可兼容SRAM,NOR和NANDFlash接口的16位总线-FSMC.
10.3路共16通道的12位AD输入,2路共2通道的12位DA输出.支持片外独立电压基准.
11.CPU操作电压范围:
2.0-3.6V.
2.2硬件设计模块图
设计整体模块如图2-1
所示:
DS18B20温度
制
风扇
传感器模块
模温
块度
加热片
控
键盘模块
STM32CPU块警
LED灯
LCD模块
报
模
蜂鸣器
图2-1设计模块图
如图所示,本次设计共有五大模块:
DS18B20温度传感器模块、键盘模块、LCD
显示模块、温度控制模块以及警报模块构成;其中温度控制模块又有小风扇和加热片
两个小模块,警报模块有LED灯和蜂鸣器两个小模块。
各个模块的功能如下:
Word文档
.
DS18B20温度传感器模块:
DS18B20为温度传感器,主要作用是温度采集。
键盘模块:
键盘模块共包含三个按键:
K_LEFT、K_UP和K_DOWN,其中,K_LEFT
主要是实现Flag标志的更新,实现程序中不同模块的转换,详见下面的程序流图,
K_UP和K_DOWN两按键主要是实现最低温度和最高温度的设置。
LCD显示模块:
实现温度的显示。
温度控制模块:
实现恒温控制,允许温度在设定的一定范围内变化,温度过低时
加热片启动升温,温度过高时小风扇启动降温。
警报模块:
警报模块主要是在温度超出正常范围时发出警报信息,实现声光报警,
主要为LED和数码管闪烁和蜂鸣器发声。
2.3温度传感器DS18B20
DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度
高的特点。
工作原理:
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分
辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理如图2-2所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号
送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计
数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计
数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0
时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低
温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温
Word文档
.
度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
斜率累加器用于补偿和
修正测温过程中的非线性,其输出用于修正计数器1的预置值。
预置
斜率累加器
比较
低温系数晶振
计数器1
LSB
置位/清除
预置
加1
=0温度寄存器
高温系数晶振计数器2
停止
=0
图2-2DS18B20测温原理图
DS18B20的主要特性:
(1)适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电
(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现
微处理器与DS18B20的双向通讯
(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现
组网多点测温
(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如
一只三极管的集成电路内
(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃
(6)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃
和0.0625℃,可实现高精度测温
(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在
750ms内把温度值转换为数字,速度更快
Word文档
.
(8)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送
CRC校验码,具有极强的抗干扰纠错能力
(9)负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
接线方法:
面对着扁平的那一面,左负右正,一旦接反就会立刻发热,有可能烧毁!
同时,接反也是导致该传感器总是显示85℃的原因。
实际操作中将正负反接,传感
器立即发热,液晶屏不能显示读数,正负接好后显示85℃。
特点
独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无
需外部元件可用数据总线供电,电压范围为3.0V至5.5V无需备用电源测量温度
范围为-55℃至+125℃。
华氏相当于是-67华氏度到257华氏度-10℃至+85℃范围
内精度为±0.5℃
温度传感器可编程的分辨率为9~12位,温度转换为12位数字格式最大值为750
毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制、工业系统、消
费电子产品温度计、或任何热敏感系统
描述该DS18B20的数字温度计提供9至12位(可编程设备温度读数)。
由于
DS18B20是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连接。
为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。
因为每一个
DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。
这使得
温度传感器放置在许多不同的地方。
它的用途很多,包括空调环境控制,感测建筑物
内温设备或机器,并进行过程监测和控制。
DS18B20采用一线通信接口。
因为一线通信接口,必须在先完成ROM设定,否
则记忆和控制功能将无法使用。
主要首先提供以下功能命令之一:
1)读ROM,2)
ROM匹配,3)搜索ROM,4)跳过ROM,5)报警检查。
这些指令操作作用
Word文档
.
在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个
器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。
若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。
一个
控制功能指挥指示DS18B20的演出测温。
测量结果将被放置在DS18B20内存中,并
可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。
温度报警触发器TH和TL
都有一字节EEPROM的数据。
如果DS18B20不使用报警检查指令,这些寄存器可作
为一般的用户记忆用途。
在片上还载有配置字节以理想的解决温度数字转换。
写TH,TL
指令以及配置字节利用一个记忆功能的指令完成。
通过缓存器读寄存器。
所有数据的
读,写都是从最低位开始。
Word文档
.
2.4LCD屏幕
图2-3LCD管脚图
TFT-LCD又叫做薄膜晶体管液晶显示器,其管脚图如上,其管脚在STM32F103中有
相应的管脚对应。
常用的液晶屏接口很多种,8位、9位、16位、18位都有。
而常用的通信模式呢,主要有6800模式和8080模式两种,今天呢,我们来讲的是8080模式。
如果大家接触过LCD1602或者LCD12864等,那么就会发现8080模式的时序呢,其实跟LCD1602或者LCD12864的读写时序是差不多的。
8080接口有5条基本的控
制线和多条数据线,数据线的数量主要看液晶屏使用的是几位模式,有8根、9根、16
根、18根四种类型。
具体如下表:
Word文档
.
表2-1TFT-LCD各位功能
可以知道,LCD液晶屏的信号线主要有:
1)CS:
用于片选的选择。
2)RS:
用于选
择命令或者数据。
3)WR:
写使能。
4)RD:
读使能。
5)RESET:
复位端。
其时序如下图:
图2-4LCD时序图
(1)在WR跳变为低电平之后,液晶屏开始读取总线上面的数据。
如果使用IO口
模拟写入的时候,可以先在总线上面写入数据,然后在跳变WR,以保证当读取的时候,
Word文档
.
总线上面的数据是稳定的。
(2)在RD跳变为低电平之后,液晶屏放置数据到总线上面。
液晶屏的读写时序了,大家操作的时候,可以使用单片机IO口模拟它的时序进行操作。
2.5DC5V散热风扇
散热风扇的驱动电路如图2-5所示:
I/O口
图2-5散热风扇驱动电路
风扇仅需要的一根口线驱动,当I/O输出为低电平时,三极管导通,风扇启动;
当I/O输出为高电平时,风扇停止。
2.6加热片
加热片驱动电路如图2-6所示:
I/O口
图2-6加热片驱动电路
Word文档
.
加热片也仅仅需要一根口线控制,I/O口为高电平时,继电器L与N_O端连通,加热
片工作;I/O口为低电平时,继电器L与N_O端断开,加热片工作。
3软件设计
3.1软件平台
本设计的软件平台为keiluvision4,目前使用KeiluVision4的产品有KeilMDK-ARM,
KeilC51,KeilC166和KeilC251。
KeiluVision4具有以下特点:
发展:
2009年2月发布KeiluVision4,KeiluVision4引入灵活的窗口管理系统,使开
发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。
新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的
环境来开发应用程序。
新版本支持更多最新的ARM芯片,还添加了一些其他新功能。
2011
年3月ARM公司发布最新集成开发环境RealViewMDK开发工具中集成了最新版本的Keil
uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。
新特征:
1.最新的KeiluVision4IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开
发。
2.uVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多
显示器窗口。
3.uVision4在μVision3IDE的基础上,增加了更多大众化的功能。
4.多显示器和灵活的窗口管理系统
5.系统浏览器窗口的显示设备外设寄存器信息
Word文档
6.调试还原视图创建并保存多个调试窗口布局
7.多项目工作区简化与众多的项目
3.2软件设计模块图
恒温系统
温
度
显
报
键
检
示
警
盘
测
模
模
模
模
块
块
块
块
图3-1软件设计模块
.
恒
温控
控制
制算
模法
块
软件设计中共分为六大部分,温度检测模块、显示模块、报警模块、键盘模块、恒温
控制模块和控制算法。
温度检测模块主要是温度传感器DS18B20相关的程序,实现温度的采集和转换,最
终为我们常用的摄氏温度值的形式;显示模块以LCD屏幕相关程序为主,实现必要信息
的显示;警报模块实现温度超限报警,恒温控制实现对温度的恒定控制,在程序里,这两
部分在一个函数里;键盘模块主要是实现温度值得设定;控制算法是对采集温度所做的一
个均值滤波,以排除采集的错误数据。
3.3主程序流程图
主程序流程图3-2如下所示:
Word文档
.
开始
Y
实时温度显示与
Flag=0?
恒温控制
N
Y最低温设置与恒
Flag=1?
温控制
N
Y最高温设置与恒
Flag=2?
温控制
N
根据按键状态更新flag值
结束
图3-2主程序流程框图
进行初始化之后,进入一个while
(1)的死循环里,不断的根据flag的值来更新工作
的状态。
当Flag=0时,进