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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MQ-2烟雾传感器工作原理 手册 单片机源代码等下载, H9 W) u6 Y; D+ `  [2 J

7 [9 P) G8 C$ g1 M- R8 q, v( H& T
2 g9 p5 N. u* d7 n5 h' R: V8 a
单片机源代码:) Q+ M9 M  T" t; Q, c% y* f
#include <reg52.h>             //头文件0 Z# v+ v. {: \$ u, {; ]4 C2 E
#define uchar unsigned char           //宏定义无符号字符型5 B- D- ]0 r! @  o: M) I7 b% O9 _
#define uint  unsigned  int           //宏定义无符号整型
3 L" L: L2 a, T' j/ |code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //显示段码 数码管字跟
7 B2 {- j3 d2 `0 f& J' wuchar wei[4]={0XEf,0XDf,0XBf,0X7f};  //位的控制端                                                                 //位控制码: i0 q6 r$ V- Y" }$ i0 Q, E1 Q/ ^, B
sbit ST=P3^0;   //A/D启动转换信号
8 V. z2 Z* b4 y' A9 T' T5 vsbit OE=P3^1;   //数据输出允许信号. }0 e+ g( V; D" V- u, v
sbit EOC=P3^2;  //A/D转换结束信号4 _2 v8 L4 B: T/ f/ L6 O
sbit CLK=P3^3;  //时钟脉冲  
; {$ b+ c+ h: Z: h6 [. e5 z6 s) nuint z,x,c,v,AD0809, date;        //定义数据类型  }3 B) L9 O# o5 i& O$ g5 O8 A
/******************************************************************7 s7 }: p, ]+ @8 C$ |; _: e4 ~
延时函数
# {6 F/ ]" l5 i+ ]) z+ `7 Q- z******************************************************************/- T- X7 r' q" s( P+ k9 U
void delay(uchar t)
6 P: j5 ?9 V" ~  L9 L8 A& J{/ g- l; l# `7 M
  uchar i,j;
! S1 ?+ F0 E5 S* Q5 E* p; j   for(i=0;i<t;i++)5 N8 h  v9 ]( q; V. ?3 V
   {
5 S6 {- A' K+ _" |' n            for(j=13;j>0;j--);
- v4 L- i" b9 r$ I+ O% W         { ;
+ Q' {+ k; p8 D/ P6 i         }
4 {2 U/ m- f0 l; J- O   }% K: j5 x: x! H( U
}4 l$ F$ `0 v& O) k8 G
/**********************************************************************
2 l8 {( a5 x2 `                数码管动态扫描
) V" D8 A) Z% t' M*********************************************************************/& Z' x, e, W9 P8 U+ V4 Z
void xianshi() //显示函数" b0 `& z: m8 u7 o2 E
{
0 X) C8 M- t7 s. `uint z,x,c,v;" Y* X+ h: r* M% v9 L
  z=date/1000;                         //求千位
4 C+ v- {- L7 L3 f6 ]8 ^! l, P8 |  x=date%1000/100;                 //求百位
5 B/ @/ _/ {: Q, p% m  U0 p  c=date%100/10;                 //求十位
1 T0 U: N' x4 V  v=date%10;                         //求个位
0 i1 R3 v/ E1 S1 ]7 f' X- C, Z5 F6 Y. [- \1 x: B* p
      P2=0XFF;
  N. r1 `0 }* ?6 {" ^' V1 K          P0=seg7code[z]&0x7f;
: z; S( L) d& F7 N* b( q; f+ ]$ h          P2=wei[0];
( c. s$ k. O& Y/ Z          delay(80);
6 \: U9 Y& V# P2 |) ~0 i& r          P2=0XFF;  
; m! }, j! t! {2 A" H# m( K      P0=seg7code[x];7 B; c& {" k1 ?) J9 o
          P2=wei[1];
8 M( [. T& A$ D          delay(80);5 i6 N1 v1 {- z: T
          P2=0XFF;  * `+ B+ x1 T2 ?7 \
             P0=seg7code[c];. _+ r" t# B6 ~( S% V) s/ E: p
          P2=wei[2];& i+ \7 t3 C- B2 D, {  c* q8 g
          delay(80);$ d  C5 U3 H+ x3 f* P* K
          P2=0XFF;  
* }0 D  I: j& r9 {7 S3 ?) }      P0=seg7code[v];
$ |* i. m" P. v' M          P2=wei[3];( ~' w1 S1 h" L
          delay(80); 7 Y8 Z: _$ j" G4 V7 {
          P2=0XFF;
$ H" A& w1 K" u  }- ^: E. \/ \% B6 @" V& j7 i
/*************************************************************************
1 V$ ?0 q3 H& q) W, d1 S                                CLK振荡信号        
/ M$ b* o8 v& D! @- C6 _; Z; R**************************************************************************/% K# x5 n7 _8 s* Z8 z: H% b
void timer0( ) interrupt 1 //定时器0工作方式1
& L; q8 G, D* q7 F, M( _, r{4 z7 O; S4 g& t8 R+ M5 v( q" E4 Y+ x

" I; O8 B, C, N- ], C8 e8 A. p# HTH0=(65536-2)/256;          //重装计数初值
) Z9 g- U5 B" t) b. r5 zTL0=(65536-2)%256;          //重装计数初值
& K' t# v: @; G2 QCLK=!CLK;                          //取反
4 {) r& p) q9 f  V! F* t0 h}# N# J" y" J5 v& R& X. ]

1 o4 [* c, T* o; x0 K7 E$ R7 Z /*************************************************************************0 m9 @9 D# ^, n: _$ d) j, W
                                主函数        ( [1 g, D9 q; f0 H; g- ~
**************************************************************************/
. H; r8 q" b4 n" J void main()' }/ n$ p3 ]# M  [1 d2 R* t& {
{
. r3 D6 V" z3 k# g/ \TMOD=0X01;                          //定时器中断07 }' e' f- L7 J. \7 C1 e

% G) b% R5 ]) F+ J; SCLK=0;                                  //脉冲信号初始值为0. j4 t& H) N0 o* Q
TH0=(65536-2)/256;          //定时时间高八位初值3 i3 _* l9 Y2 T! r! O
TL0=(65536-2)%256;          //定时时间低八位初值* v* X) N, C% T7 `' y: ~- w
EA=1;                                  //开CPU中断* |1 N9 Z+ x5 A
ET0=1;                                  //开T/C0中断7 u# \8 C: j- ~$ d
TR0=1;! V, x3 h5 ?3 ]2 _) q0 t( s0 v
while(1)                           //无限循环/ o5 A9 c( p/ p5 ~, s
        {! w7 y1 y8 l- H8 ]  Q1 @
        ST=0;                                //使采集信号为低5 m2 g, T9 J& I$ q2 |2 x
        ST=1;                                //开始数据转换
! i2 v2 u, c) @        ST=0;                                //停止数据转换
& ]% H; ~! [6 v: Z+ Z7 E        while(!EOC);                //等待数据转换完毕) I1 D! E- M& a/ X# r5 O. L3 R
        OE=1;                                //允许数据输出信号
2 n8 U* v) ^( j        AD0809=P1;                    //读取数据
+ a7 y3 s  X0 i8 U1 A' {& {0 D        OE=0;                                //关闭数据输出允许信号
  d* d( E0 G& x* X. T' q; O/ _# g        if(AD0809>=251)                //电压显示不能超过5V# r, s! P5 H0 r! \! I
        AD0809=250;
, t8 k$ B& a$ O        date=AD0809*20;                //数码管显示的数据值,其中20为采集数据的毫安值: I5 R7 }6 k7 F3 X( Z
        xianshi();                        //数码管显示函数0 J  Z5 K1 _2 _( q. R0 C) Q* K
1 K+ o' c2 B  [  ]: T0 ~, @

$ R% |1 I5 t, g. G…………限于本文篇幅 余下代码请下载附件…………
7 S+ b' m$ W7 [0 c9 T/ x3 a' q! d
MQ-2烟雾传感器资料下载:
# z1 y  _% i0 k- C  i0 E& H MQ-2烟雾传感器模块.rar (2.15 MB, 下载次数: 0)
% u) g! R7 ~; c1 Q

' A! ^( x: m% \

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-1 15:11 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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