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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于AT89C51的气体浓度测量显示及报警系统课程设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于AT89C51的气体浓度测量显示及报警系统课程设计.docx

1、基于AT89C51的气体浓度测量显示及报警系统课程设计课程设计基于AT89C51单片机的气体浓度测量显示及报警系统设计2.3 MQ-5气体传感器简介. 64.2 编程环境KeilC51. 171 课程设计要求1.1 课程设计题目基于AT89C51单片机的气体浓度测量显示及报警系统设计1.2 课程设计要求(1)任选一种有害气体传感器;(2)设计转换放大电路将气体浓度转换成标准的电信号;(3)利用单片机组成测量系统实现有害气体浓度的精确测量及显示报警。1.3 课程设计具体工作 (1)原理图设计、软件设计、PCB;(2)仿真实现;(3)元件清单;(4)设计报告。 2. 气体浓度测量显示及报警系统简介

2、2.1 AT89C51简介AT89C51是一种带4K字节的闪烁可编程可擦除只读存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。其中包括128字节内部RAM,32个I/O口线,2个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式26。空闲方式体制CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器体制工作并禁止其他所有不

3、见工作直到下一个硬件复位。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。AT89C51单片机管脚图如图1所示。图1 AT89C51芯片引脚图2.2 ADC0808简介ADC0808芯片有28条引脚,采用双线直插式封装. ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据

4、地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。ADC0808芯片有28条引脚,采用双列直插式封装,如图2所示。图2 ADC0808芯片引脚图ADC0808的时序图如图3所示。图3 ADC0808时序图2.3MQ-5气体传感器简介2.3.1特点(1)对液化气,天然气,城市煤气有较好的灵敏度;(2)对乙醇

5、,烟雾几乎不响应;(3)快速的响应恢复特性;(4)长期的使用寿命和可靠的稳定性;2.3.2应用适用于家庭或工业上对液化气,天然气,煤气的监测装置。优良的抗乙醇,烟雾干扰能力。2.3.3规格(1) 标准工作条件 表1 MQ-5的标准工作条件符 号参数名称技术条件备注VC回路电压15VAC or DCVH加热电压5.0V0.2VAC or DCRL负载电阻可调RH加热电阻313室温PH加热功耗900mW(2) 环境条件 表2 MQ-5的环境条件符 号参数名称技术条件备注Tao使用温度-10-50Tas存储温度-20-70Rh相对湿度小于 95%RhO2氧气浓度21%(标准条件)氧气浓度会影响灵敏度

