音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

基于DS18B20溫度傳感器和MQ2煙霧傳感器的火災報警器設計

出處:elecfans 發(fā)布于:2017-09-04 15:50:59

一、概述

火災自動報警系統(tǒng)(Fire Alarm System,簡稱FAS系統(tǒng))是人們?yōu)榱嗽缙诎l(fā)現通報火災,并及時采取有效措施,控制和撲滅火災,而設置在建筑物中或其它場所的一種自動消防設施,是人們同火災作斗爭的有力工具?!?】

本設計中以溫度探頭和作為的傳感裝置,并以LED蜂鳴器作為示警裝置。

二、功能

●高溫檢測。傳感器選用,當環(huán)境溫度大于40℃,高溫報警指示燈亮,LCD1602行顯示溫度。

●環(huán)境煙霧濃度檢測。傳感器選用MQ2煙霧傳感器,AD0809作模數轉換傳煙霧濃度數據給單片機。當環(huán)境煙霧濃度大于50時,煙霧濃度指示燈亮,LCD1602第二行顯示煙霧濃度。

當溫度和煙霧濃度同時過高時,蜂鳴器發(fā)出報警聲音。

三、硬件設計

:DS18B20

煙霧傳感器:MQ2。MQ2輸出的模擬電壓信號,使用ADC0809作模數轉換后輸入單片機。


四、程序設計


部分程序段:

○LCD1602顯示部分程序

#define LCD_DATA P0 //lcd1602的引腳

sbit LCD_RS = P2^0;

sbit LCD_RW = P2^1;

sbit LCD_EN = P2^2;

void LCD_Init(void)

{

Delay20ms();

  LCD_WriteCmd(0x38); //8位機接口、雙行顯示、5×7字符點陣;

LCD_WriteCmd(0x0c); //顯示開啟、光標不顯示也不閃爍;

LCD_WriteCmd(0x01); //清屏;

LCD_WriteCmd(0x06); //光標右移一位、整屏不移動;

  

  LCD_Goto(0,0);

}

 void LCD_WriteDat(unsigned char lcd_dat)

{

unsigned char tmp;

tmp = LCD_ReadStatus(); //讀狀態(tài);

while((tmp & 0x80)) //是否忙 ?

{

tmp = LCD_ReadStatus();

}

LCD_RS = 1;

LCD_RW = 0;

LCD_DATA = lcd_dat;

_nop_();

LCD_EN = 0;

_nop_();

_nop_();

LCD_EN = 1;

}

 void LCD_WriteCmd(unsigned char lcd_cmd)

{

unsigned char tmp;

tmp = LCD_ReadStatus();

while((tmp & 0x80))

{

tmp = LCD_ReadStatus();

}

LCD_RS = 0;

LCD_RW = 0;

LCD_DATA = lcd_cmd;

_nop_();

LCD_EN = 0;

_nop_();

_nop_();

LCD_EN = 1;

}

 unsigned char LCD_ReadStatus(void)

{

unsigned char tmp;

#if 0

LCD_RS = 0;

LCD_RW = 1;

LCD_EN = 1;

tmp = LCD_DATA;

LCD_EN = 0;

#endif

LCD_DATA = 0xff;

LCD_RS = 0;

LCD_RW = 1;

LCD_EN = 0;

_nop_();

_nop_();

LCD_EN = 1;

tmp = LCD_DATA;

return tmp;

}

 void LCD_Goto(unsigned char x,unsigned char y)

{

unsigned char tmp;

if(y) //若是第二行;

{

tmp = 0xc0 + x;

LCD_WriteCmd(tmp);

}

{

tmp = 0x80 + x;

LCD_WriteCmd(tmp);

}

}

 void LCD_Display(unsigned char row,unsigned char *str)

{

if(row)

{

LCD_Goto(0,1);

}

  else 

  {

  LCD_Goto(0,0);

  }

  while(*str != '\0')

    {

  LCD_WriteDat(*str++);

  }

}

○ADC0809部分程序

//AD0809的IO口以及變量定義

sbit OE=P2^7;

sbit EOC=P2^6;

sbit START=P3^0;

void AD0809()//0809轉換數據

{

START=0;_nop_();

START=1;_nop_();

START=0;_nop_();

while(EOC==0);

OE=1;_nop_();

density=P1;_nop_();

OE=0;

}

○DS18B20部分程序

sbit DQ=P2^3;  //DS18B20數據端

//2、DS18B2模塊

void delay_18B20(unsigned int i)

{

while(i--);

}

//ds18b20初始化函數

void Init_DS18B20(void)

{

unsigned char x=0;

DQ = 1;          //DQ復位

delay_18B20(2); //稍做延時

DQ = 0;          //單片機將DQ拉低

delay_18B20(60); //延時 大于 480us

DQ = 1;          //拉高總線

delay_18B20(2);

x=DQ;            //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗

delay_18B20(15);

}

//ds18b20讀一個字節(jié)

unsigned char ReadOneChar(void)

{

unsigned char i=0;

unsigned char dat = 0;

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

{

    DQ = 0; // 給脈沖信號

    dat>>=1;

    DQ = 1; // 給脈沖信號

    if(DQ)

    dat |=0x80;

    delay_18B20(4);

}

   return(dat);

}

//ds18b20寫一個字節(jié)

void WriteOneChar(unsigned char dat)

{

   unsigned char i=0;

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

   {

    DQ = 0;

    DQ = dat&0x01;

    delay_18B20(2);

    DQ = 1;

    dat>>=1;

  }

}

五、仿真圖

 

圖3 火災報警器仿真圖

關鍵詞:DS18B20,溫度傳感器,煙霧傳感器,火災報警器

版權與免責聲明

凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://m.58mhw.cn,違反者本網將追究相關法律責任。

本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯系,否則視為放棄相關權利。

OEM清單文件: OEM清單文件
*公司名:
*聯系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯系人:

聯系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經采納,將有感恩紅包奉上哦!