|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
YL69土壤湿度传感器原理图与单片机源程序等资料
4 A2 w! [) Y% v0 X4 ?. r; ^. {
$ G0 r7 @; A8 Y" x- w. \ `0 _0 ^5 H- q3 H/ ^9 H! K3 s% s
YL69土壤湿度传感器原理图:$ |* }" ~$ I7 C' g$ d9 [% Y6 d
0 r" P$ O: m; c1 w! ]: j
' l2 E4 i- H4 t7 A5 e3 G
+ y- }* I; V9 _* ^
YL69土壤湿度传感器与单片机接口源程序:1 Q: ?; [5 S" ]) ~. O
/******************************************
u4 j8 l* A9 Y5 }传感器触发测试
/ E5 i8 M- w9 s5 J6 \8 K+ [( @+ H! j单片机:STC89C52/ v, f( _3 R/ x2 N- c
波特率:9600
; I t- W* u U*****************************************/
5 s ^% S+ O: I#include <reg52.h>! x6 ^- \7 H7 p, V3 p# e
unsigned char date;
9 O$ A& a& A, g3 X1 L9 `5 W#define uchar unsigned char
6 `0 v0 ~* @, r# o0 P* C#define uint unsigned int9 H1 J+ T W' k4 e, D& ?; R; l
sbit key1=P0^1;
% x& @- x7 [( O% r# |! i- M7 F0 ]1 B% h% X! Y, ~2 L
# Z o! K! x. N4 d3 x7 o5 N' o
/* 函数申明 -----------------------------------------------*/' K9 _) D+ i3 t* k' U
void delay(uint z);
( c" \ s4 `: Q* r# Tvoid Initial_com(void);
4 S% L1 n4 S+ u. ^- o7 B \4 r1 Q1 ~8 b ]- S4 ^. J
//***********************************************************6 h# q' \8 v0 u3 S) K/ K9 T" B& H L
: A1 y/ _+ i% D/*% y: b! ?. { \
********************************************************************************
, ]5 o* K; ]; F$ y/ U4 @** 函数名称 : delay(uint z); E5 w F) a& D, O+ @. L
** 函数功能 : 延时函数$ o( ~: V& \9 ?
********************************************************************************: P Q& P+ h8 q
*/
+ |5 l6 @! M) i' r4 qvoid delay(uint z)2 M, A1 {- K% n2 V5 h
{
5 F( O5 W4 a/ S& d uint i,j;( y( [7 B+ ?9 ?8 _! A
for(i=z;i>0;i--)! f, L& o+ a: W* A$ W' D5 f
for(j=110;j>0;j--);+ Q, ~4 J2 t+ P( y$ \
} # g" [1 z( z# y3 ~7 f+ J
* j# Q) |8 U& x* _( R$ }( v2 q! M2 l! g' C# ?
//******************************
/ [ e% S. {* ^3 ~; \* v
' _& h" B* z, a/ u! r+ K, `, |//*****串口初始化函数***********( q& `4 F! U$ }$ B/ N- C O) a
D+ M0 O5 W* t m1 t
//******************************
: W1 ~4 I& |! ^# K2 qvoid Initial_com(void)9 H4 E* ?4 W6 a2 X" z
{
4 [& `' G: S) z7 [8 } EA=1; //开总中断
; M0 T$ r$ `8 J1 N3 L+ z ES=1; //允许串口中断
9 P% k* U9 ^1 u( {/ Z1 ~0 E ET1=1; //允许定时器T1的中断
3 o1 ]/ C$ R% e3 T9 C' k TMOD=0x20; //定时器T1,在方式2中断产生波特率
5 F' Q" L! W8 X4 g: c5 r; e PCON=0x00; //SMOD=0
, N* g/ a) s# E6 J- S. v* E; K SCON=0x50; // 方式1 由定时器控制# V' _8 P. V$ k1 j- v* l
TH1=0xfd; //波特率设置为9600' G& p( r4 R! E9 J2 r+ J
TL1=0xfd; P8 D& D. a" E8 F! i1 c' Q$ D$ d6 o
TR1=1; //开定时器T1运行控制位6 h! `1 D, z( t. D2 A
1 ^$ h7 F- c& g" W}' |! W6 o- n4 i% N" @' d% `
" m# F& ?2 E& N! [4 | f* v K: U9 d |
+ B3 m* e H4 m/ m, \
, y2 f0 W2 k0 g3 p) S//*************************& j0 p n1 k! l) Q# T6 v
//**********主函数*********! {# V/ O7 P! f/ g2 R) y
//*************************; @0 m/ V6 ?5 a# V' T) [
main()! Y2 p+ q4 _: e- c. v8 U
{
2 L" L# N e. } E Initial_com();$ J9 r7 K% i1 @% R- ]
while(1)2 _# b) P t* D
{1 P) |) K3 p9 _, a; M+ ~! J
5 U* m: ]( i& |- B3 V7 ?& z if(key1==0)
" u& M. }5 C( P9 F9 S3 i {
+ U: l7 s9 {7 U) \ delay(); //消抖动: s6 J- s, C) B0 T
if(key1==0) //确认触发
- i# n! f* d1 V5 f- Q {
D& y* W* J4 g( b/ Z! I4 O SBUF=0X01;7 ^7 {' D6 I! F
delay(200);
) }# k+ ^& M' `# E, p5 [6 l7 b$ y: N5 k& a3 n# R! z8 I1 k9 j
" j4 S% |" p1 x8 s$ w }9 ^5 g. [ @9 c# a. V
& L: S+ B$ v7 A* F2 s7 o
}
7 A$ O5 j; H& {* ~ S; M& G7 w* {7 D5 L' }4 ~' j
if(RI)
/ R8 F, M+ A; {9 ` {
$ v5 N: N% N# X) v8 T \/ u, u' B date=SBUF; //单片机接受( n0 K3 j. W0 F. t( V0 f8 P9 S
SBUF=date; //单片机发送
8 G. J$ ^& @# _$ P" R RI=0;
0 B/ r0 y# K- X. [( j }/ \1 o; V7 w& G# I( S. |3 Y
' x, }2 W* U, O i+ O9 G* j
* ^. I# ~, G2 C: d. p# R7 n z, w
…………余下代码请下载附件…………* |' |" I* ]) M5 i( |1 k" E. l/ ]
- l7 O& s# D+ N8 {# i6 f. ^/ Z下载:& H& ^3 V0 S {6 w$ `* a
6 [1 \% l& y8 _2 d8 y/ {0 I
5 x+ \; }, Y4 j6 w9 Q
|
|