基于单片机的室内甲醛检测仪的设计与实现

摘 要

甲醛被世界卫生组织确定为致癌和致畸形物质,对人的体危害非常巨大。甲醛能与人体中的蛋白质相结合,一旦
吸入过度的甲醛后,人体的呼吸道会受到严重的刺激,还会出现身体水肿、眼睛刺痛、头部疼痛等等不适感。如果
让我们的皮肤直接接触甲醛,就可能引起皮炎、色斑、坏死等严重后果。目前常见的检测甲醛检测方法,例如:酚
试剂比色法在采用目视比色法是准确度不够高,产生的误差会比较大,气相色谱法则是无法直接给出定性分析结果,
于是我们就设计了一个便携式的甲醛探测器。
  本设计实现了以STM32F103C8T6微处理器为核心的甲醛检测,采用电化学方法对空气中CH2O进行检测,经过ADC
模数转换,单片机获取相应的数值,然后通过程序进行换算,最终将测量到的甲醛含量显示在 OLED屏幕上。当甲醛
含量超出规定范围时,则会有蜂鸣器进行报警提醒。
关键词:STM32F103C8T6单片机;甲醛;电化学

第一章 绪 论

1.1 研究的背景与意义
  在居室装饰逐渐发达,并形成一个新时尚之际,伴随出现的是城市家庭居室的污染状况更加严重。美国的专家对
此开展了调查,研究结果表明,居家卧室污染程度要比外界高出二五倍。在特殊的情形下,甚至有可能超过一百倍。在
室内检测中出现的约五百种挥发性的有机物质中,其中就有大约二十余种致癌物质和二百余种有害病毒,一些有害毒
气的含量甚至是在户外的十倍甚至更多。因此室内污染已经成为了人们身体健康和环境安全的主要危险原因,据不完
全统计,在室内有将近一半的有害气体在危害人类身心健康。空气污染造成的各种疾病中,35.7%是呼吸道感染,22%
是慢性肺病,15%是气管炎,支气管炎,肺癌。中国每年因室内空气污染而造成的超自然死亡人数达到1110万,超过
紧急情况的430万人,造成1070亿美元的直接或间接经济损失。根据 WHO的一份研究,68%的人群因为室内空气污染
从而患上疾病,已经成为“隐形杀手”,严重危害着人们的身体健康和心理健康。室内空气污染已经成为当今世界
各国普遍关心的问题。
  甲醛是室内空气中主要的污染物之一,它的来源非常广泛,不仅对人体有着严重的危害,而且会在室内环境中
长时间的排放。甲醛是一种没有颜色,却有着刺鼻味道的一种气体。易溶于水、醇和醚。在正常温度下,甲醛是气
态,一般以水溶液形式呈现。将37%的甲醛与水调和的溶液我们称为福尔马林,在医学上和一些科学研究部门,这种
溶液会用于一些物品的防腐保存。这个溶液的沸点为19.5℃,所以在正常的温度时就很容易挥发,温度越高,甲醛
的挥发速度也会相应的越来越快。甲醛在我国有毒化学品优先控制名单中高居第二位。甲醛还能与人体中的蛋白质
相结合,一旦吸入过度的甲醛后,人体的呼吸道会受到严重的刺激,还会出现身体水肿、眼睛刺痛、头部疼痛等等
不适感。如果让我们的皮肤直接接触甲醛,就可能引起皮炎、色斑、坏死等严重后果。长时间的吸入微量甲醛,也
会出现慢性中毒、粘膜充血、指甲角化和脆弱等一系列症状。整个身体体现的症状有头痛、没有力气、心悸、失眠
多梦、体重骤减以及精神混乱等。
2004年,北京环境监控中心对1400个住户进行了调查,发现有60%的住户在装修之后,室内空气中的甲醛浓度超过了
标准值的10倍。北京儿童医院的调查显示,90%的孩子都是在最近半年内进行了装修后患病。哈尔滨的血友病患者
中,有85%的人得了白血病。哈尔滨市一医院有一名患有白血病的孩子,她只有18天大。我国每年新增白血病患者约
为40,000-50,000,其中儿童大约占了50%-85%。
  室内空气中的甲醛污染主要来自于:1、家庭装修中使用的人造板有:纤维板、胶合板、中密度纤维板、刨花板
