基于labview的烟雾报警系统

2015-09-10 10:46:54   来源:eefocus   

关键字: labview  烟雾报警系统

 器材:计算机(装有labview) SL-1型单片机开发试验箱一个、MQ-2气体模块一个、ADC0809芯片。

实现功能:通过上位机实时监测气体浓度,并与上位机设定的报警阀值比较,若超过气体浓度报警值,则上下位机同时报警。 实时改变气体报警值,通过上位机传给下位机判断。

电路原理图:参见ADC0809datasheet和MQ-2气体传感器模块参数。传感器根据气体浓度输出0~5V模拟电压输入到0809的模拟输入端。

调式:通过串口调试助手检测数据传送的正确性。

程序:

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit CLK=P3^3 ;     //时钟输出

sbit ST=P2^0; //启动转换输入信号

sbit OE=P2^1;   //允许输出信号

sbit EOC=P3^2;              //使用中断,则比T0中断优先级低

 

uchar DATA; //存放A/D转换数据

sbit Beep=P2^7;

uchar aa;

void delayxms(uint x) //延时

{

uint i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

 

void delayxus(uint x) //延时xus

{

uint i;

for(i=x;i>0;i--)

_nop_();

}

 

 

void init(void)

{

TMOD=0x22; //定时器0自动重装8位,用于产生CLK,定时器1设置串口参数

TH0=237; //50kHZ

TL0=237;

TL1=0xf3;

TH1=0xf3;//2400bps

TR1=1;

TR0=1;

 

SM0=0;

SM1=1;

 

EA=1;

ET0=1;

ES=1;

REN=1;

 

ST=0;

OE=0;

}

 

void ADC0809()

{

ST=0;

OE=0;

//LE=1;P0=0x00;LE=0;  //选择通道

delayxus(2);

ST=1;  //启动AD转换

delayxus(10);

ST=0;

delayxus(200);

 

while(EOC==0);  //查询EOC=1时,转换完毕

OE=1;

DATA=P1;//DATA为AD转换后的数据

delayxus(20);

OE=0;

}

[1] [2]
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

推荐阅读

编辑:什么鱼
本文引用地址: http://www.eeworld.com.cn/Test_and_measurement/2015/0910/article_13083.html
[发表评论]
[加入收藏]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]
小广播
每日新闻
最热点击
本周热门资源推荐
EEWORLD独家
论坛精华
精选博文