|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机的烟雾报警系统 原理图 源代码$ \5 ?! q) K' r# P5 v* Q8 P
1 r4 F7 Q0 X" a0 J
; a6 N& A$ ]: a+ ?- M9 T8 [51单片机的烟雾报警系统原理图:8 L5 l: A* \ r* U, d% {4 I' h
. b7 X! N. J2 `, T- a8 d
" c% K9 y3 t- L! n8 P, S
51单片机源代码:( d/ s8 J" p7 C* `6 ^* [
#include <reg52.h>/ x4 j) L+ m5 [+ j* c- Y7 {
#include <intrins.h>" \# e0 F& w( ?6 A7 ^: d
sfr P1ASF = 0x9D;. a4 ?0 |8 f. b
sfr ADC_CONTR = 0XBC;# m) q3 Z2 b( q
sfr ADC_RES = 0xBD;
6 s& _. {7 I' b' psfr ADC_RESL = 0xBE;" L1 N: [' o- l2 @# t2 n/ [
void adc_init()- o' I: @$ w$ K9 I
{
& n3 e S9 C" q( F P1ASF=0x03;//选择adc通道为p1.0
( B' g; h0 w: a2 E" O' I ADC_RES=0;( L' |7 u: f/ o: @0 f
ADC_RESL=0;
; g/ B- y7 f0 u: l4 A5 j1 { //ADC_POWER=1; CHS2,1,0为0,用p1.0作为输入。SPEED1,0为0,540个时钟,; E8 b8 I2 i) c; S* K
ADC_CONTR=0x80;
5 N, D( G9 j ^' B' y$ A6 g$ w2 ?; d* r, t
+ \7 J( `! x9 F
}; d4 z) _! s! w; ], z
" T, [ _+ n2 f9 T; m, n! v
% D/ N1 a# b" y
unsigned int read_adc1()& N' N* z4 F5 g
{# a% }; M4 p2 p2 e
unsigned int ywdata;
/ M2 O1 H- @+ i; x% |# c ADC_RES=0;
. ]! ?3 e1 D: V2 h( F/ w ADC_RESL=0;3 K6 o' U: j/ n0 r. d
ADC_CONTR=0x88;//开启adc测量$ U: s9 u; E5 L7 |4 X+ s1 T% E
_nop_();# U) U4 z( C1 O
_nop_();
) W( ] r/ t, S6 E3 e _nop_();
" k! N9 W( F6 i- [, K a4 n% Q6 i _nop_();
# [3 A- H. ?, S; }" Y' @& Z while(!(ADC_CONTR & 0X10));//查询数据标志位& S {& {6 f: U6 n* D. b+ q2 G# t
ADC_CONTR &= ~0X10; //软件清0, j0 p' I4 G! w6 t6 r5 [
ywdata |= ADC_RES;
- S2 s2 T1 S5 [0 f6 O! [ ywdata <<= 2;- e, d, }' ?8 F) u- F
ywdata |= ADC_RESL;
, `& x9 {6 B+ k6 `" r ADC_CONTR&=0x7f; //关闭电源4 i/ |: B- T5 l v3 J
return ywdata; / t& q" _% o2 c$ Y* ^$ T0 w
}2 G4 Z- c1 Z7 v- f- S
unsigned int read_adc2()
+ c1 g! w) a+ o M, X{
6 V' d8 }" B0 \! L unsigned int ywdata;
1 A. ?/ {: N {- v# h) v0 H! l1 ` ADC_RES=0;4 F6 t- s, _ p
ADC_RESL=0;
0 W- a2 g1 T+ v+ @) u6 F4 T) h ADC_CONTR=0x89;//开启adc测量) U: q( Z" r. E. I I: A m5 j1 t2 k
_nop_();
6 a8 K' K6 B8 c! [: y6 [8 g' ] _nop_();
O1 c6 t9 C6 U- N- _# h6 i _nop_();1 Z1 N+ j6 x' ^: O$ ]1 c- m0 ]
_nop_();9 `9 B5 x) Q1 s# V
while(!(ADC_CONTR & 0X10));//查询数据标志位
R2 P5 J5 `. d$ W ADC_CONTR &= ~0X10; //软件清04 g, x7 e1 W; ~) W
ywdata |= ADC_RES;/ l: F; D; S: f1 s0 G/ U# I( W
ywdata <<= 2;& `/ \3 F! o2 t4 a1 o$ }% \2 N
ywdata |= ADC_RESL;5 @: j. h; ^# P, m
ADC_CONTR&=0x7f; //关闭电源- g$ j$ u3 x$ x6 W
return ywdata;
, m0 `8 \4 B4 T7 X6 [/ \+ o8 h}: I% \4 Q% V# @
8 O" A; a% v. @$ s. g- m7 z原理图下载:
0 a( B6 V3 {2 ^1 L% c+ J0 y. c. B( B p1 ` `) W# F: o
2 b! `8 @/ C& K) P- ] |
|