ImageVerifierCode 换一换
格式:DOC , 页数:22 ,大小:861KB ,
资源ID:474777      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-474777.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的室内甲醛检测仪的设计毕业设计文档格式.doc)为本站会员(聆听****声音)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于单片机的室内甲醛检测仪的设计毕业设计文档格式.doc

1、3.设备便于携带,操作简单。4.实现单片机控制的智能化。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个外部双向输入/输

2、出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。兼容MCS51指令系统 8k可反复擦写(1000次)Flash ROM 32个双向I/O口 256x8bit内部RAM 3个16位可编程定时/计数器中断,时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共6个中断源 2个读写中断口线 3级加密位 全双工增强型UART。 3个16

3、位定时/计数器,T0、T1(标准80C51)和增加的T2(捕获和比较)。 全静态工作方式:024MHz。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端为高电平时,才可以从三态输出锁存器取走转换完的数据。

4、 ADC0809各脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换).EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A、B、C:地址输入线。CBA选择的通道IN01IN1IN2IN3IN4IN5IN6IN73.2.2 ADC0809数据操作原理 ADC

5、0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。 ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。A,B和C为地址输入线,用于选通IN

6、0IN7上的一路模拟量输入。通道选择表如下表所示。ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(),VREF()为参考电压输入。33 甲醛检测电路的设计3.3.1 甲

7、醛传感器工作原理 其实物图如下:主要参数如下:一、 尺寸:32mm X22mm X27mm 长X宽X高二、 主要芯片:LM393、MQ-138甲醛传感器三、 工作电压:直流5伏四、 特点:1、具有信号输出指示。;2、双路信号输出(模拟量输出及TTL电平输出);3、TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机);4、模拟量输出05V电压,浓度越高电压越高;5、对醛、醇、酮芳族化合物具有很高的灵敏度;对醛、醇、酮、芳族化合物具有很高的灵敏度对醛、醇、酮、芳族化合物具有很高的灵敏度;对醛、醇、酮、芳族化合物具有很高的灵敏度;6、具有长期的使用寿命和可靠的稳定性;7、快速的响应

8、恢复特性;3.3.2 甲醛传感器与ADC0809模数转换器的接口电路3.4 显示电路的设计实物图如下:LCD1602液晶操作原理:工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)注:为了表示的方便 ,后文皆以1表示高电平,0表示低电平。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内

