|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MQ-2烟雾传感器工作原理 手册 单片机源代码等下载( t: N+ _9 Z+ S7 L
: `! O6 k0 X' S% w
* l- o* O+ a. P F: K6 T
单片机源代码:
) s& T6 f0 @* K6 n- c0 K7 ~#include <reg52.h> //头文件
! @. K) G) y" k9 o#define uchar unsigned char //宏定义无符号字符型- d" B$ G2 ~9 f
#define uint unsigned int //宏定义无符号整型3 l) h' ]' `+ U/ H% u0 z
code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //显示段码 数码管字跟: s: a' i% q. @) ~" v n& W
uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端 //位控制码
R& e& q# d7 {sbit ST=P3^0; //A/D启动转换信号3 @# _7 g( L8 K% @; a" D
sbit OE=P3^1; //数据输出允许信号
3 |: a$ g- ~9 i: b5 Nsbit EOC=P3^2; //A/D转换结束信号0 m# Y9 h4 I9 u3 z8 \, W8 _% h
sbit CLK=P3^3; //时钟脉冲 ( |- O: q ^7 c& ~4 j" s
uint z,x,c,v,AD0809, date; //定义数据类型
% N* [6 I9 v* J% E, ]: M& u9 O& Q/******************************************************************
; y9 U, U: f( ?) \; I9 c8 y延时函数7 [( R. C, s/ H" D
******************************************************************/, x' W& z1 S! j3 l
void delay(uchar t)
& M2 P7 ^1 {0 |2 j% S{
* ?- f. I+ Y4 c: }2 Q7 n Q* u uchar i,j;7 P9 q/ B5 d8 D+ k
for(i=0;i<t;i++)
: V5 Y3 R9 n" I: k; j: a) R; L {
# l# F7 X9 P4 [- G1 E( e+ o for(j=13;j>0;j--);
- P! p4 Y& Y5 q5 ?6 ]' o% q { ;
4 ^, D+ S' Z1 w }7 A# H2 x7 ?# K5 S" b
}( J6 H% j' a0 Q; S. J
}: O$ h9 z0 [7 q; t3 ?
/**********************************************************************( a! z: S& @( i/ W) \! p& D/ h
数码管动态扫描
! ]; n" z3 ^" @*********************************************************************/
0 n+ v; J5 y6 h" p2 Kvoid xianshi() //显示函数
: H$ V$ x6 K0 c9 _3 V2 p6 X7 H {
/ y, l/ T5 o; L' g! ouint z,x,c,v;! @- w2 q; d! i- r5 i0 ~
z=date/1000; //求千位
- `6 D$ i& S1 ~6 Z: | x=date%1000/100; //求百位
" K5 e. @9 [+ B8 q( B7 J c=date%100/10; //求十位
: V2 J# A. r' f: U2 ?9 Z v=date%10; //求个位
$ O7 y! v0 r- c3 X
7 K% e+ b/ m6 Q P2=0XFF;4 u6 x& s9 u# G: q: c8 S- z4 n0 q
P0=seg7code[z]&0x7f;& [; l4 F5 l' J* q+ {
P2=wei[0];/ M' B9 a7 R. H& \# H
delay(80);+ g O' W( |5 K8 N
P2=0XFF; % E7 S \: Z$ N; x
P0=seg7code[x];- ~ ]: v) f1 O& } ]" B
P2=wei[1];" W) j6 J7 Y4 P$ K+ q* A$ M! A
delay(80);
! t( b) I: s* [; N+ c; S P2=0XFF;
) I& t$ A6 n& z) W P0=seg7code[c];
+ m v2 V5 p4 L! f P2=wei[2];* `: D6 n: H: S% R; s2 l
delay(80);0 B/ r$ V+ |8 d9 S
P2=0XFF; ( G# Y" e' G! v6 S
P0=seg7code[v];
6 {. J/ M, \1 H P2=wei[3];
2 A4 I5 i9 u+ B delay(80); 2 V" L, q! O5 Y3 |
P2=0XFF;
2 L! K. A. @7 {% S3 F. k } ]5 |2 b5 N6 L
/*************************************************************************
# T# X/ n" x7 v6 P CLK振荡信号 + q: T* b' A) M" f
**************************************************************************/
# Y6 O6 J# F# P" D, _7 q+ dvoid timer0( ) interrupt 1 //定时器0工作方式18 z& X- d! m1 c$ e: W) G( t+ Y) u3 O
{
3 Z; c# T& K, w: A7 A% n
, _8 C2 q; L! T Z/ R# V A3 u8 jTH0=(65536-2)/256; //重装计数初值
$ D- V( k( g/ }: kTL0=(65536-2)%256; //重装计数初值7 r# B! H( ]3 ^6 B
CLK=!CLK; //取反% c. `/ k0 Q& m! r
}9 k% V q# j4 r4 v5 @* E4 g
3 [1 F) Z! v1 p; `4 x
/*************************************************************************" L/ z, i5 N9 Z* |7 U* M4 z
主函数 ! Z" n; T9 B9 b- b5 N/ V3 g# r
**************************************************************************/
$ z- @9 F% t1 { void main()0 |2 E4 Q" ?# ^! t1 Q g: s
{
1 O7 }& q. X2 K0 ^TMOD=0X01; //定时器中断0# [) n6 H$ l4 Q& A& `7 `
# h6 t' R/ G+ S* v! n4 N
CLK=0; //脉冲信号初始值为0
' f) @2 d/ Y& ^3 x* wTH0=(65536-2)/256; //定时时间高八位初值; b/ x y% S @% p, L' m% I: q
TL0=(65536-2)%256; //定时时间低八位初值
5 x5 ^# r# W, M; J! W; Q IEA=1; //开CPU中断
4 W8 t9 {4 P: [/ E2 d7 v. o0 ]ET0=1; //开T/C0中断
" A7 U& w6 ~, o, Y0 s, W# b- iTR0=1;
7 Y( }% |( F0 o ` while(1) //无限循环
" X8 f, U; t; `) i, v; C( a {6 |4 z& F. k/ Z4 }* l
ST=0; //使采集信号为低
; b; T6 c; X( M! i ST=1; //开始数据转换
+ h3 d$ O0 }, h" x# g: k& ]; F ST=0; //停止数据转换
2 P, ~, s8 f% G4 y: ] while(!EOC); //等待数据转换完毕
% S5 H4 O4 e0 S OE=1; //允许数据输出信号* c: ], d0 _% K0 o% b
AD0809=P1; //读取数据3 X1 L' J0 R* |9 ]5 t0 p
OE=0; //关闭数据输出允许信号
0 b9 [* K `. {. \ if(AD0809>=251) //电压显示不能超过5V
0 w* i- w$ w. o( h( u AD0809=250;, \5 t9 t) {. C% r2 Q+ B4 Q2 e2 S
date=AD0809*20; //数码管显示的数据值,其中20为采集数据的毫安值
. c* k4 m5 S$ n f xianshi(); //数码管显示函数
3 \6 j* S/ U7 L8 i% U- L2 W0 z0 o. f* |
3 |$ [# T4 W q: `; l/ y! R ?3 r…………限于本文篇幅 余下代码请下载附件…………4 i' Y2 m6 i7 M5 u
% K- v3 L9 `8 {% UMQ-2烟雾传感器资料下载:: @2 x. l0 [% f* [* @, w# a
MQ-2烟雾传感器模块.rar
(2.15 MB, 下载次数: 0)
$ `: P( i! e& t1 X( W3 P
8 L, R- A' [- S: {2 t% g1 l% f# M |
|