您好,欢迎来到步遥情感网。
搜索
您的当前位置:首页基于STM32单片机的空气净化器毕业设计

基于STM32单片机的空气净化器毕业设计

来源:步遥情感网


毕 业 设 计

学生姓名: , 学 号: 学 院: 电气工程学院 专 业: 电气工程及其自动化 题 目: 基于单片机的办公室用空气 净化器控制系统设计 指导教师: 评阅教师:

2017年6月

毕 业 设 计 中 文 摘 要

随着我国现代化进程的脚步不断加快,各地方PM2.5值居高不下。针对这一现象,本课题以STM32单片机为控制核心,首先对国内外空气净化器做了具体分析,给出了一种电压可调式的办公室用空气净化器总体设计方案;其次,根据市场需求及方案可行性对比,对MCU最小系统单元、TFT_LCD液晶显示模块、L298N驱动模块、DHT11温湿度传感器、SDS011激光传感器进行了硬件电路设计,搭建了完整的硬件平台;再次,基于嵌入式操作系统采用模块化编程的方式,完成了对主程序、显示子程序、PWM输出子程序、数据采集子程序、上位机控制台操作子程序等设计;最后,进行空气净化器的整体测试,据试验结果可知,本设计实现了数据采集、触屏控制、档位选择、开关机设定、无线通信等功能。 关键词 STM32单片机 空气净化器 液晶显示 激光传感器 触屏控制

毕 业 设 计 外 文 摘 要

Title Design of Office Air Purifier Control System Based on Single Chip Microcomputer Abstract With the development of China's modernization pace continues to accelerate, the local PM2.5 value is very high.In view of this phenomenon,This paper uses STM32 MCU as control core,First of all domestic and international air purifier has done a detailed analysis,A voltage adjustable office with the overall design scheme of air purifier.Secondly,According to the market demand and the feasibility of scheme comparison,A minimum system of MCU unit,TFT_LCD liquid crystal display module,The L298N driver module,DHT11 temperature and humidity sensor,SDS011 laser sensor was designed,It has built a complete hardware platform.Again,The embedded operating system uses modular programming method based on,The completion of the main program, PWM display subroutine, output subroutine, data acquisition subprogram, PC console subroutine and so on.The last,The overall test of air purifier is finished,According to the test results,The design and implementation of data acquisition, touch screen control, gear selection, switch setting, wireless communication are realized. Key Words STM32Singlechip Air Cleaner LCD Laser Sensor Touch Screen Control 本 科 毕 业 设 计

目 录

第 Ⅰ 页 共 Ⅱ 页

1 引言 ................................................................... 1 1.1 课题研究背景及意义 ................................................... 1 1.2 国内外发展状况 ....................................................... 1 1.3 课题主要工作 ......................................................... 3 2 控制器方案设计 ......................................................... 4 2.1 控制器总体方案设计 ................................................... 4 2.2 方案论证对比 ......................................................... 4 3 控制器硬件电路设计 ..................................................... 7 3.1 单片机控制电路设计 ................................................... 7 3.2 显示电路设计 ......................................................... 9 3.3 驱动电路设计 ........................................................ 12 3.4 按键电路设计 ........................................................ 13 3.5 数据采集电路设计 .................................................... 13 4 控制器软件设计 ....................................................... 16 4.1 主程序设计 .......................................................... 16 4.2 显示子程序设计 ...................................................... 16 4.3 PWM输出子程序设计 .................................................. 22 4.4 数据采集程序设计 .................................................... 23 4.5 上位机程序设计 ...................................................... 27 4.6 其它子程序设计 ...................................................... 27 5 试验与调试 ............................................................ 30 5.1 DHT11温湿度传感器试验与调试 ........................................ 30 5.2 SDS011激光传感器试验与调试 ......................................... 30 5.3 上位机控制器试验与调试 .............................................. 31

本 科 毕 业 设 计

第 Ⅱ 页 共 Ⅱ 页

5.4 试验与调试 .......................................................... 32 结论 ..................................................................... 38 致谢 ..................................................................... 39 参考文献 ................................................................. 40 附录A :空气净化器主电路原理图 .......................................... 41 附录B :下位机C语言主程序 .............................................. 42 附录C :上位机C#语言主程序 .............................................. 44

本 科 毕 业 设 计

1 引言

1.1 课题研究背景及意义

第 1 页 共 45 页

如今,在社会快速发展进步的同时,空气的污染状况也在日益加剧。随着国内近几年的发展,化石燃料与汽车尾气的排放,使得我国空气质量严重下降,尤其是PM2.5细小微粒成为污染物的罪魁祸首。其主要来自于大自然的天然产生和人类的实践活动。大自然的污染主要来自于风沙、火灾以及其它极端天气。人类活动的污染主要表现在汽车尾气排放、煤炭发电厂、吸烟等社会活动。研究表明,PM2.5对人类的生活健康水平有着极其恶劣的影响,它能够通过呼吸道进入体内,对人体器官造成伤害。所以,检测出室内PM2.5浓度并进行有效的治理直接关系到人们的生活水平与身心健康。

因此,根据这一现象,市面上出现了越来越多的空气净化装置。其中,空气净化器使得这一问题得以解决。对于长时间处于室内工作的人们来说,空气净化器尤为重要。空气净化器可以对室内多种气体污染和灰尘颗粒等悬浮物进行有效的处理,通过机内的通风装置使室内空气循环流动,让空气得以净化。所以,对空气净化器的研究有着十分现实的意义。

1.2 国内外发展状况

近年来,受空气污染的影响,空气净化技术蓬勃发展。由此,改善空气质量的方式也逐渐增多。目前,在市场上主流的净化空气方法主要有:源控制、通风和空气净化。源控制是指对污染的源头进行控制处理,其能有效的从根本上解决空气的污染问题,是国外很多城市处理空气污染的主要手段。虽然控制效果不错,但其成本也着实不低。通风控制也能降低室内空气的污染程度,但其需要良好有效的控制调节装置。空气净化是指利用物理或化学等手段对空气中污染物进行吸附过滤等处理。或者对一些有毒的不良气体来说,高温、化学灭菌也是净化空气的常用手段。

早在上世纪七、八十年代,国外空气净化器已有了发展,欧、美等发达国家在空气污染方面已经有了较深的研究,尤其是对有害物体的治理有了相当大的改善。美国在当时是全球最大的空气净化器消费国,随着第三次科技的到来,空气净化器迅速蔓延。在日本,由于特定的大气环境,在每年的春秋到来之际,花粉过敏者不计其数,因此,空气净化技术蓬勃发展。但大部分净化原理都是基于过滤网的物理吸附。目前,随着智能时代的快速到来,夏普、松下等国际品牌也加入其中。在欧洲,宠物受到大众们的欢

