基于S08AW60的矿井下一氧化碳气体检测仪的设计.docx

上传人:b****7 文档编号:10310517 上传时间:2023-02-10 格式:DOCX 页数:25 大小:556.58KB
下载 相关 举报
基于S08AW60的矿井下一氧化碳气体检测仪的设计.docx_第1页
第1页 / 共25页
基于S08AW60的矿井下一氧化碳气体检测仪的设计.docx_第2页
第2页 / 共25页
基于S08AW60的矿井下一氧化碳气体检测仪的设计.docx_第3页
第3页 / 共25页
基于S08AW60的矿井下一氧化碳气体检测仪的设计.docx_第4页
第4页 / 共25页
基于S08AW60的矿井下一氧化碳气体检测仪的设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于S08AW60的矿井下一氧化碳气体检测仪的设计.docx

《基于S08AW60的矿井下一氧化碳气体检测仪的设计.docx》由会员分享,可在线阅读,更多相关《基于S08AW60的矿井下一氧化碳气体检测仪的设计.docx(25页珍藏版)》请在冰豆网上搜索。

基于S08AW60的矿井下一氧化碳气体检测仪的设计.docx

基于S08AW60的矿井下一氧化碳气体检测仪的设计

微控制系统原理

课程设计

 

题目基于S08AW60的矿井下一氧化碳气体检测仪设计

院系名称:

电气工程学院专业班级:

学生姓名:

学号:

设计题目

基于S08AW60的矿井下一氧化碳气体检测仪的设计

 

 

设计内容和要求

利用S08AW60设计一个一氧化碳气体检测系统,实现以下功能:

1.实现对一氧化碳浓度的测量;

2.能够完成信号采集、浓度计算、显示、报警等功能;

3.一定距离内,能够准确检测到一氧化碳的浓度准确值。

要求:

1.当一氧化碳的浓度超过预先设定的值时,能够及时报警;

2.检测装置实现在1000ppm范围内对一氧化碳浓度的检测,分辨率高,精度可以达到要求,在误差范围内有较好的重复性。

 

 

报告

主要

章节

1.引言

2.一氧化碳气体检测仪的控制法案的设计

3.矿井下一氧化碳气体检测仪的硬件设计

4.软件设计

5.总结

 

目录

1.引言4

2一氧化碳气体检测仪的控制法案的设计4

3.矿井下一氧化碳气体检测仪的硬件设计5

2.1传感器模块的设计5

2.2键盘的设计7

2.3单片机电路的设计8

2.4显示部分电路的设计9

2.5声光报警电路的设计10

2.6系统电源电路设计11

3软件设计12

4总结13

参考文献14

附录A:

总电路原理图15

附录B:

源程序16

 

1.引言

煤矿生产时国计民生密切相关的一个领域,而煤矿的安全无疑是大家关注的热点之一,不仅对社会经济有影响,更关系到每个矿业人员的生命安全。

在我国煤矿安全事故中,瓦斯爆炸造成的伤亡占所有重大事故伤亡人数的50%以上,成为实现安全生产的最大障碍。

矿井瓦斯是多种易爆易燃气体的总称,其主要成分之一就是一氧化碳,它与空气混合,当提及百分比达到一定的程度时,遇明火就会爆炸。

2006年初,国家安全生产监督管理总局又提出“低瓦斯矿井也要装备数字化监测监控系统”。

因此,对瓦斯进行实时检测在煤矿生产安全系统中显得非常重要,要实现瓦斯动态连续监测,高性能的智能一氧化碳传感器是必不可少的条件。

2一氧化碳气体检测仪的控制法案的设计

一氧化碳气体检测仪表主要是对井下一氧化碳气体浓度的检测。

一个完整的煤矿气体检测仪表一般由四个部分主城,如图1所示:

图1煤矿气体检测仪表原理框图

(1).传感器:

能感知环境中某种气体及其浓度的一种装置或器件,它能将与气体种类和浓度有关的信息转换成电信号。

