基于AT89C51的气体浓度测量显示及报警系统W_第1页
基于AT89C51的气体浓度测量显示及报警系统W_第2页
基于AT89C51的气体浓度测量显示及报警系统W_第3页
基于AT89C51的气体浓度测量显示及报警系统W_第4页
基于AT89C51的气体浓度测量显示及报警系统W_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、哈尔滨商业大学课程设计哈尔滨商业大学课程设计基于基于AT89C51单片机的气体浓度测量显示及单片机的气体浓度测量显示及报警系统设计报警系统设计学生姓名王琴、李赛赛、汪金萍、周珊珊指导教师赵志杰、张玉茹、王立琦、董世成专业电子信息工程(2)班学院计算机与信息工程学院2014年3月14日目录11课程设计要求课程设计要求.111.1课程设计题目.11.2课程设计要求.11.3课程设计具体工作.12.2.气体浓度测量显示及报警系统简介气体浓度测量显示及报警系统简介.222.1AT89C51简介.22.2AD0808简介.52.3MQ-5气体传感器简介.62.4LCD1602简介.103.3.气体浓度测

2、量显示及报警系统设计气体浓度测量显示及报警系统设计.14143.1系统的硬件组成和元器件选择.143.2电路总体设计.143.3数据采集模块的设计.153.4数据转换模块的设计.153.5显示及报警模块的设计.154.4.气体浓度测量显示及报警系统的软件设计气体浓度测量显示及报警系统的软件设计.17174.1系统的软件设计.174.2编程环境KeilC51.174.3软件流程框图.184.4系统程序.1955气体浓度测量显示及报警系统仿真调试气体浓度测量显示及报警系统仿真调试.22225.1系统仿真调试.225.2仿真调试环境-PROTEUS7.7.225.3系统仿真调试结果.23结结论论.2

3、424参考文献参考文献.2525致致谢谢.2525附件一:.26基于AT89C51单片机的气体浓度测量显示及报警系统电路板图.26附件二:.27基于AT89C51单片机的气体浓度测量显示及报警系统实物图.271课程设计要求课程设计要求1.11.1课程设计题目课程设计题目基于AT89C51单片机的气体浓度测量显示及报警系统设计1.21.2课程设计要求课程设计要求(1)任选一种有害气体传感器;(2)设计转换放大电路将气体浓度转换成标准的电信号;(3)利用单片机组成测量系统实现有害气体浓度的精确测量及显示报警。1.31.3课程设计具体工作课程设计具体工作(1)原理图设计、软件设计、PCB;(2)仿真

4、实现;(3)元件清单;(4)设计报告。2.气体浓度测量显示及报警系统简介气体浓度测量显示及报警系统简介2.12.1AT89C51AT89C51简介简介AT89C51是一种带4K字节的闪烁可编程可擦除只读存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。其中包括128字节内部RAM,32个I/O口线,2个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式26。空闲方式体制CPU的

5、工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器体制工作并禁止其他所有不见工作直到下一个硬件复位。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。AT89C51单片机管脚图如图1所示。图1AT89C51芯片引脚图2.22.2ADC0808ADC0808简介简介ADC0808芯片有

6、28条引脚,采用双线直插式封装.ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。ADC0808芯片有28条引脚,采用双列直插式封装,如图2所示。图2ADC0808芯片引脚图ADC0808的时序图

7、如图3所示。图3ADC0808时序图2.3MQ-52.3MQ-5气体传感器简介气体传感器简介2.3.12.3.1特点特点(1)对液化气,天然气,城市煤气有较好的灵敏度;(2)对乙醇,烟雾几乎不响应;(3)快速的响应恢复特性;(4)长期的使用寿命和可靠的稳定性;2.3.22.3.2应用应用适用于家庭或工业上对液化气,天然气,煤气的监测装置。优良的抗乙醇,烟雾干扰能力。2.3.32.3.3规格规格(1)标准工作条件表1MQ-5的标准工作条件符号参数名称技术条件备注VC回路电压15VACorDCVH加热电压5.0V0.2VACorDCRL负载电阻可调RH加热电阻313室温PH加热功耗900mW(2)