本 科 毕 业 设 计

第 2 页 共 45 页

迎。一到夏季,室内由于宠物掉落的毛发增多而使空气受到严重的污染。与此同时,由于宠物本身自带的特殊气味或者可能的病菌等原因,使得空气污染源变得复杂。因此,这一现象迫使其空气净化装置的发展。如今,其空气净化方法众多,技术处于全球先进水平。在我国,由于抗日战争的缘故,起步相对较晚,直至改革开放,我国科技才有了初步的进展。近几年,虽然在经济发展上取得了举世瞩目的成果,但在空气清洁方面却相对于其他国家有一定的差距。

无论在国外亦或在国内,室内空气净化器是实现空气净化的最直接、便捷的仪器,尽管各国发展历程不尽相似,但从目前来看,空气净化器产品主要有以下几种:机械过滤式净化器、机械过滤吸附式净化器、静电式净化器、负离子净化器[21]、紫外光空气净化器等。

机械过滤式净化器,是一种小型空气过滤器,空气经风机加压,通过过滤材料,从而净化颗粒污染物,只能除去一定大小的颗粒污染物,总体净化效果不佳。

机械过滤吸附式净化器,分别采用不同的净化机理取出颗粒污染物和气态污染物,这种净化器将普通空气过滤技术与活性炭吸附技术结合起来,总体上改善了净化性能,但活性炭存在吸附饱和状态,比较麻烦,因而没有得到广泛应用。

静电式净化器,是一种静电式空气过滤器,对较大的颗粒污染物效果较好,但是会产生臭氧等二次污染物,正被逐步淘汰。

负离子净化器,负离子净化器是目前被广泛使用的一种净化器,通过强电场产生负离子与颗粒污染物结合形成“重离子”,沉降或吸附在物体表面,并能杀灭细菌,净化效果良好,但是,这种空气净化器同样能产生臭氧,造成二次污染。

紫外光空气净化器,是利用了紫外线的原理通过紫外线的照射,穿透微生物的细胞膜,破坏各种病菌,细菌,寄生虫以及其他致病体的DNA结构,毁灭其核酸分子键,使细菌当即死亡或不能繁殖后代,从而达到消毒灭菌的作用[21]。

无论如何,虽然各国空气净化器发展均有不同,但总体来说,净化器种类正趋向于自动化、人性化、智能化等方向发展。现阶段,市场上产品种类繁多,价格混乱,虽然外观各有不同,但真正的净化效果却大同小异。本文将以净化空气中PM2.5污染为起点,设计一种功能强大、操作方便、净化效果良好的空气净化器。

本 科 毕 业 设 计

1.3 课题主要工作

第 3 页 共 45 页

本课题根据办公室工作环境的实际情况以及所学专业知识完成了一款适合教师在办公室使用的新型空气净化器控制系统的设计。主要工作包括:

(1)对比了国内外发展状况,根据人们日常生活的需求,提出了本课题的总体设计方案及功能模块的选择。包括控制模块的选择、显示模块的选择、数据采集模块的选择等。

(2)完成了系统的硬件电路设计。包括CPU外围电路设计、显示电路设计、驱动电路设计、各传感器接口电路设计等,搭建了一套完整的硬件平台。

(3)完成了系统的软件程序及界面设计。包括主程序设计、各子程序设计以及上位机界面的程序处理算法的研究。

(4)对设计的控制系统进行了全面的测试。包括待机显示界面、温湿度采集、空气质量检测、档位切换、开关机设定以及无线通信等功能。经分析试验结果可知,本课题设计的空气净化器满足实际工作的要求。

本 科 毕 业 设 计

2 控制器方案设计

2.1 控制器总体方案设计

第 4 页 共 45 页

根据所学知识及相关资料,本设计由供电电路、数据采集电路、驱动电路、按键电路、显示电路、上位机控制电路六部分组成。系统总体方案如图2.1所示。

图2.1 空气净化器总体方案

本设计中采用单片机作为空气净化器的控制核心[14]。结合传感器、显示器、驱动器以及无线收发器等重要部件共同完成了控制系统所要求的功能。该空气净化器能够对室内PM2.5浓度以及温湿度进行监测并通过无线模块发送至上位机,而且能够根据所测参数做出相应的处理措施。具有良好的节能效果和人机交互界面。总体设计原理图如附录A所示。

2.2 方案论证对比

2.2.1 控制模块方案对比

方案一:选取STC12系列单片机作为主控芯片

STC12系列单片机是一种工作方式与51系类相仿,但功能略强的一款高速处理型单片机。工作频率可由分频器分频至0-35MHZ。它的36个通用I/O口可通过程序设置成四种输入输出模式。

该芯片有贴片和直插两种封装类型。拥有PCA高速输出功能,处理速度比51系列单片机快上许多。但其资源有限、处理速度相对于32系列较慢。因此,此芯片在本设计中有些力不从心。最重要的是该芯片无法支持TFT_LCD液晶的显示,更实现不了触屏

本 科 毕 业 设 计

功能。

方案二:选取STM32系列单片机作为主控芯片

第 5 页 共 45 页

STM32系列单片机工作时最高频率可达72MHZ,是STC12系列单片机的6-72倍。其内部不仅集成FLASH存储器更是集K SRAM存储器于一体,拥有庞大的数据存储功能。而且,该芯片内部含有RTC时钟电路,在外部有电源供电的情况下能利用系统内滴答定时器连续不断地计时。不仅如此,此类单片机还拥有5个串行通讯端,能通时支持5类串行通讯设备,是其它单片机无法比拟的。

该芯片不仅有高速的处理速度,而且拥有众多的板载资源,功能十分强大。144个引脚使其足以支持任何功能。串行通讯端口使得其在读取PM2.5传感器数据的同时能通过另外串口将数据快速传送至上位机。此外,该芯片能驱动TFT_LCD液晶屏,具有方便快捷的控制效果。

综上所述,本设计选取STM32系列单片机作为主控芯片。 2.2.2 显示模块方案对比

方案一:选取LCD128液晶作为显示模块

LCD128是一种多线串行接口方式的点阵形液晶显示模块,其分辨率为128×[9]。既可以用来显示字符,又可以通过中文字库显示汉字。但其有限的显示字数和复杂的时序位置操作以及简陋的显示效果和其无法触控的特点使得其并不完全适合充当本设计的显示模块。

方案二:选取TFT_LCD液晶作为显示模块

TFT_LCD液晶屏幕分辨率为320×240,16位真彩显示,可人为改变字体的颜色和大小[16-17]。在屏幕上可分行分段显示大批量数据并可通过触控芯片和相应的程序实现触屏功能。虽然控制方式较复杂,但独特的优势和方便的操作使得其满足本设计的要求。

