为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于单片机的室内甲醛检测仪的设计毕业设计

2017-09-21 28页 doc 190KB 51阅读

用户头像

is_672950

暂无简介

举报
基于单片机的室内甲醛检测仪的设计毕业设计基于单片机的室内甲醛检测仪的设计毕业设计 基于单片机的室内甲醛检测仪的设计 摘 要:甲醛对人体危害极大,对此研究并设计了一种用于室内具有检测及超限报警功能的甲醛智能测试仪。其设计方案基于STC89C52单片机,选择英国达特公司的甲醛传感器。系统将传感器输出的电流经放大后信号通过A/D转换电路调理后,经由单片机进行数据处理,最后由LCD显示甲醛浓度值。 关键词:甲醛、STC89C52、传感器、A/D、LCD1602液晶 1.引言 1.1甲醛的特性及危害 甲醛是一种无色,有强烈刺激性气味的气体。易溶于水、醇和醚。甲醛在...
基于单片机的室内甲醛检测仪的设计毕业设计
基于单片机的室内甲醛检测仪的设计毕业设计 基于单片机的室内甲醛检测仪的设计 摘 要:甲醛对人体危害极大,对此研究并设计了一种用于室内具有检测及超限报警功能的甲醛智能测试仪。其设计基于STC89C52单片机,选择英国达特公司的甲醛传感器。系统将传感器输出的电流经放大后信号通过A/D转换电路调理后,经由单片机进行数据处理,最后由LCD显示甲醛浓度值。 关键词:甲醛、STC89C52、传感器、A/D、LCD1602液晶 1.引言 1.1甲醛的特性及危害 甲醛是一种无色,有强烈刺激性气味的气体。易溶于水、醇和醚。甲醛在常温下是气态,通常以水溶液形式出现。其37%的水溶液称为福尔马林,医学和科研部门常用于标本的防腐保存。在我国有毒化学品优先控制名单中甲醛列居第二 [1]位。甲醛已被世界卫生组织确定为致癌和致畸形物质。甲醛能与蛋白质结合,吸入高浓度甲醛后会出现呼吸道的严重刺激和水肿、眼刺痛、头痛,也可发生支气管哮喘皮肤直接接触甲醛,可引起皮炎、色斑、坏死。经常吸入少量甲醛,能引起慢性中毒,出现粘膜充血、皮肤刺激症、过敏性皮炎、指甲角化和脆弱等。 [2]全身症状有头痛、乏力、心悸、失眠、体重减轻以及植物神经紊乱等。 1.2甲醛的来源 1.室内装修所用的合成板材,如胶合板、细木工板、高密度板、刨花板。这些板材中甲醛起胶合剂、防腐剂的作用,主要用于加强板材的硬度、防虫、防腐。板材中残留的和未参与反应的甲醛逐渐向周围环境释放,是室内空气中甲醛的主要来源。 用合成板材制造的家具,厂家为了追求利润使用不合格的板材,再粘贴面2. 材料时使用不合格的胶水,造成家具中甲醛含量超标。 3.含有甲醛成分并有可能向外界散发的各类装饰材料,如壁纸、地毯、油漆。 2 2.总体设计方案 2.1系统设计基本要求 本次设计的主要内容是设计一种基于单片机的室内甲醛检测仪,主要利用单片机和放大电路对甲醛传感器的输出信号进行采集处理。 设计基本要求: 1.快速检测功能:当将仪器至于封闭环境时能快速测出甲醛浓度并显示。 2.超标报警功能:当甲醛浓度超出国标时给予报警提示。 2.2系统设计思路 随着现代电子技术的迅速发展,传感技术已形成一个独立的新兴的高科技领域。传感器的高度自动化、微型化与集成化,减少了对使用者环境和技术的要求,其便携式的特点尤其适合于野外、现场分析的需要。本设计拟采用英国达特公司生产的CH20甲醛传感器,传感器的贵金属电极与挥发的甲醛气体发生反应,产生与挥发的甲醛浓度成正比的电信号。由于甲醛传感器产生的电信号十分微弱,不能直接与控制电路相连接使用,我们将其首先经过一个放大电路,将信号放大,再经过模,数转换器将模拟信号转换成数字信号,在单片机电路的作用下,通过LCD将空气中甲醛含量的浓度用数字显示出来。 创新点: 1.使化学检测转化为电信号检测。 2.应用单片机来显示最后结果,成本低。 3.设备便于携带,操作简单。 4.实现单片机控制的智能化。 3 3 系统硬件电路设计 3.1主控器 AT89C52 实物图: AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。 AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 兼容MCS51指令系统 ? 8k可反复擦写(>1000次)Flash ROM 4 32个双向I/O口 ? 256x8bit内部RAM ? 3个16位可编程定时/计数器中断,时钟频率0-24MHz ? 2个串行中断 ? 可编程UART串行通道 ? 2个外部中断源 ? 共6个中断源 ? 2个读写中断口线 ? 3级加密位 全双工增强型UART。 3个16位定时/计数器,T0、T1(标准80C51)和增加的T2(捕获和比较)。 全静态工作方式:0,24MHz。 3.2 模数转换电路 ADC0809 3.2.1 ADC0809的性能特性 ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 ADC0809各脚功能如下: D7-D0:8位数字量输出引脚。 IN0-IN7:8位模拟量输入引脚。 VCC:+5V工作电压。 GND:地。 REF(+):参考电压正端。 REF(-):参考电压负端。 START:A/D转换启动信号输入端。 ALE:地址锁存允许信号输入端。 5 (以上两种信号用于启动A/D转换) EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。 CLK:时钟信号输入端(一般为500KHz)。 C:地址输入线。 A、B、 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 3.2.2 ADC0809数据操作原理 ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。 ADC0809对输入模拟量要求:信号单极性,电压范围是0,5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通 6 道的模拟量进入转换器进行转换。A,B和C为地址输入线,用于选通IN0,IN7上的一路模拟量输入。通道选择表如下表所示。 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE,1,输出转换得到的数据;OE,0,输出数据线呈高阻状态。D7,D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(,),VREF(,)为参考电压输入。 3(3 甲醛检测电路的设计 3.3.1 甲醛传感器工作原理 其实物图如下: 7 主要参数如下: 一、 尺寸:32mm X22mm X27mm 长X宽X高 二、 主要芯片:LM393、MQ-138甲醛传感器 三、 工作电压:直流5伏 四、 特点: 1、具有信号输出指示。; 2、双路信号输出(模拟量输出及TTL电平输出); 3、TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机); 4、模拟量输出0~5V电压,浓度越高电压越高; 5、对醛、醇、酮芳族化合物具有很高的灵敏度; 6、具有长期的使用寿命和可靠的稳定性; 7、快速的响应恢复特性; 8 3.3.2 甲醛传感器与ADC0809模数转换器的接口电路 3.4 显示电路的设计 实物图如下: LCD1602液晶操作原理: 工业字符型液晶,能够同时显示16x02即32个字符。(16列2行) 注:为了表示的方便 ,后文皆以1表示高电平,0表示低电平。 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符 9 位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 LCD1602引脚图 1602采用标准的16脚接口,其中: 第1脚:VSS为电源地 第2脚:VCC接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。 第7,14脚:D0,D7为8位双向数据端。 第15,16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 其与单片机的连线情况如下: 10 3.5系统报警电路设计 当电路检测到甲醛浓度超过国标的限制时,将产生一个信号给报警电路。使报警电路报警从而提醒工作人员注意,超限报警电路如图7所示。 它是有AT89C52单片机控制的,当传感器检测到的浓度超过程序设定的浓度值时,P0.4就会出现一个高电平,经过一个达林顿管以后,P0.4又出现一个低电平,电路接通,蜂鸣器开始发声。 图7报警电路 11 4系统软件部分设计 对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有C语言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。 C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、 [8]容易阅读、维护等优点,且编写的模块程序易于移植。基于C语言和汇编语言的优缺点,本系统采用C语言编写方法。 1. 主程序流程图: 12 5 误差分析及改进方法 由于实验室条件限制,无法购买先进的甲醛检测设备进行校准,因此会出现无法校验和误差较大的现象,且本次设计采用的是8位的AD转换芯片ADC0809,精度在应用中算是中等,这方面在以后改进中可以加以校验、提升。 6 设计 通过本次课程设计,使我收获很多,从最初的对元器件的初步认识,再到图书馆以及网上找了很多有关元器件的使用方法,把本次课程设计所有用到的元器件都有一个比较系统的认识,然后就根据本次设计要求设计出实现该功能的原理图。本次课程设计通过亲自上网找资料,亲自去电子市场购买元器件以及亲自焊接实物及调试整个过程,从遇到问题,到分析问题,再到解决问题整个过程亲自体会了一遍,使我深深地体会到了要做出一样成功的作品有多么的不容易。它需要严谨的治学态度,细心耐心的钻研精神。 致谢 本次课程设计是在肖慧荣老师的悉心指导下完成的。老师严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。在此,谨向肖老师表示崇高的敬意和衷心的感谢~ 13 参考文献 [1]潘政华.浅论甲醛对人体健康的影响及治理措施[J].《现代农业》,2011. [2]石靖芳.手术室人员职业危险因素分析及防护[J].《齐齐哈尔医学院学报》,2009. [3]田清华.基于电化学敏感电极的甲醛测试仪的研[D].燕山大学,2007. [4]宏晶科技《STC12C5A60S2系列单片机》数据手册[S].2010. [5]长沙太阳人电子有限公司《SMC1602A》数据手册[S].2006. [6]DART公司《甲醛传感器》数据手册[S].2004. [7]葛化敏,叶小岭.基于MSP430F449的甲醛检测仪设计[J] -工业仪表与自动化装置, 2009(3). [8]马忠梅等.《单片机的C语言应用程序设计》[M].北京航空航天大学出版社,1997. [9]刘刚等.Multisim在漏电开关保护技术设计中的应用[J].《计算机仿真》,2010. 14 附录一:总原理图 15 附录二:总程序 #include #include #include "ds18b20.h" #define uchar unsigned char #define uint unsigned int // adc0809模块接线 #define uchar unsigned char sbit STR=P0^0; //单片机P1.0接模块STR引脚, 启动转换信号 sbit EOC=P0^1; //单片机P1.1接模块EOC, 转换结束信号,高电平有效 sbit OE=P0^2; //单片机P1.2接模块OE,输出允许信号,高电平有效 sbit CLK=P0^3; //单片机P1.3接CLK ,ADC0809时钟,输入50-800KHZ的频率 //一般选用500K #define adc0809_data P3// ADC0809模块的D0-D7分别接P3.0-P3.7 /*地址选择 A 接H B 接H C 接L 选择通到IN3,当然也可以通过软件设置地址 REF+ 接VCC REF- 接GND 这样 AD=256*(VIN-(VREF-))/(VREF+)-(VREF-) (VREF+)=5V; (VREF-)=0V; AD=256*VIN/5 所以IN3口的电压VIN=AD*5/256; */ uchar AD_DATA[1]; //保存IN0通道转换后的数据 uint addata2; //==============LCD1602接口连接方法===================== /*----------------------------------------------------- |DB0-----P0.0 | DB4-----P0.4 | RW-------P2.6 | |DB1-----P0.1 | DB5-----P0.5 | RS-------P2.5 | |DB2-----P0.2 | DB6-----P0.6 | E--------P2.7 | |DB3-----P0.3 | DB7-----P0.7 | ---------------------------------------------------*/ //================================================*/ #define LCM_Data P1 //LCD1602数据接口 16 #define Busy 0x80 //用于检测LCM状态字中的Busy标识 sbit LCM_RW = P2^6; //读写控制输入端,LCD1602的第五脚 sbit LCM_RS = P2^5; //寄存器选择输入端,LCD1602的第四脚 sbit LCM_E = P2^7; //使能信号输入端,LCD1602的第6脚 //------------------蜂鸣器发声引脚定义-------------------------------------- sbit buzz=P0^4; //**************函数声明*************************************** void WriteDataLCM (uchar WDLCM);//LCD模块写数据 void WriteCommandLCM (uchar WCLCM,BuysC); //LCD模块写指令 uchar ReadStatusLCM(void);//读LCD模块的忙标 void DisplayOneChar(uchar X,uchar Y,uchar ASCII);//在第X+1行的第Y+1位置显示一个字 符 void LCMInit(void);//LCD初始 void delayms(uint ms);//1MS基准延时程序 void delay(uchar i); //延时函数2 void DisplayListChar(uchar X,uchar Y,uchar delayms, uchar code *DData); void judge_xianshi(void);//显示处理程序 void baojing();//报警函数 void init();//系统初始化设置 void AD();//读取AD数据 uchar flag1; //***********************主程序****************************** main() { uint temp; init();//系统初始化设置 LCMInit(); while(1) { AD(); if(AD_DATA[0]>102) baojing(); judge_xianshi(); delayms(100); } } /********* 系统初始化 ***********/ 17 void init() { buzz=0; EA=1; //开总中断 TMOD=0x02; //设定定时器 T0工作方式 TH0=216; //利用T0中断产生CLK信号 TL0=216; TR0=1; //启动定时器T0 ET0=1; STR=0; OE=0; } void judge_xianshi() { addata2=AD_DATA[0]*100;//把数据扩大100,为下面求取小数位后2位做准备 //DisplayListChar(0,1,0, " Lixinguang");//在液晶的第一行显示字符"Lixinguang" DisplayListChar(0,0,0, "AD="); //在液晶的第二行第0位开始显示"AD=" DisplayOneChar( 0, 3, AD_DATA[0]/100+0x30); //显示AD数据的百位 DisplayOneChar( 0, 4, AD_DATA[0]/10%10+0x30);//显示AD数据的十位 DisplayOneChar( 0, 5, AD_DATA[0]%10+0x30);//显示AD数据的各位 DisplayListChar(0,7,0, "Vin="); //在液晶的第二行第8位开始显示"Vin=" //根据VIN=AD*5/256,求取IN3通到输入的电压 DisplayOneChar( 0, 11, AD_DATA[0]/51+0x30);//显示输入电压的整数位 DisplayListChar(0,12,0, ".");//显示小数点 DisplayOneChar( 0, 13, addata2/51/10%10+0x30);//显示输入电压小数后1位 DisplayOneChar( 0, 14, addata2/51%10+0x30);//显示输入电压小树后2位 DisplayListChar(0,15,0, "V"); } /************报警函数 *******/ void baojing() { int i; for (i=0;i<3;i++) {buzz=1; delayms(200); buzz=0; delayms(200); } buzz=0; } /***********AD 18 转换函数 **********/ void AD() { STR=0; //ADDR这样如果不是通道0,可以在这边加一条其他地址的程序 delay(10); STR=1; //启动AD转换 delay(10); STR=0; while(0==EOC);//等待转换结束 OE=1; AD_DATA[0]=adc0809_data; //读取AD数据,数据范围为0-255 OE=0; } /***********T0 中断服务程序 ************/ void t0(void) interrupt 1 using 0 { CLK=~CLK; } /*==================================================================== 按指定位置显示一串字符:第 X 行,第 y列 注意:字符串不能长于16个字符 ======================================================================* / void DisplayListChar(uchar X,uchar Y,uchar ms, uchar code *DData) { unsigned char ListLength; ListLength = 0; X &= 0x1; Y &= 0xF; //限制X不能大于15,Y不能大于1 while (DData[ListLength]!='\0') //若到达字串尾则退出 { if (Y <= 0xF) //X坐标应小于0xF { DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符 ListLength++; Y++; delayms(ms);//延时显示字符串 19 } else break;//跳出循环体 } } /*===================================================================== = LCM初始化 ======================================================================* / void LCMInit(void) { LCM_Data = 0; WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号 delayms(5); WriteCommandLCM(0x38,0); delayms(5); WriteCommandLCM(0x38,0); delayms(5); WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号 WriteCommandLCM(0x08,1); //关闭显示 WriteCommandLCM(0x01,1); //显示清屏 WriteCommandLCM(0x06,1); // 显示光标移动设置 WriteCommandLCM(0x0C,1); // 显示开及光标设置 delayms(100); } //==============================LCD1602显示子程序================================================ // 写数据函数: E =高脉冲 RS=1 RW=0 //===================================================================== =*/ void WriteDataLCM(uchar WDLCM) { ReadStatusLCM(); //检测忙 LCM_Data = WDLCM; LCM_RS = 1; LCM_RW = 0; LCM_E = 0; //若晶振速度太高可以在这后加小的延时 LCM_E = 0; //延时 LCM_E = 1; } /*==================================================================== 写指令函数: E=高脉冲 RS=0 RW=0 ======================================================================* 20 / void WriteCommandLCM(uchar WCLCM,BuysC) //BuysC为0时忽略忙检测 { if (BuysC) ReadStatusLCM(); //根据需要检测忙 LCM_Data = WCLCM; LCM_RS = 0; LCM_RW = 0; LCM_E = 0; LCM_E = 0; LCM_E = 1; } /*==================================================================== 正常读写操作之前必须检测LCD控制器状态:E=1 RS=0 RW=1; DB7: 0 LCD控制器空闲,1 LCD控制器忙。 读状态 ======================================================================* / uchar ReadStatusLCM(void) { LCM_Data = 0xFF; LCM_RS = 0; LCM_RW = 1; LCM_E = 0; LCM_E = 0; LCM_E = 1; while (LCM_Data & Busy); //检测忙信号 return(LCM_Data); } /*===================================================================== = 功 能: 在1602 指定位置显示一个字符:第一行位置0~15,第二行16~31 说 明: 第 X 行,第 y 列 注意:字符串不能长于16个字符 ======================================================================* / void DisplayOneChar( uchar X, uchar Y, uchar ASCII) { X &= 0x1; Y &= 0xF; //限制Y不能大于15,X不能大于1 if (X) Y |= 0x40; //当要显示第二行时地址码+0x40; Y |= 0x80; // 算出指令码 WriteCommandLCM(Y, 0); //这里不检测忙信号,发送地址码 WriteDataLCM(ASCII); } /*==================================================================== 21 设定延时时间:x*1ms ====================================================================*/ void delayms(uint Ms) { uint i,TempCyc; for(i=0;i0;j--) ; } } 内部资料 仅供参考 内部资料 仅供参考 22 D1D2D3D4D5D6D7D8LEDLEDLEDLEDLEDLEDLEDLEDP11VCCR11R12R13R14R15R16R17R182GND1K1K1K1K1K1K1K1K VCCU1AU1BU1CU1DU2AU2BU2CU2D1781178144LM324LM324LM324LM324LM324LM324LM324VCCLM32441111411411411411411411411J2J1GNDR192365923659R10111111J40320321KR1R2R3R4R5R6R7R8R9111KJ31K1K1K1K1K1K1K100K GND U3LM7805VCCD4D313Vin+5VP11D40074007C4C6NC5C7GD6D51041042470U100u240074007DS1DS2DS3DS4a7a7a7a7aaaab6b6b6b6GNDbbbbaaaac4c4c4c4ccccDSCOM1d2d2d2d2fbfbfbfbddddgggge1e1e1e1eeeeQ1f9f9f9f9ececececffffdddd9012g10g10g10g10ggggdpdpdpdp5555dpdpdpdpDSCOM2GNDGNDGNDGNDQ2VCCDSCOM1DSCOM2DSCOM3DSCOM4383838389012DSCOM3BT1BL23VR2Q309012VCC15D2BLYVCC4007DSCOM4D1C1414810UQ4R3R4BL1abcdefg21439012100100R6R7R8R9R10R11R12R136036036036036036036010KCOM1COM2COMU1GNDLSBL2120RESVCC219RXDP1.7318GNDTXDP1.6321054C24171111911X2P1.5BL130P516U2X1P1.4XTAL16154511COM2COMCOM1FBCEADGINT0P1.3Q512MK1C3714123INT1P1.2901230P813T0P1.1912T1P1.0TIE1011ABCDLBLGNDP3.7P3K289C2051GND7126345R1310KVCCGNDR5510GNDVCCLED2LED1 23
/
本文档为【基于单片机的室内甲醛检测仪的设计毕业设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索