找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机烟雾传感器报警实验程序

[复制链接]
跳转到指定楼层
楼主
产品概述
Z-MQ-01模组采用MQ-2气体传感器配合8位高性价比单片机, 内部已做 AD 采集, 用户只需串口读数据即可,方便使用。该模组对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。


单片机源程序如下:
  1. #include<reg52.h>

  2. #define  buf_len 9       
  3. unsigned char temp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  4. unsigned char write_buf[buf_len] = {0xff,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
  5. char read_buf[buf_len] = {0};
  6. unsigned char uart_len = 0;
  7. unsigned char uart_RX_num = 0;

  8. void delay_ms(int ntime)
  9. {
  10.         int i;
  11.         while(ntime--)
  12.                 for(i = 0; i<120; i++);
  13. }
  14. void uart_init(void)
  15. {
  16.         TMOD=0x20;                 //用来定时器设置
  17.         TH1=0xfd;                 //设置初值 9600=(2的SMOD次方/32)*(TI溢出率)=(1/32)*(11059200/12)/(256-X)
  18.         TL1=0xfd;
  19.         TR1=1;                         //开启定时器1
  20.         SM0=0;                         //设置串行口工作方式
  21.         SM1=1;
  22.         REN=1;                 //允许串行接收位
  23.         EA=1;                  //开启总中断
  24.         ES=1;                        //开启串口中断
  25.         //ES = 1;
  26. }

  27. void main(void)
  28. {
  29.         unsigned int i =0;
  30.         unsigned int oldcount = 0;
  31.         unsigned char flag = 1;
  32.         unsigned char g,s,b;       
  33.         uart_init();
  34.         P1 = 0x00;
  35.         P0 = 0x00;
  36.        
  37.        
  38.         while(1)
  39.         {
  40.                 if(flag)
  41.                 {
  42.                         flag = 0;
  43.                         ES=0;          //关闭串口中断
  44.                         for(i=0; i<9; i++)
  45.                         {
  46.                                 SBUF = write_buf[i];                         //发送数据a到SBUF,即将单片机的数据发送到计算机
  47.                                 while(!TI);                //发送数据后,TI自动置1
  48.                                 TI=0;                        //TI置0,才能进行下次发送
  49.                         }
  50.                         ES=1;                        //打开中断               
  51.                 }
  52.                 i = 100;
  53.                 while(i--)
  54.                 {
  55.                         P1 = 0x01;
  56.                         P0 = temp[g];
  57.                         delay_ms(5) ;
  58.                         P1 = 0x02;
  59.                         P0 = temp[s];
  60.                         delay_ms(5);
  61.                         P1 = 0x04;
  62.                         P0 = temp[b];
  63.                         delay_ms(5);
  64.                 }
  65.                 if(uart_RX_num)
  66.                 {
  67.                         if(uart_RX_num == oldcount)
  68.                         {
  69.                                 ES=0;          //关闭串口中断
  70.                                 for(i=0; i<buf_len; i++)
  71.                                 {
  72.                                         SBUF = read_buf[i];                         //发送数据a到SBUF,即将单片机的数据发送到计算机
  73.                                         while(!TI);                //发送数据后,TI自动置1
  74.                                         TI=0;                        //TI置0,才能进行下次发送
  75.                                 }
  76.                                
  77.                                 g =  (read_buf[3]%16);
  78.                                 s =  (read_buf[3]/16);
  79.                                 b =  (read_buf[2]%16);
  80.                                 ES=1;                        //打开中断
  81.                                 flag = 1;       
  82.                         }
  83.                         else
  84.                                 oldcount = uart_RX_num;
  85.                 }
  86. ……………………

  87. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
烟雾传感器.zip (230.68 KB, 下载次数: 111)



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

使用道具 举报

沙发
ID:342448 发表于 2018-5-31 20:07 | 只看该作者
666666
回复

使用道具 举报

板凳
ID:429906 发表于 2018-12-21 20:04 | 只看该作者
666666可以
回复

使用道具 举报

地板
ID:366949 发表于 2019-4-20 19:25 | 只看该作者
楼主的程序相当及时,烟雾传感器的控制程序网上比较少,此处应当有掌声
回复

使用道具 举报

5#
ID:714695 发表于 2020-5-7 16:25 | 只看该作者
谢谢分享,学习学习
回复

使用道具 举报

6#
ID:741006 发表于 2020-5-8 10:16 | 只看该作者
有显示浓度的吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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