基于ATC的气体浓度测量显示及报警系统W38889.pdf

上传人:得****3 文档编号:83525692 上传时间:2023-03-31 格式:PDF 页数:30 大小:3.87MB
返回 下载 相关 举报
基于ATC的气体浓度测量显示及报警系统W38889.pdf_第1页
第1页 / 共30页
基于ATC的气体浓度测量显示及报警系统W38889.pdf_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《基于ATC的气体浓度测量显示及报警系统W38889.pdf》由会员分享,可在线阅读,更多相关《基于ATC的气体浓度测量显示及报警系统W38889.pdf(30页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 基于 ATC 的气体浓度测量显示及报警系统 W Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】哈尔滨商业大学课程设计 基于 AT89C51 单片机的气体浓度测量显示及报警系统设计 学 生 姓 名 王琴、李赛赛、汪金萍、周珊珊 指 导 教 师 赵志杰、张玉茹、王立琦、董世成 专 业 电 子 信 息 工 程(2)班 学 院 计算机与信息工程学院 2014 年 3 月 14 日 目录 AD0808 简介.5 MQ-5 气体传感器简介.6 LCD1602 简介.10 编程环境 KeilC51.17 1 课程设计要求 课程设计题目 基于

2、AT89C51 单片机的气体浓度测量显示及报警系统设计 课程设计要求(1)任选一种有害气体传感器;(2)设计转换放大电路将气体浓度转换成标准的电信号;(3)利用单片机组成测量系统实现有害气体浓度的精确测量及显示报警。课程设计具体工作 (1)原理图设计、软件设计、PCB;(2)仿真实现;(3)元件清单;(4)设计报告。2.气体浓度测量显示及报警系统简介 AT89C51 简介 AT89C51 是一种带 4K 字节的闪烁可编程可擦除只读存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能 CMOS8位微处理器,俗称单片机。其中包

3、括 128 字节内部 RAM,32 个 I/O 口线,2 个16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 降至 0Hz 的静态逻辑操作,并支持两种可选的节电工作模式26。空闲方式体制 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器体制工作并禁止其他所有不见工作直到下一个硬件复位。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位

4、CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51 是一种高效微控制器。AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。AT89C51 单片机管脚图如图 1 所示。图 1 AT89C51 芯片引脚图 ADC0808 简介 ADC0808 芯片有 28 条引脚,采用双线直插式封装.ADC0808 是采样分辨率为 8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个 8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通 8 路模拟输入信号中的一个进行 A/D 转换。ADC0808 是 ADC0809 的简化版本,功能基本相同。一般在硬件仿真时采用

5、 ADC0808 进行 A/D 转换,实际使用时采用 ADC0809 进行 A/D 转换。ADC0808 是 CMOS 单片型逐次逼近式 A/D 转换器,它有 8 路模拟开关、地址锁存与译码器、比较器、8 位开关树型 A/D 转换器。ADC0808 芯片有 28 条引脚,采用双列直插式封装,如图 2 所示。图 2 ADC0808 芯片引脚图 ADC0808 的时序图如图 3 所示。图 3 ADC0808 时序图 气体传感器简介 特点(1)对液化气,天然气,城市煤气有较好的灵敏度;(2)对乙醇,烟雾几乎不响应;(3)快速的响应恢复特性;(4)长期的使用寿命和可靠的稳定性;应用 适用于家庭或工业上

6、对液化气,天然气,煤气的监测装置。优良的抗乙醇,烟雾干扰能力。规格(1)标准工作条件 表 1 MQ-5 的标准工作条件 符 号 参数名称 技术条件 备注 VC 回路电压 15V AC or DC VH 加热电压 AC or DC RL 负载电阻 可调 RH 加热电阻 313 室温 PH 加热功耗 900mW (2)环境条件 表 2 MQ-5 的环境条件 符 号 参数名称 技术条件 备注 Tao 使用温度-10-50 Tas 存储温度-20-70 Rh 相对湿度 小于 95%Rh O2 氧气浓度 21%(标准条件)氧气浓度会影响 灵敏度特性 最小值大于 2%(3)灵敏度特性 表 3 MQ-5 的

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

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

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

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

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

12、图 1602LCD 尺寸图 (6)1602LCD 的指令时序如图 5、6 所示。图 5 读操作时序 图 6 写操作时序 3.气体浓度测量显示及报警系统设计 系统的硬件组成和元器件选择 (1)系统的硬件原理图,如图 7 所示。图 7 系统原理图 电路总体设计 (1)电路总体设计模块图,如图 8 所示。图 8 电路总体设计模块图 主机选用单片机 AT89C51 来实现,利用单片机软件编程灵活、自由度大的特点,力求用软件完善各种控制。本系统选用的 AT89C51 芯片时钟为 12MHz,运 AT89C51 控制实现报警与显示 气体传感 器采集气 体浓度值 ADC0808 将模拟量转换为数字量 LCD

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

14、变成数字量才能进一步的由单片机进行处理。ADC0808可以非常方便的处理输入的模拟信号量。ADC通过逐次比较(successive approximation)方式,将输入端的模拟电压转换成8位的数字量。数据转换模块如图10所示。图10 数据转换模块 while(1)ST=0;delay1ms(1);ST=1;delay1ms(1);ST=0;体浓度测量显示及报警系统的软件设计 系统的软件设计 系统的软件由主程序模块、数据采集模块和显示报警模块三大模块组成。在主程序中首先给定参数值,然后通过启动AD转换循环显示当前电压。4,2 编程环境-KeilC51 KeilC51 是一种专为 8051 单

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

16、行速度较慢,基于存储器的指针是 C51 编译器专门针对8051 单片机存储器特点进行的扩展,它只适用于 8051 单片机,但具有较高的运行速度。软件流程框图 N N Y N Y 初始化 启动 A/D转换 转换完成 浓度是否超过320ppm 开始 LCD1602显示 绿灯亮 红灯亮,蜂鸣器报警 图 12 软件流程图 系统程序 (1)主程序 void main()/主函数 Init();/定时器初始化 init_play();/初始化显示 while(1)ST=0;delay1ms(1);ST=1;delay1ms(1);ST=0;/寄存器 SAR 复位,启动 ADC0809 while(1)if

17、(EOC=1)/ADC0808 转换结束后改引脚为高低平 OE=1;/输出允许信号为 1 时表示把 ADC0808 采集的数据输出 getdata=P0;/把采集到的数据送到 P0 口处理 OE=0;/又打开 ADC0808 让继续开始转换 con=getdata*;/因为有 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;

18、break;/跳出继续进行 ADC0808 的采集 5 简单电压数据采集系统仿真调试 系统仿真调试 本次课程设计中主要是通过 protues 进行系统的仿真与调试,对所设计的系统进行可行性的验证。仿真调试环境-protues Protues 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件。它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus 是世界上着名的 EDA 工具(仿真软

19、件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等,2010年即将增加 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持 IAR、Keil 和 MPLAB 等多种编译功能特点 系统仿真调试结果 图 13 系统仿真调试结果 图 14 系统仿真调试结果 结 论 本文所研制

20、的气体浓度测量显示及报警系统是单片机控制的系统,它的主要特点是:(1)该仪器的数学模型、测量原理简单,(2)使用范围大。(3)该仪器可以进行有害气体浓度的实时显示,使用方便。(4)该仪器的软件系统全部采用 C 语言编写,提高了程序的可读性和可移植性。气体浓度测量显示及报警系统的研制开发具有广阔的应用前景,经分析论证,误差小;整个单片机系统稳定、可靠、准确。参考文献 1 单片机原理与应用-基于Proteus虚拟仿真技术 徐爱钧 徐阳 着 第二版 2单片机应用技术(C语言版)王静霞 主编 3 MQ-5使用说明 4 百度文库 5中国知网 致 谢 在本次课程设计期间,我们组得到了实验室的老师、同学的热

21、情帮助,向他们学到了许多宝贵知识和经验。值此设计报告完成之际,谨向曾经给予我们组关心和帮助的老师、同学和亲友表示衷心的感谢。感谢赵志杰老师、张玉茹老师、王立琦老师、董世成老师这段时间来对我们组的课题、研究的悉心指导。我们组的研究课题是在各位老师的指导下完成的,从课题的理解和总体思路的设计,老师们给了我们组很重要的指导。老师们对待学术问题的严谨态度,对设计的实用化思想,更是对我们组的言传身教,是我们组学习和研究上的良师益友,对我们组工作和学习上的指导更使我们组受益匪浅。感谢给了我们组很大帮助的同学,使我们组能少走弯路,顺利的完成课题。感谢父母与家人对我们组多年的教诲和关爱,没有他们在生活上的帮助

22、,我们组完成学业是不可能的。附件一:基于 AT89C51 的气体浓度测量显示及报警系统电路板图 附件二:基于 AT89C51 的气体浓度测量显示及报警系统实物图 附件三:基于 AT89C51 的气体浓度测量显示及报警系统的程序清单#include#define uchar unsigned char#define uint unsigned int unsigned int con;unsigned char getdata;sbit RS=P20;sbit RW=P21;sbit EN=P22;sbit ST=P25;/AD0809 转换启动信号与地址所存允许引脚注意:在使用时ALE 和 S

23、TRT 信号引脚连在一起 sbit OE=P27;/ADC0808 输出允许信号 sbit EOC=P26;/ADC0808 转换结束信号引脚 sbit CLK=P24;/ADC0808 的时钟引脚 sbit G_LED=P30;/浓度小于 320 时的绿灯指示 sbit R_LED=P31;/浓度大于 320 时的红灯指示 sbit SPK=P37;/浓度大于 320 时蜂鸣器报警 unsigned char code str1=Concentration:;unsigned char code str2=;unsigned char code str3=ppm;uchar data dis

24、data5;void Init()/定时器 0 的初始化 定时器 0 给 ADC0808 提供时钟让其工作 EA=1;ET0=1;TMOD=0 x02;TH0=245;TL0=0;TR0=1;/开启定时器 0 给 ADC0808 提供时钟 /*lcd1602 程序*/void delay1ms(unsigned int 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(

25、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()/初始化设置/delay1ms(15);wr_com(0 x38);delay1ms(5);/数据位数 8 位,2 行,5*7 点阵-工作方式设置 wr_com(0 x08);delay1ms(5);/显示状态设置:显示未开 wr_com(0 x01);delay1ms(5);/清屏,将光标设置为第一行第一列 w

26、r_com(0 x06);delay1ms(5);/增量方式右移,显示字符不移动 wr_com(0 x0c);delay1ms(5);/开显示,不显示光标,光标位字符不闪烁 void display(unsigned char*p)/显示/while(*p!=0)wr_dat(*p);p+;delay1ms(1);void init_play()/初始化显示 lcd_init();wr_com(0 x80);/第 1 行第一列 display(str1);/显示 Consentration wr_com(0 xc0);/第二行第一列 display(str2);/显示空格 wr_com(0 x

27、c9);/第二行第九列 display(str3);/显示 ppm /*/void show_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;/如果千位为 0,百位为 0 也不显示 if(disdata2=

28、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);/显示个位 void main()/主函数 Init();/定时器初始化 init_play();/初始化显示 while(1)ST=0;delay1ms(1);ST=1;delay1ms(1);ST=0;/寄存器 SAR

29、 复位,启动 ADC0809 while(1)if(EOC=1)/ADC0808 转换结束后改引脚为高低平 OE=1;/输出允许信号为 1 时表示把 ADC0808 采集的数据输出 getdata=P0;/把采集到的数据送到 P0 口处理 OE=0;/又打开 ADC0808 让继续开始转换 con=getdata*;/因为有 AD 采集回来的数为0255;显示温度为 05000 show_Concentration();/LCD1602 显示 if(con 320)/如果采集到的浓度小于 320 不报警 G_LED=0;R_LED=1;SPK=1;else /如果浓度大于 320 则声光报警

30、G_LED=1;R_LED=0;SPK=0;break;/跳出继续进行 ADC0808 的采集 void T0_INT()interrupt 1/定时器 0 的中断函数 CLK=CLK;附件三:基于 AT89C51 的气体浓度测量显示及报警系统器件清单(1)一个 AT89C51;(2)一个 ADC0808;(3)一个 LCD1602;(4)一个气体浓度传感器 MQ-5;(5)一个晶振;(6)两个 30pF 的电容;(7)一个 1uF 的有极电容;(8)三个 200 欧的电阻;(9)一个 1K 的电阻;(10)一个 PNP;(11)一个蜂鸣器;(12)一个 LED 红灯,一个 LED 绿灯;(13)两个 10K 的滑动变阻器;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com