基于labview的煙霧報警系統
實(shí)現功能:通過(guò)上位機實(shí)時(shí)監測氣體濃度,并與上位機設定的報警閥值比較,若超過(guò)氣體濃度報警值,則上下位機同時(shí)報警。 實(shí)時(shí)改變氣體報警值,通過(guò)上位機傳給下位機判斷。
本文引用地址:http://dyxdggzs.com/article/201701/337084.htm電路原理圖:參見(jiàn)ADC0809datasheet和MQ-2氣體傳感器模塊參數。傳感器根據氣體濃度輸出0~5V模擬電壓輸入到0809的模擬輸入端。
調式:通過(guò)串口調試助手檢測數據傳送的正確性。
程序:
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit CLK=P3^3 ;
sbit ST=P2^0; //啟動(dòng)轉換輸入信號
sbit OE=P2^1;
sbit EOC=P3^2;
uchar DATA; //存放A/D轉換數據
sbit Beep=P2^7;
uchar aa;
void delayxms(uint x) //延時(shí)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void delayxus(uint x) //延時(shí)xus
{
uint i;
for(i=x;i>0;i--)
_nop_();
}
void init(void)
{
TMOD=0x22; //定時(shí)器0自動(dòng)重裝8位,用于產(chǎn)生CLK,定時(shí)器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;
delayxus(10);
ST=0;
delayxus(200);
while(EOC==0);
OE=1;
DATA=P1;//DATA為AD轉換后的數據
delayxus(20);
OE=0;
}
評論