找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7656|回复: 12
收起左侧

MQ-2烟雾报警器,液化气传感器的程序仿真和资料下载

  [复制链接]
ID:127691 发表于 2016-6-22 17:04 | 显示全部楼层 |阅读模式

0.png
液化气,MQ-2烟雾报警器液化气TTL输出测试程序:
  1. //程序头文件
  2. #include<reg52.h>

  3. //宏定义
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. #define Data_ADC0809 P1

  7. //管脚声明
  8. sbit Feng = P3^0;

  9. //ADC0809
  10. sbit ST=P3^3;
  11. sbit EOC=P3^4;
  12. sbit OE=P3^2;

  13. //按键
  14. sbit Key1=P3^5;
  15. sbit Key2=P3^6;
  16. sbit Key3=P3^7;

  17. //显示数组0-9和F
  18. uchar Data_[]=
  19. {
  20.         0x3f,0x06,0x5b,      
  21.         0x4f,0x66,0x6d,
  22.         0x7d,0x07,0x7f,
  23.         0x6f,0x71,0x3f
  24. };
  25. sbit Wei1 = P2^7;
  26. sbit Wei2 = P2^6;
  27. sbit Wei3 = P2^5;
  28. sbit Wei4 = P2^4;

  29. //函数声明
  30. extern uchar ADC0809();
  31. void Display(uchar X,uchar Data);
  32. void delay(uint t);

  33. //酒精含量变量
  34. uchar temp=0;
  35. //蜂鸣器变量
  36. uchar FF=10;
  37. //显示模式
  38. uchar Mode=0;
  39. uchar p;

  40. void main()
  41. {
  42.         while(1)
  43.         {
  44.                 //正常模式
  45.                 if(Mode==0)
  46.                 {
  47.                         //读取AD值
  48.                         temp=ADC0809();
  49.                         for(p=0;p<30;p++)
  50.                         Display(0,temp);
  51.                         //判断是否报警
  52.                         if(temp>FF)
  53.                         {
  54.                                 Feng=0;
  55.                         }
  56.                         else
  57.                         {
  58.                                 Feng=1;
  59.                         }
  60.                 }
  61.                 //调整模式
  62.                 else
  63.                 {
  64.                         Display(1,FF);
  65.                 }
  66.                 //功能键
  67.                 if(Key3==0)
  68.                 {
  69.                         Feng=0;
  70.                         delay(100);
  71.                         while(Key3==0)
  72.                         {
  73.                                 if(Mode==0)
  74.                                 Display(0,temp);
  75.                                 else
  76.                                 Display(1,FF);
  77.                         }
  78.                         if(Mode==0)
  79.                         Mode=1;
  80.                         else
  81.                         Mode=0;
  82.                         Feng=1;
  83.                 }
  84.                 //增加
  85.                 if(Key2==0&&Mode==1)
  86.                 {
  87.                         Feng=0;
  88.                         delay(100);
  89.                         while(Key2==0)
  90.                         {
  91.                                 Display(1,FF);
  92.                         }
  93.                         FF++;
  94.                         if(FF==251)
  95.                         FF=250;
  96.                         Feng=1;
  97.                 }
  98.                 //减少
  99.                 if(Key1==0&&Mode==1)
  100.                 {
  101.                         Feng=0;
  102.                         delay(100);
  103.                         while(Key1==0)
  104.                         {
  105.                                 Display(1,FF);
  106.                         }
  107.                         FF--;
  108.                         if(FF==0xff)
  109.                         FF=0;
  110.                         Feng=1;
  111.                 }
  112.         }
  113. }
  114. //ADC0809读取信息
  115. uchar ADC0809()
  116. {
  117.         uchar temp_=0x00;
  118.         //初始化高阻态
  119.         OE=0;
  120.         //转化初始化
  121.         ST=0;
  122.         //开始转化
  123.         ST=1;
  124.         ST=0;
  125.         //外部中断等待AD转换结结束
  126.         while(EOC==0)
  127.         //读取转换的AD值
  128.         OE=1;
  129.         temp_=Data_ADC0809;
  130.         OE=0;
  131.         return temp_;
  132. }
  133. //延时
  134. void delay(uint t)
  135. {
  136.         uint i,j;
  137.         for(i=0;i<t;i++)
  138.         {
  139.                 for(j=0;j<10;j++);
  140.         }
  141. }

  142. //显示 X表示状态 Data表示数据
  143. void Display(uchar X,uchar Data)
  144. {
  145.         Wei1=1;
  146.         Wei2=1;
  147.         Wei3=1;
  148.         Wei4=1;
  149.         P0=0xff;

  150.         //正常模式
  151.         if(X==0)
  152.         {
  153.                 P0=~Data_[11];
  154.         }
  155.         //非正常
  156.         else
  157.         {
  158.                 P0=~Data_[10];
  159.         }
  160.         Wei1=0;
  161.         Wei2=1;
  162.         Wei3=1;
  163.         Wei4=1;
  164.         delay(10);
  165.         Wei1=1;
  166.         Wei2=1;
  167.         Wei3=1;
  168.         Wei4=1;

  169.         P0=~Data_[Data/100];
  170.         Wei1=1;
  171.         Wei2=0;
  172.         Wei3=1;
  173.         Wei4=1;
  174.         delay(10);
  175.         Wei1=1;
  176.         Wei2=1;
  177.         Wei3=1;
  178.         Wei4=1;


  179.         P0=~Data_[Data/10%10];
  180.         Wei1=1;
  181.         Wei2=1;
  182.         Wei3=0;
  183.         Wei4=1;
  184.         delay(10);
  185.         Wei1=1;
  186.         Wei2=1;
  187.         Wei3=1;
  188.         Wei4=1;

  189.         P0=~Data_[Data%10];
  190.         Wei1=1;
  191.         Wei2=1;
  192.         Wei3=1;
  193.         Wei4=0;
  194.         delay(10);
  195.         Wei1=1;
  196.         Wei2=1;
  197.         Wei3=1;
  198.         Wei4=1;

  199. }
