找回密码
 注册
关于网站域名变更的通知
查看: 546|回复: 2
打印 上一主题 下一主题

MQ-2烟雾传感器工作原理 手册 单片机源代码等下载

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-11 01:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
MQ-2烟雾传感器工作原理 手册 单片机源代码等下载7 i- f% P( {" p3 j0 ^$ {
2 m: v: _0 {$ i: x. P6 w. u

9 v  u; B+ [4 [0 S! E单片机源代码:
7 N1 x6 j' e, l, J#include <reg52.h>             //头文件5 X' l$ ^8 g; ?$ e/ U) n
#define uchar unsigned char           //宏定义无符号字符型+ a& k5 u% L! f
#define uint  unsigned  int           //宏定义无符号整型4 ]5 q1 x8 ~. _. \3 ^3 U* u" _8 B
code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //显示段码 数码管字跟
' x2 c5 M) K+ i: Nuchar wei[4]={0XEf,0XDf,0XBf,0X7f};  //位的控制端                                                                 //位控制码
0 F1 L, V- ~& Csbit ST=P3^0;   //A/D启动转换信号
+ ~( u4 x2 n  B" {3 f! tsbit OE=P3^1;   //数据输出允许信号$ ?5 I7 C6 D, C+ ?$ s
sbit EOC=P3^2;  //A/D转换结束信号
9 [" S2 v; b4 Q% s7 a+ T2 Isbit CLK=P3^3;  //时钟脉冲  # v8 L0 }# {* Q5 {2 j
uint z,x,c,v,AD0809, date;        //定义数据类型
9 G- w3 \% T  h; ?$ @/******************************************************************
. R7 C5 }$ ?# `; |: Z" d8 g延时函数
- ?( d! @2 b9 d; t0 N******************************************************************/
; N$ H2 O3 c& [4 dvoid delay(uchar t)( `2 ]9 c( T( p
{
( @- B4 I$ V5 |  uchar i,j;
8 l3 l4 u1 h$ [, ]" s; l   for(i=0;i<t;i++)) l* Q5 U* i) s7 {
   {
, d. {9 `" ?! j5 N            for(j=13;j>0;j--);5 I' b( B- G0 I4 w9 X! a3 j
         { ;
5 {% v5 o8 h+ C  Z" L  v+ J: u; ?' N         }# v: v* s( c4 P. D+ }
   }/ j. J0 v7 h* ^, K9 U& o8 C# G+ p
}4 ]1 p+ r' I% J2 w7 j) h4 u
/**********************************************************************
5 [. E- k) {  F% c7 \) C$ e# Q) U                数码管动态扫描
- P: ~- j9 y3 G! u*********************************************************************/( y8 B6 j0 p. W, ~1 S+ u( h
void xianshi() //显示函数7 E. s8 {5 F0 j- _
{ . A7 W6 J% ?* C. V- y0 C* _
uint z,x,c,v;
5 f0 e" R% x  m  Q) c, s* w  z=date/1000;                         //求千位) Q2 x$ k6 B0 g( E8 K
  x=date%1000/100;                 //求百位; N) ]6 Q# V4 p0 E7 F+ _
  c=date%100/10;                 //求十位  F+ |; @" z  z2 X  s- [7 d" m
  v=date%10;                         //求个位
; a& f0 z: C7 M, P$ a" B
4 A1 t0 i0 t9 K6 v" V$ s; v      P2=0XFF;) \( ^7 y' S2 J
          P0=seg7code[z]&0x7f;, K) H4 ?1 ~8 Y  O/ B9 _
          P2=wei[0];
5 z# g) L" O: ~5 ^% [$ \" V          delay(80);
' u9 B# S% v+ {" }) j; J; b          P2=0XFF;  
4 S! h/ `" S0 F4 {; z/ }0 C      P0=seg7code[x];9 m$ T0 C* r3 e. O3 C1 V% |7 n
          P2=wei[1];! s) s/ R. J7 @0 n( g# `& s
          delay(80);
" q$ v' Q- M  c5 s- Y0 J5 K8 Y; F          P2=0XFF;  7 w8 W! c) ~" [) ]3 C
             P0=seg7code[c];" ]- U' f) u8 J% d8 }! }- _; A& l% |
          P2=wei[2];
5 f  x& ?) |. H6 F6 l          delay(80);. G6 `: N+ y5 ~& n
          P2=0XFF;  3 ~$ v6 S$ q9 O# K/ Z" |3 w
      P0=seg7code[v];
# W6 r0 [  r6 H1 W  g" N. i          P2=wei[3];( S. Y+ l6 i0 Z; C4 `# b, k) A- X5 @
          delay(80);
6 W6 h/ [5 l9 n  d: O3 e( [  \: `0 V- Q          P2=0XFF;8 D6 m$ _% D4 j$ y/ h8 v5 v  k
  }5 S& C2 x7 w* x% k
/*************************************************************************! M* b% N! V( V9 S
                                CLK振荡信号        3 z+ \$ F6 l0 d5 w: h0 x6 B
**************************************************************************/
; N, `& X, m  Bvoid timer0( ) interrupt 1 //定时器0工作方式16 ^" ^' O6 B) }8 h: V& [: |0 Y
{
9 Y& X) O$ e: J, W/ G( E6 s0 T0 A# k4 L/ {, V$ s/ A
TH0=(65536-2)/256;          //重装计数初值" N3 X* Q5 H  [. T! @, o3 b: o$ I
TL0=(65536-2)%256;          //重装计数初值
3 w. h, U0 O5 O# BCLK=!CLK;                          //取反) d8 g& a! `8 \+ W
}" z9 o" m$ E3 J6 `9 `# R
% g# H( f" b* @; U* z: \1 |$ r' B( a
/*************************************************************************
% s' |3 H+ x8 p2 N0 b1 c                                主函数        * n, \3 e3 S6 w3 S) Z$ W
**************************************************************************/5 e  b6 i- @  |1 V; Q+ u
void main()
) N- R) D5 b2 j* z{ % T/ d  e7 \9 j- y8 U$ h
TMOD=0X01;                          //定时器中断0
+ Y! Y" Y( e8 s+ }7 x2 k. }4 F1 H4 K" M2 a1 m5 d  q
CLK=0;                                  //脉冲信号初始值为0
; g! B! i+ R- l7 a$ YTH0=(65536-2)/256;          //定时时间高八位初值
& R  f. _# p4 P- U) [TL0=(65536-2)%256;          //定时时间低八位初值
; {0 G" f( [' t9 b, `8 {% aEA=1;                                  //开CPU中断, `6 ~* j& s2 F+ y/ p
ET0=1;                                  //开T/C0中断, Y6 }$ h& i) r5 {+ l
TR0=1;8 @6 ~& P9 l1 l5 b6 b
while(1)                           //无限循环$ {* d$ _. ?% p3 e/ U% b" J
        {! b; Y; B% s! i4 Y$ i# ~# _
        ST=0;                                //使采集信号为低& [! p  ^* u! x! [2 ]- l+ ?
        ST=1;                                //开始数据转换8 ~& \6 c0 A. V2 ^
        ST=0;                                //停止数据转换8 S2 S* Z; C) ^9 }0 W4 i" C
        while(!EOC);                //等待数据转换完毕+ i* B8 F0 z0 r' T4 U
        OE=1;                                //允许数据输出信号/ r# v# E3 s+ G0 \
        AD0809=P1;                    //读取数据
3 o3 T9 `6 p5 W3 q0 }        OE=0;                                //关闭数据输出允许信号
; c) |5 m* H* H        if(AD0809>=251)                //电压显示不能超过5V
' ^3 b$ g  j, ~% s( U) z        AD0809=250;, M! g& z$ A* ?. L2 y0 g) A( K
        date=AD0809*20;                //数码管显示的数据值,其中20为采集数据的毫安值
1 s% X  Z7 ]+ n* u        xianshi();                        //数码管显示函数
6 j2 D2 }4 A; m' [' c7 ]+ b) c, ?) V: A& T3 z- M5 o% Y
) e+ {; l& ~9 c( v
…………限于本文篇幅 余下代码请下载附件…………
& T" V$ T- J3 v
0 S6 U1 l3 T: p( o7 P, Y. bMQ-2烟雾传感器资料下载:5 n6 U" _6 f( T# [
MQ-2烟雾传感器模块.rar (2.15 MB, 下载次数: 0)
* y4 i( L. ^9 e! k3 X* B

" n3 i- X! a0 a2 C( K

该用户从未签到

2#
发表于 2019-1-11 15:22 | 只看该作者
看看楼主的代码
头像被屏蔽

该用户从未签到

3#
发表于 2019-1-11 15:46 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-11 17:23 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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