(2).转换及控制电路:

该电路的作用是将传感器输出地电信号进行放大、变化和处理,通常包括放大、非线性补偿、信号转换等电路。

(3).声光报警电路:

当检测到的气体浓度超出设定的报警阈值时,就给出声光报警信号。

(4).显示模块:

一般采用集成液晶显示芯片。

3.矿井下一氧化碳气体检测仪的硬件设计

该一氧化碳气体检测仪的研制目标是实现在电池供应的条件下,能够连续不断地对周围环境中的一氧化碳浓度进行准确、灵敏、可靠的检测,而且还要具备超限声光报警、实时测量数据、本地显示的功能。

整机电路由电源电路,一氧化碳气体的检测电路及其信号放大处理电路、嵌入式微处理器电路、液晶显示电路、声光报警电路等组成。

总体设计方框图如图2所示:

图2总体硬件设计方案框图

2.1传感器模块的设计

在一氧化碳气体检测仪中,传感器把一氧化碳气体的浓度转换成电信号,通过静置放大电路、后级放大电路,送入点偏激进行A/D转换处理。

整个数据采集通道如图3所示:

图3数据采集通道框图

(1)前置放大转换电路的设计

前置放大电路由三部分组成:

控制电路、电流测量电路、还有当电源关断时控制工作电极和参考电极电位短接的FET电路。

如图4所示:

图4前置放大电路

(2)后级放大电路的设计

在设计后级放大电路时,由于单电源供电系统的输入信号以地为参考,实际上就是以供电电源的一端作为参考。

这样的反向放大器在输入信号为正电压时,由于输出不可能低于最低供电电压,所以不能正常工作。

当输入信号不是以地做为参考,参考电平与地的差值将随信号一起放大,除非这个参考电平是作为共模电压出现的。

因此要对输入信号进行偏置才能获得想要的输出电压。

为解决这个问题,自然想到了信号采用交流耦合的方法。

但是,采用交流耦合输入输出都需要耦合电容,而耦合电容的存在影响了电路的低频效应,降低了带宽。

当采用同相配置时,放大器静态输出会通过反馈回路影响输入端的偏置电压,处理起来很麻烦。

在这里我们后级放大电路采用直流耦合、放大器同相放大正偏移的设计方法,大大简化了单电源供电放大器的设计。

电路如图5所示:

图5后级放大电路

2.2键盘的设计

键盘电路主要用来输入数据,从而实现人机交互。

键盘采用软件查询和外部中断相结合的方法来设计,高电平有效。

系统共用到4个按键,由于按键较少,所以选择了独立式键盘。

每个独立式按键占用一根I/O线,每根I/O线上的按键工作状态不会影响其他I/O口线上的按键的工作状态,其电路如图6所示。

AN1复位键是系统复位。

AN2是功能转换键,按键按下时,显示质量浓度设定值;按键升起时,显示当前质量浓度值。

AN3是减1键,设定气体质量浓度逐次减1。

AN4是加1键,设定气体质量浓度逐次加1。

图6键盘电路

2.3单片机电路的设计

飞思卡尔的新型8位MC9S08AW系列微控制器是第一款基于高度节能型S08核的器件,支持5V应用。

这使得其成为工业应用的理想之选,而且它还是第一款认可用于汽车市场的S08微控制器。

其最小系统如下所述:

(1)电源电路

VDD和VSS是S08MCU主要的电源引脚,工作电压范围是2.7V~5.5V.该电源为所有的I/O缓冲器电路和内部稳压器供电。

通常,应用系统需要在电源引脚上加两个独立的电容器。

其中一个为大容量的电解电容,如10uF电容为系统提供大容量的电荷存储,同时应在尽量靠近MCU电源引脚的地方安装一个0.1uF的陶瓷旁路电容器来抑制高频噪声。

(2)振荡器

S08AW60没有外部晶振或振荡器也能工作。

