找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1604|回复: 1
打印 上一主题 下一主题
收起左侧

单片机火灾报警监测设计 包括检测温度,烟雾

[复制链接]
跳转到指定楼层
楼主
实现功能: 设计基于51系列的单片机的智能火灾报警系统,其主要模块为烟雾传感器、温度传感器、蜂鸣报警器以及2个16×16的点阵、6个按键。单片机一方面对运行的烟雾传感器和温度传感器检测环境传过来的信号处理,并且通过点阵进行实时显示,(点阵个数就按你说的用2个,这个显示形式有静止、移入移出,这个显示形式能过通过按键进行选择,所以这里需要1个按键来进行显示形式的切换);单片机另一方面能够通过与预设的烟 雾和温度阈值进行比较并判断是否要报警(报警就用蜂鸣器),通过加、减按键可设置报警的阈值,设置有紧急报警按键以应对突发情况(这里需要2对加减按键,1对用来对烟雾进行加减报警设置,另1对用力对温度进行加减报警设置,外加1个紧急报警按键,所以整个系统是6个按键)。
电路图


部分代码
void delay(uchar us);          //delay
float gettemp(void);
void delay(uchar us)        //delay time
{while(us--) _nop_();
}
/*串口初始化*/
void serial_init ( unsigned char bt )  {
  SCON  = 0x50;                      /* mode 1: 8-bit UART, enable receiver   */
  TMOD  = 0x21;                      /* timer 1 mode 2: 8-Bit reload          */
     switch(bt){
          case 0:   //38400
           TH1=0xfd;
           PCON=0x80;
           break;
          case 1:   //19200
           TH1=0xfd;
           PCON=0;
           break;
          case 2:   //9600
           TH1=0xfa;
           PCON=0;
           break;
          case 3:   //4800
           TH1=0xf4;
           PCON=0;
           break;
          case 4:   //2400
           TH1=0xe8;
           PCON = 0;
           break;
          case 5:   //1200
           TH1=208;
           PCON = 0;
           break;
          case 6:   //600
           TH1=160;
           PCON = 0;
           break;
          case 7:   //300
           TH1=64;
           PCON = 0;
           break;
          default:
           TH1=0xfa;
           PCON=0;
           break;
                 }
  TR1   = 1;                         /* timer 1 run                           */
//  ES    = 1;
//  EA=1;
}
void putbyte(char c)
{
  SBUF=c;
  while (!TI) _nop_();
  TI=0;
}
void putint(unsigned int ui)
{unsigned char ls;
ls=(ui/10000+0x30);
putbyte(ls);
ls=((ui%10000)/1000+0x30);
putbyte(ls);
ls=((ui%1000)/100+0x30);
putbyte(ls);
ls=((ui%100)/10+0x30);
putbyte(ls);
ls=(ui%10+0x30);
putbyte(ls);
}
/*************************************/
/*发送一个字节的hex码,分成两个字节发。*/
unsigned char code hex_[]={"0123456789ABCDEF"};
puthex(unsigned char c)
{int ch;
ch=(c>>4)&0x0f;
putbyte(hex_[ch]);
ch=c&0x0f;
putbyte(hex_[ch]);
}




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2018-12-26 15:37 | 只看该作者
补全原理图 工程包或者详细说明一下电路连接即可获得100+黑币
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表