等。2、软装时的家具,包括厨房用具,床上用品,地毯,沙发,窗帘等。3、各类装修材料中含有甲醛,特别是白
色乳液、油漆等,经检测都是不合格的。4、壁纸、墙布等为了美观而使用的。
  甲醛可以从人造板的粘合剂(315年的释放循环),各种装饰材料和一些含有甲醛物质如香烟和一些有机材料的
燃料中释放出来。1995 年国际癌症研究机构(IRAC)将甲醛确定为致癌物质 , 世界卫生组织则将室内空气污染列为
人类健康的十大威胁之一。
1.2 课题研究现状
  生活质量正在一步步地提高,人们对室内污染问题的严重性也有了一定的认识,并开始关注起来。在1970年左目前,“室内污染比室外污染严重”"化学污染是污染之根本"的观念已经获得了更多的人的认可。而人类在努力遏
制户外污染的同时,也开始对室内污染采取了相应的保护措施,以尽量地减少环境污染,从而维护身体健康。
目前,甲醛的测定方法多种多样,其中最常用的有苯酚比色法、气相色谱法和甲醛测定法。
酚试剂法,顾名思义,就是用酚类物质,用肉眼测定。甲醛和酚类物质发生反应,形成嗪,并与酸性的苯酚反应,
形成一种氧化剂。这时,我们可以用标准色板和氧化剂的颜色对比,得到相应的结果。
  气相色谱法是将甲醛在酸性环境下吸附到6201担体上,形成一种稳定的物质,即甲醛。首先用二氧化碳洗脱,
然后用 OV色谱柱进行分离,然后用氢气火焰电离检测仪进行分析,最后用残留时间对甲醛进行定性,用峰高对甲醛
进行定量。
  甲醛检测器的工作条件是可以对扩散速率进行控制。在测量的初期,首先收集甲醛气体分子,然后用电化学感
应电极将收集到的甲醛气体分子吸入,然后在灵敏的电极电势下,甲醛气体分子会在感应电势下发生电化学反应,
在反应中会产生电流,而甲醛气体的浓度和电流是成比例的,由测量仪将其转化为电压,再将其传输至仪器的输出
端,最终由数据处理部进行输出和存储。
  苯酚试剂比色法的精确性不足,产生的误差会比较大。气相色谱法则是无法直接给出定性分析结果。所以在检
测甲醛方面,测量仪器更具优势,这也是设计家庭智能除甲醛系统的意义所在。
1.3 课题研究内容
(1)根据课题所设计的内容查找相关的文献与资料,了解一下甲醛传感器的类型以及现在所研发的除甲醛系统。
(2)根据相关的文献和资料进行设计。
(3)完成系统的硬件部分,完成单片机、甲醛传感器、显示器等一些主要模块具体型号的选择。
(4)使用Altium Designer软件来绘制所设计的系统的原理图。
(5)完成系统的软件开发,并使用Keil软件进行程序设计。
(6)对该系统进行系统调试。

第二章 系统设计

2.1 系统总概述
本文的研究内容包括甲醛检测、控制程序、超标报警、数据显示等。
  本控制系统的核心采用的是STM32单片机,目的是便于携带和测量甲醛。其主要功能包括:数据处理,启动检
测,超标报警,键盘检测,手动休眠。该系统设计采用了功能模块化设计,总体方案设计、硬件设计、软件设计三
个方面。
2.2 总体方案设计
    室内甲醛污染对人体的危害很大,目前常用的检测方法为化学分析的方法,目前常用的测定方法有:比色
仪、分光光度计、化学滴定法、气相色谱法、液相色谱法等。然而,这种检测方法耗时耗力、费用高、自动化程度
低、流程复杂、大部分工序都靠人工进行,很难在现场进行实时监控,随着传感技术和计算机技术的不断发展,目
前已经出现了以单片机为核心的便携式甲醛测试仪,其测试范围、分辨率、精度、稳定性等指标均接近国家标准。
因此,我们可以选用一种基于电化学原理的甲醛传感器,利用空气中的甲醛作为触媒,对其进行氧化,使其与甲醛
的浓度成正比,如果使用单片机的串口来读取甲醛,那么就会对人体的健康造成很大的危害。开发一种可用于民用
的甲醛检测装置,已引起广泛的关注。
因此,研制出一种既能适应日常生活需求又便于携带的便携式甲醛检测装置,就成为当务之急。根据当前的情况,
本系统的设计遵循了体积小、重量轻、性价格比高的原则。
2.3 硬件部分
硬件方面,主要包括: MCU,蜂鸣器, LED指示灯, OLED,外围扩展数据 RAM等;主要的硬件电路设计,数据采
集,显示电路设计,键盘接口电路的设计。
2.4 软件部分
软件设计部分主要有:选择语言,编写程序软件选择,设计主程序/子程序的流程图,以及功能模块程序的编制。
2.5 系统的总设计框图
  启动甲醛检测仪,调整好甲醛浓度报警上限,甲醛气体接触到传感器后,传感器获得电压信号,然后单片机通