在这种情况下,MCU使用自身内部时钟频率相当于8MHZ。

该时钟可用于MCU的复位启动过程,以减小晶振起振时间的延迟对MCU节能模式和快速响应的影响。

(3)复位电路

RESET引脚是专门用于单片机的复位,该引脚带有在内置的上拉器件,输入迟滞,10mA电流输出驱动,无输出压摆率控制。

由于具有内部上电复位和低电压检测复位功能,所以没必要给MCU施加一个外部复位信号。

如果需要,可以增加一个到地电位的简单开关以实现手动外部复位。

另外在复位引脚处连接RC滤波可以增加系统的抗干扰性。

实际最小系统电路连接图如图7所示:

图7S08AW60最小系统电路连接图

2.4显示部分电路的设计

由于发光二极管显示器LED多为8段或米字段,只能输出有限的字符,对于仪器的使用者来说很不方便,所以我们在智能传感器上使用了LCD1602字符液晶显示器。

S08AW60与液晶显示模块连接的电路图如图8所示。

具体引脚说明为:

4,5,6三个控制引脚分别连接单片机的PTE5,PTE6,PTE7三个串行通讯引脚。

DB0-DB7分别连接于单片机的PTB0-PTB7八个输出引脚。

图8显示模块电路图

2.5声光报警电路的设计

当测量的达到或超过设定的报警点的时候,仪器应当发出声光报警信号,以提示周围人员的注意。

当发现有超限参数或出现错误,则软件单片机口线输出一驱动信号,驱动声光报警电路开始工作。

为了降低系统功耗,采用PNP三极管,具体的声光报警电路如图9所示。

当输入电平“0”时,三极管导通,蜂鸣器鸣叫,同时相应通道和相应级别的红绿色发光二极管指示灯亮。

当传感器信号未接入,即为故障状态,相应通道的黄色发光二极管灯亮。

图9声光报警电路

2.6系统电源电路设计

该检测装置的系统9V电源由六节干电池提供。

通过线性电压基准器件LM317、TPS76301及辅助电路将9V的电源变换成不同等级的电压值,为传感器、信号调理电路、声光报警电路、显示电路、串口电路等提供工作电压,电压转换电路如图10所示。

图10电压转换电路

3软件设计

任务级由一个无限循环程序构成。

系统上电,完成初始化任务后进入无限循环。

无限循环内包含了从电信号的采样到浓度超限报警等服务程序,流程图如图11所示。

一旦发生SPI接受中断,中断服务程序进入串口中断程序。

完成通讯服务后,程序从新返回死循环。

若发生键盘中断,则进入键盘中断程序。

首先芯片本身主要进行环境的初始化任务:

包括所用的寄存器清零,程序ROM区和数据RAM区的初始化,中断I/O矢量设置等等主程序运行之前的准备工作,检查和保护电源,利用看门狗监视芯片上电后S08AW60芯片内各资源的硬件运行情况,定时器的设置,所用变量初始化,开中断,检测传感器信号是否正确接入,未接入产生故障报警等。

接则进入采样任务,包括A/D转换,然后进入计算任务,首先是计算一氧化碳的浓度值,后进入显示任务,包括在液晶显示器上显示浓度数据,最后进入报警任务,主要判断是否达到报警值,确定是否需要报警,然后回到采样任务一直循环。

图11程序整体结构框图

4总结

本文从我国煤矿安全的现状出发,阐述了研发煤矿用智能参数检测仪的必要性和现实意义,并对国内外现状金像了分析,提出了该仪器的技术指标和功能要求,对该仪器的核心部件一氧化碳气体敏感元件,CPU、显示模块等进行了比较选型,保证了整个仪器测量的准确性、可靠性。

本文的主要研究工作体现在以下几个方面:

(1)阐述了煤矿智能气体检测仪的设计要求和设计原理;基于设计要求和设计原理,完成了气体检测仪的硬件系统设计,主要包括一氧化碳气体的检测电路和信号处理电路、嵌入式微处理器系统、液晶显示电路、声光报警电路和保护电路等。

(2)通过对电化学式传感器检测一氧化碳的原理进行分析,结合在检测电路中模拟电路设计的特点,检测装置的模拟输入通道进行了详细的设计,同时设计了数据采集、控制和处理软件。

(3)由于本设计采用了S08AW60系列8位单片机,本智能仪器可以扩展为智能多参数的气体检测仪器,例如可以同时测量甲烷、氧气、一氧化碳以及环境温度等参数,因此可以为以后的学习和应用智能仪器打下基础。

 

参考文献

[1]王威.嵌入式微控制器S08AW原理与实践[M].北京:

北京航空航天大学出版社,2009

[2]陈杰.传感器与检测技术[M].北京:

高教出版社,2004

[3]邵贝贝.龚光华.单片机认识与实践[M].北京:

北京航空航天大学出版社,2006

[4]阎石....数字电子技术基础(第三版)....北京:

高等教育出版社,1989

[5]沈兰荪.数据采集与处理[M]北京:

能源出版社,1987

[6]沙占友、王彦朋、孟志永.单片机外围电路设计.电子工业出版社,2003

[7]孙传友、汉泽西.测控系统原理与设计.北京航空航天大学出版社,2002

附录A:

总电路原理图

附录B:

源程序

#include

#nclude"derivative"//调用外函数//

#include

#include

#include

#include

#include

#include/**********初始化CPU************/

voidinit_cpu()//初始化cPu

{

TIM1SC=0X4E;

TPM1MODH=0X0C;

TPM1MODL=0X35;

EnbleInterrupts;

}

interruptVectorNumber_Vtpm1ovfvoidTPM1_OVF_ISR()

{

keyval=PTAD;

}//初始化CPU结束//

voidmain_menu_initial()//LCD主菜单初始化.//

{

main1_menu[0].menu_count=4;//有4个菜单项.//

main1_menu[0].display=measurearray;//定义一个”开始测量“数组//

main1_menu[0].subs=NULL;

main1_menu[0].children_menus=measure_menu;//当前菜单子菜单的指针

main1_menu[0].parent_menus=NULL;

}

voidmeasure_menu_initial()//“开始测量”菜单设置//

{

measure_menu[0].menu_count=2;

measure_menu[0].display=qr;//开始测量函数,确认.

measure_menu[0].subs=start_measure_function;//开始测量函数

measure_menu[0].children_menus=NULL;

measure_menu[0].parent_menus=main1_menu;

measure_menu[1].menu_count=2;

measure_menu[1].display=qx;//开始测量函数,取消.

measure_menu[1].subs=NULL;

measure_menu[1].children_menus=NULL;

measure_menu[1].parent_menus=main1_menu;

}

//还有voidstore_menu_initial()、voidtime_menu_initial()//

voidled_menu_pro(){

max_item=menu_led->menu_count;

switch(keyval)

{

case0:

break;

case1:

//向上键.

if(user_choosen==0)

{

user_choosen=max_item;

}

shuaxin=1;

user_choosen--;

break;

}

……//“向上”“向下”“确认”“取消”键//

if(shuaxin)//是否需要刷新LCD标志位.

{Clr_Scr();

shuaxin=0;

}

led_menu_show();

}

voidled_menu_show()