综上所述,本设计选取TFT_LCD液晶作为显示模块。 2.2.3 驱动模块方案对比 方案一:选取L298N作为驱动模块

L298N 电机驱动模块能将输入电压通过PWM控制的方式实现连续可调输出。而且,其能同时驱动两路电机,并能给单片机提供5V电源接口。该模块工作电流相对较大,因此,需安装散热片进行散热处理。然而其价格便宜、控制简单适合本设计中风机的调速控制。

本 科 毕 业 设 计

方案二:选取LM2596作为驱动模块

第 6 页 共 45 页

LM2596模块能实现降压的功能,体积相对较小,拥有大电容滤波电路。其输入电压为3-40V,输出电压范围为1.5-35V连续可调。但此模块只能通过手动按钮进行降压调节,若要通过电子进行调节电压的输出,需要增加其他控制电路,比较繁琐。

综上所述,本设计选取L298N作为驱动模块。 2.2.4 PM2.5传感器模块方案对比 方案一:选取GP2Y1014AU粉尘传感器

该模块为夏普公司生产的一种粉尘烟雾传感器,能检测出非常细微的颗粒。装置中通过红外发光二极管利用反射原理检测灰尘在空气中的含量。模块中心有一可供气体流通的圆孔,使测量空气自由流通。其输出是与空气中粉尘浓度成正比的电压模拟量,需通过A/D采集后转化成数字量显示浓度值。虽然价格相对比较便宜,但对PM2.5等微小颗粒的检测不是很敏感,对本设计有一定的影响。 方案二:选取SDS011激光传感器

SDS011传感器根据激光散射原理测量空气中的微小颗粒,当激光照射到悬浮颗粒物时会产生光散射,感光部件根据散射激光的波形判断出颗粒物的直径,通过不同直径的颗粒物反射出不同形状的波形,判断其浓度的大小,并根据换算公式转化成官方统一单位[20]。该PM2.5传感器操作方便,通过串行通讯按照一定波特率即可将十六进制数据读出,在单片机中简单转换成十进制即可。其数据测量精确、响应速度快,但价格略高。

综上所述,本设计选取SDS011型激光PM2.5传感器。

本 科 毕 业 设 计

3 控制器硬件电路设计

3.1 单片机控制电路设计

第 7 页 共 45 页

单片机控制电路是整个控制器的中枢,起着发号施令的作用。一个性能良好的控制芯片对整个系统来说至关重要[10]。STM32F103ZET6基于Cortex‐M3(CM3)处理器,不仅在功能上能满足题目的要求,而且在运行效果上也格外显著。该芯片性能强劲,工作频率高,72MHz的工作频率使得整个控制过程获得更高的处理速度。完整的基于CM3的MCU还需要很多其他组件。其结构如图3.1所示。

图3.1 单片机内部结构图

然而,要想正确合理的应用此单片机,仅仅依靠芯片本身是不行的。其往往还需要外部时钟、复位、隔离等单元电路才能工作。其硬件电路如图3.2所示。

本 科 毕 业 设 计

第 8 页 共 45 页

图3.2 单片机硬件电路

其中,晶振Y1为32.768KHz,提供外部低速时钟,在断电的情况下通过外接CR1120纽扣电池为RTC实时时钟电路供电,使得其计时准确;晶振Y2为8MHz,提供高速外部时钟。电容C6、C7均为0.01F,在此作为电源滤波;RESET为复位按键,此款芯片单片机与TFT_LCD液晶同接在一个复位按键上。复位电路如图3.3所示。

本 科 毕 业 设 计

第 9 页 共 45 页

图3.3 单片机复位电路

3.2 显示电路设计

3.2.1 TFT_LCD液晶显示电路设计

显示电路是整个控制系统与用户交互的媒介,是人机交流的关键。常用的显示有LED、LCD等方式,根据对市面上显示器的对比,TFT_LCD显示出独特的优势,它不仅具有良好的画质,而且还可以设置成触控模式,方便用户操作。其硬件连接如图3.4所示。

图3.4 TFT_LCD液晶硬件连接图

图中PF8、PF9、PF10、PB2用来实现对液晶触摸屏的控制,而PB0控制LCD的背光。

本 科 毕 业 设 计

3.2.2 TFT_LCD触控电路设计

第 10 页 共 45 页

TFT_LCD液晶屏不仅支持显示功能,而且还能通过专门的控制芯片实现触屏功能。我们在市面上所见的触摸屏最多为电阻式,而TFT_LCD 自带的触摸功能也属于电阻式触摸屏。

由于STM32F1O3ZET6单片机没有集成的液晶驱动器,因此需要借助 ILI9320驱动芯片通过FSMC接口对液晶进行控制。ILI9320芯片自带显存,拥有16位数据线,可以控制液晶显示内容字体的大小、颜色、显示方向、显示区域等[19],使显示功能变得简单易懂。

为了准确有效的得到触控位置,将电压信号模拟量转化为数字量,需要一个A/D转换芯片进行控制。本设计中采用XPT2046转换芯片,其原理框图如图3.5所示。

图3.5 XPT2046原理框图

XPT2046是一种典型的逐次逼近型模数转换器,其包含了采样保持、模数转换、串口输出等功能。当控制触摸屏时,可将其设置为差分模式,可有效消除外部干扰和寄生电阻带来的测量误差,使转换精度更高[4]。其典型应用如图3.6所示。

本 科 毕 业 设 计

图3.6 XPT2046典型应用电路图

第 11 页 共 45 页

3.2.3 数据存储芯片设计

在初始化触控屏时需要将采集的触控点通过I2C总线传送到存储芯片上,为下次初始化时免去繁琐的校准程序。在本设计中,选取AT24C02作为存储芯片。该芯片为2K的串行EEPROM,可存储256个8位字节。其硬件连接如图3.7所示。

图3.7 24C02硬件连接图

其管脚功能如表3.1所示。

表3.1 24C02管脚功能

管脚名称 A0 A1 A2

SDA SCL WP VCC1 GND

功能描述 器件地址选择 串行数据/地址 串行时钟 写保护 电源正极 电源负极

本 科 毕 业 设 计

第 12 页 共 45 页

如上所示, 由于本设计中只采用一个存储器来保存校准的参数,因此为了连接方便,将A0、A1、A2引脚直接接地,使该芯片的地址为0X00。SCL为串行时钟引脚,为传送数据提供时序,与单片机PB10连接。SDA为数据/地址引脚,与单片机PB11连接。其中R19、R20为上拉电阻,可增强驱动能力和电路稳定性。

3.3 驱动电路设计

风机的运转是整个控制系统的执行装置,反映着对指令的执行效果,风机的可靠运行与其驱动电路密切相关。变压器将220V单相交流电变换到直流12V。单片机通过PWM的占空比控制L298N驱动器的电压输出,使其0-12V连续可调。L298N是一种在电机控制方面常用的驱动芯片。其内部含有4路逻辑驱动电路。硬件电路如图3.8所示。

图3.8 驱动电路硬件连接图

其中,L298N驱动芯片能同时支持两路输入输出。其中ENA、ENB为驱动使能端,可由PWM控制。IN1、IN2为方向控制端,控制风机转向。OUT1、OUT2与OUT3、OUT4为两路电压输出端。由于该轴流风机为无刷直流电机,其内部自带换向器,因此只能输入无任何波动的直流电,而输出端输出的电压为占空比可调的方波,为解决这一问题,并联了220uF的电容进行滤波处理。

本 科 毕 业 设 计

3.4 按键电路设计

第 13 页 共 45 页

在本设计中,采用按键调节方式对控制器的开关机时间进行设置。由于只涉及到小时与分钟的更改,故采用两个按键调节。其硬件电路如图3.9所示。

图3.9 按键电路硬件连接图

其中,S1按键为高电平输入方式与PA0相连,S2按键为低电平输入方式与PE4相接。在进入设置第三级菜单后,可通过按键的方式设定开关机时间。

3.5 数据采集电路设计

3.5.1 温湿度传感器模块设计

DHT11传感器既能测量温度又能测量湿度,并以二进制数字形态返回。其采用单线制串行接口,使硬件电路连接简单,抗干扰能力强。内置自校准程序,将参数保存在芯片中,当传感器工作时需要调用这些系数进行自动校准。其温度测量范围为0-50度,精度为±2度,湿度测量范围20%-90%,精度为±5%RH。其硬件连接如图3.10所示。

图3.10 DHT11温湿度传感器连接图

本 科 毕 业 设 计

在单片机PG11上,读数时需通过严格的时序。 3.5.2 PM2.5传感器模块设计

第 14 页 共 45 页

DHT11的供电电压为3-5V。由于采用单总线方式,故只需一个引脚即可,该引脚接

本设计中选用的PM2.5传感器,利用激光散射的原理可以精确测得空气中的PM2.5浓度,操作简单,集成度高,内置散热风扇,数据稳定可靠。其实物如图3.11所示。

图3.11 PM2.5传感器实物图

该传感器通过串口与单片机PA10,PA11相连,既能测量PM2.5含量又能测量PM10浓度,只是输出引脚不同。具体引脚定义如表3.2所示。

表3.2 SDSO11激光传感器引脚定义

管脚 1 2 3 4 5 6 7

名称 CTL 1um 5V 25um GND R T

备注 控制脚,备用

大于0.3微米颗粒物浓度,PWM输出

5V电源输入

大于2.5微米颗粒物浓度,PWM输出

地 串口接收RX 串口发送TX

本 科 毕 业 设 计

体技术指标如表3.3所示。

表3.3 PM2.5技术参考指标

序号 1 2 3 4 5 6 7 8 9 10 11

项目 测量输出 量程 供电电压 最大工作电流 休眠电流 工作温度范围 响应时间 串口数据输出频率 颗粒物直径分辨率

相对误差 产品尺寸

第 15 页 共 45 页

虽然此传感器测量结果精度较高,但其工作环境、输入输出电流大小不可忽略,具

参数 PM2.5、PM10 0.0-999.9微克/立方米

5V 100mA 2mA -20-50℃ 1秒 1次/秒 0.3微米 10% 71x70x23mm

本 科 毕 业 设 计

4 控制器软件设计

4.1 主程序设计

第 16 页 共 45 页

空气净化器控制系统由初始化程序、触摸屏控制程序、按键处理程序、定时器中断程序、数据采集程序、RTC时钟程序、定时器中断程序、LCD显示程序、串口中断程序、电机驱动程序和低功耗运行程序共同组成[15]。各子程序经过单片机的主程序运算处理,实现了温湿度测量、PM2.5浓度检测、液晶显示、触屏控制、模式选择、数据传输与处理、电机控制等功能,达到了净化空气、人机交互、低功耗运行的要求。在整个程序设计中,采用模块化编程的方式,使程序更加灵活,方便调用、移植、调试。具体工作流程如图4.1所示。

图4.1 主程序工作流程图

在接入电源后,单片机控制器开始工作,首先系统对所需功能进行初始化自检,在完成初始化后,执行触摸屏扫描程序,显示待机状态下菜单和测量的参数以及当前时间。当检测到屏幕被触摸后,系统根据其坐标判断所选择的命令,并进入相应子程序。当“自动控制”按钮被选中时会进入自动控制程序,系统根据测量的PM2.5浓度自动调节风机

本 科 毕 业 设 计

第 17 页 共 45 页

的转速,完成自动控制。当选中“手动控制”按钮时,显示手动控制下的二级菜单界面,里面有档位的选择和“返回”等按钮。当选中“设置”按钮后,系统会进入设置下的二级菜单。可选择“开机时间”和“关机时间”两种,在对应的三级菜单中,均可通过按键设置定时时间。最后,按“确定”按钮返回主界面。

与此同时,单片机的中断子程序一直在运行。定时器中断处理函数用于温湿度定时采集及显示,并向上位机发送参数。串口1中断函数执行对PM2.5的采集与计算,并显示在液晶上。串口2中断函数将从上位机接收到的数据进行处理,根据设定指令调用相应子函数。其下位机程序如附录B所示。

4.2 显示子程序设计

本设计中,用TFT_LCD液晶屏显示测量得到的参数,例如:时间、温湿度、PM2.5浓度、时间、界面等内容。然而要想正确控制液晶显示参数,需要对液晶及其控制器进行一系列校准与设置。具体操作流程如图4.2所示。

图4.2 液晶初始化程序流程图

如上图,在程序开始执行时,首先,判断液晶屏幕是否已经通过校准,若校准完毕,则显示待机状态下的菜单,否则需要经过校准程序进行校准;其次,判断LCD屏幕是否被触摸,若检测到,则读取相应触控点坐标,否则返回到待机状态下的显示界面;最后,根据所得坐标,判断是否在设定区域,若在,则通过ILI9320驱动器经FSMC向LCD指

本 科 毕 业 设 计

具体分析如下: 1)时钟使能

第 18 页 共 45 页

定区域写命令,写数据,以达到界面切换或显示参数的目的。

由于STM32单片机为每个外设的功能都设置了时钟开关,在需要的时候打开,不需要的时候将其关闭,以达到降低能耗的作用。因此,在上电后,通过程序进行功能模块时钟的使能。 2)初始化

