|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机电力载波通信开关电路制作资料 含设计论文 原理图
7 g4 G+ J, ~8 @: v
+ l: [" d7 k7 d" `5 h# W9 M% m9 B6 x7 ]2 W$ L! _$ ?" S
分享一个基于51单片机的电力载波通信开关电路设计的制作资料:
" Y5 u* Z6 r; W% h![]() ![]() ( G% ^( H! w0 q$ V) F
源码:
, \ a* p# A0 t/*3 u, P: K" f9 }
此程序已经经本人亲自调试运行过,如有疑问,请与马同学联系' i9 i) u& C6 P! c/ U
) l+ ^5 V0 b/ O+ U: j*/; D2 h* n" n' _* b. P; B
#include<reg52.h> //预定义头文件
: R% n+ t! x% a5 A6 O#define uchar unsigned char //宏定义# m! i- [' {9 j3 v! _: X( D F; f
sbit keyin=P3^3; //按键定义/ j# a2 [: `) c( d% G d
sbit led=P3^5; //指示灯定义1 M& ?$ F% e! p7 A ?. z
uchar a; //接收数据记存器4 W! F2 r! M. @/ `& V
void main() //主函数
) F; q/ |9 s3 z3 n6 a{
* k1 i! _) Y2 b# h8 [2 Z; @, o$ m: k$ c keyin=1; //按键口置1
7 s! T8 l! i8 S, s& ` led=1; //灭led灯
$ M/ U( n2 Y' {( C TMOD=0x20; //选择顶时器/计数器1中的方式2
* {; Z) w+ X& e, I SP=0x60; // 设置堆榨地址 N/ D; `1 P4 a2 ~
TH1=0xfd; //波特率9600bit/s
9 c: P/ n$ y, i( v! b TL1=0xfd;9 q0 W& t7 C4 t3 E+ ]# F
SCON=0x50; //串口通信方式2,允许收发% I0 k: X$ k9 Z+ [2 T4 o- Z
TR1=1; //开启计数器, r6 b8 }# e+ S v% O# z9 B
while(1) //循环- y) N, [+ U$ X* M: A. {& ^
{ $ V/ M& J; ?8 ~0 R
if(keyin==0) //判断按键是否按下,是则按键处理
& _0 t, F& q2 Y% Y- h {5 D% T. y: U, f/ \# G, G
SBUF=0x00; //接收数据处理5 X8 ^% w% \* S$ O1 A7 M3 {0 j
while(TI==0) ; //发送完清除接收标志位/ i1 S0 B7 m) ?" }; }& c
TI=0;
; `+ `: O O& @, D/ y }% o4 H; A0 ^* N4 X: w1 g+ o
if(RI==1) //是否接收% I7 p. K% K$ E& w2 }
{ k5 j* H& m; w
RI=0; //接收完接收标志位清零; m9 O3 l# T, l% r3 m$ c# T
a=SBUF; //读接收数据' m, j. E9 `( l- ]
if(a==0) //判断接收数据是否正确
! [1 ]' t% J+ K* H$ R7 } {
5 j0 [1 F, [% L if(led==1) //正确led灯取反' a: M, ?+ K5 o( X
led=0;0 T) l) p- z$ |" f% n
else
/ Z% }$ q2 P/ B# K8 [( a led=1;
9 E( ^# \8 _, R" D& P+ e0 g }
F! {# H; C6 X# S, a, ?$ I }
$ Q, r# b& j: f+ @ S. y2 b8 t }
. G8 `# B, i. A' C, X+ k}: ?; T/ q. I1 n2 {5 [6 I: `# c, v
) y- X$ T% o* p1 G* `7 `
下载:
; ]9 Z4 E2 N+ I& U
: e, y3 |/ c! s8 V# W
: E. p* U' G' l; u' Y7 v8 x |
|