危险气体检测报警系统MQ-2 - 图文(6)

2019-01-03 16:25

}

4.6控模块设计及主要程序

#include #include

#define uint unsigned int #define uchar unsigned char #include\

uchar temp[] =\; uchar temp_s[] =\; sbit sw3=P3^1; sbit sw1=P3^3; sbit sw2=P3^2;

sbit baojing=P3^6; sbit led=P3^5;

sbit CLK = P1^3;//7 脚 sbit DAT = P1^4; //脚 sbit CS = P1^5; //5 脚 uchar num1;

uchar getdata=55; uint shangxian=100; uchar set; uint getdate; void conv(); yunxing(); void key();

void kongzhi();

unsigned char TLC549_AD(void)//TLC549转换函数 { unsigned char i,x; CLK = 0; DAT = 1; CS = 0;

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

CLK = 1; x<<=1;

if(1 == DAT) x++;

CLK = 0;

}

CS = 1;

for(i=0;i<8;i++) _nop_(); return (x); }

void zhuanhuan() {

temp[9]=shangxian/100+0x30; temp[10]=shangxian/10+0x30; temp[11]=shangxian+0x30; temp_s[9]=getdate/100+0x30; temp_s[10]=getdate/10+0x30; temp_s[11]=getdate+0x30; }

//------------------------------------------------------------ main() {

baojing=0; delay(500); baojing=1; led=0;

LCD_Initial(); //液晶初始化 while(1)

{ getdate=TLC549_AD(); zhuanhuan();

key();// 按键检测 kongzhi();

GotoXY(0,0);//显示起始位置 Y=0,第一行,Y=1 第二行//显示第一行 Print(temp);// 内容

GotoXY(0,1);//显示起始位置 Y=0,第一行,Y=1 第二行 显示第二行 Print(temp_s);// 内容

temp_s[9]=getdate/100+0x30; temp_s[10]=getdate/10+0x30; temp_s[11]=getdate+0x30; delay(1);

//getdate= GetADCResult(0)*3.9; } }

void key() //按键检测程序 {

set=1;

if(sw3==0) {

delay(10); if(sw3==0) {

set++;

if (set>=2) { set=0;

while(sw3==0);

} } }

if(set==1)//上限设置 {

if(sw1==0) //上限减功能 {

delay(50); if(sw1==0)

{ //while(sw1==0); if(shangxian>0) shangxian--; else( shangxian=255); } }

if(sw2==0) //上限加功能 {

delay(50); if(sw2==0)

{ //while(sw2==0) ;

if(shangxian<255) shangxian++; else( shangxian=0); } }

} }

void kongzhi() {

if(getdate>=shangxian)

{

led=1; num1++;

if(num1>=20) {

num1=0;

baojing=~baojing; } }

else {baojing=1;led=0; } }

5 总结

5.1设计过程中与到的问题及解决方法

首先在设计之前要有一个清晰的思路和一个完整的的软件流程图,是在这一点上我的指导老师曲培新给我很大帮助,他给我分析了整个设计的流程以及每个器件的应用和功能,使我对本设计有了一个具体的了解,为我以后设计做了扎实的铺垫。

设计时候,我遇到的第一个问题是传感器与转换系统模块的设计,之前我们的学习中没有接触过类似的问题,网上论文资料和一些实例也没有具体的阐述,对于我这个善于模仿的人来说基本无据可循,在一次偶然的机会从一篇<火灾探测系统软件设计>获得了很大启发,从而对MQ-2传感器有了一定了解,它是一种气体检测的常用器件,烟雾传感器,对甲烷,丁烷,丙烷,和液化气有很高的敏感度,很实用我要设计的危险气体检测技术,在我没的日常用的天然气内的组成是甲烷,丙烷等气体,与老师当初帮我分析的煤气泄漏检测相互照应,AD转换器A/D TLC549,这个模数转换器给了我很大启发,经过资料的查询和学习,有了系统了解和认识。MQ-2和ADTLC549的选择是本设计的重点和难点,也是设计过程的最大阻力。

我的题目是《可自锁的危险气体的检测与报警系统》可自锁三个字眼让我有点摸不着头脑,可自锁就是可以自动做出反应,如果我做一个针对煤气罐的煤气检测,我是不是要去买个煤气罐呢?关闭煤气需要动力,是否需要设计一个更为复杂的系统呢?思来想去无从下手最后经老师同意,考虑到本系统的模拟性用一个二极管看做天然气气阀。不仅大大简化了设计的繁琐程度,也更好看直观。

5.2心得体会

首先,查阅资料的必要性。在做本次设计的过程中,感触最深的当属查阅大量的设计

资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我是在做单片机设计,而不是艺术家,可以抛开实际尽情在幻想的世界里翱翔,而一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计,能做的就是理论结合实际。

其次,在设计之前,要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源,要有一个清晰的思路和一个完整的的软件流程图。要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。在设计过程中遇到问题是很正常的,但应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在以后的学习、工作和生活中

最后,在这次设计中我使用了分模块焊接,分模块测试的方法进行硬件电路的焊接和测试,这是我最宝贵的收获,这样做可以避免走很多弯路。总体上说,这次实验中收获很多,感触也很多。


危险气体检测报警系统MQ-2 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:原电池和电解池知识点总结 讲座

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: