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

上传人:椰子壳 文档编号:3314758 上传时间:2019-08-11 格式:DOC 页数:30 大小:3.31MB
返回 下载 相关 举报
基于AT89C51的气体浓度测量显示及报警系统课程设计.doc_第1页
第1页 / 共30页
基于AT89C51的气体浓度测量显示及报警系统课程设计.doc_第2页
第2页 / 共30页
基于AT89C51的气体浓度测量显示及报警系统课程设计.doc_第3页
第3页 / 共30页
基于AT89C51的气体浓度测量显示及报警系统课程设计.doc_第4页
第4页 / 共30页
基于AT89C51的气体浓度测量显示及报警系统课程设计.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于AT89C51的气体浓度测量显示及报警系统课程设计.doc》由会员分享,可在线阅读,更多相关《基于AT89C51的气体浓度测量显示及报警系统课程设计.doc(30页珍藏版)》请在三一文库上搜索。

1、哈尔滨商业大学课程设计哈尔滨商业大学课程设计 基于基于 AT89C51 单片机的气体浓度测量显示及单片机的气体浓度测量显示及 报警系统设计报警系统设计 学 生 姓 名 王琴、李赛赛、汪金萍、周珊珊 指 导 教 师 赵志杰、张玉茹、王立琦、董世成 专 业 电 子 信 息 工 程 (2) 班 学 院 计算机与信息工程学院 2014 年 3 月 14 日 哈尔滨商业大学课程设计 目录 1 1课程设计要求课程设计要求1 1 1.1 课程设计题目1 1.2 课程设计要求1 1.3 课程设计具体工作1 2.2. 气体浓度测量显示及报警系统简介气体浓度测量显示及报警系统简介2 2 2.1 AT89C51 简

2、介 2 2.2 AD0808 简介. 5 2.3 MQ-5 气体传感器简介. 6 2.4 LCD1602 简介. 10 3.3.气体浓度测量显示及报警系统设计气体浓度测量显示及报警系统设计 1414 3.1 系统的硬件组成和元器件选择.14 3.2 电路总体设计 .14 3.3 数据采集模块的设计 .15 3.4 数据转换模块的设计.15 3.5 显示及报警模块的设计.15 4.4.气体浓度测量显示及报警系统的软件设计气体浓度测量显示及报警系统的软件设计1717 4.1 系统的软件设计 .17 4.2 编程环境 KeilC51. 17 4.3 软件流程框图.18 4.4 系统程序 .19 5

3、5 气体浓度测量显示及报警系统仿真调试气体浓度测量显示及报警系统仿真调试2222 5.1 系统仿真调试 .22 5.2 仿真调试环境-PROTEUS 7.7 .22 5.3 系统仿真调试结果 .23 结结 论论2424 参考文献参考文献2525 致致 谢谢2525 附件一:.26 基于 AT89C51 单片机的气体浓度测量显示及报警系统电路板图.26 附件二:.27 基于 AT89C51 单片机的气体浓度测量显示及报警系统实物图.27 哈尔滨商业大学课程设计 1 1课程设计要求课程设计要求 1.11.1 课程设计题目课程设计题目 基于 AT89C51 单片机的气体浓度测量显示及报警系统设计 1

4、.21.2 课程设计要求课程设计要求 (1)任选一种有害气体传感器; (2)设计转换放大电路将气体浓度转换成标准的电信号; (3)利用单片机组成测量系统实现有害气体浓度的精确测量及显示报警。 1.31.3 课程设计具体工作课程设计具体工作 (1)原理图设计、软件设计、PCB; (2)仿真实现; (3)元件清单; (4)设计报告。 哈尔滨商业大学课程设计 2 2. 气体浓度测量显示及报警系统简介气体浓度测量显示及报警系统简介 2.12.1 AT89C51AT89C51 简介简介 AT89C51 是一种带 4K 字节的闪烁可编程可擦除只读存储器(FPEROM- Flash Programmable

5、 and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。其中包括 128 字节内部 RAM,32 个 I/O 口线,2 个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器 及时钟电路。同时,AT89C51 降至 0Hz 的静态逻辑操作,并支持两种可选的节电工 作模式26。空闲方式体制 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及 中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器体制工作并禁止其他所 有不见工作直到下一个硬件复位。 单片机的可擦除只读存储器可以反复擦除 100

6、次。该器件采用 ATMEL 高密度非 易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将 多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微 控制器。AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。 AT89C51 单片机管脚图如图 1 所示。 图 1 AT89C51 芯片引脚图 哈尔滨商业大学课程设计 3 2.22.2 ADC0808ADC0808 简介简介 ADC0808 芯片有 28 条引脚,采用双线直插式封装. ADC0808 是采样分辨率为 8 位的、 以逐次逼近原理进行模/数转

7、换的器件。其内部有一个 8 通道多路开关,它可以根据 地址码锁存译码后的信号,只选通 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

8、 所示。 图 3 ADC0808 时序图 哈尔滨商业大学课程设计 4 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) 标准工作条件 表 1 MQ-5 的标准工作条件 符 号参数名称技术条件备注 VC 回路电压 15VAC or DC VH 加热电压 5