过I2C总线,获取相对应的电压的数值,经过电化学反应产生一个电流,甲醛气体浓度与此电流成正比,测量仪会将
其转变为电压值,经过单片机处理后,在显示器上显示检测到的数值。接着判断甲醛浓度是否超标,若甲醛浓度超
过设定值,则蜂鸣器报警开启。如图2.1。
图2.1系统总设计框图
在这里插入图片描述

第三章 硬件设计

3.1 硬件设计主电路图
一个系统或是一个装置的组成离不开最基本的软件和硬件的配套工作,在本次设计的系统中,硬件系统的主要构成
部分有:整个装置的供电系统、显示电路、甲醛检测电路、 报警电路和最重要的控制单元STM32微控制器。如图3.1
所。
图3.1 主电路图
在这里插入图片描述

3.2单片机的选择与简介
  本文采用的是STM32F103C8T6单片机作为本系统的主要控制芯片。这款单片机的性能比51型号的单片机要好很
多,不仅运行的速度比51型的单片机要快得多,而且自身还有两个 AD转换器,可以让我们在设计烟雾和 CO的时
候,不用再用 ADC来控制,非常的方便。STM32具有很强的通讯和控制能力,这是51微处理器所不能相比的。由于51
单片机仅有一个串口,所以对比有5个串口的32 单片机来说,功能上略显不足,因此对于一些需要用到串口的模块
来说,并不需要像CD4052这样的双端口模块来实现,32 MCU可以实现多种不同的时钟模数,因此在功率要求很高的
产品中占据了一席之地。STM32C8T6系列产品具有以下特点:
1、STM32C8T6系列采用了低负荷模式,并且在晶体振荡部件中使用了RTC,相比于传统的圆筒型晶体振荡器,价格低
廉。
2、有48个引脚。
3、72 MHZ的操作频率。
4、单片机采用常规计时器3个,先进计时器1个。
5、采用2个2比特/16路 ADC ADC。
6、采用3.3伏电压稳定晶片,最大输出功率为300 MA。
7、支持ST-LINK和 JTAG的调试。存储资源是64 kbyte FLASH和20 byte Sram。STM32实物图如图3.2所示:
图3.2 STM32F103C8T6 实物图
Fig 3.2. STM32F103C8T6 physical drawing
  1、电源指示灯 LED (PWR一般是红色):亮亮的电源指示灯表明 MCU工作正常,而暗淡或闪烁则表明该 MCU有
问题。
2、用户 LED (PC13):该功能的应用使得我们可以在单片机上进行一些简单的测试,比如 MCU的工作状况等,以便
于新手的测试。
3、单片机采用了跳闸的方法,可以实现stm32的三种程序。
4、8 M晶体振荡器:主要是在72 MHZ的单片机系统中使用。
5、32.768 KHz晶振:内置 RTC,无需专用时钟芯片进行定时处理。
通过以下表格来认识单片机各个引脚的功能。如图3.3,3.4。
FT:表示的是耐压值为5v。
串口:就是串口通信功能,比如蓝牙,GSM ,GPS,PM2.5,甲醛等。
IIC:通信的一种方式,比如BMP180,SHT20。
SPI:通信的一种方式,比如RC522射频卡,语音识别LD3320
ADC:模数转换,比如烟雾,酒精
TIM:定时器
DAC:数模转换
SWD:程序下载口
图3.3 Stm32单片机型号的引脚定义
Fig 3.3 Pin definition of the S t m 32 MCU model
  上面这张表格是stm32单片机型号的引脚定义,不同型号的单片机无论是多少引脚的,无论是stm32f103c8t6还
是stm32其他的型号都适用这个表格,只要找到和表格对应的引脚就可以确定这个引脚的作用。