复制代码
0.png

MQ-2烟雾气体传感器模块 液化气天然气模块 烟雾模块.rar

2.16 MB, 下载次数: 144, 下载积分: 黑币 -5

评分

参与人数 2黑币 +55 收起 理由
Absinthe + 5 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:159089 发表于 2017-1-2 21:18 | 显示全部楼层
不错, 搞好拿来参考下
回复

使用道具 举报

ID:183636 发表于 2017-3-26 21:08 | 显示全部楼层
学习学习 借鉴一下
回复

使用道具 举报

ID:243045 发表于 2017-10-26 10:09 | 显示全部楼层
厉害了厉害了
回复

使用道具 举报

ID:121859 发表于 2018-1-11 12:28 | 显示全部楼层
先下来,学习一下。
回复

使用道具 举报

ID:296658 发表于 2018-3-25 13:09 | 显示全部楼层
我也想要
回复

使用道具 举报

ID:311182 发表于 2018-4-18 20:13 | 显示全部楼层
借鉴一下
回复

使用道具 举报

ID:311202 发表于 2018-4-18 20:45 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:313743 发表于 2018-4-22 15:23 | 显示全部楼层
你们都好会啊,我一点都不懂
回复

使用道具 举报

ID:355474 发表于 2018-6-23 22:21 | 显示全部楼层
好资源,正好用到
回复

使用道具 举报

ID:355474 发表于 2018-6-23 22:22 | 显示全部楼层
不错,下载下来学习学习
回复

使用道具 举报

ID:455942 发表于 2018-12-26 22:26 | 显示全部楼层
厉害了,大佬
回复

使用道具 举报

ID:458084 发表于 2020-2-27 12:28 | 显示全部楼层
感谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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