GPIO即通用输入输出口。在GPIO初始化时,需要将GPIO输出类型设置成为复用推挽输出,最大输出速度为50MHz。

FSMC即静态存储控制器。本设计中单片机通过FSMC接口控制LCD,因此,LCD相当于片外SRAM。在FSMC初始化时,需要对地址线、数据线、写信号、读信号、片选信号进行设置。

在触摸屏初始化时,首先初始化相关GPIO,并将其设置成为上拉模式,其次初始化24C02 存储器,最后判断屏幕是否已经校准。 3)单片机与存储器的IC通信

单片机通过串行总线通信可以使硬件电路大大简化,提高可靠性。I2C总线只有两根双向信号线。当总线处于空闲状态时,两根信号线均为高电平[6]。当连接在总线上的任一器件变低时都能将总线的信号拉低。主机若要与某个器件通信,则必须通过总线仲裁,根据地址来决定哪个器件作为接收器。单片机通过I2C和24C02通信流程如图4.3所示。

2

本 科 毕 业 设 计

第 19 页 共 45 页

图4.3 IC通信流程图

2

如上图,当单片机准备与24C02通信时,首先产生起始信号,为发送写命令做好准备,在发送完成后,等待应答信号,然后发送高地址、低地址,在信号线发出应答信号后,向该地址发送想要传输的字节,最后等待接收的应答,完成一次数据的传输。

I2C在传输数据时,当时钟线为高电平期间,数据线传输的数据必须保持稳定[1]。只有当时钟线为低电平时才允许数据变化。其传输状态如图4.4所示。

2

图4.4 IC数据传输状态

在图4.3中,产生I2C起始和终止信号时序如图4.5所示。

本 科 毕 业 设 计

图4.5 起始信号与终止信号时序图

第 20 页 共 45 页

 起始信号程序设计:首先将信号线SCL、SDA拉高一段时间,然后将数据线SDA拉低,

等待时间超过4us后,将时钟线拉低即可实现产生一个起始信号。

 终止信号程序设计:首先将信号线SCL、SDA拉低一段时间,然后将时钟线SCL拉高,

等待时间超过4us后,将数据线拉高即可实现产生一个终止信号。 在图4.3中,产生应答信号与非应答信号时序如图4.6所示。

图4.6 IC产生应答信号与非应答信号时序

2

 应答信号程序设计:首先将SCL、SDA拉低,一段时间后将SCL拉高,等待时间超过

4us后,将SCL拉低即产生一个应答信号,整个过程中SDA是处于低电平状态,在程序中以返回值“0”代替。

 非应答信号程序设计:首先将SCL拉低、SDA拉高,一段时间后将SCL拉高,等待

时间超过4us后,将SCL拉低即产生一个非应答信号,整个过程中SDA是处于高电平状态,在程序中以返回值“1”代替。 在图4.3中,发送数据格式如图4.7所示。

本 科 毕 业 设 计

第 21 页 共 45 页

图4.7 数据传输格式

当主机向从机发送数据时,每一个字节必须保证是8位长度。数据传送时,先传送高位,再传送地位。在每一个传送的字节后面都会跟随一位应答位。当从机接收到数据后会产生一个应答信号,如果在一段时间后,主机并未收到从机的应答信号,则自认为从机已经正确接收到数据。

4)液晶屏幕校准

触摸屏为绝对坐标系统,即每次的坐标与上一次坐标没有任何关系。在理论上,同一点输出的数据是稳定的,但在实际中,由于技术等原因,无法保证每次在同一点输出的数据保持一致,这时将会产生漂移现象。为了防止此现象的发生,需要通过程序进行校准。然而,在程序中使用的LCD坐标通常是以像素为单位的,故需要通过程序将物理坐标转化为像素坐标。转化公式如下所示:

LCD_Xx_factor*Pxx_shift;LCD_Yy_factor*Pyy_shift;其中,LCD_X、LCD_Y为LCD上的像素横纵坐标。Px、Py分别为触摸的物理坐标。x_factor、y_factor分别为X、Y轴上的比例因子。x_shift、y_shift分别为X、Y轴上的偏移量。屏幕校准流程如图4.8所示。

本 科 毕 业 设 计

第 22 页 共 45 页

图4.8 液晶屏幕校准流程图

 液晶屏幕校准:首先,在屏幕上显示已知坐标的四个点,用户在校准的过程中需要

依次按下屏幕上这四个点[5]。单片机根据按下的位置获取物理坐标,在判别坐标合理的情况下,根据待定系数法计算出x_factor、y_factor、x_shift、y_shift参数,并将其保存到24C02存储器中。在以后的使用中,将会按照这个参数来计算像素坐标,达到屏幕校准的目的。

 坐标合理判别:在单片机读取四个物理坐标(设为①、②、③、④)后,分别测量

坐标①②、②③、①③、①④距离。然后与设定的四个坐标之间相应的距离相比,若误差小于ERR_LENGTH,则认为此坐标合理。在本设计中ERR_LENGTH取50。

4.3 PWM输出子程序设计

PWM即脉冲宽度调制,将恒定的电压调制成频率、占空比可变的一系列方波。单片机可利用定时器产生PWM波,并通过程序可设置输出频率和占空比。其PWM输出流程如图4.9所示。

本 科 毕 业 设 计

第 23 页 共 45 页

图4.9 PWM输出流程图

如上图所示,上电后,在执行到该子程序时,首先,设置TIM3_CCR2的值,即定时器内高低电平切换值;其次,定时器3寄存器CR1以初始化中设置的频率自加,当其值大于TIM3_CCR2设置值后,输出高电平,否则输出低电平;最后,当CR1等于初始化中设定的上限值时,重置CR1为零,继续循环以上程序。因此能连续不断的输出频率周期一定的高低电平。在程序运行过程中,可通过设置TIM3_CCR2的值来改变输出PWM波的占空比。

4.4 数据采集程序设计

4.4.1 温湿度传感器模块程序设计

DHT11温湿度传感器采用单总线方式与单片机进行通信,仅仅需要一个引脚即可实现数据的传输[7]。传感器内部的温湿度数据通过引脚一次性传给单片机。其数据分为小数部分和整数部分。格式为:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和。其引脚功能如表4.1所示。

本 科 毕 业 设 计

表4.1 DHT11引脚功能图

Pin 1 2 3 4

名称 VDD DATA NC GND

第 24 页 共 45 页

功能 电源正极 数据传输引脚

悬空 电源负极

单片机PG11引脚与传感器DATA相连,当准备与其通讯时由单片机发送开始信号。此时,传感器将转换成高速模式,直到主机的开始信号结束后,DHT11对单片机进行响应处理,同时,送出采集到的数据,并触发下一次信号的采集[8]。在采集完成后将会转换到低速模式,等待下一次主机的开始信号。其通讯过程如图4.10所示。