本系统中芯片的主要管脚说明:
NRTS:连接复位电路
OSC_IN、VSC_OUT:连接晶振电路
B12、B13:连接按键电路,低电平0有效(说明按键按下)
A9、A10:连接甲醛电路
B6、B7:连接OLED显示电路
B11:报警电路,低电平0有效(说明按键按下)
B1、B0:单片机的内部AD模数转换引脚
  单片机的io口有很多复用的功能,可以当正常引脚也可以当特殊引脚来使用。除了串口,ADC是特殊引脚其他的
我们都可以直接用,程序里面定义就可以了,无论什么SPI、IIC、TIM都能应用。
3.3晶振电路
  晶振存在于每个单片机系统里,它的全名叫做晶体震荡器。晶振顾名思义,就是晶体的振动,它的原理和石英
表的原理几乎一样,石英也算晶体,在物理实验中发现,晶体的振动和时钟频率有着相关,可以产生稳定的振动,
我们将这一物理特性运用到单片机中,就可以驱动单片机,来实现一系列的指令。晶振就像是一台单片机的心脏,
它的工作速度和它的时钟频率成正比。为了保持各装置之间的协调同步运行,尽量采取一个晶振一个系统的原则。

3.4复位电路
3.4.1复位电路的作用
  复位电路的功能是使线路回到初始状态。就像我们日常使用的计算器一样,重置电路就像是一台计算器的归零
键,在输入错误的数据或者做了一次运算之后,它就会重新恢复到原来的位置,然后继续计算。
  当CPU进行多次计算,或者计算已经完成要进行下一步计算时,我们要确保下一步计算的准确,不受上一步计算
的影响。在这种情况下,我们要对CPU进行“清零”,当进行下一步运算时和计算器一样重新计算,而复位电路就是
最关键的存在。复位电路的存在,能够很有效的避免CPU计算的混淆,从而发出错误的指令,影响系统的执行,同时
还能够提高电磁的兼容性能。

3.4.2复位电路原理
  复位电路的原理很简单,复位电路里将电容与电阻串联起来,当复位开关按下时,复位电路通电,而电容的电
压不能直接突变到与电阻两端一样的电压,电容需要一定时间的充电,电流不能直接传入单片机,复位开始。当电
容充电完毕,该电阻器的单侧电压是稳定的,并且该电容器的两端的电压都是0的。所谓的“重置”,就是利用了电
容不能突然改变的原理,对电路进行充电器放电,从而达到重置的目的。复位电路的起动方式因电路的不同而不
同。主要有两种:一种是一种复位,它可以在一加电的情况下进行复位。另一种是上电和按键都能进行的复位,在
断电后,单片机能自动复位,并根据需要手动复位。
  以上是重置回路的工作原理及两种操作模式,在本次课题中我采用了两种复位方式相结合的方法。同样的道
理,在不使用人工复位(也就是:不按下复位开关)时,系统会自动地进行上电复位,并对该电容器进行充电,并
利用该电容器的物理性质,使得它的电压和 RST插头一样。当电容开始充电时, RST插头上的电压会逐步下降,设
定适当的充放电常数,使 RST上的高电平维持超过2个循环,使STM32的内部重置。当按下开关时,是手工重置电
路,由 RST接口连接到正极电源,再借助电阻的分电压,使微处理器重置。
3.5显示电路
  当前市场上大部分的显示屏大多数为液晶显示屏,不过液晶的显示屏还是存在不少不足之处,比如,液晶需要背光
源的配合、耗电量比较高、反应速度较慢等缺陷,不过OLED的技术却能够较好克服掉上述不足。
  OLED技术发展迅猛,近年来出现了柔性有机发光技术,使其进入人们的日常生活。这是一款流行于移动计算机
屏幕开发的产品。
  OLED,即有机发光二极管。OLED是一种自发光材料,具有更宽的视野,更便宜的价格,更明亮的彩色效果,更容
易携带,更好的环境温度,更稳定的图像质量,更高的分辨率,更容易弯曲等优点,因此它很适用于智能手机和平
板。这是一种新兴的平板显示技术。
  LCD都要求有背光源,OLED由于自身发光,所以不用担心这个问题。这样,在相同的显示功能下, OLED的表现