{

ucharn;

max_item=menu_led->menu_count;

if(max_item>=4)//菜单项为3则表示为主菜单.

{

for(n=0;n<4;n++)

{draw_bmp(n*2,20,96,0,menu_led[n].display);

}

select_item(user_choosen);//标记出当前菜单项.

}

else

{

switch(temp_choosen)

{case0:

draw_bmp(0,20,96,0,measurearray);//“开始测量”数组//

break;

……

default:

break;

}

for(n=0;n

{

draw_bmp((n+1)*2,20,32,0,menu_led[n].display);

}

select_item(user_choosen+1);}}

voidselect_item(ucharn)

{

draw_bmp(n*2,2,16,0,curflag);

}

voidstart_measure_function(void)//开始测量函数//

{main_Menu();

}

……

/*----------------主函数-------------------*/

main()

{

PTADD=0XFF;

PTBDD=0X00;

init_cpu();

Init_Clock();

init_lcd();

Disp_Img(FirstPage);

delay(2000);//延时//

ClockMsg();

Refresh();

delay(2500);

Clr_Scr();

main_Menu();

Clr_Scr();

main_menu_initial();

measure_menu_initial();

store_menu_initial();

time_menu_initial();

communication_menu_initial();

while

(1)

{keyval=get_key();//读键.

led_menu_pro();

}

}//适当延时防止因为不断查忙而耗费大量CUP资源//

ADC0832程序

#defineuintunsignedint//常量/变量定义//

uchark,i,j;

floatlv;

#defnieADCSPTAD_PTAD4//接口定义//

……//其它引脚略……

uchardsw[20];//存放sprintf转换字符

ucharvalue[149];//点阵字符储存

uchartable[]={//字符查表

0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*".",0*/

……};//采集并返回

unsignedintAdc0832(unsignedcharchannel)//AD转换,返回结果

{

uchari=0;

ucharj;

uintdat=0;

ucharndat=0;

if(channel==0)channel=2;

if(channel==1)channel=3;

ADDI=1;

ADCS=0;//拉低CS端

ADCLK=1;//拉高CLK端

ADCLK=0;//拉低CLK端,形成下降沿1

ADCLK=1;//拉高CLK端

ADDI=channel&0x1;

ADCLK=0;//拉低CLK端,形成下降沿2

ADCLK=1;//拉高CLK端

ADDI=(channel>>1)&0x1;

_nop_();

_nop_();

ADCLK=0;//拉低CLK端,形成下降沿3

ADDI=1;//控制命令结束

dat=0;

for(i=0;i<8;i++)

{

dat|=ADDO;//收数据

ADCLK=1;

ADCLK=0;//形成一次时钟脉冲

dat<<=1;

if(i==7)dat|=ADDO;

}

for(i=0;i<8;i++)

{

j=0;

j=j|ADDO;//收数据

ADCLK=1;

ADCLK=0;//形成一次时钟脉冲

j=j<<7;

ndat=ndat|j;

if(i<7)ndat>>=1;

}

ADCS=1;//拉低CS端

ADCLK=0;//拉低CLK端

ADDO=1;//拉高数据端,回到初始状态

dat<<=8;

dat|=ndat;

return(dat);//returnadk

}

/*----------------------点阵字符采集函数--------------------------*/

voidtra(uchar*p)//数组dsp[]里面的字符查询后,再储储存到另一个显示数组value[]

voidmain_Menu()

{Clr_Scr();//先清屏//

CS2=1;CS1=0;

hz_disp16(0,32,1,jiaquan);……//甲//醛//测//量//数//据//存//储//……

delay(2000);

do{

/*k=Adc0832(0);//AD转换结果

l=k/255.0*100.0;

ltemp=floor(l);

dsw[0]=ltemp/10;

dsw[1]=ltemp%10;

//sprintf(dsw,"%2.3f",l);

//dsw[0]=1;

switch(dsw[0])

{

case0:

sz_disp16(2,32,1,sz0);

break;

case1:

……sz_disp16(2,32,1,sz9);

}

switch(dsw[1])

{

case0:

sz_disp16(2,40,1,sz0);

break;

case1:

……sz_disp16(2,40,1,sz9);

}*/

//sz_disp16(2,40,1,sz0);

/*tra(dsw);

CS2=1;CS1=0;

sz_disp16(2,56,1,value);*/

}

while(P1_3);

}

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

当前位置:首页 > 考试认证 > 交规考试

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

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