9、.0V0.2VAC or DC RL 负载电阻可调 RH 加热电阻 313 室温 PH 加热功耗 900mW (2) 环境条件 表 2 MQ-5 的环境条件 符 号参数名称技术条件备注 Tao 使用温度 -10-50 Tas 存储温度 -20-70 Rh 相对湿度小于 95%Rh O2 氧气浓度 21%(标准条件) 氧气浓度会影响 灵敏度特性 最小值大于 2% 哈尔滨商业大学课程设计 5 (3) 灵敏度特性 表 3 MQ-5 的灵敏度特性 符 号参数名称技术参数备注 RS 敏感体电阻 10K- 60K(1000ppm 甲烷 (1000ppm/5000ppm CH4) 浓度斜率 0.6 标准工作

10、条件 预热时间 温度:202Vc:5.0V0.1V 相对湿度: 65%5%Vh:5.0V0.1V 不少于 24 小时 探测范围:300- 5000ppm 液化气,天然气, 煤气。 (4) 结构外形测试电路 表 4 MQ-5 的结构外形 部件材料 1 气体敏感层二氧化锡 2 电极金(Au) 3 测量电极引线铂(Pt) 4 加热器镍铬合金(Ni-Cr) 5 陶瓷管三氧化二铝 6 防爆网 100 目双层不锈钢 (SUB316) 7 卡环镀镍铜材(Ni-Cu) 8 基座胶木 9 针状管脚镀镍铜材(Ni-Cu) MQ-5 气敏元件的结构和外形如 Fig.1 所示。测量电路如图 Fig.2 所示。 哈尔滨

11、商业大学课程设计 6 Fig.1 MQ-5 的结构外形 Fig.2 MQ-5 的测试电路 由微型 AL2O3陶瓷管、SnO2敏感层,测量电极和加热器构成的敏感元件固定在塑料或 不锈钢制成的腔体内,加热器为气敏元件提供了必要的工作条件。封装好的气敏元 件有 6 只针状管脚,其中 4 个用于信号取出,2 个用于提供加热电流。 2.3.42.3.4 灵敏度调整灵敏度调整 MQ-5 型气敏元件对不同种类,不同浓度的气体有不同的电阻值。因此,在使用此类 型气敏元件时,灵敏度的调整是很重要的。建议用 1000ppm 异丁烷或氢气校准传感 器。 2.42.4 LCD1602LCD1602 简介简介 在日常生

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

13、 时,则屏幕的左上角显示一条短亮线,长度为 8 个点; 当(3FFH)=FFH 时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H) =00H,(002H)=00H,(00EH)=00H,(00FH)=00H 时,则在屏幕的顶部显示 一条由 8 段亮线和 8 条暗线组成的虚线。这就是 LCD 显示的基本原理。 (2)字符的显示 哈尔滨商业大学课程设计 7 用 LCD 显示一个字符时比较复杂,因为一个字符由 68 或 88 点阵组成,既 要找到和显示屏幕上某几个位置对应的显示 RAM 区的 8 字节,还要使每字节的不同 位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮

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

15、到 32B 显示完就可以 LCD 上 得到一个完整汉字。 (4)LCD1602 的基本参数及引脚功能如图 2.4 所示。 图 2.4 1602LCD 尺寸图 (6)1602LCD 的指令时序如图 5、6 所示。 哈尔滨商业大学课程设计 8 图 5 读操作时序 图 6 写操作时序 3. 气体浓度测量显示及报警系统设计气体浓度测量显示及报警系统设计 3.13.1 系统的硬件组成和元器件选择系统的硬件组成和元器件选择 (1)系统的硬件原理图,如图 7 所示。 哈尔滨商业大学课程设计 9 图 7 系统原理图 3.23.2 电路总体设计电路总体设计 (1)电路总体设计模块图,如图 8 所示。 图 8 电

