|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
YL69土壤湿度传感器原理图与单片机源程序等资料 V: f, e& y* W% D
! a" R7 P# D8 Q' g J* h
& d. w# {( H* `6 q: n$ u7 @$ Q
YL69土壤湿度传感器原理图:2 u6 ^' C8 X* T+ X p0 L* s5 }
![]()
$ T9 u c' A% N/ Q j6 ^$ E
3 O) k! Y# x( x4 g3 C$ d* G, ?$ T0 l- [0 H# K. H
YL69土壤湿度传感器与单片机接口源程序:
- x) b* A. c4 X/ ?/ z& i7 |/******************************************
( x/ B, _7 c& L& v" ]' K# z传感器触发测试+ i6 N( s) `( ]6 N m5 T# |
单片机:STC89C52. m' N7 V& J8 z9 j# [
波特率:9600' J% x( @ E; N$ s' `
*****************************************/4 L3 b7 @; t2 T9 @4 ^2 @0 U: D/ Q6 q
#include <reg52.h>3 g' H3 U9 J- v8 U' H5 y
unsigned char date;
9 \5 X& m' A k5 G#define uchar unsigned char0 H* P' n9 R+ \) _
#define uint unsigned int
/ _- h# Y3 |7 P. dsbit key1=P0^1;% ?& t6 y7 P6 E: q" m
/ `1 j+ J5 v7 B- S1 M- @6 ?
$ a/ G& h/ P3 p7 G1 ~/* 函数申明 -----------------------------------------------*/; O7 A2 f1 J0 D* S9 H3 O% ]9 ] L
void delay(uint z);
/ l. w/ A& |" i8 h' tvoid Initial_com(void);
! j* q, G, |/ q$ H) _( D, x( @1 s0 c
//***********************************************************
- }' p G6 C6 t" t) T1 ?. a7 |( y8 q7 `9 m0 B
/*9 v" U+ X# j, l( @/ z# M4 U5 K9 p
********************************************************************************
$ u( [- y9 h1 Z! |** 函数名称 : delay(uint z)8 }+ l1 B9 v1 v" ?5 A! t" O
** 函数功能 : 延时函数
& F7 L" I+ ]; X& N+ G' V. Y********************************************************************************
T3 t0 g C. r; M2 X% e, }*/
8 z+ t5 C6 U6 g! o$ |- ?void delay(uint z)
0 B4 i, ^. Z- o{ 0 Y1 Q# P9 l1 O( o4 R
uint i,j;
5 J7 B; V; a4 b" u" Y" t for(i=z;i>0;i--)
3 e; z0 ]# d% J1 ? for(j=110;j>0;j--);
+ _3 k l' o9 b5 u' K$ Q} 9 F5 s' M! Q4 ~ e
2 L: b4 H, x4 Q ~7 A
0 \- U1 O. ^: R. M$ ]9 d//******************************
F! ^" \" W! V2 J6 E }* f' w$ o: w! C8 r
//*****串口初始化函数***********4 a3 O/ H2 k7 b/ f/ n) U
; H7 u s3 T& j
//******************************/ K2 d7 }" _( G' F. ?- E
void Initial_com(void)
8 X, J5 g3 g) y{
) i. k, E) [% Q. n# w7 t. V EA=1; //开总中断
' E, W5 D4 L ~ g9 r ES=1; //允许串口中断
/ I' h' X: f: ^: o& M3 | ET1=1; //允许定时器T1的中断% a$ \! @1 g, S. R) _
TMOD=0x20; //定时器T1,在方式2中断产生波特率
6 E( y5 b# |; D5 ^ C5 a b PCON=0x00; //SMOD=0
* N9 P" p+ a5 D9 X5 k# l& H+ u g7 [3 t SCON=0x50; // 方式1 由定时器控制* [ n8 M* K: q/ S, \" g6 }6 Q
TH1=0xfd; //波特率设置为9600
& R3 w; z1 H% D! d, J, ` TL1=0xfd;
, S/ t7 l5 N/ c' B TR1=1; //开定时器T1运行控制位4 ^0 t9 r) D+ p
8 A. h* T3 V+ K% A, X$ ^}5 q2 o- J2 a% z8 _+ I( m3 W/ y
+ i% s( H: \. O/ W
$ |6 f$ u# R% D- T( o* K" e! D% O: }* h
5 x6 E& h3 J' Y//*************************
% L# m& I; @9 `4 M* l$ k' A) I1 n//**********主函数*********
3 }5 y7 G7 M; W8 ~& w3 c y//*************************6 R. t& y" I; @: t( H) W7 Q
main()% |4 p. D% N. J
{! \' ]7 @1 w# U* ~' C4 C
Initial_com();
' Z* Z1 d( E; C2 X while(1)
1 X3 c' j$ R" V: z s& u V {& M2 s2 g8 l: v
7 J6 o) B2 t: \
if(key1==0)
) ~7 `! m( q u0 q {* x# X+ q: o. }
delay(); //消抖动4 C0 C, s0 X m8 e
if(key1==0) //确认触发
4 T I0 P6 [: @* ~: u2 e; g# A {8 Z0 v3 K5 x h6 U8 m' h
SBUF=0X01;
) [6 [) c0 v. l% U# S8 c% `. I delay(200);
% s4 `6 K4 Z1 b- X( H" R1 `
$ a# h& N/ b, b# Y, T
! F& h1 L( R/ p% S4 ~ }
/ J& X- T" ~4 |; }# J: _8 t
+ h! Y/ u- c+ f9 e0 o }
0 N# n& }5 C9 _& C( W, b
5 e9 j0 \% T% }4 M+ v% o% e if(RI)
/ i0 d6 ?8 m; W; ~6 i; Y {+ ~: L4 W+ |6 X: z z- @) i
date=SBUF; //单片机接受; ~2 J8 x! b% H' Z+ I
SBUF=date; //单片机发送
. E2 ?$ ]7 p8 i w5 P- t RI=0;' W2 A6 ?9 U0 j/ I2 Q: `$ O
}
8 R4 t: b- J1 s
( ]% p. I4 {6 l
0 o+ V7 o9 _ n w( P…………余下代码请下载附件…………
2 l3 D" o0 M4 C$ w( c, T' A1 p: P9 O" l l' m5 z! _/ h8 M
下载:
9 d. v. J- X& j8 N* y" ]- [5 o' p+ Y _: Q- e' I
& W5 t( n$ M7 l/ L+ p; { |
|