|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机电力载波通信开关电路制作资料 含设计论文 原理图
) B" R! m/ v) J5 u1 M
) d' |1 c; y2 ^ [$ u6 m$ f% O J( w
分享一个基于51单片机的电力载波通信开关电路设计的制作资料:
6 u7 B4 a+ D6 S# [![]() ![]() # m1 K* }% C: ^( J& t8 O7 B
源码:
, u$ h5 k5 i2 X* s/*
! Q l, G( }& x* K7 m此程序已经经本人亲自调试运行过,如有疑问,请与马同学联系9 u6 V8 `8 }1 v# Y. O% E) r
6 w6 u+ e$ H- y+ T9 Z
*/
% E# \, @; C# R3 s1 P. Q#include<reg52.h> //预定义头文件
% G2 C+ ?2 l0 w#define uchar unsigned char //宏定义9 Z$ K( O' s) R. y0 v
sbit keyin=P3^3; //按键定义
2 K* F( u8 P" E4 n/ Esbit led=P3^5; //指示灯定义' |/ _( Z) @6 n* D% v ^. h2 x4 v0 H# e
uchar a; //接收数据记存器6 o# u! v R2 r. m; W
void main() //主函数. t3 g5 J" B# E o
{/ E( O* b" m" d# a5 g# |2 M$ L5 U
keyin=1; //按键口置17 N+ [. R$ X' l! X
led=1; //灭led灯3 r3 `/ c. U5 a: g3 i/ d8 m( b
TMOD=0x20; //选择顶时器/计数器1中的方式2
7 [3 ?1 M* k2 u6 k) m SP=0x60; // 设置堆榨地址
0 f) ]4 e- f- }! _ TH1=0xfd; //波特率9600bit/s" n, \5 ^2 i5 I; t
TL1=0xfd;
3 K, `( ]1 t2 [0 w SCON=0x50; //串口通信方式2,允许收发
# }+ R" y* ~6 E$ p5 f; b TR1=1; //开启计数器* M" z0 m3 T$ O* `- w2 f( p% |
while(1) //循环
6 `, v0 f* u6 l1 C* ^ {
6 l' E" g2 i; s/ X/ v h' { if(keyin==0) //判断按键是否按下,是则按键处理
! j6 t+ h' k: l0 v3 a {
7 `3 Z% U: _) W SBUF=0x00; //接收数据处理& ?. O) T& D* M* n; N
while(TI==0) ; //发送完清除接收标志位, r7 X+ O+ ~5 t& J
TI=0;
?5 k; j. l8 q0 F) {' C }! P* f; I1 a* x | Q" {3 o
if(RI==1) //是否接收
+ [7 \5 _) [7 w8 d! ^) ^7 f6 U& f; X {
# z' \5 ~' h } m6 U' n4 p9 Z RI=0; //接收完接收标志位清零4 U' j! c# E! K3 @9 y! V4 S
a=SBUF; //读接收数据9 e6 b! b: X+ k4 m1 G% {
if(a==0) //判断接收数据是否正确
) L" a% l" g9 K0 w5 k7 M6 A {/ F4 Y% N- A3 f) U% c, h( h3 Z4 M, b# V
if(led==1) //正确led灯取反
1 s$ J `% e( C. i9 J$ F led=0;; x: y2 H a8 M- w& H6 l
else
1 `% C6 f8 I8 _2 t led=1;# \6 e2 d% d# K3 j! o, f* A9 _
}. K7 M8 V8 y8 D! Y3 @
}7 L: u0 w n& a( p
}7 I% u2 q( O3 l) V
}
$ @. `7 p9 P* I2 e* q
, H& A# W. S; M2 V& G. y* N, W4 i下载:/ e- E) z. I! Q% `4 C
7 _1 Y; f4 ~; w, q4 r8 }2 u% ~" f7 i. D, a1 {2 q6 m
|
|