图4.10 DHT11通讯过程

首先,由主机拉低数据线,经过一段延时后,拉高数据线,等待大概30us后读取DHT11的响应。在DHT发出响应输出后,保持一段时间,再将其拉高,这样就可以传输数据了。当数据传送至单片机后,由程序定义两个数组,分别存储温度和湿度数据。在经过简单运算后,由液晶显示函数显示在TFT_LCD相应位置。其具体流程如图4.11所示。

本 科 毕 业 设 计

第 25 页 共 45 页

图4.11 DHT11工作流程图

4.4.2 PM2.5传感器模块程序设计

SDS011激光传感器是利用激光反射原理检测空气中的PM2.5浓度值,并通过串行通讯将数据发送至单片机。其工作波特率为9600。具体流程如图4.12所示。

图4.12 PM2.5传感器工作流程图

如图所示,由于该传感器是通过串口进行通讯的,故初始化串口后,当有数据传送

本 科 毕 业 设 计

PM2.5的浓度并通过显示函数将数据显示在LCD液晶屏上。

第 26 页 共 45 页

时会进入串口中断,在中断函数中,将接收到的数据保存至数组,然后根据公式计算出

a)串口通信:串口即通过串行方式通讯的扩展接口,串行通讯线路连接简单可靠,但传输速度略慢。STM32F103ZET6单片机拥有5个串口,在本设计中将串口1作为PM2.5数据接收端口,其接收与发送引脚分别为PA9,PA10。初始化流程如图4.13所示。

图4.13 串口初始化流程图

在初始化过程中,首先初始化所用功能的时钟;然后将串口进行复位处理,以免受外设异常的干扰;由于该传感器传输速度为9600位/秒,故在串口参数初始化中将波特率设置为9600;最后进行中断的配置,设置中断分组和NVIC优先级。

b)PM2.5浓度的计算:SDS011激光传感器通过串口每次发送10位16进制数据,依次为:报文头+指令号+数据(6字节)+校验和+报文尾。各个具体定义如表4.2所示。

表4.2 激光传感器数据说明

数据位 1 2 3 4 5

说明 报文头 指令号 PM2.5低字节 PM2.5高字节 PM10低字节

数据位 6 7 8 9 10

说明 PM10高字节 传感器ID 传感器ID 校验和 报文尾

本 科 毕 业 设 计

第 27 页 共 45 页

由于本设计中只需测量PM2.5浓度即可,在串口中断中其浓度计算公式为:

PM2.5浓度=(PM2.5高字节×256+PM2.5低字节)/10

单位为:ug/m3

4.5 上位机程序设计

为了使空气净化器功能更完善,人机交互更智能化,在本设计中利用Visual Studio软件采用C#语言进行上位机界面设计。其软件功能如图4.14所示。

图4.14 上位机软件显示界面

该上位机软件控制界面不仅能显示由单片机通过无线模块传输过来的参数,而且可以通过上位机控制下位机的部分功能,使得本设计产品应用方便。在打开软件后,首先通过下拉菜单选择合适的串口和波特率,然后打开串口,就可以在界面上收到由下位机传送过来的PM2.5浓度、温湿度等数据。通过“自动控制”按钮和“手动控制”以及档位的选择按钮来实现对下位机的控制和风机转速的调整。最后,通过“关机”和“熄屏”按钮可实现对单片机控制器的关机操作和熄屏待机操作,达到低功耗节能的目的。若要退出此上位机系统,点击“退出”按钮即可关闭此软件。上位机程序如附录C所示。

4.6 其它子程序设计

本 科 毕 业 设 计

4.6.1 RTC时钟电路程序设计

第 28 页 共 45 页

STM32单片机RTC时钟利用其内部一个的定时器,可以实现时钟的连续计时。 其初始化流程如图4.15所示。

图4.15 RTC时钟初始化流程图

在程序开始执行时,先进行时钟引脚的使能,然后取消备份区的写保护,检查是不是第一次配置时钟,若为第一次配置时钟,则复位备份区域开启外部低速时钟,设置预分频和中断分组,存储到备份区。若不为第一次配置,则直接读取备份存储区内的时间,在此基础上继续计时。

RTC时钟的核心为预分频模块与可编程计数器构成。通过程序将预分频值设置为32767即可使外部32.768KHz的晶振分频至1HZ,从而在程序中可产生1秒的TR_CLK中断,在此中断函数中进行秒计时。可编程计数器为32位计数器,按秒钟计算可连续计时232 秒,约合136年,因此,在一般设计中,此计时时间是完全够用的。 4.6.2 时间设定函数程序设计

在待机界面下,通过触摸“设置”按钮,可进入相应的二级菜单。在此状态下,无论选中哪个按钮,均可进入时间设定环节。根据图3.6所示,当S1被按下时,PA0接入高电平,通过10ms延时消抖后,可调节开关机时间中的小时数。当S2被按下时,PE4接入低电平,通过消抖后,可调节开关机时间中的分钟数。当RTC时钟计时的时间与设

本 科 毕 业 设 计

定的开关机时间相等时,则进入开关机子程序[11]。 4.6.3 熄屏子程序设计

第 29 页 共 45 页

TFT_LCD液晶显示内容是极其耗电的。为了节省不必要的电量消耗,使其更节能环保。因此,在净化器工作时,设置完净化器工作模式后,即可关闭液晶显示,在需要更改设置时,通过按键控制背光引脚,开启液晶显示。因此,在程序设计时,熄屏操作可直接将其背光控制引脚设置为0即可。

本 科 毕 业 设 计

5 试验与调试

5.1 DHT11温湿度传感器试验与调试

第 30 页 共 45 页

将单片机与DHT11模块按照图3.7所示接线,下载测试程序后,将测量的温湿度显示在LCD液晶屏上。此时温度为26度,湿度为51%。结果如图5.1所示。

为了测量其温湿度的变化与精度,在下载程序后,用手握住传感器10秒,观察温湿度变化。10秒后,温度为28度,湿度为%。结果如图5.2所示。

图5.1 试验前温湿度值 图5.2 试验后温湿度值

经过测量对比可发现,在10秒内,温度变化了2度,湿度变化了38%,由此说明该模块工作正常,测试程序正确。

5.2 SDS011激光传感器试验与调试

将单片机与SDS011激光传感器按照表3.2所示接线,下载测试程序后,将测量的PM2.5浓度用串口调试助手显示出来。其结果如图5.3所示。

本 科 毕 业 设 计

第 31 页 共 45 页

图5.3 PM2.5调试结果

