|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机的烟雾报警系统 原理图 源代码7 S6 D& _( [+ z8 r3 X
. }( ` l d3 K4 W. u8 c
" M9 D L }" p7 V1 D51单片机的烟雾报警系统原理图:
* H, O" }) c+ s$ S7 ] D8 |1 N ' P3 e/ h3 [ B8 G c# ^
. v$ b0 x: j) _! h& f, s
51单片机源代码:
* u! ^: p9 `; g" J o#include <reg52.h>
8 `. p2 \2 g6 T8 o( _: u( W! ^#include <intrins.h>
& U9 }* g0 m7 n( {9 o2 l! Jsfr P1ASF = 0x9D;
. K5 J R6 {, W+ D1 D$ M$ zsfr ADC_CONTR = 0XBC;( Y7 T1 z( T6 W- Y* B7 v% j
sfr ADC_RES = 0xBD;6 C; Z; ?5 p _. N
sfr ADC_RESL = 0xBE;
; c$ D+ f% y0 X6 avoid adc_init()
, j3 L$ o8 d O: l{5 V( K: R; P6 p- M. f" Z, @' l
P1ASF=0x03;//选择adc通道为p1.0
z* D N1 K" N7 n/ |7 r/ \! A* @# ? ADC_RES=0;
3 `+ y, R' A% |5 m" V ADC_RESL=0;% q6 J; D. R# w0 ]
//ADC_POWER=1; CHS2,1,0为0,用p1.0作为输入。SPEED1,0为0,540个时钟," A- w J7 L( {7 w
ADC_CONTR=0x80;; Z8 c& S2 Z, C; R: U
% d7 y+ M/ n5 ^4 t2 h
1 y/ w0 S) |5 S5 h* g}
( q- }+ |8 I( s7 H% g0 F* O0 i& w7 t1 F z+ c
7 D d* v- P; c' t0 m+ c+ ?4 cunsigned int read_adc1()3 f/ W" S4 i1 u5 ~/ ?7 e
{, d$ o# Z; n' C# c2 B
unsigned int ywdata;
9 m v9 N5 ]% M8 E$ F6 I ADC_RES=0;6 d3 T3 ^( i* _
ADC_RESL=0;5 \8 E' W( M/ W# p" V0 I/ \2 L
ADC_CONTR=0x88;//开启adc测量
, p- J- o3 U6 v6 {) W+ y _nop_();3 I2 r3 Y7 E% Y+ `5 c7 d
_nop_();. z9 L, i8 B9 x4 I3 x# _
_nop_();8 T) Q5 T* }; r$ u! H, A
_nop_();
# u. Q" f- J3 S9 K2 L while(!(ADC_CONTR & 0X10));//查询数据标志位% ]* W( C7 S) ^. i7 Z
ADC_CONTR &= ~0X10; //软件清0
- Z. u0 V1 X9 t- a/ o' } ywdata |= ADC_RES;
3 W/ F, N, \5 | ywdata <<= 2;
1 c T' F4 x& ~' F ywdata |= ADC_RESL;
8 _& k9 `& d5 ?) L* [/ z0 J6 ] ADC_CONTR&=0x7f; //关闭电源. Z3 e% r0 ~/ ^' q' F; N
return ywdata; ! O4 O A: {3 G) A$ s
}
3 c2 F. q( C' a. X9 Munsigned int read_adc2()
+ O v3 D/ O, \3 H! A0 O{$ \& X9 m, o0 q& }' d9 C8 f
unsigned int ywdata;9 y! F- c0 ~$ ]1 n7 Q; f$ I* C) B
ADC_RES=0;
9 T* H$ T8 q& F9 @9 x7 I: C& Y ADC_RESL=0;5 s, |, J5 u5 x3 j
ADC_CONTR=0x89;//开启adc测量2 p( X$ d' m: ~% a. L2 y
_nop_();
# f0 r4 h6 i8 o3 I9 H5 |2 d; k _nop_(); j+ Q1 _) N/ V E3 T9 W6 {
_nop_();
5 N8 k- B) E& C% y! Y _nop_();
) |! x( |1 s- V" z7 \& o- r% O' Y while(!(ADC_CONTR & 0X10));//查询数据标志位, a6 z) a# t. [" h! }+ m! Q9 p
ADC_CONTR &= ~0X10; //软件清0
/ e- r9 g% ~1 ? ywdata |= ADC_RES;! Z e. X1 X+ j$ c
ywdata <<= 2;" I [. y6 k1 ?5 U; g
ywdata |= ADC_RESL;4 w7 g% ]& h t& ?2 z- }
ADC_CONTR&=0x7f; //关闭电源, f- u/ G4 ]3 v) w% u1 |5 f
return ywdata;
+ `# V8 E$ m5 o8 ~: \1 M7 V}- @ n6 [3 _2 U( T _
. Q6 P& S0 `- X3 h! U! }# {1 ]
原理图下载:# s) T3 K2 S( X0 q7 H/ T
$ T9 J, V! U# c4 w& h, h
5 k H$ P+ \: o
|
|