16、路总体设计模块图 主机选用单片机 AT89C51 来实现,利用单片机软件编程灵活、自由度大的特点,力 求用软件完善各种控制。本系统选用的 AT89C51 芯片时钟为 12MHz,运算速度快, AT89C51 控 制实现报警与 显示 气体传感 器采集气 体浓度值 ADC0808 将 模拟量转换 为数字量 LCD1602 显示 LED 灯显 示,蜂鸣 器报警 哈尔滨商业大学课程设计 10 控制功能完善;选用气体传感器 MQ-5 来实现气体浓度的采集;选用 ADC0808 来实现 模拟量与数字量的转换;选用 LCD1602 来实现气体浓度的显示;选用蜂鸣器和 LED 灯来 实现报警。 3.33.3

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

18、压转换成8位的数字量。数据转换模块如 图10所示。 哈尔滨商业大学课程设计 11 图10 数据转换模块 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 让继续开始转换 3.53.5 显示及报警模块的设计显示及报警模块的设计 经

19、由单片机处理后的数字量通过 LCD1602 进行显示当前的气体浓度值,同时如果 当前的气体浓度对人体无害,则绿灯亮;如果当前的气体浓度对人体有害,则红灯 亮同时蜂鸣器报警。显示及报警模块如图 11 所示。 哈尔滨商业大学课程设计 12 图 11 显示及报警模块 void init_play()/初始化显示 lcd_init(); wr_com(0x80);/第 1 行第一列 display(str1); /显示 Consentration wr_com(0xc0); /第二行第一列 display(str2); /显示空格 wr_com(0xc9); /第二行第九列 display(str3)

20、;/显示 ppm void show_Concentration()/浓度值显示 disdata0=con/1000+0x30; /千位数 disdata1=con%1000/100+0x30;/百位数 disdata2=con%100/10+0x30;/十位数 disdata3=con%10+0x30;/个位数 if(disdata0=0x30) disdata0=0x20;/如果千位为 0,不显示 if(disdata1=0x30) disdata1=0x20;/如果千位为 0,百位为 0 也不显示 哈尔滨商业大学课程设计 13 if(disdata2=0x30) disdata2=0x2

21、0;/如果千位为 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_Concentration();/LCD1602 显示 if(con #define uchar unsigned char #define uint unsigned int unsigned int con; unsigned cha

22、r 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 时的红灯指示 sbit SPK=P37;/浓度大于 320 时蜂鸣器报警 unsi

23、gned 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 ms)/延时 1

24、 毫秒 哈尔滨商业大学课程设计 24 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; voi

25、d lcd_init()/初始化设置/ 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);/开显示,不显示光标,光标位字符不闪烁 哈尔滨商业大学课程设计 25 void display(unsigned char *

26、p)/显示/ while(*p!=0) wr_dat(*p); p+; delay1ms(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

27、=con%1000/100+0x30;/百位数 disdata2=con%100/10+0x30;/十位数 disdata3=con%10+0x30;/个位数 if(disdata0=0x30) disdata0=0x20;/如果千位为 0,不显示 if(disdata1=0x30) disdata1=0x20;/如果千位为 0,百位为 0 也不显示 哈尔滨商业大学课程设计 26 if(disdata2=0x30) disdata2=0x20;/如果千位为 0,百位为 0,十位为 0 也不显示 wr_com(0xc3); wr_dat(disdata0);/显示千位 wr_com(0xc4);

28、 wr_dat(disdata1);/显示百位 wr_com(0xc5); wr_dat(disdata2);/显示十位 wr_com(0xc6); wr_dat(disdata3);/显示个位 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 时表示把 ADC080

29、8 采集的数据输出 getdata=P0;/把采集到的数据送到 P0 口处理 OE = 0;/又打开 ADC0808 让继续开始转换 con=getdata*19.53;/因为有 AD 采集回来的数为 0255;显示温度为 05000 show_Concentration();/LCD1602 显示 if(con 320)/如果采集到的浓度小于 320 不报警 G_LED=0; R_LED=1; 哈尔滨商业大学课程设计 27 SPK=1; else /如果浓度大于 320 则声光报警 G_LED=1; R_LED=0; SPK=0; break;/跳出继续进行 ADC0808 的采集 void

30、 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 的滑动变阻器; 哈尔滨商业大学课程设计 28

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 装饰装潢


经营许可证编号:宁ICP备18001539号-1