在此,选取如图红框内数据进行分析计算。根据软件设计内容可知,第三位是PM2.5浓度的低字节为71,第四位是PM2.5浓度的高字节为01。根据计算可得当前PM2.5浓度值为36.9ug/m3。

经对比可知,用SDS011激光传感器测量的PM2.5浓度与当天空气质量监测的浓度相仿。由此说明该传感器工作正常,测试程序无误。

5.3 上位机控制器试验与调试

打开上位机软件,进入登录界面,输入用户名和密码后,进入显示系统[12]。将电脑USB口经无线模块与单片机PA2、PA3相连。在选择相应的串口号并设置正确的波特率后,打开串口,此时,串口状态显示为打开状态。此时,上位机就可以与单片机进行通信。其登录界面如图5.4所示,显示界面如图5.5所示。经观察,上位机与下位机参数一致,无错数、漏数情况。并通过上位机按钮可控制下位机的部分功能。因此可说明,用Visual Studio所编写的上位机软件可用。

图5.4 上位机登录系统界面

本 科 毕 业 设 计

图5.5 上位机显示系统界面

第 32 页 共 45 页

5.4 试验与调试

5.4.1 控制器外包装设计

本设计中的空气净化器是集参数采集、数据处理、驱动控制于一体的控制系统[14]。为了将各单元电路综合固定在一起,不致于无处安放。因此设计了净化器外包装来解决这一问题。利用AutoCAD画出包装盒的平面结构,以3mm轻木板作为材料,将其用激光雕刻机加工,拼接完成。其CAD平面图如图5.6所示。

本 科 毕 业 设 计

第 33 页 共 45 页

图5.6 外包装平面设计

如上所示,该包装盒既能将空气净化器滤芯放入,又能有效的固定控制器、传感器等模块。其中下半部分由10×15个、直径10mm的圆孔构成,以此作为净化器的空气流入通道。上半部分的方孔既能作为净化器的空气流出通道,又能为连接的杜邦线提供方便。每一面木板周围分布间隔相等、齿距为3mm的锯齿,有效的增加了连接部分的接触面积,使盒子拼接起来更牢固。 5.4.2 综合试验与调试

在各个单元模块调试无误后,根据硬件电路设计图将单片机与传感器模块、电机驱动模块、LCD显示模块、串口传输模块按照一定电气规则连接后,装入外包装盒内。则空气净化器整体样机如图5.7所示[18]。

在检查连接无误后,接入电源,系统开始正常工作。LCD显示各传感器采集的参数和当前时间,并显示菜单主界面。如图5.8所示。

图5.7 空气净化器样机图 图5.8 待机菜单界面

当选中“自动控制”按钮时,系统能够根据空气中的PM2.5浓度值自动调节风机转

本 科 毕 业 设 计

速。其PM2.5浓度阈值与风速关系如表5.1所示。

第 34 页 共 45 页

表5.1 PM2.5浓度阈值与风速关系表

PM最小值

0 6.5 20

PM最大值 6.5 20 50

风速 0 一档风速 二档风速

PM最小值

50 100 200

PM最大值 100 200 999

风速 三档风速 四档风速 五档风速

根据试验可得表5.2中数据。

表5.2 PM2.5浓度与风速试验数据

PM2.5浓度值(ug/m3)

324.8 145.5 86.9

风速 五档风速 四档风速 三档风速

PM2.5浓度值(ug/m3)

27.3 12.8 6.2

风速 二档风速 一档风速

0

虽然净化器滤芯有一定的PM2.5净化能力,但并不能起到绝对净化的作用。在PM2.5浓度降到6.5ug/m3以下时,空气质量已达到优,净化器净化效果不明显,故在此浓度下,关闭风机转速即可。由上表可知,在自动控制模式下,系统能够根据所测PM2.5浓度自动调节风机转速。

当选中“手动控制”按钮时,系统进入此模式下的二级菜单,如图5.9所示。在此状态下,可通过触摸“一档”、“二档”、“三档”按钮分别控制风机的转速,在设置完成后可通过触摸“返回”按钮返回至主界面,此时档位并不发生任何变化。

本 科 毕 业 设 计

图5.9 手动控制下二级菜单

第 35 页 共 45 页

当选中“设置”按钮时,系统进入此模式下的二级菜单,如图5.10所示。在此状态

下,可通过触摸“开机时间”、“关机时间”按钮进行开关机设置。由此进入此模式下的三级菜单,如图5.11所示。

图5.10 设置下二级菜单 图5.11 设置下三级菜单

在此菜单中,可通过按键设定开关机时间。当系统时间与设定的开机时间相等时,进入自动控制模式。当系统时间与设定的关机时间相等时,风机转速停止,并进入待机模式。

将上位机与单片机连接后,上位机显示界面参数与单片机液晶显示参数一样。通过点击上位机档位选择按钮,可明显观察到风机的转速变化。当点击“熄屏”按钮后,LCD液晶屏会顿时熄灭,但程序正常执行。当点击“关机”按钮后,LCD液晶屏幕熄灭,与此同时,程序停止执行,可按复位键重新加载。

本 科 毕 业 设 计

第 36 页 共 45 页

本 科 毕 业 设 计

结 论

第 37 页 共 45 页

近年来,空气污染日益加剧,PM2.5浓度久高不下,对人们的生活与健康产生了较大的影响。对此,本文利用所学的专业知识设计了一种PM2.5空气净化器,对室内的空气净化有明显效果。具体特点如下:

(1)功能强大。系统采用2.4寸彩色液晶触摸屏,能实时显示本地时间、PM2.5浓度以及温湿度,并可在自动控制与手动控制之间切换,具有定时开关机的功能。

(2)无线通信。系统通过无线收发模块将下位机采集的参数传送至上位机。通过上位机同样能控制下位机工作。随着物联网的快速发展,该功能在未来的家居智能化中发挥着重要作用。

(3)操作方便。系统在上电时已自动完成触摸屏的校准,在运行过程中,可直接通过触屏改变工作状态,避免了按键选择带来的不便。同时,该控制器通过四根可插拔的杜邦线与电源和风机相连,系统既可经过控制器进行自动控制,又可不经控制器手动调压控制,满足用户的多样化需求。

虽然本课题设计的空气净化器能对空气中的PM2.5浓度以及温湿度进行检测和控制,但作为用户净化空气的装置,仅仅具有此功能是不太完美的。根据污染物种类的多样化来设计净化器是十分必要的,在此设计的净化器基础上,可以适当增加紫 外线杀菌、甲醛检测与处理、防火防盗报警系统、GSM短息收发等功能。在遇到紧急状况下,可通过声光报警装置提示用户,也可利用GSM功能向用户发送短息求助,使产品更加人性化、智能化。

本 科 毕 业 设 计

致 谢

第 38 页 共 45 页

参 考 文 献

