基于单片机的便携式有害气体检测装置毕业设计.docx
- 文档编号:23877315
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:55
- 大小:666.62KB
基于单片机的便携式有害气体检测装置毕业设计.docx
《基于单片机的便携式有害气体检测装置毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的便携式有害气体检测装置毕业设计.docx(55页珍藏版)》请在冰豆网上搜索。
基于单片机的便携式有害气体检测装置毕业设计
基于单片机的便携式有害气体检测装置毕业设计
第1章绪论
1.1选题的目的和选题的意义
随着我国经济的快速发展,全国机动车辆数量和驾驶员人数猛增,在各种密闭的移动舱室环境中,由于舱室空间较小,密闭性较强,强制通风虽然可在一定程度上降低有害气体的浓度,但在某些作业条件下,有害气体浓度仍可维持在一定水平[1]。
存在大量气体状态污染物,这些气体污染物以分子状态存在,大部分为无机气体,例如CO、NO2、H2S、LEL、VOC等。
在行驶条件下,车内CO、SO2、NO2、H2S和总烃冬季高于夏季,而TSP和苯夏季高于冬季,CO2,甲苯的浓度无显著性季节差异[2]。
而长期接触低浓度CO者可出现头痛、头晕、耳鸣、无力、记忆力减退及睡眠障碍灯神经系统症状;NO2虽不溶于水,但可经O3氧化后与水结合形成酸,它对肺组织可产生剧烈的腐蚀和刺激作用,使肺泡毛细血管通透性增加,进而形成肺水肿,并可启动细胞膜质过氧化作用,进一步导致细胞膜结构损伤和功能障碍;其他气体如NH3被大量吸入后可出现流泪、咽痛、声音嘶哑、咳嗽等,并伴有头晕、头痛、恶心、呕吐、乏力等,甲醛也有潜在的致癌危险性[3-5]。
汽车内有害气体的污染主要由苯、甲苯、二甲苯、甲醛、丙酮等有机溶剂蒸气造成。
有害气体主要来自于两个方面,首先是汽车本身的内饰件。
目前我国家庭汽车市场的需求十分旺盛,很多厂家的汽车下了生产线就直接进入市场。
如果总装厂对汽车零部件的质量把关不严格,不符合环保要求的塑料件、地毯、车顶毡、座椅等会直接造成车内的空气污染。
其次是源于车主选择的汽车装饰。
含有有害物质的真皮、海绵、地胶、地垫、黏合剂等不同程度地造成车内的空气污染,威胁到人体健康[6,7]。
1.2国内外研究现状
日本在车内气体检测方面研究起步较早。
自1962年,日本学者Seiyama等人首先报道了半导体金属氧化物的气敏特性,并进一步做了理论研究,他们首先导入了气体检测器(GasDetector)概念。
而后,各国研究者相继在这方面做了大量工作。
上个世纪七八十年代,日本株式会社电装设计出了一种基于粉尘有害气体的传感器的车载空调控制系统,这种系统能控制车内在粉尘有害气体较多情况下启动空调系统换气[8]。
1992年,意大利的Palazzetti等人申请了关于应用于为车内空调提供控制信息的传感器单元的系统专利;
1996年,加拿大Sorensen等人研究提出了基于气体传感器的车内污染控制理论方法与系统设计;
2005年,韩国HWANGIN.SUNG等人设计出一种应用于汽车或室内的多种传感器集成系统,它集成了温度检测、湿度检测、气体检测等多种功能,它可以应用于有限空间的空气参数提取,并应用到相应控制系统中[9]。
在气体检测方面的研究近些年在国内外进展很快,但也问题不少,如检测精度灵敏度稳定性有限[10]。
国内目前有人研制出采用气体类检测模块,通过无线遥测的方法,使远方的监测站可靠地获得移动舱室内各种有害气体的环境数据。
该系统采用无线遥测技术实时采集和记录车辆在静止和行进过程中舱室内的有害气体、温湿度等状态参数和环境参数,以便分析有害气体对舱室人员身心健康的影响[11,12]。
系统可实时监测静止及移动中密闭舱室环境中的多项指标,测试数据可全部存储,同时能通过无线方式实时传送到数公里外监控车上的监测中心。
测试方法是让监测系统事先把有害气体监测仪安装在舱室内的固定位置上,在监测过程中监测仪将采集到的信号一方面进行本地存贮,另一方面通过RS485接口协议送入遥测发射装置,遥测发射装置将接收到的数据流进行编码,形成标准的PCM数据流送人发射机。
发射机变成无线电波向空间发射出去,遥测地面监测中心把这些信号接收下来进行处理并绘成曲线,这样就可直观地实时监测到舱室在移动过程中的环境变化情况。
1.3论文主要内容
本论文主要完成气体浓度采集装置的设计,设计的内容包括:
A/D转换模块、键盘检测、数据显示、接口通信等。
本系统采用单片机为控制核心,以实现装置的基本控制功能。
系统主要功能内容包括:
数据信号采集滤波、开始测量、键盘检测控制、数据显示、USB通信等。
本系统设计采用功能模块化的设计思想,本论文内容分为以下几个章节:
设计器件简介和选择;硬件的设计;软件的设计和系统调试。
第2章总体方案及元器件简介
本次设计的总体框图如下图2.1:
2.1数据采集系统的硬件基本组成
硬件设计部分主要模块包括采集模块、转换模块、处理模块、显示模块、数据传输模块以及控制模块,主要元器件包括:
MCU、A/D、LCD、电源、数据选择器、传感器、USB等芯片,以下做一些器件的简介。
2.1MCU简介
本系统的数据采集以及控制部分以单片机为核心。
我们选择单片机STC89C52为控制核心,主要基于考虑STC89C52低功耗、超低价高速度、高可靠、超强抗静电,超强抗干扰、无法解密等优点。
此外,其8K在系统可编程Flash存储器,512字节RAM对于本系统的程序大小而言,已基本够用。
STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内振荡器及时钟电路,STC89C5X可以按照常规方法进行编程,也可以在线编程。
同时STC89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本。
STC单片机有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
STC89C52单片机引脚功能图如图2.2所示:
VCC:
电源电压
VSS:
即地
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
图2.2单片机引脚图
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问器件激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。
Flash编程和程序校验期间,P1接收低8位地址。
表2.1为P1.0和P1.1的第二功能。
表2.1
引脚号
功能特性
P1.0
T2:
定时器/计数器2外部计数脉冲输入,时钟输出
P1.1
T2EX:
定时器/计数器2捕获重装载触发和方向控制
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,同时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
Flash编程或校验时,P2亦接收高位地址和一些控制信号。
P3口:
P3口时一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入1时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口作为一般的I/O口线外,更重要的用途是它的第二功能,如表2.2所示。
此外,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程器件,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位复位,可禁止ALE操作。
该位置复位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:
程序储存允许输出是外部程序存储器的读选通信号,当89C5X单片机由外部程序存储器取指令(或数据)时,每个机器周期两次
有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA
/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为000H-FFFH),EA端必须保持低电平(接地)。
需要注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
表2.2P3口的第二功能
端口引脚
具体第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0
(外中断0)
P3.3
INT1(外中断1)
P3.4
T0(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
2.2模数转换器简介
实现A/D转换的基本方法很多,有计数法、逐次逼近法、双斜积分法和并行转换法。
由于逐次逼近式A/D转换具有速度快,分辨率高等优点,而且采用这种方法的ADC芯片成本低,所以我们采用逐次逼近式A/D转换器。
逐次逼近型ADC包括1个比较器、一个数模转换器、1个逐次逼近寄存器(SAR)和1个逻辑控制单元。
逐次逼近型是将采样信号和已知电压不断进行比较,一个时钟周期完成1位转换,依次类推,转换完成后,输出二进制数。
这类型ADC的分辨率和采样速率是相互牵制的。
优点是分辨率低于12位时,价格较低,采样速率也很好。
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0-5V之间。
芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
其具体特点如下:
.8位分辨率;
.双通道A/D转换;
.输入输出电平与TTL/CMOS相兼容;
.5V电源供电时输入电压在0~5V之间;
.工作频率为250KHZ,转换时间为32μS;
.一般功耗仅为15mW;
.8P、14P—DIP(双列直插)、PICC多种封装;
.商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为−40°Cto+85°C;
芯片接口说明:
.CS片选使能,低电平芯片使能。
.CH0模拟输入通道0,或作为IN+/-使用。
.CH1模拟输入通道1,或作为IN+/-使用。
.GND芯片参考0电位(地)。
.DI数据信号输入,选择通道控制。
.DO数据信号输出,转换数据输出。
.CLK芯片时钟输入。
.VCC/VREF电源输入及参考电压输入(复用)。
ADC0832引脚图如图2.4所示
图2.4ADC0832引脚图
ADC0809是采样分辨率为8位的、以逐次逼近原理进行模—数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
主要特点:
ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。
ADC0809芯片有28条引脚,采用双列直插式封装。
其引脚图如图2.5所示。
图2.5ADC0809引脚
下面说明各引脚功能:
IN0~IN7:
8路模拟量输入端。
.8位数字量输出端。
.ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
.ALE:
地址锁存允许信号,输入高电平有效。
.START:
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
.EOC:
A/D转换结束信号输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
.OE:
数据输出允许信号,输入高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
.CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
.REF(+)、REF(-):
基准电压。
.VCC:
电源,单一+5V。
.GND:
地。
鉴于ADC08328位分辨率、双通道A/D转换、输入输出电平与TTL/CMOS相兼容、5V电源供电时输入电压在0~5V之间、工作频率为250KHZ、转换时间为32微秒、一般功耗仅为15MW等特点完全能满足设计所需要求,并且价格便宜,所以在本设计中采用ADC0832作为模数转换器件。
2.3液晶显示器的简介
为了从单片机上直接了解当前采集信号的信息和机器状态,可在单片机上安装数码管(LED)或液晶屏(LCD)。
数码管只能显示一些数字信息,很难从这些数字了解机器的状态。
液晶显示模块是一种常用的人机界面,其在单片机系统中应用极为广泛。
液晶显示模块既可显示字符,又可显示简单图形。
在本设计中选用液晶屏LCD1602来作为显示模块。
LCD1602字符型液晶显示器的特点及其用法:
.单5V电源电压,低功耗、长寿命、高可靠性。
.内置192种字符(160个5×7点阵字符和32个5×10点阵字符)。
.具有64个字节的自定义字符RAM,可自定义点阵字符。
.显示方式:
STN、半透、正显。
.驱动方式:
1/16并口,1/5串口。
.背光方式:
底部LED。
.通讯方式:
4位或8位并口可选。
.标准的接口特征:
适配MC51和M6800系统MPU的操作时序。
LCD1602液晶显示屏的主要技术参数如下表所示:
(表2.3)
表2.3LCD1602液晶主要参数
显示容量
16×2个字符
芯片工作电压
4.5-5.5V
工作电流
2.0mA(5.0V)
模块最佳工作电压
5.0V
字符尺寸
2.95×4.35(mm)
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块;基本特性:
.低电源电压(VDD:
+3.0--+5.5V)
.显示分辨率:
128×64点
.内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)
.内置128个16×8点阵字符,2MHZ时钟频率
.显示方式:
STN、半透、正显,驱动方式:
1/32DUTY,1/5BIAS
.视角方向:
6点,背光方式:
侧部高亮白色LED,功耗仅为普通LED的1/5—1/10
.通讯方式:
串行、并口可选,内置DC-DC转换电路,无需外加负压
.无需片选信号,简化软件设计,工作温度:
0度-+55度,存储温度:
-20度-+60度。
在单片机系统中应用液晶显示器作为输出器件有以下几个有点:
显示质量高;数字式接口:
液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便;体积小、重量轻;功耗低:
相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其他显示器要少的多。
2.4MQ2及其测量电路的特点
MQ2气敏元件响应速度快,具有良好的重复性、选择性。
元件工作稳定、可靠.抗H2S中毒。
其特性图和响应曲线见图2.6。
应用:
工业现场的天然气、液化气、煤气、烷类等可燃性气体及汽油、醇、酮、苯等有机溶剂蒸汽的浓度检测;可燃性气体泄漏报警器;可燃性气体探测器;气体浓度计等。
其模块详细参数见表2.4。
图2.6MQ2的灵敏度特性及响应恢复特性
表2.4MQ2模块详细参数指标
A:
标准工作条件
符号
参数名称
技术条件
备注
Vc
回路电压
5.0V±0.1V
ACorDC
VH
加热电压
5.0V±0.1V
ACorDC
RL
负载电阻
可调
RH
加热电阻
33Ω±5%
室温
PH
加热功耗
≤800mW
工作电压(V)
2.8±0.1
工作电流(mA)
90±10
灵敏度
(mv)
1%甲烷
15-40
1%丁烷
30-50
1%氢气
20-40
线形度(%)
≤5
测量范围(%LEL)
0~100
响应时间(90%)
小于10秒
恢复时间(90%)
小于30秒
使用环境
-40-+70℃低于95%RH
储存环境
-20—+70℃低于95%RH
外形尺寸(mm)
MQ2:
9.5×14×19
MQ2C:
8×10×14
B:
环境条件
符号
参数名称
技术条件
备注
Tao
使用温度
-20℃-50℃
Tas
储存温度
-20℃-70℃
RH
相对湿度
小于 95%RH
O2
氧气浓度
21%(标准条件)
氧气浓度会影响灵敏度特性
最小值大于2%
C:
灵敏特性
符号
参数名称
技术参数
备注
Rs
敏感体电阻
1MΩ-8MΩ
(200ppmalcohol)
适用范围:
0.05mg/L—10mg/LAlcohol
α
(200/100)alcohol
浓度斜率
≤0.6
标准工作条件
温度:
20℃±2℃Vc:
5.0V±0.1V相对湿度:
65%±5%Vh:
5.0V±0.1V
预热时间
不少于24小时
2.5MQ3特点及其测量电路原理
MQ3特点如下:
.对乙醇蒸气有很高的灵敏度和良好的选择性
.快速的响应恢复特性
.长期的寿命和可靠的稳定性
.简单的驱动回路
MQ-3气敏元件的结构和外形如图2.7所示,由微型AL2O3陶瓷管、SnO2敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,加热器为气敏元件提供了必要的工作条件。
封装好的气敏元件有6只针状管脚,其中4个用于信号取出,2个用于提供加热电流。
测量电路如图2.8所示。
图2.7MQ-3结构和外形
图2.8MQ-3基本测量电路
图2.9MQ-3型气敏元件的灵敏度特性
图2.9给出了MQ-3气敏元件的灵敏度特性。
其中:
温度:
20℃、相对湿度:
65%、氧气浓度:
21%、RL=50kΩ(在本设计中,其值固定)、Rs:
元件在不同气体,不同浓度下的电阻值、R0:
元件在洁净空气中的电阻值。
图2.10MQ-3型气敏元件的温湿度特性
图2.10给出了MQ-3型气敏元件的温湿度特性。
Ro:
20℃,33%RH条件下,0.4mg/L浓度的乙醇蒸气中元件电阻。
Rs:
不同温度,湿度下,0.4mg/L浓度的乙醇蒸气中元件电阻。
灵敏度调整:
MQ-3型气敏元件对不同种类,不同浓度的气体有不同的电阻值。
因此,在使用此类型气敏元件时,灵敏度的调整是很重要的。
我们建议您用0.4mg/L(约200ppm)浓度的乙醇蒸气校准传感器。
当精确测量时,报警点的设定应考虑温湿度的影响。
2.6数据选择器
在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关。
数据选择器(MUX)的逻辑功能是在地址选择信号的控制下,从多路数据中选择一路数据作为输出信号。
有2选1,4选1、8选1和16选1等类型的数据选择器。
有数字信号的数据选择器,如74LS151,74HC151,也有针对模拟信号的数据选择器,如74HC4051。
在本设计中,主要是选通模拟输入信号,故用74HC4051。
2.7USB转接芯片
CP2102-性能参数:
采用MLP-28封装,尺寸仅为5mm*5mm,是CP2101的升级产品。
其集成度高,内置USB2.0全速功能控制器、USB收发器、晶体振荡器、异步串行数据总线,支持调制调节器全功能信号,无需要任何外部的USB器件。
CP2102-特性如下:
.内含USB收发器,无需外界电路器
.内含时钟电路,无需外接电路器
.其内部512字节的EEPROM可用于存储产品生厂商的ID、产品的ID序列号、电源参数、器件版本号和产品说明。
.内含上电复位电路
.片内电压调节可输出3.3V电压
.符合USB2.0规范的要求
.SUSPEND引脚支持USB状态挂起
.异步串行数据总线兼容所有握手和调制调节器接口信号
.支持的数据格式为数据位8、停止位1、2和校验位
.波特率范围为300b/s~~921.6kb/s
.内含512字节接收缓冲器和512字节发送缓冲器
2.8Keil软件简介
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码。
Keil软件是目前最流行开发MCS-51系列单片机的软件。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 便携式 有害 气体 检测 装置 毕业设计