8、环境条件表2MQ-5的环境条件符号参数名称技术条件备注Tao使用温度-10-50Tas存储温度-20-70Rh相对湿度小于95%RhO2氧气浓度21%(标准条件)氧气浓度会影响灵敏度特性最小值大于2%(3)灵敏度特性表3MQ-5的灵敏度特性符号参数名称技术参数备注RS敏感体电阻10K-60K(1000ppm甲烷(1000ppm/5000ppmCH4)浓度斜率0.6标准工作条件预热时间温度:202Vc:5.0V0.1V相对湿度:65%5%Vh:5.0V0.1V不少于24小时探测范围:300-5000ppm液化气,天然气,煤气。(4)结构外形测试电路表4MQ-5的结构外形部件材料1气体敏感层二氧化

9、锡2电极金(Au)3测量电极引线铂(Pt)4加热器镍铬合金(Ni-Cr)5陶瓷管三氧化二铝6防爆网100目双层不锈钢(SUB316)7卡环镀镍铜材(Ni-Cu)8基座胶木9针状管脚镀镍铜材(Ni-Cu)MQ-5气敏元件的结构和外形如Fig.1所示。测量电路如图Fig.2所示。Fig.1MQ-5的结构外形Fig.2MQ-5的测试电路由微型AL2O3陶瓷管、SnO2敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,加热器为气敏元件提供了必要的工作条件。封装好的气敏元件有6只针状管脚,其中4个用于信号取出,2个用于提供加热电流。2.3.42.3.4灵敏度调整灵敏度调整MQ-5型气

10、敏元件对不同种类,不同浓度的气体有不同的电阻值。因此,在使用此类型气敏元件时,灵敏度的调整是很重要的。建议用1000ppm异丁烷或氢气校准传感器。2.42.4LCD1602LCD1602简介简介在日常生活中,液晶显示模块已作为很多电子产品的通用器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。而液晶显示器各种图形的显示原理为:(1)线段的显示点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字

11、节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。(2)字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,

12、其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。(3)汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三

13、个字节直到32B显示完就可以LCD上得到一个完整汉字。(4)LCD1602的基本参数及引脚功能如图2.4所示。图2.41602LCD尺寸图(6)1602LCD的指令时序如图5、6所示。图5读操作时序图6写操作时序3.气体浓度测量显示及报警系统设计气体浓度测量显示及报警系统设计3.13.1系统的硬件组成和元器件选择系统的硬件组成和元器件选择(1)系统的硬件原理图,如图7所示。图7系统原理图3.23.2电路总体设计电路总体设计(1)电路总体设计模块图,如图8所示。图8电路总体设计模块图主机选用单片机AT89C51来实现,利用单片机软件编程灵活、自由度大的特点,力求用软件完善各种控制。本系统选用的A

14、T89C51芯片时钟为12MHz,运算速度快,控制功能完善;选用气体传感器MQ-5来实现气体浓度的采集;选用ADC0808来实现模拟量与数字量的转换;选用LCD1602来实现气体浓度的显示;选用蜂鸣器和LED灯来实现报警。3.33.3数据采集模块的设计数据采集模块的设计数据采集电路主要由气体传感器MQ-5和滑动变阻器组成。由MQ-5感测空气中的有害气体浓度的变化,经过其内部器件处理将气体浓度这个模拟信号转换成对应的电信号,MQ-5输出的电信号通过滑动变阻器的调节改变进入ADC0808的电信号值。数据采集模块如图9所示。AT89C51控制实现报警与显示气体传感器采集气体浓度值ADC0808将模拟

15、量转换为数字量LCD1602显示LED灯显示,蜂鸣器报警图9数据采集电路3.43.4数据转换模块的设计数据转换模块的设计外部的模拟信号量需要转变成数字量才能进一步的由单片机进行处理。ADC0808可以非常方便的处理输入的模拟信号量。ADC通过逐次比较(successiveapproximation)方式,将输入端的模拟电压转换成8位的数字量。数据转换模块如图10所示。图10数据转换模块while(1)ST=0;delay1ms(1);ST=1;delay1ms(1);ST=0;/寄存器SAR复位,启动ADC0809while(1)if(EOC=1)/ADC0808转换结束后改引脚为高低平OE=

16、1;/输出允许信号为1时表示把ADC0808采集的数据输出getdata=P0;/把采集到的数据送到P0口处理OE=0;/又打开ADC0808让继续开始转换3.53.5显示及报警模块的设计显示及报警模块的设计经由单片机处理后的数字量通过LCD1602进行显示当前的气体浓度值,同时如果当前的气体浓度对人体无害,则绿灯亮;如果当前的气体浓度对人体有害,则红灯亮同时蜂鸣器报警。显示及报警模块如图11所示。图11显示及报警模块voidinit_play()/初始化显示lcd_init();wr_com(0 x80);/第1行第一列display(str1);/显示Consentrationwr_com

17、(0 xc0);/第二行第一列display(str2);/显示空格wr_com(0 xc9);/第二行第九列display(str3);/显示ppmvoidshow_Concentration()/浓度值显示disdata0=con/1000+0 x30;/千位数disdata1=con%1000/100+0 x30;/百位数disdata2=con%100/10+0 x30;/十位数disdata3=con%10+0 x30;/个位数if(disdata0=0 x30)disdata0=0 x20;/如果千位为0,不显示if(disdata1=0 x30)disdata1=0 x20;/如

18、果千位为0,百位为0也不显示if(disdata2=0 x30)disdata2=0 x20;/如果千位为0,百位为0,十位为0也不显示wr_com(0 xc3);wr_dat(disdata0);/显示千位wr_com(0 xc4);wr_dat(disdata1);/显示百位wr_com(0 xc5);wr_dat(disdata2);/显示十位wr_com(0 xc6);wr_dat(disdata3);/显示个位show_Concentration();/LCD1602显示if(con320)/如果采集到的浓度小于320不报警G_LED=0;R_LED=1;SPK=1;else/如果浓

19、度大于320则声光报警G_LED=1;R_LED=0;SPK=0;break;/跳出继续进行ADC0808的采集4.气体浓度测量显示及报警系统的软件设计气体浓度测量显示及报警系统的软件设计4.14.1系统的软件设计系统的软件设计系统的软件由主程序模块、数据采集模块和显示报警模块三大模块组成。在主程序中首先给定参数值,然后通过启动AD转换循环显示当前电压。4,24,2编程环境编程环境-KeilC51KeilC51KeilC51是一种专为8051单片机设计的高级语言C编译器,支持符合ANSI标准的C语言程序设计,同时针对8051单片机自身特点作了一些特殊扩展。C语言对语法的限制不太严格,用户在编写

20、程序时有较大的空间,但它毕竟还是一种程序设计语言,与其他计算机语言一样,采用C语言进行程序设计时,仍需要遵从一定的语法规则。KeilC51编译器支持标准C语言的数据类型,另外还根据8051单片机的特点扩展了bit、sbit、sfr、sfr16数据类型。KeilC51编译器支持两种指针类型:一般指针和基于存储器的指针。一般指针需要占3个字节,基于存储器的指针只需要12个字节。一般指针具有良好的兼容性但运行速度较慢,基于存储器的指针是C51编译器专门针对8051单片机存储器特点进行的扩展,它只适用于8051单片机,但具有较高的运行速度。4.34.3软件流程框图软件流程框图NNYNY图12软件流程图

21、初始化启动A/D转换转换完成?结束浓度是否超过320ppm开始LCD1602显示绿灯亮红灯亮,蜂鸣器报警4.44.4系统程序系统程序(1)主程序voidmain()/主函数Init();/定时器初始化init_play();/初始化显示while(1)ST=0;delay1ms(1);ST=1;delay1ms(1);ST=0;/寄存器SAR复位,启动ADC0809while(1)if(EOC=1)/ADC0808转换结束后改引脚为高低平OE=1;/输出允许信号为1时表示把ADC0808采集的数据输出getdata=P0;/把采集到的数据送到P0口处理OE=0;/又打开ADC0808让继续开始

22、转换con=getdata*19.53;/因为有AD采集回来的数为0255;显示温度为05000show_Concentration();/LCD1602显示if(con320)/如果采集到的浓度小于320不报警G_LED=0;R_LED=1;SPK=1;else/如果浓度大于320则声光报警G_LED=1;R_LED=0;SPK=0;break;/跳出继续进行ADC0808的采集5简单电压数据采集系统仿真调试简单电压数据采集系统仿真调试5.15.1系统仿真调试系统仿真调试本次课程设计中主要是通过protues进行系统的仿真与调试,对所设计的系统进行可行性的验证。5.25.2仿真调试环境仿真调

23、试环境-protues-protues7.77.7Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处

24、理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译功能特点5.35.3系统仿真调试结果系统仿真调试结果图13系统仿真调试结果图14系统仿真调试结果结结论论本文所研制的气体浓度测量显示及报警系统是单片机控制的系统,它的主要特点是:(1)该仪器的数学模型、测量原理简单,(2)使用范围大。(3)该仪器可以进行有害气体浓度的实时显示,使用方便。(4)该仪器的软件系统全部采用C语言编写,

25、提高了程序的可读性和可移植性。气体浓度测量显示及报警系统的研制开发具有广阔的应用前景,经分析论证,误差小;整个单片机系统稳定、可靠、准确。参考文献参考文献1单片机原理与应用-基于Proteus虚拟仿真技术徐爱钧徐阳著第二版2单片机应用技术(C语言版)王静霞主编3MQ-5使用说明4百度文库5中国知网致致谢谢在本次课程设计期间,我们组得到了实验室的老师、同学的热情帮助,向他们学到了许多宝贵知识和经验。值此设计报告完成之际,谨向曾经给予我们组关心和帮助的老师、同学和亲友表示衷心的感谢。感谢赵志杰老师、张玉茹老师、王立琦老师、董世成老师这段时间来对我们组的课题、研究的悉心指导。我们组的研究课题是在各位

26、老师的指导下完成的,从课题的理解和总体思路的设计,老师们给了我们组很重要的指导。老师们对待学术问题的严谨态度,对设计的实用化思想,更是对我们组的言传身教,是我们组学习和研究上的良师益友,对我们组工作和学习上的指导更使我们组受益匪浅。感谢给了我们组很大帮助的同学,使我们组能少走弯路,顺利的完成课题。感谢父母与家人对我们组多年的教诲和关爱,没有他们在生活上的帮助,我们组完成学业是不可能的。附件一:基于AT89C51的气体浓度测量显示及报警系统电路板图附件二:基于AT89C51的气体浓度测量显示及报警系统实物图附件三:基于AT89C51的气体浓度测量显示及报警系统的程序清单#include#defi

27、neucharunsignedchar#defineuintunsignedintunsignedintcon;unsignedchargetdata;sbitRS=P20;sbitRW=P21;sbitEN=P22;sbitST=P25;/AD0809转换启动信号与地址所存允许引脚注意:在使用时ALE和STRT信号引脚连在一起sbitOE=P27;/ADC0808输出允许信号sbitEOC=P26;/ADC0808转换结束信号引脚sbitCLK=P24;/ADC0808的时钟引脚sbitG_LED=P30;/浓度小于320时的绿灯指示sbitR_LED=P31;/浓度大于320时的红灯指示s

28、bitSPK=P37;/浓度大于320时蜂鸣器报警unsignedcharcodestr1=Concentration:;unsignedcharcodestr2=;unsignedcharcodestr3=ppm;uchardatadisdata5;voidInit()/定时器0的初始化定时器0给ADC0808提供时钟让其工作EA=1;ET0=1;TMOD=0 x02;TH0=245;TL0=0;TR0=1;/开启定时器0给ADC0808提供时钟/*lcd1602程序*/voiddelay1ms(unsignedintms)/延时1毫秒unsignedinti,j;for(i=0;ims;i

29、+)for(j=0;j100;j+);voidwr_com(unsignedcharcom)/写指令/delay1ms(1);RS=0;RW=0;EN=0;P1=com;delay1ms(1);EN=1;delay1ms(1);EN=0;voidwr_dat(unsignedchardat)/写数据/delay1ms(1);RS=1;RW=0;EN=0;P1=dat;delay1ms(1);EN=1;delay1ms(1);EN=0;voidlcd_init()/初始化设置/delay1ms(15);wr_com(0 x38);delay1ms(5);/数据位数8位,2行,5*7点阵-工作方式

30、设置wr_com(0 x08);delay1ms(5);/显示状态设置:显示未开wr_com(0 x01);delay1ms(5);/清屏,将光标设置为第一行第一列wr_com(0 x06);delay1ms(5);/增量方式右移,显示字符不移动wr_com(0 x0c);delay1ms(5);/开显示,不显示光标,光标位字符不闪烁voiddisplay(unsignedchar*p)/显示/while(*p!=0)wr_dat(*p);p+;delay1ms(1);voidinit_play()/初始化显示lcd_init();wr_com(0 x80);/第1行第一列display(str1);/显示Consentrationwr_com(0 xc0);/第二行第一列display(str2);/显示空格wr_com(0 xc9);/第二行第九列display(str3);/显示ppm/*/voidshow_Concentration()/浓度值显示disdata0=con/1000+0 x30;/千位数disdata1=con%1000/100

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论