9、容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。LCD1602引脚图1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(

10、1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。其与单片机的连线情况如下:3.5系统报警电路设计当电路检测到甲醛浓度超过国标的限制时,将产生一个信号给报警电路。使报警电路报警从而提醒工作人员注意,超限报警电路如图7所示。它是有AT89C52单片机控制的,当传感器检测到的浓度超过程序设定的浓度值时,P0.4就会出现一个高电平,经过一个达林顿管以后,P0.4又出现一个低电平,电路接通,蜂鸣器开始发声。图7报警电路4

11、系统软件部分设计对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有C语言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植8。基于C语言和汇编语言的优缺点,本系统采用C语言编写方法。1. 主程序流程图: 5 误差分析及改进方法由于实验室条件限制,无法购买先进的甲醛检测设备进行校准,因此会出现无法校验和误差较大的现象

12、,且本次设计采用的是8位的AD转换芯片ADC0809,精度在应用中算是中等,这方面在以后改进中可以加以校验、提升。6 设计总结通过本次课程设计,使我收获很多,从最初的对元器件的初步认识,再到图书馆以及网上找了很多有关元器件的使用方法,把本次课程设计所有用到的元器件都有一个比较系统的认识,然后就根据本次设计要求设计出实现该功能的原理图。本次课程设计通过亲自上网找资料,亲自去电子市场购买元器件以及亲自焊接实物及调试整个过程,从遇到问题,到分析问题,再到解决问题整个过程亲自体会了一遍,使我深深地体会到了要做出一样成功的作品有多么的不容易。它需要严谨的治学态度,细心耐心的钻研精神。致谢本次课程设计是在

13、肖慧荣老师的悉心指导下完成的。老师严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。在此,谨向肖老师表示崇高的敬意和衷心的感谢!参考文献1潘政华.浅论甲醛对人体健康的影响及治理措施J.现代农业,2011.2石靖芳.手术室人员职业危险因素分析及防护J.齐齐哈尔医学院学报,2009. 3田清华.基于电化学敏感电极的甲醛测试仪的研D.燕山大学,2007.4宏晶科技STC12C5A60S2系列单片机数据手册S.2010.5长沙太阳人电子有限公

14、司SMC1602A数据手册S.2006.6DART公司甲醛传感器数据手册S.2004.7葛化敏,叶小岭.基于MSP430F449的甲醛检测仪设计J -工业仪表与自动化装置, 2009(3).8马忠梅等.单片机的C语言应用程序设计M.北京航空航天大学出版社,1997.9刘刚等.Multisim在漏电开关保护技术设计中的应用J.计算机仿真,2010. 附录一:总原理图附录二:总程序#include intrins.h#include ds18b20.h#define uchar unsigned char#define uint unsigned int/ adc0809模块接线#define u

15、char unsigned char sbit STR=P00; /单片机P1.0接模块STR引脚, 启动转换信号sbit EOC=P01; /单片机P1.1接模块EOC, 转换结束信号,高电平有效sbit OE=P02; /单片机P1.2接模块OE,输出允许信号,高电平有效sbit CLK=P03; /单片机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+

16、接VCC REF- 接GND这样 AD=256*(VIN-(VREF-)/(VREF+)-(VREF-) (VREF+)=5V; (VREF-)=0V; AD=256*VIN/5所以IN3口的电压VIN=AD*5/256;*/uchar AD_DATA1; /保存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 | -*/

17、=*/ #define LCM_Data P1 /LCD1602数据接口#define Busy 0x80 /用于检测LCM状态字中的Busy标识sbit LCM_RW = P26; /读写控制输入端,LCD1602的第五脚sbit LCM_RS = P25; /寄存器选择输入端,LCD1602的第四脚sbit LCM_E = P27; /使能信号输入端,LCD1602的第6脚/-蜂鸣器发声引脚定义-sbit buzz=P04;/*函数声明*void WriteDataLCM(uchar WDLCM);/LCD模块写数据void WriteCommandLCM(uchar WCLCM,Buys

18、C); /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); /延时函数2void DisplayListChar(uchar X,uchar Y,uchar delayms, uchar code *DData);void judge_xianshi(void);/显

19、示处理程序void baojing();/报警函数 void init();/系统初始化设置void AD();/读取AD数据uchar flag1;/*主程序*main() uint temp; init(); LCMInit(); while(1) AD(); if(AD_DATA0102) baojing(); judge_xianshi(); delayms(100); /*系统初始化*/ void init() buzz=0; EA=1; /开总中断 TMOD=0x02; /设定定时器 T0工作方式 TH0=216; /利用T0中断产生CLK信号 TL0=216; TR0=1; /启

20、动定时器T0 ET0=1; STR=0; OE=0; void judge_xianshi() addata2=AD_DATA0*100;/把数据扩大100,为下面求取小数位后2位做准备 /DisplayListChar(0,1,0, Lixinguang);/在液晶的第一行显示字符Lixinguang DisplayListChar(0,0,0, AD= /在液晶的第二行第0位开始显示 DisplayOneChar( 0, 3, AD_DATA0/100+0x30); /显示AD数据的百位 DisplayOneChar( 0, 4, AD_DATA0/10%10+0x30);/显示AD数据的

21、十位 DisplayOneChar( 0, 5, AD_DATA0%10+0x30);/显示AD数据的各位 DisplayListChar(0,7,0, Vin= /在液晶的第二行第8位开始显示/根据VIN=AD*5/256,求取IN3通到输入的电压 DisplayOneChar( 0, 11, AD_DATA0/51+0x30);/显示输入电压的整数位 DisplayListChar(0,12,0, ./显示小数点 DisplayOneChar( 0, 13, addata2/51/10%10+0x30);/显示输入电压小数后1位 DisplayOneChar( 0, 14, addata2

22、/51%10+0x30);/显示输入电压小树后2位 DisplayListChar(0,15,0, V/*报警函数 */ void baojing() int i; for (i=0;i3;i+) buzz=1; delayms(200); buzz=0; delayms(200); buzz=0; /*AD转换函数*/ void AD() STR=0; /ADDR这样如果不是通道0,可以在这边加一条其他地址的程序 delay(10); STR=1; /启动AD转换 while(0=EOC);/等待转换结束 OE=1; AD_DATA0=adc0809_data; /读取AD数据,数据范围为0-255 OE=0; /*T0中断服务程序*/ void t0(void) interrupt 1 using 0 CLK=CLK;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2