会更好。虽然 OLED在现有技术上仍不能实现大规模的量产,但其分辨率确实可以达到相当高的水平。电路见图
3.7。
  我用的是中景园的0.96英寸 OLED显示屏,下面是它的几个特色:1英寸的 OLEDⅡ,分辨率为128*64。Ⅲ多个接
口方式中,OLED裸屏幕接口有:并行接口6800和8080, IIC接口(2条线就能控制 OLED!)、三线或四线串行 SPI接
口,由BS0-BS2在屏幕上进行配置。Ⅳ中景园电子研制出两种 OLED显示屏的样机,其接口为:7针 SPI/IIC兼容性模
块,4针IIC模块。这两个模块的使用非常方便,所以我选择了四个插头的 IIC。IIC模块的四针 IIC接口就比较简单
了,仅有两条信号线路。
1.GND 电源地
2.2. VCC 电源正(3~5.5V)
3.SCL OLED 的 D0 脚,在 IIC 通信中为时钟管脚
4.SDA OLED 的 D1 脚,在 IIC 通信中为数据管脚

3.6报警电路
  在本系统的设计中,如果取样的甲醛含量超出了系统设置的报警范围,则会向报警线路发送报警信号,并通过
STM32B11端口来进行报警。这里我选用的是一个三极管驱动的单声道警报模式。这种设计是在stm32单片机为基础
的,因为通电之后引脚是高组态,所以无法采用8550三极管,这是由于8550是低电平电路中用的,8050才是高电平
用的,因此我们不能采用8550,在需要蜂鸣器发出警报时,我们就把8050三极管调到高电平,这样就可以发出警
报。三极管自身就有放大电流的功能,再加上1 k电阻器就可以限制电流了。其中我们用的是有源蜂鸣器,有源蜂鸣
器的优势就是加电就可以响,不需要加特定的频率来进行控制,通常我们会在板子加一个三极管来驱动蜂鸣器工
作。我们采用的蜂鸣器也属于电磁式蜂鸣器。
3.7甲醛模块
  (1)由传感器出来的电流信息,通常需要经过放大,滤波,收集,再转换后才能被MCU所辨识与管理。但因为假若
每一路都设有放大、滤波等元件,所以成本就会较大,所以电流信息的收集通常用多路模拟通路加以选择。但是,在
选择多路仿真开关时,必须要注意以下几个方面:通道数目,转换速率,开关电流,以及组件的封装方式。总之,
采集的方法与选择的硬件有很大关系。
(2)甲醛传感器的选择
  该方法采用了甲醛探测器的 VOC传感器。下面的表格3.9中详细描述了甲醛传感器/甲醛组件(CH2O传感器)。
(3)测量电路
测量电路由单片机串口和甲醛模块进行串口通信。
  该方法采用甲醛探测器和CH20型传感器构成。当空气被吸入室内取样系统并与微处理器连接时,在显示器上显
示出甲醛的浓度值。
  
