最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于单片机的火灾报警器源程序原理图

来源:动视网 责编:小OO 时间:2025-09-30 08:16:55
文档

基于单片机的火灾报警器源程序原理图

#include#defineuncharunsignedchar#defineuintunsignedintucharTem1,Tem2,Smok1,Smok2;ucharTem=3.6,Smok=4.6;//设定温度烟雾报警阈值uchara,a1,a2,b,b1,b2;voidcaiji_wenyan();voiddelay_10ms(uinti);//程序声明voidpanduan);voidbaojing();voidmain(){P10=0;P20=0;WR=1;RD=1;P0=0X
推荐度:
导读#include#defineuncharunsignedchar#defineuintunsignedintucharTem1,Tem2,Smok1,Smok2;ucharTem=3.6,Smok=4.6;//设定温度烟雾报警阈值uchara,a1,a2,b,b1,b2;voidcaiji_wenyan();voiddelay_10ms(uinti);//程序声明voidpanduan);voidbaojing();voidmain(){P10=0;P20=0;WR=1;RD=1;P0=0X
#include

#define unchar unsigned char

#define uint unsigned int 

uchar Tem1,Tem2,Smok1,Smok2;

uchar Tem=3.6,Smok=4.6;   //设定温度烟雾报警阈值

uchar a,a1,a2,b,b1,b2;

void caiji_wenyan();

void delay_10ms(uint i);   //程序声明

void panduan );

void baojing();

void main()

{

 P10=0;P20=0;WR=1;RD=1;

 P0=0XFa;P23=1;P24=1;P25=1;P26=0;   //初始化

 while(1)                          //主程序

  {

   caiji _wenyan ();       //第一次采集温度烟雾信号

   Tem2=Tem1;Smok2=Smok1;    

   delay_10ms(5);           //延时50ms,让ADC0809准备好第二次数据转换

   caiji _wenyan();         //第二次采集温度烟雾信号

   panduan();               //将转换的数据与设定的报警阈值比较

   baojing();               //报警程序

   delay_10ms(1500);        //系统隔15s对现场判断

   };

}

void caiji_wenyan()

{

 P0=0XF8;               //选通IN-0,转换温度信号

 WR=0;

 if(EOC=1) {RD=0;Tem1=P0}; //当ADC0809转换结束,ATC51打开AD的三态门,AD输出数据

 else RD=1;                //否则,AD继续转换

 delay_10ms(1);

 P0=0XF9;             //选通IN-1,转换烟雾信号

 WR=0;

 if(EOC=1) {RD=0;Smok1=P0};

 else RD=1;

}

void delay_10ms(uint i)     //10ms延时程序

{

 while(i--)

  {

   uchar i,j,k;

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

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

for(k=248;k>0;k--);

   }

}

void panduan()

{

if(Tem1  else a1=0;

if(Tem2  else a2=0;

if(Smok1  else b1=0;

if(Smok2  else b2=0;

}

baojing()

{

 if(a1=a2&&b1=b2)        //两次采集数据的标志位相同

  {

   a=a1;

   b=b1;

   if(a=1&&b=1) {P23=0;P10=1;P26=1};  //温度烟雾标志位都是1,发生火灾

   if(a=1&&b=0) {P24=0;P10=1;P26=1};  

   if(a=0&&b=1) {P24=0;P10=1;P26=1};  //温度烟雾标志位只有一个1,异常

   if(a=0&&b=0) P26=0;                //温度烟雾标志位都为0,正常

  };

else {P25=0;P10=1;P26=1}  

文档

基于单片机的火灾报警器源程序原理图

#include#defineuncharunsignedchar#defineuintunsignedintucharTem1,Tem2,Smok1,Smok2;ucharTem=3.6,Smok=4.6;//设定温度烟雾报警阈值uchara,a1,a2,b,b1,b2;voidcaiji_wenyan();voiddelay_10ms(uinti);//程序声明voidpanduan);voidbaojing();voidmain(){P10=0;P20=0;WR=1;RD=1;P0=0X
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top