《基于STM32的红外测温系统设计.docx》由会员分享,可在线阅读,更多相关《基于STM32的红外测温系统设计.docx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录中文摘要 . -2-英文摘要 . -2-1 引言 . -3-1.1 课题研究的背景及意义. -3-1.2 数字式测温和红外测温技术的发展现状. -4-1.3 红外测温的特点. -5-2 系统的方案设计与论证 . -5-2.1 单片机选择与论证. -5-2.2 红外传感器选择与论证. -6-2.3 显示模块选择与论证. -6-3 系统硬件的设计 . -6-3.1 STM32F103 系列微控制器概述. -7-3.2 MLX90614 红外测温模块设计. -9-3.3 DS18B20 温度检测模块设计.-10-3.4 LCD1602 显示模块设计. -11-3.5 按键控制模块设计. -12-
2、3.6 复位电路设计. -13-3.7 电源电路设计. -13-3.8 报警电路设计. -14-3.9 本章总结. -15-4 系统的软件设计 . -15-4.1 主程序流程图的设计. -16-4.2 部分程序流程图的设计. -17-4.3 程序实现. -20-5 系统调试 . -27-5.1 系统软件调试. -27-5.2 系统硬件调试. -30-6 总 结 . -31-谢辞错误!未定义书签。参 考 文 献 . - 32 -图表清单图 3-1系统硬件电路整体框图. -7-图 3-2STM32F103 封装图. -8-图 3-3STM32F103 引脚图. -8-图 3-4STM32F103
3、主控电路. -9-图 3-5MLX90614 红外测温电路. -10-表 3-1MLX90614 引脚功能介绍. -10-表 3-2DS18B20 引脚及功能. -10-图 3-6DS18B20 温度检测模块硬件电路连接图. -11-图 3-7LCD1602 液晶显示屏显示模块硬件电路连接图. -12-图 3-8按键控制模块硬件电路连接图. -12-图 3-9复位电路. -13-图 3-10电源管理电路. -14-图 3-113.3V 转换电路. -14-图 3-12报警电路. -14-图 3-13整体硬件原理图. -15-图 4-1主程序流程图. -16-图 4-2LCD 液晶显示模块. -
4、17-图 4-3SMBus 数据包组成. -18-图 4-4数据读取的格式. -18-图 4-5MLX90614 程序流程图. -19-图 4-6DS18B20 程序流程图. -20-图 4-5程序编写页面. -21-图 5-1Proteus8.8 进入页面. -27-图 5-2Proteus 仿真软件操作页面. -28-图 5-3基于 STM32 红外测温系统仿真图. -28-图 5-4环境温度显示页面. -29-图 5-5目标温度显示图. -29-图 5-6报警温度. -29-图 5-7蜂鸣器报警. -29-图 5-8Altium Designer 16 操作页面. -30-图 5-9系统
5、整体原理图. -31- 1 -基于 STM32 的红外测温系统设计摘要: 随着我国经济的发展,社会的进步。温度是确定物质状态的重要参数之一, 体温是人体生命活动的基本特征,也是观察人体机能是否正常的重要标志之一。红外测量为测量人体温度提供了快速,非接触测量手段,可广泛的应用于密集型人体体温测量。红外测温技术是一门很实用和前言的技术。作此课题,有利于理论联系实际,更好的掌握这一方面的知识体系,是对学习内容的升华,特别是对单片机控制技术的深入理解。对于自身综合素质和工程能力的培养有重要的意义。红外测温仪在工业领域广泛应用,但由于医用红外测温仪的特殊要求。1989 年以来,热释电耳道式测温仪才成功的
6、用于体温测量,1991 年以后该产品已经遍及欧美市场,我国在这方面起步较晚。随着医疗技术的快速发展,人们对非接触、快速有效测温技术的需求越来越大,传统的接触式人体测温仪已经不能满足现代医用领域的测温需求。红外测温仪具有安全、可靠、非接触、快速、准确、方便、寿命长等方面不可替代的优势,己被越来越多的医疗行业认识和接受。本文通过基于 STM32 的红外测温系统设计,提供更好的建议,促进其发展。STM32;红外测温; 设计关键词:Design of infrared temperature measurementsystem based on stm32Abstract: With the deve
7、lopment of Chinas economy and society. Temperature is one of the important parameters to determine the state of matter. Body temperature is the basic characteristics of human life activities, and also one of the important signs to observe whether human function is normal. Infrared measurement provid
8、es a fast, non-contact method for measuring human body temperature, which can be widely used in intensive human body temperature measurement. Infrared thermometry is a very practical and foreword technology. It is helpful to combine theory with practice and master the knowledge system of this aspect
9、 better. It is the distillation oflearningcontent,especiallythein-depthunderstandingofMCUcontrol technology. It is of great significance for the cultivation of self comprehensive quality and engineering ability. Infrared thermometers are widely used in the- 2 -industrialfield,butduetothespecialrequi
10、rementsofmedicalinfrared thermometers. Since 1989, pyroelectric ear channel thermometers have been successfully used in temperature measurement. Since 1991, the products have been widely used in European and American markets, and China started late in this respect. With the rapid development of medi
11、cal technology, people need more and more non-contact, fast and effective temperature measurement technology. The traditional contact human body thermometer can not meet the needs of modern medical field. Infrared thermometer has the irreplaceable advantages of safety, reliability, non-contact, fast
12、, accurate, convenient, long life and so on. It has been recognized and accepted by more and more medical industry. Based on the design of infrared temperature measurement system based on STM32, this paper providesbetter suggestions and promotes its development.Keywords: STM32; infrared temperature
13、measurement system; design1 引言1.1 课题研究的背景及意义由于需要寻求医学发展,在许多情况下,普通水银温度计不能满足快速和准确的温度测量的要求,如车站和机场等人口稠密的地方进行人体温度测量。虽然国外温度测量技术比较成熟,但国内在这方面的技术还处于发展阶段。因此,为了满足医学发展的需要,红外非接触式测温就显得至关重要。随着人们生活水平的不断提高和生活需求水平的提高,人们越来越关注自己的健 康,而体温、血压、脉搏和呼吸是一种重要参数确定人体健康,监测和测量这些生理指标可以更好地反映人体的健康状况,使其在医疗领域占有非常重要的地位。人体的温度对我们是很重要的,如果没有体
14、温计或者测得的温度精度不高,那么我们对于人体健康的判断就是模糊的、不准确的,就比如在现今的疫情防控中,如果我们不清楚人员的体温就无法判断这个人是否需要隔离,或者我们如果无法得到准确的体温就可能造成错误隔离。所以说温度对于我们人类来说是一个很重要的计量单位,那么如何更加高效卫生的测量温度就出现在了我们面前。传统的水银体温计在测量体温时不仅耗时长还不卫生,要知道在使用水银体温计就需要与人体有一定的接触,所以在现今的新冠病毒防疫中完全起不到任何作用。那么这时候红外测温的优点就体现出来了,要知- 3 -道红外测温是一种非接触式的测温,所以在疫情防控中可以起到很大的作用。本设计主要围绕体温的生理指标,以
15、 STM32 为控制核进行实时温度采集,开发整个设计过程。红外温度计根据红外温度计的原理,通过选择关键器件并自动调节温度补偿,提高了红外温度计的精度。本文主要概述了非接触式人体体温测试仪的硬件设计和软件设计。硬件首先讨论了系统的整体设计,然后讨论了红外传感器、运算放大器、按键电路、数据处理、显示部分等功能模块的讨论,并详细介绍了每个芯片的结构和功能, 使系统具有良好的稳定性。软件使用 C 语言来编写,可以使编译速度快,运行速度高。非接触式温度计的设计以功能为基础,以创新为导向,以实践为基础,具有广阔的发展前景和广泛的应用前景。通过这种设计,希望今后扩大温度监测应用的应用范围,提供新的思路和方法
16、,在医学、体育、消防、军事训练等领域多用广泛。1.2 数字式测温和红外测温技术的发展现状温度传感器从最初的分立式发展到现在的数字式,一共经历了三代,最新式的数字温度传感器相对于之前的两代温度传感器有了以下技术的革新:(1) 数字温度传感器的信号是经过滤波和增益放大的,所以它克服了普通信号中易产生杂波和波形失真和衰减的弊病,可以实现更好的稳定性和可靠性。(2) 数字温度传感器的信号是经过加工的,方便计算机的处理和存储,同时具有更高的安全性。(3) 数字温度传感器采用的是数字信号处理集成电路,体积很小,对温度的响应迅速,电路运行相对稳定可靠。同时数字式温度传感器也面临需要进一步解决的一些问题,例如
17、经过 A/D 转换电路,对转换芯片的抗干扰性、转换精度和校零技术都有很高的要求。随着技术的进步, 数字式温度传感器的性能将进一步大大提高,广泛应用于更多的领域。红外形式辐射的能量的大小和这个物体的表层温度的高低有重要的关系,因此通过测量物体红外辐射出来的能量就可以根据换算公式精准的计算出物体的表面温度,这就是红外测温的工作原理。进入 20 世纪以来的几十年间,在前人的理论基础之上,红外辐射和红外测 量技术日臻完善。红外探头、红外测温传感器、红外气体传感器等大量红外检测器件设备不断出现,红外传感器日益小型化、智能化和数字化,拥有了很多无可比拟的优点:a. 非接触式红外测温传感器可以在不直接接触到
18、待测物体的情况下实现对这一物体温度的测量,这样可以避免影响到待测物体的温场热平衡,防止污染和干扰。- 4 -b. 快速精确,红外测温传感器一般精度都可以控制在 1C 之内,反应时间很短, 可以实现在未完全达到热平衡的条件下快速精准测温。c. 安全方便红外传感器体积较小,易于操作,同时可以在不安全区域或者无法接触的地方测量温度数据,大大保障了人员的安全。虽然红外测温技术已经越来越成熟,但是目前仍然存在一些技术上的难点,这也是今后红外测温的重要发展方向,例如红外测温数据易受距离、角度、环境、 物体反射率、厚度等相关因素的影响,只能测量物体的外部温度,如何更好的实现温度的补偿都是亟待解决的关键问题。
19、1.3 红外测温的特点红外测量体温是通过接收人体红外线能量的大小来判定温度的大小,通过红外传感器测采集的信息,传输到微处理器,进行处理,最终转换成温度在显示模块上显示。因此红外测温具有下列优点(1) 非接触测量:红外测温是不需要接触到人体的,在距离目标几厘米的位置就可以采集数据,因为红外探测器之是感应人体所辐射的红外线,所以不会对人体造成伤害。(2) 测量范围广:因为该测温方式是非接触式的,所以并没有处在过高或过低的温度场中,它是在正常温度下工作或在条件允许的情况下工作,因此测量的范围会比较广。(3) 测量速度快:即响应时间短。这是因为红外探测器中的灵敏元很灵敏,在接收到红外辐射开始,能很快完
20、成测温。(4) 准确度高:红外测温不会破坏物体本身的温度分布,所以测量精度高。(5) 体积小,便于携带。2 系统的方案设计与论证2.1 单片机选择与论证方案一:使用80C51 单片机为本系统的核心控制器,它有8 位 CPU,4KB ROM 存储空间,128B RAM 存储空间,单一+5V 供电;不具备自编程能力,即在系统程序调试时,程序错误的修改或程序新增功能的增加时,需要多次拔插芯片,因此会对芯片造成一定程度的损坏。- 5 -方案二:使用 STM32F103 作为本系统的控制核心,STM32 系列基于为要求高性能、低成本、低功耗的嵌入式应用专门设计的 ARM Cortex-M3 内核。 并带
21、有 512 KB 的高速 Flash 存储器,其内部集成了 3 个 12 bit 的 ADC,1 个 2 通道 12 bit DAC,有多达 11 个定时器,其中有两个 16 bit 带死区控制和紧急刹车,用于电机控制的 PWM 高级控制定时器。利用此控制器可快速进行数字 滤波、温度补偿等数据处理任务3。单片机 STM32F103 单片机具有数据处理功能,内部具有 ADC 模块不需要外接 A/D 转换模块,因此简化了电路图,故使用方案二 STM32F103 单片机作为本次设计的核心部件。2.2 红外传感器选择与论证方案一:使用红外温度传感器 IRTR,但是这个系列的红外传感器是一种集成的多用于
22、工业方面的传感器。方案二:使用热电堆红外传感器MLX90614,MLX90614 是一款用于非接触式的红外温度传感器,集成了红外探测热电堆芯片与信号处理专用集成芯片,全部封装在TO-39。低噪声放大器、17 位 ADC 和强大的 DSP 处理单元的全集成,使传感器实现了高精度,高分辨率的测量。方案一中传感器多用于工业方面,因此不选用方案一,由于 MLX90614 具有较高的灵敏度,以及较小的热惯性,所以适用于医学测温,故选方案二。2.3 显示模块选择与论证方案一:使用 LED 数码管显示。LED 数码管价格便宜,使用简单,电压低,寿命长可以用于所有数字参数的显示。方案二:采用 LCD1602
23、液晶显示屏显示。硬件电路制作简单,可直接连接到微控制器端口,程序控制简单,能耗低,显示内容多,可显示 32 个字符。方案一中数码管,电路复杂显示的信息也没有方案二多,但是方案二中液晶显示屏显示信息量大,而且更加美观,同时它的功耗和尺寸都很小。在本系统中需要的显示的信息量要稍大一些,而且要更加直接,故而选择方案二 LCD1602 液晶显示屏显示。3 系统硬件的设计本课题拟以 STM32 单片机为控制核心,由红外线传感器、电源、温度传感器、单- 6 -片机、LCD 显示模块等组成,数字红外传感器将物体红外辐射转换成数字信号,输入到STM32 控制器;环境温度传感器测量环境温度,并在STM32 控制
24、器里对红外测温进行温度补偿,提高测温精度。经 STM32 控制器运算后,传感器信号在液晶屏上显示出物体温度读数,并伴随有蜂鸣提示,实现对温度较精确测量。如图 3-1 所示。图表 1 图 3-1 系统硬件电路整体框图3.1 STM32F103 系列微控制器概述STM32 系列微控制器,是以 ARM Cortex-M3 为核心而开发的 32 位处理器,分成几个不同的系列:STM32L 超低耗型,STM32F105 和 STM32F107 互联型,STM32F103 增强型,STM32F102 USB 基本型,STM32F101 基本型,STM32F100 超值型4。在本次设计中,采用的是 STM3
25、2F103。STM32F103 系列增强型微控制器采用的是高性能的 32 位 ARM Cortex-M3 RISC 内核,凭借缩小的内核尺寸、出色的中断延迟、集成的系统部件、灵活的硬件配置、快速的系统调试和简易的软件编程,Cortex-M3 处理器是嵌入式系统的理想解决方案5。STM32F103XX 系列微控制器配置非常强大,拥有 112 个通用 I/O 端口,有 3 个 12 位的 ADC、3 个通用 16 位的定时器,有 TIC、SPI 同步串行的接口、USART 异步串行的接口、USB 全速的接口等各种标准通信接口6。I/O 翻转速度可达 18MHZ。图 3-2 是基于 ARM Cort
26、ex-M3 内核的 STM32F103 系列微控制器的外观(LQFPIOO 封装)。图 3-3 是 STM32F103 的引脚图。- 7 -图表 2 图 3-2STM32F103 封装图图表 3 图 3-3 STM32F103 引脚图- 8 -下图,图 3-4 为 STM32F103 主控电路。该芯片配置资源十分丰富,有足够的 I/O端口,还有内置的定时器。因此可以用简单的电路来实现复杂的功能。图表 4 图 3-4 STM32F103 主控电路3.2 MLX90614 红外测温模块设计对人体的非接触式测温是设计的重点,对传感器的性能要求比较高,设计中采用的MLX90614 红外温度传感器不仅性
27、能出众,而且设计简单。它支持两线串行通信协议, 并且采用了符合工业标准的 TO-39 封装形式,一共有四个外部引脚,分别为 SCL(串行时钟)、SDA(信号输入)、VDD(电源)和 VSS(接地)管脚,四个管脚的功能描述如表 3-1 所示。MLX90614 有箝位二极管,连接在 SDA/SCL 和 VCC 之间,以提供给MLX90614 器件电源,而使 SMBus 线不会成为负载。如图 3-5 所示,传感器的 SCL 和 SDA 管脚分别与微控制器的 PB1 和 PB0 相连接,为了进一步提高管脚的驱动能力和保证信号的稳定,对传感器以上两个管脚都选择了上拉处理。- 9 -图表 5 图 3-5
28、MLX90614 红外测温电路引脚名称VSS VDDPWM/SDA作用接地端,接传感器的金属壳电源接入端数字输入与输出。正常情况下,可在此读出 PWM 制式的目标温度,在SMBus 模式下,默认为集电极开路状态。SCL/VZ双线通信协议中的串行时钟输入。图表 6 表 3-1 MLX90614 引脚功能介绍3.3 DS18B20 温度检测模块设计与传统热敏电阻等部件相比, DS18B20 温度传感器可以直接读取测量的温度。DS18B20 温度传感器采用了 3 线制与单片机相连,所测量温度的范围在-55125。本系统中 DS18B20 温度传感器的 DQ 端口与单片机的 PB11 端口相连,表 3
29、-2 为DS18B20 各个管脚及功能。DS18B20 温度检测模块硬件电路连接图如图 3-6 所示。引脚名称GND DQ VCC引脚功能接地单线操作的数据输入/输出接电源,此引脚必须接地图表 7 表 3-2 DS18B20 引脚及功能- 10 -图表 8 图 3-6 DS18B20 温度检测模块硬件电路连接图3.4 LCD1602 显示模块设计LCD1602 是一种液晶显示器,它主要由点阵字符组成,显示的内容最多为两行,每行最多可以显示 16 个字符,如字母、数字和符号等。在显示少量字符时,LCD1602 更受各种仪器和低功耗系统的欢迎和广泛应用,因为它具有更低的能耗、更小的尺寸、更多的显示
30、内容。它的三个控制引脚分别是RS,RW,EN。RS 控制其内部数据寄存器和指令寄存器的选择,RW 控制读操作或写操作,EN 是 LCD1602 使能端,下降沿有效, 低电平触发片选信号。本系统 LCD1602 的 D0D7 分别与单片机的 I/O 口相连,由于 I/O 口内部没有上拉电阻,所以外部需要另加 10K的上拉电阻。单片机的 PD1PD3 端口分别控制 LCD1602 的 RS、RW、EN 三个控制管脚;可通过 LCD1602 的 RV1 引脚来调节显示灰度;要想点亮背光灯,就要给背光的阴极 BLK 和阳极 BLA 接上相应电平。LCD1602 液晶显示屏显示模块硬件电路连接图如图 3
31、-7 所示。- 11 -图表 9 图 3-7 LCD1602 液晶显示屏显示模块硬件电路连接图3.5 按键控制模块设计本系统用到了 4 个按键控制,其中一个为复位按键,用作系统手动复位使用,另外3 个分别与 STM32F103 微控制器的 PC13、PC1、PA0 端口相连,按键控制模块硬件电路连接图如图 3-8 所示。图表 10 图 3-8 按键控制模块硬件电路连接图对以上 3 个按键作简要说明: KEY1减键/日期查看键; KEY2加键/测温停止键; KEY3选择键/测温启动键;- 12 -KEY3(选择键/测温启动键):在时间信息设置模式下,按下KEY3,光标移动,可根据具体要使光标移动
32、到哪个地方来决定按下独立按键的次数;在测温模式下,按下KEY3(此时为测温启动键),表示测温开始。KEY2(加键/测温停止键):在时间信息设置模式下,按下 KEY2 来进行时间信息设置的加操作;当处于测温模式时,按下 KEY2 停止测温。KEY1(减键/日期查看键):当直接按下 KEY1 时,显示当前日期;在设置时间信息时,按下 KEY1 进行时间信息设置的减操作;3.6 复位电路设计只有在低电平的条件下,STM32 微控制器才会复位。所以使用低电平复位的复位电路,按下复位键使复位引脚 RESET 持续一段设计的低电平,实现复位操作,如图 3-9。图表 11 图 3-9 复位电路3.7 电源电
33、路设计整个系统的能量都是由电源提供的,可以说电源模块就是整个系统的心脏。在本次设计中,因为 STM32F103 所需的工作电压为 3.3V,所以需要 5V 和 3.3V 分别提供能量。图 3-10 就是提供 5V 电压的模块,主要是给 LCD1602 提供 5V 电压。如图 3-11 为 3.3V 转换电路,此电路主要给 ST32F103 微控制器提供能量,该图中的 AMS1117-3 为 3.3V 转换芯片。- 13 -图表 12 图 3-10 电源管理电路图表 13 图 3-11 3.3V 转换电路3.8 报警电路设计此次设计中采用报警电路如图 3-12,是为了更加快捷的确认目标温度,设置
34、一个正常体温数值,当超过正常数值时,蜂鸣器就会报警,这样就可以更加快速的判断目标有无发热。我认为采用报警的方式可以不用去看示数就能知道目标发热,这在防疫工作中会使工作更加便捷。图表 14 图 3-12 报警电路- 14 -3.9 本章总结本章主要描述了硬件方面的设计,采用主控芯片STM32F103作为微控制器; MLX90614 和 DS18B20 来做为测温电路,其中前者通过红外测量目标温度,后者测量环境温度,由于 MLX90614 是高度集成的,所以本系统中不需要信号调理电路;LCD1602作为显示模块,显示所需要的数据;并且根据不同器件不同的工作电压设计了 5V 和 3.3V 的观点电路
35、。下图图 3-13 为整体硬件原理图。图表 15 图 3-13 整体硬件原理图4 系统的软件设计要想实现红外测温系统的设计光有硬件是不够的,还必须有软件的辅助。软件的设计跟硬件一样也是分模块进行,分成各个模块便于程序的调试。写成各个子程序,然后在主程序中调用各个子程序,来实现各部分的功能。- 15 -4.1 主程序流程图的设计本系统的软件实现流程为:程序运行开始,整个系统都进行初始化,其中包括 STM32 单片机 I/O 端口的初始化、MLX90614 红外传感器初始化、DS18B20 温度传感器的初始化、LCD1602 液晶显示屏的初始化,运行按键扫描程序,检测是否有按键按下,如果没有按下则
36、回到上一步继续判断,如果有按键按下,则开始测温,如果接收到测温指令, 则开始红外测温,反之回到第一步继续判断,然后如果得到所需数据,则计算出温度并显示,反之继续红外测温。最终数据将在 LCD1602 上显示出来,以此循环。主程序流程图如图 4-1 所示。图表 16 图 4-1 主程序流程图- 16 -4.2 部分程序流程图的设计此次设计使用用模块化设计,主要有 LCD1602 显示模块、MLX90614 红外测温模块、DS18B20 温度检测模块。首先介绍的是 LCD1602 的流程图设计,其流程图如下图图 4-2 所示。图表 17 图 4-2 LCD 液晶显示模块然后介绍 MLX90614
37、红外传 感器,与 标准的SMBus接口支持 11条指令不 同, MLX90614只支持其中的两条。MLX90614的总线协议为:SD在每接收到8位数据之后, 都会反馈发送一个 ACK 或 NACK 信号。MD 在初始化一次通信时,首先会发送一个SA,只有能识别这个地址的SD会反馈一个 ACK 信号,期间,其他的 SD 无任何动作。- 17 -若 SD有反馈 NACK 信号,MD 需停止此次通信并且重新发送信号。在 PEC 码之后, 可能会接收到 NACK 信号,这意味着接收到的数据有误,此时,MD 需试着再发送数据。PEC 码的计算包含 START, REPEATED START, STOP,
38、 ACK 和 NACK。PEC 是CRC-8 的校验码,多项式为 X8+X2+X1+1。数据传输中,总是先传输字节的最高位。图4-3为SMBus数据包组成,图4-4为数据读取的格式。图表 18 图 4-3 SMBus 数据包组成图表 19 图 4-4 数据读取的格式MLX90614 的程序流程图如图 4-5,先对 MLX90614 进行初始化,然后微控制器STM32 按照 SMBus 协议对储存在 RAM 里的数据进行读取,最后通过相关公式转换成- 18 -摄氏温度的数据,公式如下:T() = RAM( DataH:DataL ) 0.02 273.15图表 20 图 4-5 MLX90614
39、 程序流程图最后介绍的是 DS18B20 的系统流程图设计,DS18B20 通讯协议包括初始化、读取、写入时序。当工作开始时首先要对其初始化,然后 MCU 执行写跳过 ROM 指令、写温度转换命令,再次对 DS18B20 进行初始化,MCU 重复上述过程,发送读取温度的命令, 最后 STM32 微控制器对得到的数据进行处理,得到所需数据。具体流程如图4-6 所示。- 19 -图表 21 图 4-6 DS18B20 程序流程图4.3 程序实现Keil uVision 5 编程软件,是一种基于 C 语言的开发软件,它的兼容性强,可以进行程序编写、编译、调试。除此之外,它生成的.hex 文件可以直接
40、导入到 Proteus 仿真中的单片机芯片中,以完成系统的仿真。使用 uVision 5 编程软件时,可以不分模块把所有函数写在一起,当然也可以分模块进行编写,只要在主函数里调用各个子程序的头文件,这样就能实现整体的程序编写。不过在本次设计中,采用的是分模块进行,采用这种方法是为了简化编程过程,同时也方便了程序的修改与编译过程。其程序编写页面如- 20 -图 4-5 所示。图表 22 图 4-5 程序编写页面本系统的主函数程序如下所示。#include stm32f10x.h #include delay.h #include usart.h #include LCD1602.h #include led.h #include adc.h #include timer.h #include #include double Temperature,OldTemperature; /测量温度#define AlarmTemperature 38/报警温度char *buff;unsigned char cnt;void CleanBuffer(void)unsigned char i; for(i=0;isizeof(buff);i+)buffi=0;- 21 -int mai