11
甲醛传感器
CH2O/S-10:
12
13
名称
测量范围 0- 10 ppm
最大负荷 50ppm
工作寿命 空气中3年
14
输 出 1200±300nA
/ppm4-20mA
(甲醛模块
分辨率 0.05 ppm
温度范围 -20℃ to
45℃
压力范围 大气压±10%
响应时间 (T 90) 〈 50
seconds
湿度范围 -20℃ to
45℃
零点输出 (纯净空体,20℃) 〈 0.1 ppm
最大零点漂移(20℃to 40℃) 0.1 ppm
长期漂移 〈2% /每月
推荐负载值 10Ω
线性度输出 线性
重 量 约32克
表3.9 传感器参数

此电化学甲醛模块是一个通用型模组。该装置采用电化学方法检测大气中的CH2O,并与英国达特的甲醛传感器
联合使用,结果显示出了较好的稳定性。该模组还配有 NTC温敏元件,可对温度进行补偿。本模块采用先进的电化
学测试技术和精密的电路设计相结合,研制出了一种通用的气体模组。电路如图3.10所示。
甲醛模块管脚说明:
1、VCC(电压输入3.3V或5V)
2、RX(串口数据输入)
3、TX(串口数据输出)
4、GND(电源供电负极)
图3.10 甲醛模块
在这里插入图片描述

3.8本章小结
  这一节中较为具体的阐述了系统硬件设计的核心内容,采用了模块化的设计思路,将一个复杂的单片机控制系统
根据功能特点分割为一个个独立的电路模块,然后依次加以设计,最后在整合到一起。这个方案对设计复杂的单片机
控制系统非常有用。极大地提高控制系统设计的效率和产品质量。

第四章 软件系统设计

4.1主程序流程图
  (1)主要功能:该系统利用硬件技术,完成了便携式甲醛检测器的所有功能。其主要功能包括:检测,显示,
时间调整,数据存储等。对一个函数进行调用。接通电源后,系统会进行初始化设置,然后显示屏开始60s的预热倒
计时,预热结束后开始进行甲醛信号的采集,若采样值大于报警值,蜂鸣器就会发出警报,若采样值低于报警值,
则蜂鸣器不会有所反应。
(2)主程序流程图如图4.1所示。
(3)主程序见附录。
图4.1 主程序流程图
在这里插入图片描述

4.2蜂鸣器报警程序流程图
  (1)蜂鸣器的功能和家庭电器的扬声器有异曲同工之妙,一般情况下,工作电流较大,但由于电路中的 TTL无
法驱动蜂鸣器,必须要加上一个电流放大器,这样就很难使蜂鸣器产生响声,因此在蜂鸣器中加入三极管来提高电流。蜂鸣器的正极一端与三极管相连,为避免三极管被直接导通,我们在单片机的 iO端口上加上一个1 K的限流电
阻器,用 MCU的 iO端口输出较高的电平,当三极管处于高电位时,就会打开,这样蜂鸣器的电流就会形成一个环
路,并且会发出声音。三极管断开,在引脚处于低电位时,蜂鸣器不会发声。
(2)蜂鸣器报警程序流程图如图4.2
图4.2 蜂鸣器报警程序流程
在这里插入图片描述

4.3按键流程图
  (1)按键时显现人机对话的一个控制按钮,通过按键的操作,对系统进行发送操作指令,后经与MCU串行通
信,然后在OLED显示器上显示。
  (2)独立型按键是一个单一的按键电路,它由输入输出端口直接组成。每一个单独的键都有一个I/O口。每个I
/O口不会互相干扰。本电路中,按键输入部分使用的是低电平,上拉电阻器确保在关闭键时 I/O口线具有一定的高
电平(AT89C52.P1端口内置上拉电阻器),所以不用在外部连接上拉电阻器。
(3)按键流程图如图4.3。
图4.3 按键流程
在这里插入图片描述

4.4 OLED程序流程图
  (1)此次设计我们采用的是单片机的内部iic,所以我们需要进行配置才可以正常使用。我们结合iic时序图以
及需要显示的内容进行处理。I2C总线为主从式,以 MCU为主要设备,内存为从设备。每个母线都能携带若干从单元
(也可能具有多个主控单元),而I2C总线的 SDA和 SCL均为双向,采用上拉电阻器进行正向电源。在进行发送时,
在SDA线上的数据必须在最高的时钟周期内保持稳定。并且,只有当SCL线路的时钟信号是低时,数据连接线的最高
或最低电平状态才能改变。首先stm32单片机进行配置引脚STM32F103C8T6 引脚I2C: PB6 – SCL; PB7 – SDA ,
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; I2C引脚必须要开漏输出,I2C_DeInit(I2C1);//使用IIC引
脚。void I2C_WriteByte(uint8_t addr,uint8_t data)iic进行写入数据信息I2C_GenerateSTART(I2C1, ENABLE);
注册地址I2C_发送数据(I2C1,数据);传输数据I2C_GenerateSTOP (I2C1, ENABLE);关掉I2C1总线 Void
WriteCmd (单机 charI2C_Command)写入指令void WriteDat(unsigned char I2C_Data)//写数据void OLED_Init
(void) IIC初始化,显示当前数据
(2)其显示程序流程图如图4.4。
图4.4 OLED程序流程
在这里插入图片描述

4.5编写语言的选择
  随着计算机技术的不断发展,越来越多的高级程序设计语言被引入到计算机系统中,C语言就是其中之一。所
以,相对于高级语言,汇编语言在控制方面有着更大的优越性。C语言和汇编语言是最常见的编程语言。编译程序的
代码产生速度快、控制能力强,但是它的可移植性并不高。
  与使用汇编编写的程序相比,C语言编写的程序更适合人类的思考方式。另外,现在的很多处理器都是 C编译
器,这也就意味着可以很快地使用它。该软件具有模块化、易于查阅和维护等优点,并且已经编译的模块化编程易
于移植。同时,C语言与汇编语言在本质上是一致的,所以使用C语言进行编程。
4.6编译软件介绍
  我们选择的是keil软件。在单片机的发展过程中,除了硬件之外,软件也是必不可少的,我们编写的汇编语言
的源代码要变成 CPU能够运行的机器代码,有两种方式,一种是手动编译,一种是机械汇编,现在已经很少见了。
MCS-STM32单片机的汇编软件主要有ASTM32,随着单片机的发展,由通用的汇编语言逐步发展,到后来的先进的语
言,单片机的开发软件也在不断的发展。Keil提供了一套完整的开发方案,包含 C编译器,宏汇编,连接器,库管
理,以及一个强大的模拟试错程序,这些部分是由 uVision (uVision)结合起来的。使用 Keil软件,必须有
Pentium以上的 CPU,16 MB以上的内存,20 M以上的硬盘空间,WIN98, NT,WIN2000, WINXP。
  KeilCSTM32是美国 KeilSoftware公司推出的一款STM32兼容性 MCU C语言软件开发系统。在用了汇编语言之
后,用 C语言进行开发,体验更深。
  KeilCSTM32软件提供了大量的库函数,以及一个强大的集成开发和调试工具。而且,从编译后产生的汇编代码
来看, KeilCSTM32的代码是高效的,大部分的代码都是简洁易懂的。在大型软件开发中,高级语言的优点更加突出

打开Keil uVision5,初始界面如图4.6所示:
图4.6 初始界面
在这里插入图片描述

Keil uVision5的操作流程有以下几个步骤:
(1)新建一个工程项目,选择对应的单片机芯片,同时对开发环境进行配置;
(2)在工程中添加C文件和H文件,在其中编写C语言程序代码。如图4.7:
在这里插入图片描述

图4.7主程序页面
Fig 4.7 Main program page
(1)对已经写好的程序进行编译和调试,找到问题对程序进行修改使程序能正常运行。
  (2)通过下载器STLINK V2 (stlink V2 上的引脚和stm32排针上的引脚相对应)对程序进行下载。
4.7本章小结
  这一章主要讲解了主程序流程图和其他重要模块的流程图,了解其运行方式,可以更好的通过C语言来编写程
序,将各个模块的功能结合在一起,通过下载器将编写好的程序烧录到单片机中,从而完成甲醛测试仪的实现。

第五章 实物调试

5.1系统调试
  在一个系统的设计中,硬件设计和软件设计起着至关重要的作用,当然,这也是最容易出现问题的两个部分,
所以,当设计完成后,我们要根据这两个我们将按照这两个方面来进行硬件和软件的调试。硬件的调试,就是对元
件的焊接和各个线路的连接进行检验,而软件调试就是检查所编写的程序是否有误,如果将编写完的软件下载到单
片机中,甚至连线路故障都能检测出来。
硬件的调试可以分成两大类:静态和动态两大类。
  静态硬件调试:首先对焊接好的洞洞板进行检查,看看每个元器件焊接地是否符合要求,当目测觉得没有问题
后,接着用万用表进行检测,看看电路中是否存在目测所没有发现的虚焊或者短路,尤其是要注意系统供电电源的
检测。
  动态硬件调试:通常采用的方法是从部分到总体。调试时,我们先根据系统的硬件设计将系统分成若干个模
块,然后对这些模块一个个进行调试,这样能够让我们更精确地知道到底是哪个部分出现了问题,然后排除故障,
令系统得以正常运行。
5.2整机测试
(1)将各个模块通过导线连接好,通过电脑USB接口对甲醛检测一进行通电。
(2)按下电源键开关,主控制器的红灯亮起,如图5.1所示

图5.2初始状态
在这里插入图片描述

(3)由图可知电路板下方有两个按键,它是通过这两个按键调节甲醛报警值,完成设置后,等待60s,甲醛模
块将检测到的数值通过OLED显示屏进行查看,当浓度高于设定值时检测仪蜂鸣器发出报警,LED灯亮,这里我们用胶
水来检测检测仪的报警系统,因为胶水中含有甲醛,首先在正常环境中检测空气中的甲醛浓度,如图5.2,将准备好
的胶水靠近传感器,然后观察甲醛检测仪的变化,如图5.3。
图5.2正常环境甲醛浓度
在这里插入图片描述

图5.3测试环境甲醛浓度
在这里插入图片描述

5.3本章小结
本章节对甲醛检测仪的硬件和软件进行了调试并组装,并对甲醛检测仪进行实验检测,检测仪能正常工作。

第六章总结

现在,许多公共场所和居民住宅室内需要仪进行通电检测甲醛气体,而装修建材中的甲醛含量一样需要我们进
行检测。甲醛超标,对人体健康有不可恢复的危害。因此,我们应该对具有民用价值的家庭智能除甲醛设计采取重
视。设计一款既能够满足生活需要,又能便利的除甲醛设计迫在眉睫。
  经过本次设计,我从中学到了很多,学会了如何利用Altium Designer 、Keil等软件,锻炼了动手能力,让理
论和实践有效的结合在了一起,真正学习的过程,是振奋与疲惫并存的,是孤单与充实并存的,是伤感与欣慰并存
的,充满着失落感与成就感。其中的酸甜苦辣只有学过的人深有体会。思想上我们要端正态度,要有勤奋好学的精
神,硬件上要掌握一些常用的学习开发工具,帮助我们更好地完成设计,在软件上要把自己在学校所学和实际遇到
的问题相适应匹配起来。
  首先,要弄清楚学习的目标。首先,我要严肃地回答两个问题:我是怎么学会的?要多久才能掌握?这就是你
学习的动机。如果你没有动机,我认为你不能持久。其次,要调整自己的学习态度。每开始一次新的学习就是一次
新的挑战,刚开始可能很没有头绪,甚至不知道自己应该从哪里开始着手,这时候我们不能被这种惶恐的心理所影
响,应该调整好自己的心态,给予自己适当的鼓励,然后踏踏实实、一步一步地向着困难行进。
  再次,要多动脑勤动手。学习不能光靠理论知识,还需要将你所学的运用到实际中去,不动手实践我们是无法
真正学到知识的。
  最后,虚心交流。我们在进行学习的过程中一定会或多或少的遇到一些自己所无法解决的问题,这时候,我们
就要向有经验的人虚心请教,而不是一味地自己埋头苦干,这样往往会浪费更多的时间和精力,却得不到令人满意
的结果。
  在这次设计中也确实遇到过许多问题,最开始的时候连最基本的一些软件都操作不起来,但我并没有因此气
馁,通过各种资源来加强自己对这些软件的认识,并且按照相关步骤一步步的进行演练。C语言也是我的弱项,为了
能够顺利的完成系统的软件设计,查阅了不少相关资料,并且麻烦了不少同学,最后终于是磕磕绊绊的完成了这次
的设计。

致 谢

寒来暑往,四年的大学生活即将在这个夏天画上句号。在这四年里,学校给了我太多难忘的回忆,也让我结识
了更多地朋友。心中纵然万分不舍,但依旧要与我的学校挥手告别了。
在我即将离校之际,我要向所有给予我帮助和鼓励的人表达我心中对他们的感激。
  在这四年的时光中,我最先要感谢的是我的学校。犹记得刚进校园的我是那么地青涩、懵懂,而现在的我已然
是个小大人的模样,能学着自己处理很多事,再也不是那个一遇到困难就只知道找老师、父母的那个的孩子。是学
校,教给了我更多做人做事的道理让我一步步地成长。学校那优美的环境以及良好的住宿条件,也增加了我这个即
将毕业的学子对它的不舍之情。
  再者,我要感谢的是我毕业设计的导师,从论文的题目选择、思路构成、文章撰写到最后的论文定稿,老师给
予我很多的指导,在他的帮助下,我较为顺利地完成了我的毕业论文。
  还有学院的全体领导和老师,在这四年里,是他们教授了我各种专业的知识,让我也能够有一技之长,更好地
进入社会。
最后,要感谢我的父母在大学期间对我的支持、关爱和鼓励。以及在这四年里一直陪伴我、照顾我和帮助我完成毕
业论文的同学和朋友,是他们,让我再次感受到了友情的可贵。
  毕业的日子越来越近了,在伤感别离同时,我也会为进入社会做好充分的准备,牢记父母、老师们对我的教
诲,循序渐进,一步一个脚印地朝着我的目标努力,不辜负那些信任、支持我的人的期望。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值