|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机电力载波通信开关电路制作资料 含设计论文 原理图
" T! v3 L. [0 s) V6 T; v( r* O2 q( s
2 c9 d3 D5 E: `. c; c. ]& O# H分享一个基于51单片机的电力载波通信开关电路设计的制作资料:- D) t+ y. T$ a8 S3 z7 G d
![]() ![]()
) c1 Y* f# i9 e. L" t源码:7 V3 h- L4 I, u6 {( p. g5 j4 i+ L9 ?& `" R
/*" C/ u! ~( k3 z# k3 f$ f
此程序已经经本人亲自调试运行过,如有疑问,请与马同学联系: R6 d% V# o3 P$ O- X8 h
8 h! ^, K4 z% Q# H8 v4 C7 g*/
1 Q% E: j% N H0 ^8 k( b#include<reg52.h> //预定义头文件: Z! \) x- f K
#define uchar unsigned char //宏定义4 ?# q. x/ ?2 m3 E0 R
sbit keyin=P3^3; //按键定义
) X- Q: z, m8 F, w9 zsbit led=P3^5; //指示灯定义
) s1 c6 z* Q$ N# U; I! tuchar a; //接收数据记存器% d3 i! B/ o6 r v
void main() //主函数
+ i$ D; x: L4 H( ^6 A1 i{8 z' Y* r3 A2 _ l' b
keyin=1; //按键口置1
" E* ~- t6 U9 [ led=1; //灭led灯7 V( U- Y {# ~8 W) @8 r$ H
TMOD=0x20; //选择顶时器/计数器1中的方式2
4 B; r% ~' C. T+ x5 v3 |: { SP=0x60; // 设置堆榨地址* _; C( X, b& d+ }- D
TH1=0xfd; //波特率9600bit/s! H( N, M% O |" s9 p: o6 C
TL1=0xfd;2 E* w+ ?7 s' p
SCON=0x50; //串口通信方式2,允许收发
# h# M# O3 q/ f% A6 [2 f9 i TR1=1; //开启计数器+ z! U6 w) g" b
while(1) //循环
+ a; L' O V$ {5 } {
2 N% l- T: g7 r: G/ d0 |0 k( f1 o if(keyin==0) //判断按键是否按下,是则按键处理9 C" @$ t- |9 A
{1 m% \/ ?' A$ {2 ?; A5 V* F
SBUF=0x00; //接收数据处理/ r; F/ T' ]9 x# t2 ^1 |" N4 N
while(TI==0) ; //发送完清除接收标志位 Q8 ~& I( w3 U1 X b
TI=0;
& D. f# e( K2 |! ~! f }. h5 e6 Z! J* \% f% s+ ?& a
if(RI==1) //是否接收
7 Q3 ^5 W; N3 Q( I) \ {
, }8 y: a: @$ W, E2 S; ` RI=0; //接收完接收标志位清零; }. f: \ q( J
a=SBUF; //读接收数据
( n& k' s' ~: _6 l ~ if(a==0) //判断接收数据是否正确
0 [" I5 o5 m8 I \2 P x1 s {
" P+ h. e5 p+ c# P6 x+ D5 l7 ? if(led==1) //正确led灯取反. {- q2 z6 U5 ^0 J
led=0;
}6 T- _" P2 X9 @. H1 o1 u else
3 x, N l* F6 F$ |, r led=1;
+ A" ]8 l4 }$ q; o2 t7 u# U }7 u |" K* m) R0 t+ ?% M
}
8 w3 |3 F3 |/ }$ r$ Z1 `7 N1 d6 C }5 M2 \9 g' h: v( Z" O: }
}) f4 K: ]% z. K z
' b4 c ^ u% d, U4 X+ C" E6 d下载:; [7 W& ^& I% I. B- \' V) t8 e
3 Z8 X' `/ ]$ ]: d
7 l3 ~" }* t# {! ~ |
|