6、特性最小值大于2%(3) 灵敏度特性 表3 MQ-5的灵敏度特性符 号参数名称技术参数备注RS敏感体电阻10K-60K(1000ppm甲烷探测范围:300-5000ppm液化气,天然气,煤气。(1000ppm/5000ppmCH4)浓度斜率0.6标准工作条件温度:202Vc:5.0V0.1V相对湿度:65%5%Vh:5.0V0.1V不少于24小时预热时间(4) 结构外形测试电路 表4 MQ-5的结构外形部件材料1气体敏感层二氧化锡2电极金(Au)3测量电极引线铂(Pt)4加热器镍铬合金(Ni-Cr)5陶瓷管三氧化二铝6防爆网100目双层不锈钢(SUB316)7卡环镀镍铜材(Ni-Cu)8基座胶

7、木9针状管脚镀镍铜材(Ni-Cu)MQ-5气敏元件的结构和外形如Fig.1所示。测量电路如图Fig.2所示。Fig.1 MQ-5的结构外形 Fig.2 MQ-5的测试电路由微型AL2O3陶瓷管、SnO2敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,加热器为气敏元件提供了必要的工作条件。封装好的气敏元件有6只针状管脚,其中4个用于信号取出,2个用于提供加热电流。2.3.4灵敏度调整MQ-5型气敏元件对不同种类,不同浓度的气体有不同的电阻值。因此,在使用此类型气敏元件时,灵敏度的调整是很重要的。建议用1000ppm异丁烷或氢气校准传感器。 2.4 LCD1602简介在日常生

8、活中,液晶显示模块已作为很多电子产品的通用器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。而液晶显示器各种图形的显示原理为:(1)线段的显示点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时

9、,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。(2)字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出

10、显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。(3)汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD上得到一个完整汉字。(4)LCD1602的基本参数及引脚功能如图2.4所示。图2.4 1602LCD尺寸图 (6)1602LCD的指令时序如图5、6所示。图5 读操作时

11、序图6写操作时序3. 气体浓度测量显示及报警系统设计3.1系统的硬件组成和元器件选择 (1)系统的硬件原理图,如图7所示。图7 系统原理图 3.2电路总体设计 (1)电路总体设计模块图,如图8所示。图8电路总体设计模块图主机选用单片机AT89C51来实现,利用单片机软件编程灵活、自由度大的特点,力求用软件完善各种控制。本系统选用的AT89C51芯片时钟为12MHz,运算速度快,控制功能完善;选用气体传感器MQ-5来实现气体浓度的采集;选用ADC0808来实现模拟量与数字量的转换;选用LCD1602来实现气体浓度的显示;选用蜂鸣器和LED灯来实现报警。3.3数据采集模块的设计数据采集电路主要由气

12、体传感器MQ-5和滑动变阻器组成。由MQ-5感测空气中的有害气体浓度的变化,经过其内部器件处理将气体浓度这个模拟信号转换成对应的电信号,MQ-5输出的电信号通过滑动变阻器的调节改变进入ADC0808的电信号值。数据采集模块如图9所示。图9 数据采集电路3.4数据转换模块的设计外部的模拟信号量需要转变成数字量才能进一步的由单片机进行处理。ADC0808可以非常方便的处理输入的模拟信号量。 ADC通过逐次比较(successive approximation)方式,将输入端的模拟电压转换成8位的数字量。数据转换模块如图10所示。 图10 数据转换模块while(1)ST = 0; delay1ms

13、(1);ST = 1; delay1ms(1);ST = 0;/寄存器SAR复位,启动ADC0809while(1)if(EOC = 1)/ADC0808转换结束后改引脚为高低平OE = 1;/输出允许信号为1时表示把ADC0808采集的数据输出getdata=P0;/把采集到的数据送到P0口处理OE = 0;/又打开ADC0808让继续开始转换3.5 显示及报警模块的设计 经由单片机处理后的数字量通过LCD1602进行显示当前的气体浓度值,同时如果当前的气体浓度对人体无害,则绿灯亮;如果当前的气体浓度对人体有害,则红灯亮同时蜂鸣器报警。显示及报警模块如图11所示。图11 显示及报警模块voi

14、d init_play()/初始化显示lcd_init();wr_com(0x80);/第1行第一列display(str1); /显示Consentrationwr_com(0xc0); /第二行第一列display(str2); /显示空格wr_com(0xc9); /第二行第九列display(str3);/显示ppmvoid show_Concentration()/浓度值显示disdata0=con/1000+0x30; /千位数disdata1=con%1000/100+0x30;/百位数disdata2=con%100/10+0x30;/十位数disdata3=con%10+0x

15、30;/个位数if(disdata0=0x30)disdata0=0x20;/如果千位为0,不显示if(disdata1=0x30)disdata1=0x20;/如果千位为0,百位为0也不显示if(disdata2=0x30)disdata2=0x20;/如果千位为0,百位为0,十位为0也不显示wr_com(0xc3);wr_dat(disdata0);/显示千位wr_com(0xc4);wr_dat(disdata1);/显示百位wr_com(0xc5);wr_dat(disdata2);/显示十位wr_com(0xc6);wr_dat(disdata3);/显示个位show_Concent

16、ration();/LCD1602显示if(con 320)/如果采集到的浓度小于320不报警G_LED=0;R_LED=1;SPK=1;else /如果浓度大于320则声光报警G_LED=1;R_LED=0;SPK=0;break;/跳出继续进行ADC0808的采集4.气体浓度测量显示及报警系统的软件设计4.1 系统的软件设计系统的软件由主程序模块、数据采集模块和显示报警模块三大模块组成。在主程序中首先给定参数值,然后通过启动AD转换循环显示当前电压。 4,2 编程环境-KeilC51KeilC51是一种专为8051单片机设计的高级语言C编译器,支持符合ANSI标准的C语言程序设计,同时针对

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

18、较高的运行速度。4.3 软件流程框图 N N Y N Y图12 软件流程图4.4系统程序 (1)主程序void main()/主函数 Init();/定时器初始化 init_play();/初始化显示 while(1) ST = 0; delay1ms(1); ST = 1; delay1ms(1); ST = 0;/寄存器SAR复位,启动ADC0809 while(1) if(EOC = 1)/ADC0808转换结束后改引脚为高低平 OE = 1;/输出允许信号为1时表示把ADC0808采集的数据输出 getdata=P0;/把采集到的数据送到P0口处理 OE = 0;/又打开ADC0808

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

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

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

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

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

24、ar#define uint unsigned intunsigned int con;unsigned char getdata;sbit RS=P20;sbit RW=P21;sbit EN=P22;sbit ST=P25;/AD0809转换启动信号与地址所存允许引脚注意:在使用时ALE和STRT信号引脚连在一起sbit OE=P27;/ADC0808输出允许信号sbit EOC=P26;/ADC0808转换结束信号引脚sbit CLK =P24;/ADC0808的时钟引脚sbit G_LED=P30;/浓度小于320时的绿灯指示sbit R_LED=P31;/ 浓度大于320时的红灯指示

25、sbit SPK=P37;/浓度大于320时蜂鸣器报警unsigned char code str1=Concentration: ;unsigned char code str2= ;unsigned char code str3=ppm;uchar data disdata5;void Init() /定时器0的初始化 定时器0给ADC0808提供时钟让其工作 EA = 1; ET0=1; TMOD = 0x02; TH0 = 245; TL0 = 0; TR0 = 1; /开启定时器0给ADC0808提供时钟/*lcd1602程序*/void delay1ms(unsigned int

26、ms)/延时1毫秒 unsigned int i,j; for(i=0;ims;i+) for(j=0;j100;j+);void wr_com(unsigned char com)/写指令/ delay1ms(1); RS=0; RW=0; EN=0; P1=com; delay1ms(1); EN=1; delay1ms(1); EN=0;void wr_dat(unsigned char dat)/写数据/ delay1ms(1); RS=1; RW=0; EN=0; P1=dat; delay1ms(1); EN=1; delay1ms(1); EN=0;void lcd_init()

27、/初始化设置/delay1ms(15);wr_com(0x38);delay1ms(5); /数据位数8位,2行,5*7点阵-工作方式设置 wr_com(0x08);delay1ms(5); /显示状态设置:显示未开 wr_com(0x01);delay1ms(5); /清屏,将光标设置为第一行第一列 wr_com(0x06);delay1ms(5); /增量方式右移,显示字符不移动 wr_com(0x0c);delay1ms(5); /开显示,不显示光标,光标位字符不闪烁void display(unsigned char *p)/显示/while(*p!=0)wr_dat(*p);p+;d

28、elay1ms(1);void init_play()/初始化显示 lcd_init(); wr_com(0x80);/第1行第一列 display(str1); /显示Consentration wr_com(0xc0); /第二行第一列 display(str2); /显示空格 wr_com(0xc9); /第二行第九列 display(str3);/显示ppm/*/ void show_Concentration()/浓度值显示 disdata0=con/1000+0x30; /千位数 disdata1=con%1000/100+0x30;/百位数 disdata2=con%100/10+0x

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1