《基于STM32的红外测温系统设计(2).doc》由会员分享,可在线阅读,更多相关《基于STM32的红外测温系统设计(2).doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于STM32的红外测温系统设计作者(学号):闫啸目 录中文摘要- 2 -英文摘要- 3 -1 引 言- 4 -1.1 课题研究的背景及意义- 4 -1.2 红外测温技术和数字测温技术的发展现状- 5 -1.3红外测温的特点- 6 -2 方案的设计与论证- 6 -2.1 控制核心的选择与论证- 6 -2.2 红外测温传感器选择与论证- 7 -2.3 显示模块选择与论证- 7 -3 系统硬件的设计- 7 -3.1 STM32F103系列MCU简介- 8 -3.2 MLX90614测温模块设计- 10 -3.3 DS18B20测温模块设计- 11 -3.4 LCD1602液晶显示屏模块设计- 12
2、 -3.5 按键控制电路的设计- 13 -3.6复位电的路设计- 14 -3.7电源电路设计- 14 -3.8报警电路设计- 15 -3.9本章总结- 15 -4 系统的软件设计- 16 -4.1 程序流程图的设计- 16 -4.2 主要程序流程图的设计- 17 -4.3 程序实现- 21 -5 系统调试- 23 -5.1 系统仿真调试- 23 -5.2 系统硬件调试- 26 -6 总结- 28 -谢 辞- 29 -参 考 文 献- 30 -附录A 原理图- 31 -附录B 仿真图- 31 -附录C 程序- 32 - 37 -插图清单图3-1 系统硬件电路整体框图- 8 -图3-2 STM32
3、F103封装图- 9 -图3-3 STM32F103引脚图- 9 -图3-4 STM32F103主控电路- 10 -图3-5 MLX90614红外测温电路- 11 -图3-6 DS18B20温度检测模块硬件电路连接图- 12 -图3-7 LCD1602电路连接图- 13 -图3-8 按键控制模块硬件电路连接图- 13 -图3-9 复位电路- 14 -图3-10 电源管理电路- 15 -图3-11 3.3V转换电路- 15 -图3-12 报警电路- 15 -图3-13 整体硬件原理图- 16 -图4-1 程序流程图- 17 -图4-2 LCD液晶显示模块- 18 -图4-3 SMBus数据包组成
4、- 19 -图4-4 数据读取的格式- 19 -图4-5 MLX90614程序流程图- 20 -图4-6 DS18B20程序流程图- 21 -图4-5 程序编写页面- 22 -图5-1 Proteus8.8进入页面- 23 -图5-2 Proteus仿真软件操作页面- 24 -图5-3 基于STM32红外测温系统仿真图- 24 -图5-4 环境温度显示页面- 25 -图5-5 目标温度显示图- 25 -图5-6 报警温度- 25 -图5-7 蜂鸣器报警- 25 -图5-8 Altium Designer 16操作页面- 26 -图5-9 系统整体原理图- 27 -基于STM32的红外测温系统设
5、计摘 要: 随着我国经济的发展,社会的进步。人们对于测量温度的需求越来越多,因为一个人的体温能够直接反映出这个人的健康状态,所以体温的确定能够帮助医生来判断病情。如果要在人口密集的地方测量人体温度,那么传统的水银温度计就不能完成我们的需求,此时红外测温就能帮助我们快速的卫生的测得所需数据。因为红外测温对于我们人类来说是相当实用的,所以作此课题,不仅可以加深对于单片机的理解,还可以使我们所学的知识和实际相结合。通过这个课题可以提高自己的综合素质和动手能力。医用红外测温不同于工业方面,医用测温需要精确度高且轻便。热释电耳道式测温仪在1989以后才首次用于人体测温,但是在1991年后外国市场上已经出
6、现相应的产品,我国在此时该技术还处于起步阶段。为了满足医用测温的需求,红外测温技术得到了大力的发展,因为伴随着医疗技术的发展,传统测温的接触式测温,已经不能适应当今的测温,所以需要一种快速准确且不用触碰到人体的测温技术,此时红外测温就显得尤为重要。因为红外测温具有许多的优点,例如准确、快速、非接触等等,所以该技术已经被越来越多的医疗行业认可。本文通过基于STM32的红外测温系统设计,提供更好的建议,促进其发展。关键词:STM32;红外测温;设计Design of infrared temperature measurement system based on stm32Abstract: Wi
7、th the development of Chinas economy and society. People need more and more temperature measurement, because a persons temperature can directly reflect the health status of this person, so the determination of temperature can help doctors to judge the condition. Infrared measurement provides a fast,
8、 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 better. I
9、t is the distillation of learning content, especially the in-depth understanding of MCU control technology. It is of great significance for the cultivation of self comprehensive quality and engineering ability. Infrared thermometers are widely used in the industrial field, but due to the special req
10、uirements of medical infrared 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
11、 medical 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,
12、 fast, 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 provides better suggestions and promotes its development.Keywords: STM32; infrared temper
13、ature measurement system; design基于STM32的红外测温系统设计1 引 言1.1 课题研究的背景及意义如果要在人口密集的地方大规模的测量人体温度,那么选择水银体温计就不能满足我们的需求,因为水银体温计的测量速度慢测量一个人就需要5分钟,而且测量方式为腋下或口腔,这就决定了它不能在此时使用,但是红外测温就不同了,它就可以实现快速非接触测温,这对于我们在疫情防控中还是很有必要的,虽然我国在红外测温技术暂时落后于国外的发达国家,但是我们正在迎头赶上。因此红外非接触式测温就显得至关重要。随着人们生活水平的不断提高和生活需求水平的提高,人们越来越关注自己的健康,而体温、血
14、压、脉搏和呼吸是一种重要参数确定人体健康,在医疗领域中观察和测量这些参数,可以使得医生更好的判断一个人的身体健康。人只要活着就会有体温,而体温恰恰就是判断健康与否的重要依据,如果我们没有得到一个准确的体温数据,就不能很好的判断人体健康,这对于我们医学的发展是不利的,因此可以看出温度对于我们人类的重要性,就比如在现今的疫情防控中,如果我们不清楚人员的体温就无法判断这个人是否需要隔离,或者我们如果无法得到准确的体温就可能造成错误隔离。所以说温度对于我们人类来说是一个很重要的计量单位,那么如何更加高效卫生的测量温度就出现在了我们面前。传统的水银体温计在测量体温时不仅耗时长还不卫生,要知道在使用水银体
15、温计就需要与人体有一定的接触,所以在现今的新冠病毒防疫中完全起不到任何作用。那么这时候红外测温的优点就体现出来了,要知道红外测温是一种非接触式的测温,所以在疫情防控中可以起到很大的作用。在本次设计中,主要目的是为了通过红外测温来测量人体温度,此次采用的主控MCU是STM32F103,以此为核心来完成此次毕业设计。红外测温系统根据红外温度计的原理,通过选择关键器件并自动调节温度补偿,提高了红外温度计的精度。本文主要介绍了基于STM32的红外测温系统设计,分别为硬件部分、软件设计与系统调试。硬件部分主要是介绍系统整体设计,以及各个模块的介绍,并且是通过AD16绘图软件来完成此部分的设计。软件使用C
16、语言来编写,可以使编译速度快,运行速度高。系统调试部分,主要是通过Proteus仿真测试。红外测温技术的应用非常广阔,希望我国在这门技术上尽早赶上并赶超发达国家。1.2 红外测温技术和数字测温技术的发展现状经过了三代的发展,现在最新的数字式测温传感器对比以前的传感器多了下列变化:(1) 具有更好的稳定性和可靠性,最新式的数字传感器克服了信号失真和减弱的缺点,因此比前两代更加的可靠和稳定。(2) 安全性高,同时它的信号便于处理器的处理与储存。(3) 因为最新的传感器都是集成的,所以它的体积比较小,并且对于数据的处理更加快速,同时也使得电路的稳定性大大提高。但是数字式传感器也不是没有一丝缺点的,它
17、也是存在一些问题的,比如它对于处理器的要求就比较高,要想使用该传感器,那么就需要精度高且较零比较优秀的芯片。不过随着时代的进步、科技的发展,总有一天会出现更加优秀性能更好的数字式温度传感器,它也将为人们在不同的领域都做出贡献。物体的表层温度的高低关乎红外形式辐射的能量的大小,因此红外测温的工作原理就是采集物体反射出来的红外辐射能量,并且通过公式换算以此来得到物体的表层温度,通过这种方式就可以得到目标温度 1。从20世纪发展至今,红外传感器经历了多次的革新,也演变出了不同的样式的的传感器,但是殊途同归的是红外传感器现在越来越高度集成因此体积也越来越小,不过功能却不会因为体积的变小而减少,下列就是
18、红外测温的一些优点:a. 因为红外测温在测温时不需要与目标接触,所以可以保证安全卫生,避免传播细菌病毒,总之红外测温在防疫过程中的重要性是不言而喻的。b. 测量速度快且误差小,因为现在的红外传感器精度都比较高,所以在使用红外测量温度时的误差会相对较小,同时红外测温的速度也很快,基本上在一到两秒内就能完成整个测温过程。c. 由于现今的传感器都是高度集成的,所以体积就变得越来越小,因此就有了便于携带的优点,并且红外测温的使用面也是很广阔的,如果在一些危险的情况下需要测量温度,那么红外测温就提供了一个很好的选择。经管红外测温技术发展至今,已经有了几十年的历史了,技术已经基本成熟了,但是在技术上还是有
19、暂时没有解决的问题,这说明了红外测温技术还有待完善,如何避免或者解决外在因素对于红外测温的影响,这就是未来该技术的发展方向。1.3红外测温的特点通过接收人体红外线的能量,是红外测温判断人体温度的依据,通过红外传感器测测得的数据经过STM32处理,最后把处理所得的数据在液晶显示屏上显示。所以红外测温拥有如下的优点2(1) 水银测温计在测量人体温度时,是测量腋下和口腔的温度,这样的测温是需要与人体接触的,是不卫生的,但是红外测温就避免了这种不卫生的情况,它在测量时是不需要与人体接触的。(2) 红外测温的测量范围远远大于传统的测温方式,由此可见它的测量范围比较广,因此可以满足更多的测量情况,所以红外
20、测温的通用性更高。(3) 测温速度快,对比传统水银测温计,红外测温具有更快的测量速度,满足大量测温的需求。(4) 准确度高,具有很高的精度,可以满足我们对于测量体温的需求。(5) 体积小,便于携带。2 方案的设计与论证2.1 控制核心的选择与论证方案一:采用80C51作为MCU,其基本配置为128B RAM和4KB ROM存储空间,单一+5V供电,并且具有8位CPU;但是不具备自编程能力,因此在修改程序时多了一些麻烦,需要人力因素帮助,这样就有可能造成其结构的损坏。方案二:采用STM32F103作为本系统的控制核心,STM32以嵌入式 ARM Cortex-M3 为内核,目的是为了降低成本和得
21、到一个较高的性能。其中有Flash存储器是512KB的,并且集成了 3 个 12 bit 的 ADC,1 个 2 通道 12 bit DAC,还有十一个定时器。所以采用它作为主控MCU可以更好的进行数据处理 3。单片机STM32F103单片机具有数据处理功能,内部具有ADC模块不需要外接A/D转换模块,因此简化了电路图,故使用方案二作为主控MCU。2.2 红外测温传感器选择与论证方案一:使用红外温度传感器IRTR,但是这个系列的红外传感器是一种集成的多用于工业方面的传感器。方案二:使用热电堆红外传感器MLX90614,该传感器是高度集成的,多用于医用红外测温,为了提高测量精度MLX90614内
22、部集成了17位的ADC和DSP处理单元。IRTR红外温度传感器多用于工业方面,因此不选用方案一,由于MLX90614具有较高的灵敏度,以及较小的热惯性,所以适用于医学测温,故选方案二。2.3 显示模块选择与论证方案一:使用LED数码管。数码管显示的内容较为简单,一般多用于显示数字,不过因为其价格低廉,使用方法简单,因此在市场上也有较大的需求。方案二:以LCD1602来设计显示模块。LCD1602是液晶显示屏,它可以显示两行数据,每行16个字符,采用此显示屏可以显示更多的信息,并且电路连接简单可以读或者写。方案一中数码管,电路复杂显示的信息也没有方案二多,但是方案二中液晶显示屏显示信息量大,而且
23、更加美观,同时它的功耗和尺寸都很小。在本系统中需要的显示的信息量要稍大一些,而且要更加直接,故而选择方案二LCD1602液晶显示屏显示。3 系统硬件的设计本课题拟以STM32单片机为控制核心,由红外线传感器、电源、温度传感器、单片机、LCD显示模块等组成,数字红外传感器将物体红外辐射转换成数字信号,输入到STM32控制器;环境温度传感器测量环境温度,并在STM32控制器里对红外测温进行温度补偿,提高测温精度。经STM32控制器运算后,传感器信号在液晶屏上显示出物体温度读数,并伴随有蜂鸣提示,实现对温度较精确测量。如图3-1所示。图3-1 系统硬件电路整体框图3.1 STM32F103系列MCU
24、简介STM32系列MCU,是32位以ARM Cortex-M3为核心的处理器,有以下几个系列:STM32L超低耗型,STM32F105和STM32F107互联型,STM32F103增强型,STM32F102 USB基本型,STM32F101基本型,STM32F100超值型4。在本次设计中,采用的是STM32F103作为主控制模块。32位ARM Cortex-M3 RISC内核是STM32F103增强型的核心,它具有优秀的中断延迟、尺寸小、充足的硬件配置等优点,嵌入式系统完美的解决方案就是Cortex-M3处理器 5。该系列单片机拥有强大的配置,16位的定时器和12位的ADC各有3个,并且还拥有
25、大量的通用I/O口,它还具备同步和异步的串行接口,USB接口等通讯接口 6。拥有18MHZ的I/O口翻转速度。图3-2是STM32F103封装图。图3-3是STM32F103的引脚图。图3-2 STM32F103封装图图3-3 STM32F103引脚图下图,图3-4为STM32F103主控电路。该芯片配置资源十分丰富,有足够的I/O端口,还有内置的定时器。因此可以用简单的电路来实现复杂的功能。图3-4 STM32F103主控电路3.2 MLX90614测温模块设计因为本次课题是红外测温系统的设计,并且主要是用于测量人体温度,那么就采用医用MLX90614红外传感器作为非接触测温的测温模块。此红
26、外传感器共有四个引脚,各个管脚的名称及功能如表3-1所示,。为了使SMBus线不会成为负载,在 SDA/SCL和VCC之间内置有箝位二极管,目的是提供电源给传感器的器件,这样该线就不会成为负载端7。图3-5就是MLX90614的电路连接图,STM32F103的PB1管脚与传感器的SCL管脚相连,单片机PB0管脚与传感器SDA管脚相连,如图所示,这两个管脚都连接了一个10千欧的电阻,这两个电阻是上拉电阻,可以使管脚的信号更加的稳定同时也可以使管脚的驱动能力更强。MLX90614的工作原理很简单,就是通过接收物体反射回来的红外辐射,经过公式把所得数据换算成温度参数,最后将数据传给单片机。公式如下:
27、T() = RAM( DataH:DataL ) 0.02 273.15图3-5 MLX90614红外测温电路表3-1 MLX90614引脚功能介绍引脚名称作用VSSVDDPWM/SDASCL/VZ接地端,接传感器的金属壳电源接入端数字输入与输出。在SMBus模式下,默认为集电极开路状态,普通情况下,读取目标的温度。双线通信协议中的串行时钟输入。3.3 DS18B20测温模块设计DS18B20传感器能够直接读出得到所要测量的目标温度。它可以测量-55125之间的温度,共有3个外部引脚。微控制器的PB11端口与传感器的DQ端口相连,表3-2为DS18B20各个管脚及功能。DS18B20温度检测模
28、块硬件电路连接图如图3-6所示。表3-2 DS18B20引脚及功能引脚的名称引脚功能介绍GNDDQVCC作接地端数据输入/输出端口连接电源,并且此引脚需要接地下面来简单介绍DS18B20的工作原理,此传感器可以分为单总线和多总线工作方式,在本次设计中采用的是单总线,因为只需要此传感器测量环境温度,不需要复杂的多总线。DS18B20工作时会产生脉冲信号,使内部的晶振震荡,然后通过内部计数器进行计数,当内部的计数门打开时,对其低温系数振荡器产生的脉冲进行计数,这样就得到了所要测量的温度8。图3-6 DS18B20温度检测模块硬件电路连接图3.4 LCD1602液晶显示屏模块设计LCD1602液晶显
29、示屏最多可以显示32个字符分两行显示,在本次设计中完全够用。在显示字符数量不多时,LCD1602 更受各种仪器和低功耗系统的欢迎和广泛应用,因为它具有更低的能耗、更小的尺寸、更多的显示内容。其中EN、RS、RW是该显示屏的控制引脚。EN为使能端,通过使能信号控制,在低电平的条件下工作;RS为数据或者命令的选择端;RW为读写控制端,控制LCD1602的读或者写。本次设计中只用到了该显示屏读取数据的能力,即只需要其显示所需数据9。显示屏的D0到D7端口为Date I/O口,因此需要和STM32的I/O口相连,为了使管脚有一个稳定的电平需要连接一个10K的上拉电阻;三个控制管脚EN与STM32的PD
30、3相连,RS与单片机PD1相连,RW与PD2相连;给背光的阳极BLA以及阴极BLK分别提供一个高电平一个低电平,这样就可以使背光灯点亮。LCD1602电路连接图如图3-7所示。图3-7 LCD1602电路连接图3.5 按键控制电路的设计该控制电路由三个按键构成,其中每个按键的一端串联并接地,按键的另一端分别与STM32F103微控制器的PC13、PC1、PA0端口相连,按键控制模块硬件电路连接图如图3-8所示。图3-8 按键控制模块硬件电路连接图按键电路的工作原理简单来说就是通过改变电平的高低,来向单片机传输命令,以实现控制的目的。现在,来简单介绍一下这几个按键的作用。首先,KEY1和KEY2
31、可以设置时间信息,其中按键1是加键,按键2是减键;只有当按下按键2时,才会开始红外测温,在按下之前,显示屏显示的是环境温度。红外测温开始后,按下按键3单片机会接收到测温结束的命令,此时红外测温结束,并在显示屏上显示目标温度。按键3还是设置时间信息时的选择键。3.6复位电路的设计STM32微控制器的复位条件就是在低电平的情况下10。所以使用低电平复位的复位电路,因此当按下按键时与单片机相连的引脚会向单片机传输一段时间的低电平,以此来实现STM32F103的复位,如图3-9。图3-9 复位电路3.7电源电路设计整个系统的能量都是由电源提供的,可以说电源模块就是整个系统的心脏。在本次设计中,因为ST
32、M32F103所需的工作电压为3.3V,所以需要5V和3.3V分别提供能量。图3-10就是提供5V电压的模块,主要是给LCD1602提供5V电压。如图3-11为3.3V转换电路,此电路主要给ST32F103微控制器提供能量,该图中的AMS1117-3为3.3V转换芯片。图3-10 电源管理电路图3-11 3.3V转换电路3.8报警电路设计此次设计中采用报警电路如图3-12,是为了更加快捷的确认目标温度,设置一个正常体温数值,当超过正常数值时,蜂鸣器就会报警,这样就可以更加快速的判断目标有无发热。我认为采用报警的方式可以不用去看示数就能知道目标发热,这在防疫工作中会使工作更加便捷。报警电路的工作
33、原理很简单,就是当超过设置温度时,与单片机相连的引脚会收到来自STM32的命令电平发生变化,因此开始报警。图3-12 报警电路3.9本章总结本章主要描述了硬件方面的设计,采用主控芯片STM32F103作为微控制器;MLX90614和DS18B20作为测温电路,其中前者通过红外测量目标温度,后者测量环境温度,由于MLX90614是高度集成的,所以本系统中不需要信号调理电路;LCD1602作为显示模块,显示所需要的数据;并且根据不同器件不同的工作电压设计了5V和3.3V的观点电路。下图,图3-13为整体硬件原理图。图3-13 整体硬件原理图4 系统的软件设计要想实现红外测温系统的设计光有硬件是不够
34、的,还必须有软件的辅助。软件的设计跟硬件一样也是分模块进行,分成各个模块便于程序的调试。写成各个子程序,然后在通过头文件在主函数中进行调用,这样就可以通过主函数来实现所有的程序。4.1 程序流程图的设计本次设计的程序流程过程为:程序开始运行,整个系统都进行初始化,其中包括STM32单片机I/O端口的初始化、DS18B20传感器初始化、MLX90614红外传感器初始化、LCD1602初始化,在所有元件初始化之后,就开始对按键进行判断,执行一个按键扫描的程序,若按键没有按下,就会返回上一步继续判断,只有按键按下,才会开始测温,如果接收到测温指令,则开始红外测温,反之回到第一步继续判断,然后如果得到
35、所需数据,则计算出温度并显示,反之继续红外测温。最终数据将在LCD1602上显示出来,由此循环。图4-1就是本次设计的程序流程图。图4-1 程序流程图4.2 主要程序流程图的设计在本次设计中所采用的是分布分模块设计,主要有LCD1602显示模块、MLX90614红外测温模块、DS18B20温度检测模块。首先介绍的是LCD1602的流程图设计,其流程图如下图图4-2所示。图4-2 LCD液晶显示模块然后介绍MLX90614红外传感器,与标准的SMBus接口支持11条指令不同,MLX90614只支持其中的两条。MLX90614的总线协议为:每当反馈发送出一个 ACK 或 NACK 信号就标志着有8
36、位数据传输到了SD。MD 第一次通信时,SA就会被发出去,若想得到反馈信号ACK,必须是可以识别此地址的SD,如果不能识别那么该SD就没有反应。在一次通信中MD停止通信且重新工作, NACK 信号就会从SD发出。如果接收到 NACK 信号在 PEC 码之后,那么说明此时得到的数据可能存在错误,这时就需要MD 重新发送数据。START 、STOP、REPEATED START、NACK和ACK都属于PEC 码的计算。CRC-8的校验码是PEC,X8+X2+X1+1是该校验码的多项式。字节的最高位在数据传输时一直是优先传送的11。图4-3为SMBus数据包组成,图4-4为数据读取的格式。图4-3
37、SMBus数据包组成图4-4 数据读取的格式MLX90614的程序流程图如图4-5,先对MLX90614进行初始化,然后微控制器STM32按照SMBus协议对储存在RAM里的数据进行读取,最后通过相关公式转换成摄氏温度的数据,公式如下:T() = RAM( DataH:DataL ) 0.02 273.15图4-5 MLX90614程序流程图最后介绍的是DS18B20的系统流程图设计,DS18B20通讯协议包括初始化、读取、写入时序。当工作开始时首先要对其初始化,然后MCU执行写跳过ROM指令、写温度转换命令,再次对DS18B20进行初始化,MCU重复上述过程,发送读取温度的命令,最后STM3
38、2微控制器对得到的数据进行处理,得到所需数据。具体流程如图4-6所示。图4-6 DS18B20程序流程图4.3 程序实现Keil uVision 5编程软件,该软件的开发语言主要是C语言,同时此编程软件具有很强的兼容性,其它编程软件所具有的功能它全都具有,不仅如此它还能生成仿真所需的.hex文件以完成系统的仿真。使用uVision 5编程软件时,可以不分模块把所有函数写在一起,当然也可以分模块进行编写,只要在主函数里调用各个子程序的头文件,这样就能实现整体的程序编写。不过在本次设计中,采用的是分模块进行,采用这种方法是为了简化编程过程,同时也方便了程序的修改与编译过程。其程序编写页面如图4-5
39、所示。图4-5 程序编写页面5 系统调试5.1 系统仿真调试本次仿真使用的是单片机仿真软件Proteus,这款软件在硬件设计领域深受推崇。作为一种优秀的仿真软件,Proteus对单片机的设计提供了依据和验证了可行性。Proteus具有强大的功能,它是依靠编程软件生成的.hex文件来进行仿真的,因为.hex文件是通过C语言生成的,所以使得Proteus在处理字符串上有巨大的优势,这种优势使仿真过程变得更加简单方便。Proteus之所以能够被广泛使用,就是因为它强大的功能以及便捷的操作方式12。总之因为该仿真软件的实际应用性较高,并且为了满足日益复杂的仿真Proteus官方对该软件也会进行适应性升
40、级。不同版本的软件可以实现的仿真就会有所不同,高版本的Proteus仿真软件就可以完成更加复杂的仿真过程。由于本次设计使用的是STM32作为微控制器,因此低版本的Proteus仿真软件已经不能满足此次仿真的需求,通过查询资料发现,proteus8.8具有仿真STM32 的能力,特此安装了Proteus8.8。由于Proteus8.8没有红外测温元器件,所以在此次仿真中采用电位器代替仿真。Proteus8.8进入页面图如图5-1所示。图5-1 Proteus8.8进入页面仿真的步骤为首先建立一个工程,打开仿真页面,然后利用元件库里的元件绘制仿真电路图,最后导入通过uVision 5编译生成的.h
41、ex文件到STM32F103单片机中,实现所需功能。Proteus8.8仿真软件的操作页面如图5-2所示。图5-2 Proteus仿真软件操作页面下列就是使用Proteus8.8对整个系统进行仿真实验的简要介绍。当系统正常工作时,LCD1602第一行显示时间和温度,第二行显示日期年、月、日如图5-3所示。图5-3 基于STM32红外测温系统仿真图(1) 环境温度仿真在按下红外测温开始按键前,LCD1602显示的是环境温度和时间日期,此时就是DS18B20将所测得的环境温度显示到液晶显示屏上,图5-4即为所测得的环境温度。 图5-4 环境温度显示页面 (2) 目标温度仿真当按下测温开始按键时,单
42、片机接收到红外测温开始命令即开始红外测温,此时就是MLX90614在进行工作,将得到的目标温度显示到LCD1602上如图5-5所示。图5-5 目标温度显示图(3)报警温度实现在本次仿真中设置了报警电路,目的是更快的区分发热人群,因此本次内置报警温度拟定为38度,当测量温度超过38度时,蜂鸣器就会报警,该功能已验证,在超过设定温度时电脑音响确实发出报警。下图5-6为报警时的温度图5-7即为蜂鸣器。 图5-6 报警温度 图5-7 蜂鸣器报警仿真的过程就是验证程序可行性的过程,下列为在进行软件仿真调试时遇到的一些问题:a. LCD1602在显示时,有时会出现一串字符0。因为是可以正常显示的,所以说明
43、端口没有定义错误。之后重新检查程序,发现程序并没有出现问题。在仿真时,缓慢的点击电位器按钮,发现显示正常,在连续快速点击下才会出现问题,通过查询发现STM32在仿真时不能快速的输入指令,其仿真速度较缓慢。在慢慢仿真后,问题消失。b.按键方面,在硬件设计时没有上拉电阻,正常情况下不需要上拉电阻,但是在仿真时在没有上拉电阻的情况下按键是工作不正常的,检查程序时并未发现明显错误,在添加上拉电阻后,按键正常工作,可能在仿真中按键需要一个固定电平来实现对单片机的控制。c.在第一次仿真时,温度超过38度后,发现蜂鸣器没有报警,经检查电路连接没有问题,再次检查程序时发现,端口设定错误,在改正后,再次仿真测试
44、,蜂鸣器可以正常报警,问题解决。5.2 系统硬件调试所需硬件部分已经基本确定,并且已经经过了Proteus的仿真,同时软件也已经设计完成,硬件部分的设计将会使用Altium Designer 16画图软件来完成。Altium Designer 16作为常用的电子设计软件,它可以完成原理图的和PCB板的绘制,在本次设计中的硬件部分设计就是使用这个绘图软件,主要用它来完成原理图的绘制13。其操作界面如图5-8所示。图5-8 Altium Designer 16操作页面在本次设计中,有些元件在AD16自带的元件库里并没有相应的元件,所以此时就需要通过AD制图软件绘制出相应的元件,方法很简单只要建立一
45、个元件库把所需的元件绘制出来,然后在原理图绘制页面调用相应的元件,这样就可以完成绘制了。最后只需要按照设计好的电路,完成原理图的绘制。系统的整体原理图如图5-9所示。图5-9 系统整体原理图绘制好前面设计好的STM32F103主控制模块、MLX90614红外测温电路、DS18B20温度检测模块、按键控制模块、报警电路、LCD1602显示模块、复位电路后,发现主控制模块没有正常工作,整个系统无法正常工作形成回路。通过对资料的查询,发现在本次设计中需要不同的工作电压,比如STM32是在3.3V电压下工作的,而LCD1602则是5V的工作电压。因此又引入了3.3V转换电路,以达到为不同模块提供不同工
46、作电压的目的。本次设计中按键电路是不需要上拉电阻的,但是LCD1602则需要一个10千欧的上拉电阻。MLX90614本身自带温度补偿,且测量精度高,所以是本次设计红外测温传感器的首要选择,本次设计使用DS18B20是为了防止环境温度过高对红外测温产生影响,因为STM32系列单片机具有良好的数据处理功能,所以可以通过环境温度与目标温度的对比实现更精确的测温。6 总结为了实现本次的毕业设计,我搜集了大量的文献与资料,通过这些资料了解到红外测温的优点,与实现所需的基本器件,并设计了几个方案,最终选择了STM32作为主控芯片,为此还查阅了关于STM32的资料,在此次设计中采用的是MLX90614医用红
47、外测温模块,通过查阅其数据手册了解其测量精度高且自带温度补偿,所以选择了该传感器作为红外测温模块,本次设计到此已经基本完成,硬件部分和软件部分的设计已基本完成。本次设计主要实现的功能就是在按下红外测温开始按键前整个系统测量的是环境温度,当接收到红外测温开始指令时,此时才开始红外测温,主要实现了非接触式的红外测温,同时整个系统也能显示出时间和日期,以及当前环境温度。由于传统的水银体温计测量时间太长,测量人数较多的话同一个体温计需要接触的人就会比较多,这样又出现了一个问题,那就是不卫生,这在疾病的防控中是不利的,这种接触式测量方式会提高疾病传播的风险,这时红外测温的优点就能很好的体现出来,红外测温速度快而且不需要与被测目标接触,这就能减少疾病传播的可能性,红外测温为我们在疫情的防控中提供了一种有效的手段,在人口密集的地方传统体温计显然不能满足测温需求,但是