[1] 郭同辉. 管道煤气泄漏检测研究应用[D]. 东华理工大学, 2012.

[2] 季必文. 基于TinyOS的无线传感器网络节点设计与应用研究[D]. 北京交通大学, 2012.

[3] 蒋由辉. 航空公司运营绩效评价研究[D]. 中国民用航空飞行学院, 2012.

[4] 李金雷. 基于物联网设施农业环境信息智能采集终端研发[D]. 河北工业大学, 2013.

本 科 毕 业 设 计

第 39 页 共 45 页

[5] 范志华. 区域火灾报警控制器的设计与实现[D]. 西南交通大学, 2014. [6] 刘粉. 多标准低功耗高频RFID读卡模块的研发[D]. 西安科技大学, 2015. [7] 翟亚芳,张天鹏. 基于AVR单片机的智能家居控制系统设计[J]. 微型机与应用, 2011(11):102-104.

[8] 肖仁伟,唐小章,康志亮. GSM田间多地点多数据采集系统设计[J]. 自动化技术与应用, 2014(6):90-93.

[9] 王. 机器人PID控制技术的研究[D]. 东北大学, 2012.

[10] 赵振东. 基于USB的高频数字波形观测仪研究与设计[D]. 哈尔滨工程大学, 2006.

[11] 何承发,巴维真,吾勤之,魏锡智. 量热计数据采集和处理系统的设计[J]. 微电子学与计算机, 1994(4):38-41.

[12] 王晓宇. 薄膜厚度在线测量系统的研制[D]. 哈尔滨工业大学, 2014. [13] 黄军友. 物联网温湿度无线监测系统研究[J]. 物联网技术, 2013(9):18-21. [14] 任俊龙. 基于AVR单片机的空气净化器控制系统的硬件设计与实现[D]. 合肥工业大学, 2011.

[15] 张启,陆兴华,张传金. 基于物联网的空气净化系统的软件设计[J]. 科技视界, 2014(23):106-106.

[16] Jian shi,Mian Guo.Embedded Digital Oscilloscope Based on Stm32 and uC/OS-ll[J]. Applied Mechanics and Materials.2012,1923(190).

[17] Wen Gang Chen,Xiao Jie Song,Wei Liu. Design of Automated Distillation Analyzer Based on STM32[J]. Advanced Materials Research,2012,1566(433). [18] 娄山林.新型负离子空气净化器的研制[D]. 大连理工大学, 2006.

[19] 李田赫.InAs/GaAs自组织量子点异质结构的MOCVD生长及特性研究[D]. 北京邮电大学, 2012.

[20] D.C. Chou, Cloud computing: a value creation model, Comput. Stand. Interfaces 38(0) (2015) 72–77.

[21] 姜安玺.空气污染控制 [M].化学工业出版社 2003:255-262.

本 科 毕 业 设 计

第 40 页 共 45 页

A :空气净化器主电路原理图

附录

本 科 毕 业 设 计

第 41 页 共 45 页

本 科 毕 业 设 计

附录B :下位机C语言主程序

第 42 页 共 45 页

int main(void) {

int count_flag1=0,count_flag2=0; delay_init(); NVIC_Configuration(); uart_init(9600); LED_Init(); LCD_Init(); KEY_Init(); Adc_Init(); usmart_dev.init(SystemCoreClock/1000000); RTC_Init(); DHT11_Init();

POINT_COLOR=RED; Open_display(); LCD_Clear(WHITE); Display_THPM(); tp_dev.init(); LCD_Display(); TIM3_PWM_Init(199,7199); INT0=1; INT1=0;

TIM4_Int_Init(4999,7199); while(1)

{

Dis_Time(); //显示待机界面 PM_TEST();

tp_dev.scan(0);

if(tp_dev.sta&TP_PRES_DOWN) //屏幕被触摸 {

LCD_position(); }

if((tp_dev.x>20&&tp_dev.x<210)&&(tp_dev.y>70&&tp_dev.y<115)&&BACK_FLAG!=0) {

Auto_control(); //自动控制 }

if((tp_dev.x>20&&tp_dev.x<210)&&(tp_dev.y>140&&tp_dev.y<185)&&BACK_FLAG!=0) {

Handle_control(); //手动控制 }

本 科 毕 业 设 计

第 43 页 共 45 页

if((tp_dev.x>20&&tp_dev.x<210)&&(tp_dev.y>210&&tp_dev.y<255)&&BACK_FLAG!=0) {

Setting(); //设置 }

else ; }

else ; X_Close(); flag=1;

Time_Autoadj(); // } }

定时时间判断 本 科 毕 业 设 计

附录C :上位机C#语言主程序

第 44 页 共 45 页

namespace 登录界面 {

public partial class Form2 : Form {

private int counter = 0; int i = 0, USART_RX_STA;

string[] numbers = new string[] { }; public Form2() {

InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) {

Form1 fm1 = new Form1(); this.Close();

fm1.Show(); }

private void Form2_Load(object sender, EventArgs e) {

this.ControlBox = false; combox.Text = \"COM1\"; btlbox.Text = \"9600\";

serialPort1.DataReceived+=new ;

SerialDataReceivedEventHandler(port_DataReceived); } Private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) {

string str; int Res;

str = serialPort1.ReadExisting(); textBoxreceive.AppendText(str); Res = Convert.ToInt32(str); if (Res != 0X0A)//未接到结束 {

numbers[USART_RX_STA] = str; USART_RX_STA++; }

else //接收到结束符 {

USART_RX_STA = 0;

textBox1.Text = numbers[0];

本 科 毕 业 设 计

第 45 页 共 45 页

textBoxreceive.AppendText(numbers[1]); }

private void openserial_Click(object sender, EventArgs e) {

try {

serialPort1.PortName = combox.Text;

serialPort1.BaudRate = Convert.ToInt32(btlbox.Text, 10); serialPort1.Open();

openserial.Enabled = false; closeserial.Enabled = true; serialsta.Text = \"打开”;

} catch {

MessageBox.Show(\"端口错误,请检查串口, \"错误提示\"); } }

private void closeserial_Click(object sender, EventArgs e) {

serialPort1.Close();

openserial.Enabled = true; closeserial.Enabled = false; serialsta.Text = \"关闭\"; }

private void timer1_Tick(object sender, EventArgs e) //一秒 {

counter++;

labtime.Text = Convert.ToString(counter) + \"秒\"; if (counter == 60000) counter = 0; }

private void button2_Click(object sender, EventArgs e) {

serialPort1.Write(Convert.ToString(1)); }

private void button3_Click(object sender, EventArgs e) {

serialPort1.Write(Convert.ToString(2)); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- obuygou.com 版权所有 赣ICP备2024042798号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务